Guide
Golden dataset : construire un jeu de test pour son IA
Construire un jeu de test (golden dataset) avec vos vraies questions : colonnes, cas limites, format CSV, questions générées à relire.
Mis à jour le
Un golden dataset (jeu de référence) est une liste de questions réelles, chacune accompagnée de la réponse attendue, validée par quelqu'un du métier. C'est l'outil central de l'évaluation : sans lui, chaque version de votre application est jugée « à l'impression ». Il se construit à partir de ce que vos utilisateurs demandent vraiment, se complète de cas limites, et se range dans un fichier simple que les outils savent lire.
D'où tirer les questions
Les meilleures sources sont celles où vos utilisateurs ont déjà écrit leurs questions, avec leurs mots :
- la boîte mail du support et les formulaires de contact ;
- les tickets d'assistance, surtout ceux qui ont demandé plusieurs échanges ;
- les questions posées en réunion ou au téléphone, notées par l'équipe ;
- en production, les conversations où l'assistant a échoué.
Anthropic va dans ce sens pour les agents : regarder le suivi des anomalies et la file du support, et transformer les échecs signalés par les utilisateurs en cas de test, pour que le jeu reflète l'usage réel. L'éditeur indique que 20 à 50 tâches tirées d'échecs réels sont un bon départ.
Gardez les questions telles qu'elles ont été posées, fautes et imprécisions comprises. Une question réécrite proprement teste un utilisateur qui n'existe pas. Retirez en revanche les noms, adresses et autres données personnelles avant de les verser au jeu.
Ce qu'on note pour chaque ligne
| Colonne | Contenu | Pourquoi |
|---|---|---|
| question | la demande, mot pour mot | c'est l'entrée du test |
| réponse attendue | la bonne réponse, écrite par le métier | sert de référence pour noter |
| source | le document ou le passage qui contient la réponse | permet de vérifier la fidélité |
| catégorie | facturation, livraison, technique… | lire les résultats par thème |
| critère | ce qui rend la réponse acceptable | guide le juge, humain ou automatique |
Pour une question dont la réponse est longue, écrivez plutôt les éléments obligatoires (« doit citer le délai de livraison indiqué dans les conditions de vente et renvoyer vers le formulaire de contact ») qu'une réponse modèle mot à mot : deux réponses justes peuvent être formulées différemment.
Les cas limites à ajouter
La documentation d'Anthropic insiste sur les cas limites. Ajoutez au moins :
- des questions sans réponse dans vos documents : l'assistant doit le dire au lieu d'inventer ;
- des questions hors sujet : il doit rester dans son périmètre ;
- des entrées très longues ou mal formées ;
- des demandes ambiguës, qui appellent une question en retour ;
- des tentatives de manipulation (« oublie tes consignes… »).
Les questions sans réponse sont souvent les plus utiles : c'est là qu'un assistant invente le plus volontiers.
Le format
Un tableur exporté en CSV (valeurs séparées par des virgules) suffit, et la plupart des outils le lisent directement. Dans promptfoo, chaque en-tête de colonne devient une variable du prompt, et la colonne spéciale __expected porte l'assertion :
question,__expected
"Quels sont vos horaires d'ouverture ?","llm-rubric: donne les horaires de la fiche contact, sans en inventer"
"Livrez-vous en Suisse ?","llm-rubric: dit que l'information n'est pas dans la documentation"
Dans Inspect, la fonction csv_dataset lit un fichier dont les colonnes suivent les champs d'un échantillon : input (la question) et target (la réponse attendue). Choisissez des noms de colonnes neutres, et vous pourrez changer d'outil sans refaire le fichier.
Et les questions générées automatiquement ?
Des bibliothèques génèrent des questions à partir de vos documents. Le générateur de Ragas construit un graphe de connaissances à partir des documents, puis produit par défaut des questions simples sur un seul passage (50 %) et des questions qui croisent plusieurs passages (25 % abstraites, 25 % précises). Sa documentation reconnaît que la génération synthétique « peut être déroutante et difficile », et invite à consulter le jeu produit pour choisir les questions à garder.
Usage raisonnable : générer pour couvrir des documents que personne n'a encore interrogés, puis faire relire chaque question et chaque réponse attendue par le métier avant de l'ajouter. Une question générée et non relue mesure surtout le modèle qui l'a générée.
Faire vivre le jeu
- Versionnez le fichier avec le code de l'application : chaque score se rapporte à une version du jeu.
- N'ajoutez jamais une question pour faire monter le score ; ajoutez celles qui ont échoué en production.
- Séparez les questions qui servent à régler les consignes de celles qui servent à juger, sinon vous mesurez votre capacité à apprendre le jeu par cœur.
- Relisez les réponses attendues quand vos documents changent : une politique de retour modifiée rend fausses les références d'hier.
Certaines plateformes gardent ces références au même endroit que l'assistant : ALMA, par exemple, liste dans ses fonctionnalités une gestion des sources de connaissances qui comprend « FAQ, golden answers, questions sans réponse ». Où qu'il vive, le jeu de référence est ce qui rend toutes les autres mesures du site possibles : les métriques, le juge automatique et la non-régression.
Questions fréquentes
Qu'est-ce qu'un golden dataset ?
Un jeu de questions dont la bonne réponse a été écrite ou validée par quelqu'un du métier. Il sert de référence fixe pour noter chaque version de l'application.
Peut-on générer le jeu de test automatiquement ?
On peut générer des questions à partir de vos documents, par exemple avec le générateur de Ragas, mais sa documentation invite à consulter le jeu produit et à choisir les questions à garder. Les vraies questions de vos utilisateurs restent la base.
Sources
Pages consultées pour écrire cet article :
- https://platform.claude.com/docs/en/test-and-evaluate/develop-tests
- https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents
- https://www.promptfoo.dev/docs/configuration/test-cases/
- https://inspect.aisi.org.uk/datasets.html
- https://docs.ragas.io/en/stable/getstarted/rag_testset_generation/
- https://alma.iarche.fr/fr/features