Créer avec l’IA

Que sont les evals, et comment tester un prompt avant de s’y fier?

· Par Robert Scales · 5 min de lecture

Réponse courte

Une eval est un ensemble fixe d’entrées de test, chacune associée à ce qu’une bonne réponse doit contenir, que vous faites passer dans un modèle pour noter la performance d’un prompt ou d’un système. Faire passer le même ensemble avant et après chaque changement vous dit si le prompt s’est réellement amélioré, au lieu de vous fier au seul exemple que vous avez essayé.

La plupart des prompts sont jugés sur un seul essai. Vous écrivez un prompt, collez un exemple, aimez la réponse et commencez à vous en servir. Le problème apparaît à la quarantième entrée, celle qui a un format inhabituel ou un détail piège, quand le modèle fait quelque chose que vous n’aviez jamais vu pendant vos essais. Une eval, abréviation d’evaluation (évaluation), est l’habitude qui attrape ces échecs tôt : un ensemble de cas de test que vous faites passer chaque fois, avec une règle claire pour ce qui compte comme une réussite.

En mars, quand OpenAI a lancé GPT-4, elle a aussi publié en code source ouvert OpenAI Evals, son cadre pour tester automatiquement la performance des modèles. OpenAI a invité tout le monde à proposer des evals qui révèlent les points faibles de ses modèles. Vous n’avez toutefois pas besoin du cadre pour appliquer l’idée. Un tableur suffit.

Comment le cadre d’OpenAI décrit une eval

Dans la documentation d’Evals, une eval comporte deux choses : un jeu de données et une façon de le noter. Le jeu de données est un fichier JSONL, un fichier texte simple qui contient un enregistrement JSON par ligne. Chaque enregistrement a un input, qui est le prompt, et, pour les evals simples, un ideal, la réponse attendue :

{"input": [{"role": "system", "content": "Réponds seulement par le nom de la capitale."}, {"role": "user", "content": "France"}], "ideal": "Paris"}

Le cadre compare ensuite la réponse du modèle avec la réponse idéale. Des gabarits simples vérifient une correspondance exacte, vérifient si la réponse contient le texte idéal ou permettent une correspondance approximative. Pour les réponses qui n’ont pas une seule bonne formulation, comme un résumé, il existe des evals notées par un modèle (model-graded) : un deuxième modèle lit la réponse et la note selon une grille. OpenAI recommande de tester aussi ce correcteur, en comparant ses verdicts avec des étiquettes attribuées à la main par des personnes.

La documentation énumère aussi ce qui fait qu’une eval vaut la peine. Elle doit rester sur un seul thème, être assez difficile pour qu’un modèle performant ne réussisse pas tout, avoir des réponses de référence claires ou une grille, et être vérifiée par sondage par une personne avant qu’on se fie au résultat.

Un exemple complet : une eval de 20 cas pour un prompt de résumé

Disons qu’un petit organisme sans but lucratif utilise ce prompt pour transformer de longs courriels de donateurs en notes pour sa base de données :

Prompt
Résume le courriel ci-dessous en exactement 3 puces pour notre base de données de donateurs. Inclus la demande du donateur et toute date ou tout montant mentionné. N’ajoute aucune information qui ne figure pas dans le courriel.

Courriel : """{email}"""

Au lieu de l’essayer sur un seul courriel, rassemblez-en 20 vrais (avec les noms retirés) et montez une feuille de calcul. Choisissez-les pour couvrir tout l’éventail : courts et longs, polis et fâchés, des courriels avec deux dates, des courriels sans aucune demande, un écrit en anglais. Pour chacun, notez ce qu’un résumé correct doit contenir. Faites ensuite passer le prompt sur les 20 et notez chaque réponse selon trois vérifications.

