Agentes, LLMs e respostas a perguntas multihop
Dentro de uma estrutura de desenvolvimento, os Agentes podem ter acesso a um conjunto de ferramentas; com base nas entradas e demandas do usuário. Onde não existem cadeias pré-determinadas, os Agentes podem atender a solicitação do usuário.
Preparando a cena
Acessar e desenvolver em Large Language Models (LLMs) é um campo em constante expansão…
No entanto, existem alguns princípios emergentes que estão sendo amplamente implementados.
Considerando a imagem acima, as quatro camadas logo acima do LLM estão todas diretamente relacionadas a diferentes abordagens e implementações de prompts .
Houve uma evolução nos métodos de pronta implementação .
O encadeamento de prompts é o processo de encadear ou sequenciar vários prompts para criar um aplicativo maior. As sequências de prompts podem ser organizadas em série ou em paralelo.
Porém, um dos impedimentos do encadeamento de prompts é que o encadeamento é um fluxo predeterminado ou uma sequência de chamadas para LLMs e outras APIs.
E quanto a possíveis cenários desconhecidos ou comportamento do usuário para os quais nenhuma cadeia foi desenvolvida? Pode haver um nível de autonomia, onde o aplicativo baseado em LLM pode decidir qual rota atenderá melhor a solicitação do usuário? Digite Agentes .
Considerando um Agente que tem acesso a um modelo extrativo ( prompt pipeline ), treinado em um corpus de dados contendo informações sobre os presidentes dos Estados Unidos…
O modelo extrativo baseado no armazenamento de documentos se sai bem na seguinte pergunta direta:
Who was the 1st president of the USA?
Mas o agente baseado apenas em um modelo extrativo não faz bem em encontrar respostas para uma pergunta que não corresponde claramente a uma frase no armazenamento de documentos .
No exemplo abaixo, uma pergunta ambígua é feita ao Agente:
What year was the 1st president of the USA born?
Isso pode ser considerado como uma questão multihop, que exige um nível de dedução e raciocínio.
Se o Agente tiver acesso ao armazenamento de documentos (modelo extrativo) e a um LLM, o Agente poderá decidir qual ferramenta de seu arsenal utilizar para melhor atender a solicitação do usuário.
Aproveitando o LLM, o agente também pode seguir uma abordagem multihop para responder à pergunta, seguindo o raciocínio da cadeia de pensamento para responder à pergunta.
Abaixo está a resposta do Haystack Agent à pergunta, observe como a pergunta é decomposta e observe como uma abordagem de Sugestão de Cadeia de Pensamento é seguida.
Finalmente
No caso do Haystack Agent, o texto exato da descrição é realmente importante. O agente aproveita essa descrição para entender qual ferramenta usar.
Se o agente não conseguir escolher a ferramenta certa, você pode ajustar a descrição.
Mudei a descrição de:
useful for when you need to answer questions related to the presidents of the USA.
para:
useful for when you need to answer questions related to the presidents of the USA when there is no answer in the document store.
Abaixo o trecho de código…
from haystack.agents import Tool
search_tool = Tool(name="USA_Presidents_QA",pipeline_or_node=presidents_qa,
description="useful for when you need to answer questions related to the presidents of the USA when there is no answer in the document store.",
output_variable="answers"
)
agent.add_tool(search_tool)
⭐️ Por favor, siga-me no LinkedIn para atualizações sobre Conversational AI ⭐️
Atualmente sou o Evangelista Chefe @ HumanFirst . Eu exploro e escrevo sobre todas as coisas na interseção de IA e linguagem; variando de LLMs , Chatbots , Voicebots , estruturas de desenvolvimento, espaços latentes centrados em dados e muito mais.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)