Aller au contenu
Cercle IA Tech · Évaluation Un site du réseau Cercle IA Tech

Guide

LLM as a judge : faire noter une IA par une autre IA

Le LLM juge : trois modes de notation, biais mesurés par la recherche (position, longueur, auto-préférence), conseils d'Anthropic et de Google, code.

Mis à jour le

Le LLM as a judge (LLM juge) consiste à faire noter les réponses de votre application par un modèle de langage, à partir d'une grille écrite. C'est la seule façon de noter à grande échelle ce que le code ne sait pas vérifier : l'exactitude d'une réponse rédigée, son ton, sa pertinence. Il marche bien à trois conditions : une grille précise, une sortie courte et chiffrée, et un juge vérifié contre des relectures humaines avant de lui faire confiance.

Trois façons de juger

L'article de recherche qui a installé la méthode, « Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena » (Zheng et al., soumis le 09/06/2023), distingue trois modes :

Mode Ce que reçoit le juge Quand l'utiliser
Comparaison par paires une question et deux réponses ; il désigne la meilleure ou déclare une égalité choisir entre deux modèles ou deux versions de consignes
Note d'une réponse seule une question et une réponse ; il attribue une note suivre un score dans le temps
Note guidée par une référence la même chose, plus une réponse de référence questions à réponse vérifiable (chiffres, règles, procédures)

Avec un jeu de référence, le troisième mode est le plus sûr : le juge compare au lieu de deviner.

Ce que dit la recherche sur sa fiabilité

Le résumé de l'article annonce que des juges puissants atteignent plus de 80 % d'accord avec les préférences humaines, « le même niveau d'accord qu'entre humains ». Il identifie aussi quatre limites :

  • biais de position : le juge favorise une place (souvent la première réponse) plutôt que le contenu ;
  • biais de verbosité : il préfère les réponses longues, même moins claires ou moins exactes ;
  • biais d'auto-préférence : il pourrait favoriser les réponses qu'il a lui-même produites (les auteurs disent que leurs données ne permettent pas de trancher) ;
  • raisonnement limité : sur des questions de calcul ou de logique, il peut se tromper comme le modèle évalué.

Les parades proposées : inverser l'ordre des deux réponses et ne retenir une victoire que si elle se répète dans les deux ordres ; donner au juge quelques exemples de jugements (l'article mesure une cohérence qui passe de 65,0 % à 77,5 % pour le juge testé, au prix d'une consigne plus longue) ; lui fournir une réponse de référence.

Les conseils d'Anthropic

La documentation d'Anthropic sur les tests donne trois règles pour la notation par un modèle :

  1. Une grille détaillée et claire. Son exemple : « la réponse doit toujours mentionner "Acme Inc." dans la première phrase ; sinon, elle est notée "incorrect" ». Un même critère peut demander plusieurs grilles.
  2. Une sortie empirique. Demander seulement « correct » ou « incorrect », ou une note de 1 à 5 : un avis rédigé se lit mal à grande échelle.
  3. Faire raisonner avant de noter. Utiliser un juge avec la réflexion activée, pour qu'il raisonne avant de produire son score, ce qui améliore la notation des cas complexes.

Elle recommande aussi, en général, de juger avec un autre modèle que celui qui a produit la réponse. Et l'article d'Anthropic sur l'évaluation des agents demande que les juges soient « étroitement calibrés » avec des experts humains.

Rubriques fixes ou adaptées à chaque question

Google, dans son service d'évaluation Vertex AI, propose deux sortes de rubriques pour son juge. Les rubriques statiques appliquent le même ensemble de critères à toutes les questions. Les rubriques adaptatives (le mode que la page recommande) génèrent pour chaque question une liste de tests réussi ou échoué, puis valident la réponse sur chacun, avec une justification. Pour une PME, une grille fixe par catégorie de questions est souvent le bon compromis : elle reste lisible par le métier.

Un juge en quelques lignes

D'après l'exemple de la documentation d'Anthropic, en Python avec le SDK anthropic :

import anthropic

client = anthropic.Anthropic()

def noter(question, reponse, grille):
    consigne = f"""Notez cette réponse selon la grille.
<grille>{grille}</grille>
<question>{question}</question>
<reponse>{reponse}</reponse>
Raisonnez brièvement, puis écrivez <resultat>correct</resultat>
ou <resultat>incorrect</resultat>."""
    message = client.messages.create(
        model="claude-opus-5-5",
        max_tokens=2048,
        messages=[{"role": "user", "content": consigne}],
    )
    texte = next(b.text for b in message.content if b.type == "text")
    return "correct" if "<resultat>correct</resultat>" in texte.lower() else "incorrect"

Les outils d'évaluation font la même chose avec moins de code : l'assertion llm-rubric de promptfoo renvoie une raison, un score entre 0 et 1 et un verdict ; la métrique G-Eval de DeepEval suit des étapes d'évaluation que vous écrivez.

Vérifier le juge avant de s'y fier

  1. Faites noter une centaine de réponses par le juge et par une personne du métier, avec la même grille de relecture.
  2. Mesurez leur accord. S'il est faible, c'est la grille qu'il faut préciser, pas le score qu'il faut croire.
  3. Lisez les désaccords : ils montrent ce que la grille ne dit pas.
  4. Refaites l'exercice quand vous changez de modèle juge.

Un juge non vérifié produit des chiffres réguliers et faux. Un juge vérifié vous permet de noter mille réponses sans mobiliser l'équipe, pour le prix d'un appel au modèle par réponse : le calcul est sur la page coût d'une évaluation.

Questions fréquentes

Un LLM juge est-il fiable ?

L'article de Zheng et al. (2023) mesure plus de 80 % d'accord entre un juge puissant et des humains, le même niveau qu'entre humains. Mais il relève des biais de position, de longueur et d'auto-préférence : un juge se vérifie sur un échantillon relu avant de servir.

Faut-il utiliser le même modèle pour répondre et pour juger ?

La documentation d'Anthropic recommande en général d'évaluer avec un modèle différent de celui qui a produit la réponse.

Comment limiter le biais de position ?

En faisant juger deux fois chaque paire de réponses, dans un ordre puis dans l'autre, et en ne retenant une victoire que si elle se répète ; sinon, on compte une égalité.

Sources

Pages consultées pour écrire cet article :

  1. https://platform.claude.com/docs/en/test-and-evaluate/develop-tests
  2. https://arxiv.org/abs/2306.05685
  3. https://arxiv.org/html/2306.05685v4
  4. https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview
  5. https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models/determine-eval
  6. https://www.promptfoo.dev/docs/configuration/expected-outputs/model-graded/llm-rubric/
  7. https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents

À lire aussi