Aller au contenu

FaireNiveau 3, Construire15 minutes

Jeux de tests d'une application d'IA

Une application d'IA change dès qu'on touche au modèle, à la demande ou aux données. Un jeu de tests dit, en quelques minutes, si elle fait encore ce qu'on attend. Les cas à écrire, les trois façons de noter, les biais d'un modèle juge, et Promptfoo, DeepEval ou Ragas pour le faire tourner.

Écrit le 8 octobre 2026 · Vérifié le 8 octobre 2026

Vous saurez

  • Écrire vingt à cinquante cas qui comptent
  • Choisir entre une note par le code, par un modèle juge ou par une personne
  • Se méfier des biais d'un modèle juge
  • Relancer les tests à chaque changement, et lire une régression

Dans le parcours

Développement d'applications d'IA

Étape 5 sur 10

Sur cette page
  1. L'essentiel
  2. Prérequis
  3. Étapes
  4. Contrôle du résultat
  5. Problèmes fréquents
  6. Retour en arrière
  7. Variantes par outil
  8. Vérification
  9. Lectures suivantes
L'essentiel
  1. Commencez petit : vingt à cinquante cas simples, tirés de vrais échecs, suffisent pour démarrer, selon Anthropic.
  2. Un bon cas est un cas où deux experts du métier rendraient seuls le même verdict, réussi ou raté.
  3. Notez par le code quand c'est possible, par un modèle juge quand c'est nécessaire, par une personne avec parcimonie.
  4. Un modèle juge a des biais : la place des réponses, leur longueur, sa préférence pour ses propres textes. Vérifiez qu'il s'accorde avec des avis humains avant de lui confier la note.
  5. OpenAI ferme sa plateforme Evals le 30 novembre 2026 et renvoie vers Promptfoo, outil libre qu'il a racheté et qui reste ouvert aux autres éditeurs.
1

Prérequis

  • Une application d'IA qui fait une tâche précise : classer, extraire, rédiger, répondre sur des documents ; par exemple une réponse dans un format imposé.
  • Un poste prêt, avec Python ou Node et les clés d'API (le poste de développement).
  • Des exemples réels, ou les erreurs déjà signalées par les utilisateurs.
  • Une personne du métier, pour dire ce qu'est une bonne réponse.
2

Étapes

Trois façons de noter une réponse

Par le code

une valeur exacte, un champ, un format

Pour le plus rapide, et toujours le même

Contre ne juge pas un texte libre

Par un modèle juge

un critère écrit : juste, complet, poli

Pour rapide et souple, une fois éprouvé

Contre des biais, à calibrer contre des avis humains

Par une personne

le dernier mot, et la calibration du juge

Pour le plus souple

Contre lent, et coûteux

Le classement d'Anthropic, qui conseille de privilégier le volume de cas notés automatiquement sur quelques cas notés à la main.
  1. Rassembler vingt à cinquante cas

    Ce qu'on fait : des demandes réelles, en partant de celles qui ont échoué ; chacune avec ce qu'on attend.

    À vérifier : deux experts doivent pouvoir rendre seuls le même verdict sur chaque cas.

  2. Choisir la façon de noter chaque cas

    Ce qu'on fait : une valeur exacte quand il y en a une ; un critère écrit pour un modèle juge sinon ; une personne pour trancher et calibrer.

  3. Écrire le fichier de tests

    Ce qu'on fait : les demandes, le ou les modèles essayés, et pour chaque cas les vérifications : contient, est égal à, respecte tel critère.

  4. Lancer, puis lire chaque échec

    Ce qu'on fait : un tableau des cas réussis et ratés, modèle par modèle ; lire les réponses ratées, pas seulement le score.

    À vérifier : un score bas peut venir d'une erreur de notation : Anthropic cite un test passé de 42 % à 95 % une fois ses erreurs de notation corrigées.

  5. Calibrer le modèle juge

    Ce qu'on fait : le comparer à des notes humaines sur un échantillon ; lui laisser répondre « inconnu » ; un juge par critère ; une échelle courte, réussi ou raté, ou de 1 à 5.

    À vérifier : comparer par paires, ou par réussi et raté, et neutraliser la longueur, recommande OpenAI.

  6. Relancer à chaque changement

    Ce qu'on fait : un autre modèle, une demande retouchée, de nouvelles données : on relance, on compare, on garde la meilleure version.

