¨¦ o padr?o preferido por nossas equipes para melhorar a qualidade das respostas geradas por um modelo de linguagem de grande porte (LLM). N¨®s a usamos com sucesso em muitos projetos, incluindo a . Com RAG, informa??es sobre documentos relevantes e confi¨¢veis s?o armazenadas em um banco de dados. Para um determinado prompt, o banco de dados ¨¦ consultado, documentos relevantes s?o recuperados, e o prompt ¨¦ aumentado com o conte¨²do dos documentos, fornecendo assim um contexto mais rico ao LLM. Isso resulta em uma sa¨ªda de maior qualidade e alucina??es drasticamente reduzidas. A janela de contexto ¡ª que determina o tamanho m¨¢ximo da entrada do LLM ¡ª cresceu significativamente com os modelos mais recentes, mas selecionar os documentos mais relevantes ainda ¨¦ uma etapa crucial. Nossa experi¨ºncia indica que um contexto menor cuidadosamente constru¨ªdo pode produzir melhores resultados do que um contexto amplo e grande. Usar um contexto grande tamb¨¦m ¨¦ mais lento e mais caro. Costum¨¢vamos confiar apenas em embeddings armazenados em um banco de dados vetorial para identificar contexto adicional. Agora, estamos vendo reclassifica??o e busca h¨ªbrida: ferramentas de busca como Elasticsearch Relevance Engine, bem como abordagens como que utilizam grafos de conhecimento criados com a ajuda de um LLM. Uma abordagem baseada em grafos funcionou particularmente bem em nosso trabalho de compreens?o de bases de c¨®digo legadas com GenAI.
A ¨¦ o padr?o preferido por nossas equipes para melhorar a qualidade das respostas geradas por um modelo de linguagem de grande porte (LLM). A t¨¦cnica tem sido utilizada com sucesso em diversos projetos, incluindo a . Com a RAG, informa??es sobre documentos relevantes e confi¨¢veis - em formatos como HTML e PDF - s?o armazenadas em bancos de dados que suportam um tipo de dados vetoriais ou pesquisa eficiente de documentos, como pgvector, Qdrant ou Elasticsearch Relevance Engine. Para um comando espec¨ªfico, o banco de dados ¨¦ consultado para recuperar documentos relevantes, que s?o ent?o combinados com o prompt para fornecer um contexto mais rico para o LLM. Isso resulta em sa¨ªdas de alta qualidade e numa grande redu??o de alucina??es (respostas irrelevantes). A janela de contexto - que determina o tamanho m¨¢ximo da entrada do LLM - ¨¦ limitada, o que significa que selecionar os documentos mais relevantes ¨¦ crucial. Melhoramos a relev?ncia do conte¨²do que ¨¦ adicionado ao comando por meio de uma nova classifica??o. Da mesma forma, os documentos geralmente s?o grandes demais para calcular um embedding, o que significa que eles devem ser divididos em partes menores. Esse costuma ser um problema complexo, e uma abordagem ¨¦ fazer com que as partes se sobreponham at¨¦ certo ponto.
¨¦ uma t¨¦cnica para combinar mem¨®ria param¨¦trica e n?o param¨¦trica pr¨¦-treinada para gera??o de linguagem. Ela permite que voc¨º aumente o conhecimento existente de LLMs pr¨¦-treinados com conhecimento privado e contextual do seu dom¨ªnio ou setor. Com RAG, voc¨º primeiro recupera um conjunto de documentos relevantes da mem¨®ria n?o param¨¦trica (geralmente por meio de uma busca de similaridade a partir de um datastore vetorial) e, em seguida, usa a mem¨®ria param¨¦trica dos LLMs para gerar uma sa¨ªda que seja consistente com os documentos recuperados. N¨®s achamos que RAG ¨¦ uma t¨¦cnica eficaz para uma variedade de tarefas de processamento de linguagem natural (PLN) que requerem conhecimento profundo, incluindo respostas a perguntas, resumo e gera??o de hist¨®rias.

