🟡 Usando Ferramentas de LLM
Os sistemas MRKL1 (Raciocínio Modular, Conhecimento e Linguagem, ou Modular Reasoning, Knowledge and Language, em inglês) são uma arquitetura neuro-simbólica que combinam LLMs (computação neural) e ferramentas externas como calculadoras (computação simbólica) para resolver problemas complexos.
Um sistema MRKL é composto por um conjunto de módulos (por exemplo, uma calculadora, API de clima, banco de dados, etc.) e um roteador que decide como "rotear" as consultas em linguagem natural para o módulo apropriado.
Um exemplo simples de um sistema MRKL é um LLM que pode usar um aplicativo de calculadora. Este é um sistema de módulo único, onde o LLM é o roteador. Quando perguntado, Quanto é 100*100?
, o LLM pode escolher extrair os números da solicitação e, em seguida, informar ao sistema MRKL para usar um aplicativo de calculadora para calcular o resultado. Isso pode parecer o seguinte:
Quanto é 100*100?
CALCULADORA[100*100]
O sistema MRKL veria a palavra CALCULADORA e inseriria 100*100 na calculadora. Essa ideia simples pode ser facilmente expandida para várias ferramentas de computação simbólica.
Considere os seguintes exemplos adicionais de aplicativos:
- Um chatbot capaz de responder a perguntas sobre um banco de dados financeiro, extraindo informações para formar uma consulta SQL a partir do texto dos usuários.
Qual o preço do stock da Apple nesse exato momento?
O preço do stock da Apple nesse momento é DATABASE[SELECT price FROM stock WHERE company = "Apple" AND time = "now"].
- Um chatbot capaz de responder a perguntas sobre o tempo extraindo informações do prompt e usando uma API meteorológica para recuperar as informações.
Como é o clima em Nova York?
O clima é WEATHER_API[New York].
- Ou até realizar tarefas muito mais complexas incluidno vários bancos de dados, como nos exemplos a seguir:

Um Exemplo
Eu reproduzi um exemplo de Sistema MRKL do artigo original, usando o Dust.tt, disponível aqui. O sistema lê um problema matemático (por exemplo, Qual é o resultado de 20 vezes 5^6?
), extrai os números e as operações, e os formata a fim de que possam ser utilizados em uma calculadora (por exemplo, 20*5^6
). Em seguida, ele envia a equação reformatada para a calculadora do Google e retorna o resultado. Observe que o artigo original faz um ajuste fino na consulta (no roteador, que é o LLM), mas eu não faço isso neste exemplo. Vamos ver como isso funciona:
Primeiro, eu criei um dataset simples na aba Datasets
do Dust.
Depois, eu mudei para a aba Specification
e inclui o dataset acima usando um bloco do tipo input
.
Em seguida, criei um bloco do tipo lmm
que extrai os números e operações matemática. Note que quando eu crio o promt eu passo que estou usando a calculadora do Google. O modelo que eu usei (GPT-3) provavelmente tem algum conhecimento da calculadora do Google devido ao seu pré-treinamento.
Então eu criei um block do tipo code
, no qual incluí um código em javascript bem simples para remover os espaços da resposta.
Finalmente, eu criei um bloco do tipo search
que manda a equação formatada para a calculadora do Google.
Abaixo você pode ver os resultando, que estão todos corretos!
Fique à vontade para copiar e brincar com esse código aqui.
Notas
MRKL foi desenvolvido por AI21, o qual originalmente usaram o LMM J-1 (Jurassic 1)2.
Mais
Confira esse exemplo de um sistemas MRKL construído com LangChain.
- Karpas, E., Abend, O., Belinkov, Y., Lenz, B., Lieber, O., Ratner, N., Shoham, Y., Bata, H., Levine, Y., Leyton-Brown, K., Muhlgay, D., Rozen, N., Schwartz, E., Shachaf, G., Shalev-Shwartz, S., Shashua, A., & Tenenholtz, M. (2022). ↩
- Lieber, O., Sharir, O., Lentz, B., & Shoham, Y. (2021). Jurassic-1: Technical Details and Evaluation, White paper, AI21 Labs, 2021. URL: Https://Uploads-Ssl. Webflow. Com/60fd4503684b466578c0d307/61138924626a6981ee09caf6_jurassic_ Tech_paper. Pdf. ↩