Un fichier de tests, avec Promptfoo. Deux demandes de traduction, deux modèles, une vérification par cas ; puis la commande qui lance les tests et ouvre le tableau des résultats. Le code est celui de la documentation, non exécuté ici.

promptfooconfig.yaml
prompts:
  - 'Convert the following English text to {{language}}: {{input}}'
providers:
  - openai:gpt-6-sol
  - openai:gpt-6-luna
tests:
  - vars:
      language: French
      input: Hello world
    assert:
      - type: contains
        value: 'Bonjour le monde'
  - vars:
      language: Spanish
      input: Where is the library?
    assert:
      - type: icontains
        value: 'Dónde está la biblioteca'
Lancer, puis voir les résultats
npx promptfoo@latest eval
npx promptfoo@latest view
3

Contrôle du résultat

Une tâche réussie 75 fois sur 100, lancée plusieurs fois

Au moins une réussite sur k essais : pass@k

  1. 1 essai75 %
  2. 2 essais93,8 %
  3. 3 essais98,4 %
  4. 5 essais99,9 %

Toutes les réussites sur k essais : pass^k

  1. 1 essai75 %
  2. 2 essais56,2 %
  3. 3 essais42,2 %
  4. 5 essais23,7 %
Calculé, en supposant les essais indépendants : 1 − 0,25k et 0,75k. Anthropic donne l'exemple de trois essais, environ 42 %, et conseille pass@k quand une seule réussite suffit, pass^k quand la constance compte : un agent qui traite le même dossier tous les jours, par exemple.
4

Problèmes fréquents

Trois biais d'un modèle juge

La place

Avec ChatGPT pour juge, intervertir l'ordre des réponses a suffi à faire gagner Vicuna-13B sur 66 questions sur 80.

La longueur

Un juge tend à préférer la réponse la plus longue ; OpenAI demande de neutraliser la longueur.

Soi-même

Un modèle qui reconnaît ses propres textes tend à les préférer.

Dans l'étude de Zheng et ses coauteurs, GPT-4 juge s'accordait à plus de 80 % avec des préférences humaines, autant que deux personnes entre elles ; les meilleurs juges restent pourtant en deçà de l'accord entre personnes, jusqu'à 5 points d'écart, et tendent à l'indulgence.
Le juge donne de bonnes notes à tout

CauseUn juge tend à l'indulgence, surtout sur des demandes longues ou complexes.

À faireLe comparer à des notes humaines ; une échelle courte ; un juge par critère.

Le score baisse sans que l'application ait changé

CauseUne erreur de notation, ou un critère flou.

À faireLire les cas ratés ; corriger le test avant de corriger l'application.

Les seuils de coût et de délai n'arrêtent rien

CauseDans Promptfoo, ils vérifient les réponses une fois rendues ; ils ne plafonnent ni la dépense ni la durée.

À fairePlafonner la dépense ailleurs, chez l'éditeur ou dans le code.

Les tests sont dans OpenAI Evals

CauseLa plateforme passe en lecture seule le 31 octobre 2026 et ferme le 30 novembre ; un utilisateur a signalé en juillet que le menu d'export vers Promptfoo n'apparaissait pas.

À faireRecopier les cas et les vérifications à la main si l'export manque.

5

Retour en arrière

  • Garder la version d'avant : la demande, le modèle et ses réglages, à côté des résultats de leurs tests.
  • Comparer avant de remplacer : la nouvelle version passe les mêmes cas ; elle ne remplace l'ancienne que si elle fait au moins aussi bien.
  • Revenir à la version d'avant dès qu'un cas qui passait se met à échouer, le temps de comprendre pourquoi.
6

Variantes par outil

Le code des onglets est celui des documentations, noms de modèles compris, non exécuté ici.

Un outil libre en ligne de commande, qui tourne sur votre machine et appelle les modèles directement ; plus de soixante fournisseurs ; utilisable dans une chaîne d'intégration continue. Version 0.124.0, sous licence MIT. OpenAI a annoncé son rachat le 9 mars 2026 ; Promptfoo dit rester libre et ouvert aux autres éditeurs.

Seuils de coût et de délai, et critères notés par un modèle
defaultTest:
  assert:
    # Example per-response cost threshold (USD)
    - type: cost
      threshold: 0.15
    # Example per-response latency threshold (milliseconds)
    - type: latency
      threshold: 60000

tests:
  - vars:
      riddle: 'I speak without a mouth and hear without ears. I have no body, but I come alive with wind. What am I?'
    assert:
      # Make sure the LLM output contains this word
      - type: icontains
        value: echo
      # Use model-graded assertions to enforce free-form instructions
      - type: llm-rubric
        value: Do not apologize
  - vars:
      riddle: "You see a boat filled with people. It has not sunk, but when you look again you don't see a single person on the boat. Why?"
    assert:
      - type: llm-rubric
        value: explains that there are no single people (they are all married)
  - vars:
      riddle: 'The more of this there is, the less you see. What is it?'
    assert:
      - type: icontains
        value: darkness

Les quatre outils, côte à côte

Variantes par outil
OutilFormeLicenceNote par un modèlePour un RAGÉtat
PromptfooLigne de commande et fichier YAMLMITdes critères notés par un modèlenonactif ; racheté par OpenAI, reste libre
DeepEvalTests en Python, comme PytestApache 2.0G-Eval, sur un critère écritnonactif
RagasMesures en PythonApache 2.0des mesures notées par un modèlequatre mesuresdernière version en janvier 2026
OpenAI EvalsPlateforme en lignesans objetdes correcteursnonfermeture le 30 novembre 2026
Disque plein : actif ; demi-disque : à surveiller ; cercle vide : à ne plus commencer. D'après les dépôts, la documentation et les registres, lus le 8 octobre 2026.
7

Vérification

1ComprendrePar quoi commencer un jeu de tests ?

Vingt à cinquante cas réels, tirés de vrais échecs, chacun avec ce qu'on attend ; des cas sur lesquels deux experts rendraient le même verdict.

2ComprendrePourquoi calibrer un modèle juge avant de s'y fier ?

Parce qu'il a des biais, la place des réponses, leur longueur, sa préférence pour ses propres textes : on vérifie qu'il s'accorde avec des notes humaines.

3AppliquerUn agent réussit une tâche 75 fois sur 100 ; il traitera le même dossier trois jours de suite. Quelle chance qu'il réussisse les trois fois ?

Environ 42 %, soit 0,75 au cube : c'est pass^k, la mesure qui compte quand la constance est nécessaire.

8

Lectures suivantes

Limites et sources

Les études sur les modèles juges portent sur des modèles de 2023 et 2024 ; elles disent la nature des biais, pas leur ampleur sur le modèle du jour.

Le code des onglets n'a pas été exécuté ici ; les versions sont celles du 8 octobre 2026.

  1. Anthropic, évaluer un agent ; Anthropic, écrire des tests ; OpenAI, bonnes pratiques ; OpenAI, dépréciations.
  2. Zheng et al., 2023 ; Wang et al., 2023 ; Panickssery et al., 2024 ; Thakur et al., 2024.
  3. Promptfoo ; DeepEval ; Ragas. Le relevé : apprendre/recherches/2026-10-08-dev-avance.json.

Écrit par Meridal, avec l'aide de l'IA ; chaque fait vérifié à sa source et relu avant publication. Texte et schémas sous licence CC BY 4.0 : reprenez-les en citant Meridal. Le code sous licence MIT.

Service correspondant

Garder vos outils en état

200 € à 1 500 € par mois

Voir le service

Un premier échange de 30 minutes

En visio et sans frais : vous décrivez votre situation, nous vous indiquons ce qui est réalisable, avec quels outils et pour quel ordre de prix. Vous pouvez aussi nous écrire ; chaque message reçoit une réponse écrite.