Eu gastei $500 em infraestrutura de RAG antes de cometer 7 erros
Eu construí um pipeline de RAG para busca de documentos privados. Custou-me $500 em computação e semanas de depuração. Os resultados foram ruins. Os usuários recebiam respostas irrelevantes e as consultas eram lentas.
Eu auditei o pipeline e encontrei 7 erros comuns. Corrigi-los mudou tudo.
- Chunking de tokens fixo Eu dividia os documentos por contagens fixas de tokens. Isso destruía o contexto. Uma frase era dividida ao meio. O LLM recebia dados fragmentados e dava respostas ruins.
- A correção: Use semantic chunking com parent-document retrieval.
- Divida por limites naturais, como parágrafos ou cabeçalhos.
- Crie pequenos child chunks para a busca.
- Retorne o documento pai completo para o LLM quando houver uma correspondência.
- Adicione uma sobreposição de 10-20% entre os chunks.
- Pesos de busca padrão Eu usava uma divisão de 50/50 para busca vetorial e por palavra-chave. Para documentos técnicos, palavras-chave exatas importam mais.
- A correção: Use pesos dinâmicos.
- Consultas factuais: 35% vetorial, 65% palavra-chave.
- Consultas semânticas: 75% vetorial, 25% palavra-chave.
- Otimização excessiva de parâmetros HNSW
Eu defini o
ef_constructionpara o valor máximo. Em um índice grande, isso derrubou meu servidor e consumiu toda a minha RAM.
- A correção: Use configurações de HNSW apropriadas.
- Mantenha o M entre 8 e 32.
- Defina o
ef_constructionpara 200. - Defina o
ef_searchpara 50.
- Modelos de embedding errados Eu usei um modelo geral treinado em textos da web. Ele não entendia meus documentos técnicos de engenharia.
- A correção: Mude para um modelo ajustado (fine-tuned) para conteúdo técnico ou de código.
- Incompatibilidade de linguagem natural Os usuários fazem perguntas como "por que meu build está lento". A documentação usa termos como "otimização de pipeline de CI". Não havia nenhuma sobreposição.
- A correção: Adicione uma etapa de reescrita de consulta por LLM.
- Reescreva a consulta do usuário em termos técnicos antes de realizar a busca.
- Contexto redundante Recuperar os 10 principais chunks muitas vezes significava obter o mesmo parágrafo três vezes. Isso causava alucinações.
- A correção: Use Maximal Marginal Relevance (MMR) para garantir diversidade nos resultados.
- Avaliação apenas de ponta a ponta Eu apenas verificava a resposta final. Eu não sabia se o problema era a recuperação ou o LLM.
- A correção: Avalie a recuperação separadamente.
- Monitore a taxa de acerto (hit rate) e o Mean Reciprocal Rank (MRR).
- Crie um conjunto de testes com 100 pares de consulta-documento.
Resultados após as correções: • Relevância da resposta: 45% para 85% • Latência da consulta: 3,2s para 1,8s • Custo mensal: $180 para $95
Corrija o chunking primeiro. Depois os pesos. Depois a qualidade do embedding.
Qual é a sua maior dor de cabeça com RAG? Conte-me nos comentários.
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi