Skip to content

Évaluation du RAG

Comment évaluer la génération augmentée par récupération avec l'annotation humaine : pertinence de la récupération, faithfulness de la réponse et segments de citation, avec Potato.

La génération augmentée par récupération (retrieval-augmented generation, RAG) répond à une question en récupérant d'abord des documents, puis en générant une réponse à partir de ceux-ci. Évaluer le RAG, c'est juger deux choses séparément : a-t-il récupéré les bons documents, et la réponse est-elle réellement étayée par ceux-ci ? Confondre les deux masque l'endroit où le système échoue.

Voir retrieval-augmented generation pour le contexte.

Les trois choses à annoter

  1. Pertinence de la récupération : pour chaque document récupéré, est-il pertinent par rapport à la requête ?
  2. Faithfulness de la réponse : la réponse générée est-elle ancrée dans les documents récupérés, sans affirmations non étayées ?
  3. Exactitude des citations : les affirmations de la réponse remontent-elles réellement aux sources citées ?

Comment le configurer dans Potato

Combinez trois schémas sur un seul écran : notez chaque document, notez la faithfulness et surlignez les segments problématiques dans la réponse :

yaml
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]

multirate note de nombreux documents sur la même échelle en une fois ; le schéma de segments marque exactement la réponse s'écarte de ses sources. Voir Détecter les hallucinations.

Pourquoi séparer la récupération de la génération

Un système RAG peut échouer de deux façons : il a récupéré un mauvais contexte (un problème de récupération) ou il a ignoré un bon contexte (un problème de génération). Les noter séparément vous indique quelle moitié corriger. Un score de faithfulness seul ne le peut pas.

Considérations de qualité

  • Montrez aux annotateurs la requête, les documents et la réponse ensemble : la faithfulness ne peut pas être jugée sans les sources.
  • « Pertinent » a besoin d'une définition : pertinent par rapport à la requête, ou réellement utilisé dans la réponse ? Décidez-le d'emblée.
  • Suivez l'accord sur la faithfulness ; c'est la plus subjective des trois.

Pour aller plus loin