#Type de courrielDoit inclure3 puces?Faits exacts?Rien d’inventé?
1Hausse d’un engagement250 $, à partir d’octobreOuiOuiOui
2Annulation d’un don mensuelDemande d’annulation, date du dernier paiementOuiNon : mauvaise dateOui
3Question sur un événement, sans montantNom de l’événement, questionOuiOuiNon : montant ajouté
………………
20Simple mot de remerciement« Aucune demande »Non : 4 pucesOuiOui

Les rangées et les résultats ci-dessus sont donnés à titre d’illustration.

Un cas n’est réussi que si les trois vérifications disent oui. Si 15 cas sur 20 réussissent, le prompt obtient 75 %. C’est maintenant que la partie utile commence. Regardez les échecs ensemble : s’ils se concentrent autour des courriels qui contiennent deux dates, ajoutez au prompt une ligne qui dit de choisir la date dont parle la demande du donateur. Faites ensuite passer de nouveau les 20 cas, pas seulement ceux qui ont échoué, parce que la correction d’un problème peut briser quelque chose qui fonctionnait.

À essayer : choisissez un prompt que vous utilisez chaque semaine. Rassemblez 10 vraies entrées qui couvrent des cas faciles, étranges et pièges, écrivez une ligne par entrée qui dit ce qu’une réponse correcte doit contenir, et notez le prompt actuel. Changez une phrase du prompt et notez-le de nouveau.

Ce que les evals changent en pratique

Les evals transforment des opinions en chiffres qu’on peut comparer. Elles vous permettent de répondre avec des preuves à des questions comme « Le nouveau prompt est-il meilleur? » ou « Le modèle moins cher fait-il assez bien cette tâche? ». Elles vous donnent aussi un filet de sécurité quand quelque chose change hors de votre contrôle, comme une mise à jour du modèle : faites passer la feuille de nouveau et comparez les résultats. Gardez l’ensemble de test fixe d’une fois à l’autre; si vous changez les cas, commencez une nouvelle version pour ne pas comparer des tests différents.

Combien de cas de test vous faut-il?

Assez pour couvrir les types d’entrées que vous recevez vraiment, et assez pour qu’un seul cas ne fasse pas varier le résultat de façon démesurée. Les règles de contribution d’OpenAI pour son dépôt Evals fixent un plancher : depuis avril, une eval proposée doit comprendre au moins 15 exemples de grande qualité. C’est aussi un minimum raisonnable pour une eval personnelle.

Vingt est un point de départ pratique, parce que chaque cas vaut 5 % et que le calcul reste facile. Choisissez les cas délibérément plutôt qu’au hasard : incluez les entrées courantes, les étranges et chaque échec que vous avez déjà vu en usage réel. Un ensemble de test qui ne contient que des cas faciles vous donnera un résultat flatteur qui ne veut pas dire grand-chose.

Agrandissez l’ensemble quand vous avez besoin de distinctions plus fines. Si deux versions d’un prompt obtiennent 80 % et 85 % sur 20 cas, cela fait un seul cas de différence, ce qui pourrait facilement être le hasard. Pour vous fier à une petite amélioration, il vous faut plus de cas, souvent une centaine ou plus. Et chaque fois que le prompt échoue sur une vraie entrée, ajoutez cette entrée à l’ensemble. Au bout de quelques mois, l’eval devient un registre de tout ce que votre prompt doit réussir.

Sources

  1. GPT-4 — OpenAI, 14 mars 2023
  2. Building an eval (openai/evals docs) — OpenAI (GitHub), 29 août 2023
  3. Pull request template (openai/evals) — OpenAI (GitHub), 29 août 2023

Recevez gratuitement le Guide de l’intelligence artificielle

Abonnez-vous à l’infolettre hebdomadaire et recevez le guide gratuit : ce qui a changé en IA cette semaine, une leçon, un prompt à essayer. Désabonnement en un clic.

Ce que nous faisons de votre adresse

Retour en haut

Affichage

Vos choix sont enregistrés dans ce navigateur seulement. Aucune donnée n’est transmise.

Taille du texte
100 %
Couleurs
Lecture
Autres réglages
Déclaration d’accessibilité