Desenvolvendo aplicações generativas de IA com
No artigo anterior desta série , vimos o pipeline de incorporação, que preenche o
Aqui, veremos a interação real com o LLM e examinaremos alguns problemas comuns que podem levar a resultados ruins: prompts imprecisos e abordagens de geração insuficientes.
Mesmo as melhores estratégias de incorporação e fragmentação não podem substituir a necessidade de qualidade
Especificamente, há várias coisas que você deve considerar ao criar prompts para aplicativos RAG. Esses incluem:
Diga ao LLM sua função: Ao interagir com agentes LLM como o ChatGPT, eles agirão como um chatbot útil. No entanto, você pode alterar a natureza das respostas que serão geradas instruindo o LLM a agir de uma maneira específica. Exemplos podem ser coisas como “você é um advogado avaliando se alguma das partes está violando um acordo” ou “você é um agente de atendimento ao cliente de um provedor de serviços de Internet; seu trabalho é ajudar as pessoas a solucionar problemas de Internet” ou o que fizer sentido para sua situação específica.
Diga explicitamente ao LLM para usar o contexto fornecido : deixe claro para o LLM que você está fornecendo contexto e deseja que a resposta gerada reflita esse contexto. Você pode fazer isso dizendo algo como “sua resposta deve levar em consideração o seguinte contexto” seguido do contexto. Use exemplos: No cenário recém-mencionado de pedir ao LLM para atuar como um advogado avaliando contratos, você pode incluir vários exemplos na solicitação. Por exemplo, você poderia fornecer um exemplo de contrato que diz que o pagamento vence dentro de 30 dias, mas o comprador não enviou o pagamento até 40 dias após a assinatura do contrato e, portanto, violou o acordo. Você poderia fornecer exemplos adicionais de direitos de reparação e possíveis formas de resolver violações contratuais.
Especifique o formato de saída: se o seu caso de uso exigir uma saída específica, você poderá especificar o formato ao qual a saída gerada deve aderir. Você pode combinar essa técnica com a dica acima para fornecer exemplos que deixem claro para o LLM como você deseja que ele responda, bem como os principais pontos de informação que você espera na resposta gerada.
Use cadeia de pensamento : para casos de uso em que o raciocínio está envolvido para determinar a resposta apropriada, você pode considerar o uso de uma técnica chamada cadeia de pensamento para ajudar a explicar as etapas que você deseja que o LLM siga para chegar a uma resposta gerada. Por exemplo, no caso de contratos legais, você pode querer orientar o LLM pelas etapas lógicas que uma pessoa seguiria para determinar se um termo do contrato foi violado. Por exemplo, ao lidar com contratos legais, você pode dizer ao LLM para primeiro procurar cláusulas que especifiquem as condições de pagamento, depois identificar a quantidade de tempo que o comprador teve para enviar o pagamento e, em seguida, calcular o número de dias entre o momento em que o pagamento foi recebido e o data em que o contrato foi assinado. Então, se o pagamento demorar mais do que o prazo acordado, o comprador violou o acordo.
Aproveitar essas técnicas para melhorar sua engenharia imediata pode ter um impacto significativo na qualidade dos resultados gerados que você pode produzir em suas aplicações RAG. No entanto, às vezes você precisará usar técnicas que envolvam múltiplas trocas com o LLM para obter uma resposta aceitável.
Recuperação ativa prospectiva, ou
Você pode ver um exemplo de como o FLARE funciona no exemplo do livro de receitas LangChain do FLARE .
Ao gerar consultas semelhantes à consulta do usuário e recuperar o contexto relevante tanto para a consulta original quanto para as consultas semelhantes geradas, podemos aumentar a probabilidade de termos selecionado o contexto mais útil para gerar resultados precisos. O processo, denominado “fusão RAG”, é assim:
O passo principal aqui é usar uma função de classificação recíproca para refinar ainda mais os resultados da RNA e identificar o contexto mais relevante a ser usado para gerar uma resposta.
RAG é uma abordagem simples de começar, mas que muitas vezes deixa os desenvolvedores frustrados com resultados insatisfatórios por motivos pouco claros. A relevância dos resultados em aplicações de IA generativa habilitadas para RAG pode ser afetada por vários fatores. Ao selecionar meticulosamente modelos de incorporação, formular estratégias de chunking e projetar prompts, você pode elevar significativamente a qualidade e a precisão das respostas geradas em sistemas alimentados por LLMs como o ChatGPT. Esperamos que essas dicas ajudem você a criar aplicativos RAG mais úteis que proporcionem a experiência e o valor que você busca.
Por Chris Latimer, DataStax
Também aparece aqui .