Avaliação de RAG (RAGAS, Recall@K)
Meça fidelidade, relevância da resposta, precisão do contexto e recall@K para saber se as alterações ajudam.
Avaliação de RAG (RAGAS, Recall@K) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Não é possível melhorar o que não é possível medir
O RAG tem muitos ajustes: tamanho do trecho, K principais, reranqueador, instrução, modelo. Sem métricas, toda mudança é uma tentativa no escuro.
Principais métricas para RAG
- Recuperação: recuperamos os trechos corretos?
- Fidelidade: a resposta permanece fundamentada nos trechos?
- Relevância da resposta: a resposta aborda a pergunta?
- Precisão/revocação do contexto: proporção de trechos úteis recuperados
Revocação@K
Crie um conjunto de referência com pares (pergunta, lista de identificadores de trechos relevantes). Meça com que frequência os trechos recuperados entre os K principais contêm pelo menos um trecho relevante:
def recall_at_k(eval_set, k=5):
hits = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
if any(c.id in item['relevant_ids'] for c in retrieved):
hits += 1
return hits / len(eval_set)Precisão@K
Que fração dos trechos recuperados é relevante?
def precision_at_k(eval_set, k=5):
total_relevant = 0
total_retrieved = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
total_relevant += sum(1 for c in retrieved if c.id in item['relevant_ids'])
total_retrieved += k
return total_relevant / total_retrievedMRR (posição recíproca média)
Qual é a posição do FIRST documento relevante?
def mrr(eval_set, k=10):
total = 0
for item in eval_set:
retrieved = retriever(item['question'], k=k)
for rank, c in enumerate(retrieved, start=1):
if c.id in item['relevant_ids']:
total += 1 / rank
break
return total / len(eval_set)Fidelidade (LLM como avaliador)
Use um LLM para verificar se cada afirmação da resposta é sustentada pelo contexto:
judge_prompt = '''
Given the context and answer, identify each factual claim in the answer.
For each claim, judge whether the context supports it.
Return {claims: [{claim, supported: true/false}]}.
'''
result = judge_llm.invoke(judge_prompt.format(context=ctx, answer=ans))Relevância da resposta
Avaliação reversa: pergunte a um LLM "Esta resposta poderia ser a resposta para esta pergunta?" Isso identifica resultados fora do tópico.
Estrutura RAGAS
O RAGAS automatiza as métricas acima:
# pip install ragas
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall
results = evaluate(
dataset, # HF dataset with question, contexts, answer, ground_truth
metrics=[faithfulness, answer_relevancy, context_precision, context_recall]
)
print(results)Criando um conjunto de referência
De 20 a 200 tuplas (pergunta, resposta esperada, trechos relevantes) selecionadas por pessoas. Inclua:
- Consultas comuns
- Casos extremos
- Entradas adversariais (perguntas fora do corpus)
Conjuntos de avaliação sintéticos
Inicialização: peça a um LLM para gerar pares de perguntas e respostas a partir dos seus documentos. A qualidade é menor, mas o processo é rápido:
synth_prompt = 'Read this document and write 3 questions a user might ask, with answers from the doc:\n{doc}'
# Use as a starting point; humans curate later.
print(synth_prompt)
Conjuntos de dados do LangSmith e Langfuse
As duas ferramentas permitem transformar rastros de produção em conjuntos de dados de avaliação. Selecione 50 perguntas reais que tiveram resultados ruins, rotule as respostas corretas e use esse conjunto como referência.
Não otimize demais uma única métrica
Maximizar a Revocação@K pode prejudicar a Precisão@K (muitos falsos positivos). Acompanhe várias métricas e uma métrica composta.
Testes A/B em produção
Quando você tiver uma avaliação offline que se correlacione com a satisfação dos usuários, poderá testar mudanças em produção com A/B e comparar tanto as métricas quanto as taxas de aprovação dos usuários.
Definição de Revocação@K
O que significa Revocação@5 = 0,8?
Recapitulação
Crie um conjunto de referência. Meça Revocação@K, Precisão@K, MRR, Fidelidade e Relevância da resposta. Use RAGAS para automatizar o processo. Faça iterações com base nas suas métricas.
Aprenda AI Agents com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 60
- Aulas
- 239
Perguntas Frequentes
A aula “Avaliação de RAG (RAGAS, Recall@K)” é grátis?
Sim — o texto completo de “Avaliação de RAG (RAGAS, Recall@K)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Avaliação de RAG (RAGAS, Recall@K)”?
Meça fidelidade, relevância da resposta, precisão do contexto e recall@K para saber se as alterações ajudam. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Avaliação de RAG (RAGAS, Recall@K)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Reclassificação com codificadores cruzados
- HyDE: embeddings de documentos hipotéticos
- Recuperação multivetorial (ColBERT)
- Avaliação de RAG (RAGAS, Recall@K)