Melhorar a qualidade da aplicação RAG
Este artigo fornece uma visão geral de como você pode refinar cada componente para aumentar a qualidade do seu aplicativo de geração aumentada de recuperação (RAG).
Há uma infinidade de "botões" para ajustar em cada ponto do pipeline de dados offline e da cadeia RAG online. Embora existam inúmeros outros, o artigo se concentra nos botões mais importantes que têm o maior impacto na qualidade da sua aplicação RAG. A Databricks recomenda começar com esses botões.
Dois tipos de considerações de qualidade
De um ponto de vista conceitual, é útil visualizar os botões de qualidade RAG através da lente dos dois principais tipos de problemas de qualidade:
Qualidade de recuperação: Você está recuperando as informações mais relevantes para uma determinada consulta de recuperação?
É difícil gerar resultados RAG de alta qualidade se o contexto fornecido ao LLM estiver faltando informações importantes ou contiver informações supérfluas.
Qualidade de geração: Dadas as informações recuperadas e a consulta original do usuário, o LLM está gerando a resposta mais precisa, coerente e útil possível?
Os problemas aqui podem se manifestar como alucinações, saída inconsistente ou falha em abordar diretamente a consulta do usuário.
Os aplicativos RAG têm dois componentes que podem ser iterados para enfrentar desafios de qualidade: pipeline de dados e cadeia. É tentador assumir uma divisão limpa entre problemas de recuperação (basta atualizar o pipeline de dados) e problemas de geração (atualizar a cadeia RAG). No entanto, a realidade é mais matizada. A qualidade da recuperação pode ser influenciada pelo pipeline de dados (por exemplo, estratégia de análise/fragmentação, estratégia de metadados, modelo de incorporação) e pela cadeia RAG (por exemplo, transformação de consulta do usuário, número de partes recuperadas, reclassificação). Da mesma forma, a qualidade da geração será invariavelmente afetada pela má recuperação (por exemplo, informações irrelevantes ou ausentes que afetam a saída do modelo).
Esta sobreposição sublinha a necessidade de uma abordagem holística para a melhoria da qualidade das RAG. Ao entender quais componentes devem ser alterados no pipeline de dados e na cadeia RAG, e como essas alterações afetam a solução geral, você pode fazer atualizações direcionadas para melhorar a qualidade da saída RAG.
Considerações sobre a qualidade do pipeline de dados
Principais considerações sobre o pipeline de dados:
- A composição do corpus de dados de cálculo.
- Como os dados brutos são extraídos e transformados em um formato utilizável (por exemplo, analisando um documento PDF).
- Como os documentos são divididos em blocos menores e como esses blocos são formatados (por exemplo, estratégia de fragmentação e tamanho do bloco).
- Os metadados (como título da seção ou título do documento) extraídos sobre cada documento e/ou bloco. Como esses metadados são incluídos (ou não incluídos) em cada bloco.
- O modelo de incorporação usado para converter texto em representações vetoriais para pesquisa de similaridade.
Cadeia RAG
- A escolha do LLM e seus parâmetros (por exemplo, temperatura e tokens máximos).
- Os parâmetros de recuperação (por exemplo, o número de partes ou documentos recuperados).
- A abordagem de recuperação (por exemplo, palavra-chave vs. pesquisa híbrida vs. semântica, reescrever a consulta do usuário, transformar a consulta de um usuário em filtros ou reclassificar).
- Como formatar o prompt com o contexto recuperado para orientar o LLM em direção à saída de qualidade.