Como Avaliar Sistemas RAG com Anotação Humana
Um guia prático para avaliar geração aumentada por recuperação: pontue a relevância da recuperação e a fidelidade da resposta separadamente e marque afirmações sem suporte com anotação de spans no Potato.
Um sistema de geração aumentada por recuperação pode falhar de duas maneiras completamente diferentes, e uma única pontuação de qualidade esconde qual delas você está observando. Ou o recuperador trouxe os documentos errados, ou o gerador tinha bons documentos e os ignorou. Se você só mede "a resposta é boa", não consegue distinguir esses casos, e não consegue saber qual metade do sistema precisa ser corrigida.
A solução é avaliar recuperação e geração separadamente e marcar exatamente onde uma resposta se afasta de suas fontes.
As três coisas que valem a pena anotar
- Relevância da recuperação. Para cada documento recuperado, ele é de fato relevante para a consulta?
- Fidelidade da resposta. A resposta gerada está fundamentada nesses documentos, sem afirmações inventadas?
- Precisão das citações. As afirmações da resposta remetem às fontes que ela cita?
Manter isso separado transforma um vago "a resposta está errada" em "o documento certo foi recuperado, mas o modelo acrescentou uma afirmação que não está nele". Esse é um problema de geração, e aponta para uma correção diferente da que uma falha de recuperação exigiria.
Configurando no Potato
Você pode colocar os três em uma única tela. Avalie cada documento recuperado na mesma escala com multirate, avalie a fidelidade com uma escala Likert e destaque os spans problemáticos na resposta.
annotation_schemes:
- annotation_type: multirate
name: retrieval_relevance
description: "Rate the relevance of each retrieved document to the query."
labels: ["Irrelevant", "Somewhat", "Relevant", "Highly relevant"]
- annotation_type: likert
name: faithfulness
description: "Is the answer faithful to the retrieved documents?"
size: 5
min_label: "Many unsupported claims"
max_label: "Fully grounded"
- annotation_type: span
name: problems
description: "Highlight any unsupported or incorrect claim in the answer."
labels: [unsupported_claim, contradicted, hallucination]O esquema de span é o que torna os dados acionáveis. Uma pontuação de fidelidade de 2 em 5 diz que algo está errado; um span destacado diz qual frase e por quê.
Coisas que arruínam silenciosamente a avaliação de RAG
Os anotadores não conseguem julgar a fidelidade sem as fontes. Mostre a consulta, os documentos recuperados e a resposta na mesma tela. Se os documentos estiverem recolhidos ou em outra aba, as pessoas vão avaliar a resposta com base em se ela soa correta, que é exatamente o modo de falha que você está tentando capturar.
"Relevante" precisa de uma definição. Relevante para a consulta, ou de fato usado na resposta? Esses são julgamentos diferentes, e os anotadores vão se dividir entre eles a menos que você decida de antemão.
A fidelidade é a parte subjetiva. Colete sobreposição em uma amostra e verifique a concordância especificamente nas avaliações de fidelidade. Se a concordância for baixa ali, aperte a definição de "sem suporte" antes de confiar nos números.
Para onde ir em seguida
O passo a passo completo, incluindo como os três esquemas se encaixam, está no guia de Avaliação de RAG. Para marcar erros factuais e alucinações em qualquer saída de modelo, não apenas RAG, veja Detectando Alucinações com Anotação de Spans. E se você estiver avaliando agentes de forma mais ampla, comece por Como Avaliar Agentes de IA.