
LLM-as-a-Judge : qu’est-ce que c’est, pourquoi cela fonctionne et comment l’utiliser pour évaluer les modèles d’IA
sur l’idée de utiliser l’IA pour évaluer l’IAégalement connu sous le nom de « LLM-as-a-Judge », ma réaction a été :
« D’accord, nous avons officiellement perdu la tête. »
Nous vivons dans un monde où même le papier toilette est commercialisé comme étant « alimenté par l’IA ». J’ai supposé qu’il s’agissait simplement d’une autre tendance à la mode dans notre paysage chaotique et en évolution rapide de l’IA.
Mais une fois que j’ai examiné ce que signifie réellement LLM-as-a-Judge, j’ai réalisé que j’avais tort. Laissez-moi vous expliquer.
Il y a une image que chaque data scientist et ingénieur en apprentissage automatique devrait garder à l’esprit, et elle capture l’ensemble du spectre de la complexité du modèle, de la taille de l’ensemble de formation et du niveau de performance attendu :

Si la tâche est simpleayant un petit L’ensemble de formation n’est généralement pas un problème. Dans certains cas extrêmes, vous pouvez même le résoudre avec une approche simple basée sur des règles. Même lorsque la tâche devient plus complexevous pouvez souvent atteindre des performances élevées à condition de disposer d’un grand et un ensemble de formations diversifié.
Les vrais problèmes commencent lorsque la tâche est complexe et que vous n’avez pas accès à un ensemble de formation complet. À ce stade, il n’existe pas de recette toute faite. Vous avez besoin d’experts dans le domaine, d’une collecte manuelle de données et de procédures d’évaluation minutieuses. Dans les pires situations, vous pourriez devoir faire face à des mois, voire des années de travail simplement pour créer des étiquettes fiables.
… c’était avant Grands modèles de langage (LLM).
Le paradigme LLM-en tant que juge
La promesse des LLM est simple : vous obtenez une expertise proche du « niveau doctorat » dans de nombreux domaines que vous pouvez atteindre via un seul appel API. Nous pouvons (et devrions probablement) débattre de la réalité de l’« intelligence » de ces systèmes. Il est de plus en plus évident qu’un LLM se comporte davantage comme un outil extrêmement puissant de recherche de modèles et de récupération d’informations que comme un agent véritablement intelligent. [you should absolutely watch this].
Cependant, une chose est difficile à nier. Lorsque la tâche est complexedifficile à formaliser, et vous n’avez pas d’ensemble de données prêt à l’emploi, Les LLM peuvent être incroyablement utiles. Dans ces situations, ils vous offrent un raisonnement de haut niveau et des connaissances du domaine à la demande, bien avant que vous puissiez collecter et étiqueter suffisamment de données pour entraîner un modèle traditionnel.
Revenons donc à notre « gros problème » carré rouge. Imaginez que vous avez un problème difficile et seulement une première version très approximative d’un modèle. Peut-être qu’il a été formé sur un petit ensemble de données, ou peut-être qu’il s’agit d’un modèle préexistant que vous n’avez pas du tout affiné (par exemple BERT ou tout autre modèle d’intégration).
Dans des situations comme celle-ci, vous pouvez utiliser un LLM pour évaluer les performances de ce modèle V0. Le LLM devient l’évaluateur (ou le juge) pour votre premier prototype, vous donnant un retour immédiat sans nécessiter un grand ensemble de données étiquetées ni l’énorme effort que nous avons mentionné plus tôt.

Cela aurait de nombreuses applications bénéfiques en aval :
- Évaluation l’état du V0 et ses performances
- Construire un ensemble de formation pour améliorer le modèle existant
- Surveillance l’étape du modèle existant ou de la version affinée (suite au point 2).
Alors construisons ça !
LLM en tant que juge en production
Il existe maintenant un faux syllogisme : comme vous n’avez pas besoin de former un LLM et qu’ils sont intuitifs à utiliser sur l’interface utilisateur ChatGPT/Anthropic/Gemini, alors cela doit être facile pour construire un système LLM. C’est pas le cas.
Si votre objectif n’est pas une simple fonctionnalité plug-and-play, alors vous avez besoin d’un effort actif pour vous assurer que votre LLM est fiable, précis et aussi exempt d’hallucinations que possible, en le concevant pour qu’il échoue gracieusement en cas d’échec (pas si mais quand).
Voici les principaux sujets que nous aborderons pour créer un système LLM-as-a-Judge prêt pour la production.
- Conception du système
Nous définirons le rôle du LLM, comment il doit se comporter et quelle perspective ou « personnalité » il doit utiliser lors de l’évaluation. - Quelques exemples de plans
Nous donnerons au LLM des exemples concrets qui montrent exactement à quoi devrait ressembler l’évaluation pour différents cas de test. - Déclencher une chaîne de pensée
Nous demanderons au LLM de produire des notes, un raisonnement intermédiaire et un niveau de confiance afin de déclencher une forme de chaîne de pensée plus fiable. Cela encourage le modèle à réellement « penser ». - Évaluation des lots
Pour réduire les coûts et la latence, nous enverrons plusieurs entrées à la fois et réutiliserons la même invite dans un lot d’exemples. - Formatage de sortie
Nous utiliserons Pydantic pour appliquer un schéma de sortie structuré et fournirons ce schéma directement au LLM, ce qui rend l’intégration plus propre et sûre en production.
Plongeons dans le code ! 🚀
Code
Le code complet peut être trouvé sur la page GitHub suivante [here]. Je vais en passer en revue les principales parties dans le paragraphe suivant.
1. Configuration
Commençons par un peu de ménage.
Le sale boulot du code se fait en utilisant OpenAI et enveloppé à l’aide llm_juge. Pour cette raison, tout ce que vous devez importer est le bloc suivant :
Remarque : vous aurez besoin du Clé API OpenAI.
Tout le code au niveau de la production est géré sur le backend (merci plus tard). Continuons.
2. Notre cas d’utilisation
Disons que nous avons un modèle de classification des sentiments que nous souhaitons évaluer. Le modèle prend en compte les avis des clients et prédit : Positif, Négatif, ou Neutre.
Voici des exemples de données classées par notre modèle :
Pour chaque prédiction, nous voulons savoir :
– Cette sortie est-elle correcte ?
– Dans quelle mesure sommes-nous confiants dans ce jugement ?
– Pourquoi est-ce correct ou incorrect ?
– Comment évaluerions-nous la qualité ?
C’est là qu’intervient le LLM-as-a-Judge. Notez que ground_truth n’est en fait pas dans notre ensemble de données du monde réel ; c’est pourquoi nous utilisons LLM en premier lieu. 🙃
La seule raison pour laquelle vous le voyez ici est d’afficher les classifications dans lesquelles notre modèle d’origine est sous-performant (indice 2 et indice 3).
Notez que dans ce cas, nous sommes faire semblant avoir un modèle plus faible en place avec quelques erreurs. Dans un scénario de cas réel, cela se produit lorsque vous utilisez un petit modèle ou que vous adaptez un modèle d’apprentissage profond non affiné.
3. Définition du rôle
Comme pour toute ingénierie rapide, nous devons définir clairement :
1. Qui est le juge ? Le LLM agira comme un seul, nous devons donc définir leur expertise et leur parcours
2. Qu’évaluent-ils ? La tâche spécifique que nous voulons que le LLM évalue.
3. Quels critères doivent-ils utiliser ? Ce que le LLM doit faire pour déterminer si un résultat est bon ou mauvais.
Voici comment nous définissons cela :
Quelques notes de recette : Utilisation indications claires. Fournissez ce que vous voulez que le LLM fasse (pas ce que vous voulez qu’il fasse pas faire). Soyez très précis dans la procédure d’évaluation.
4. Paradigme Réagir
Le modèle ReAct (Reasoning + Acting) est intégré à notre framework. Chaque jugement comprend :
1. Note (0-100): Évaluation quantitative de la qualité
2. Verdict: Jugement binaire ou catégorique
3. Confiance: Quelle est la certitude du juge
4. Raisonnement: Explication de la chaîne de pensée
5. Remarques: Observations complémentaires
Cela permet :
– Transparence: Vous pouvez voir pourquoi le juge a pris chaque décision
– Débogage: Identifier les modèles d’erreurs
– Humain dans la boucle: Acheminer les jugements de faible confiance vers les humains
– Contrôle de qualité: Suivez les performances des juges au fil du temps
5. Quelques exemples de plans
Maintenant, fournissons quelques exemples supplémentaires pour nous assurer que le LLM dispose d’un certain contexte sur la façon d’évaluer des cas réels :
Nous mettrons ces exemples avec l’invite afin que le LLM apprenne comment effectuer la tâche en fonction des exemples que nous donnons.
Quelques notes de recette : Couvrir différents scénarios: correct, incorrect et partiellement correct. Afficher l’étalonnage du score (100 pour parfait, 20-30 pour des erreurs évidentes, 60 pour des cas discutables). Expliquez le raisonnement en détails. Référencer des mots/expressions spécifiques à partir de l’entrée
6. Définition du juge LLM
Le tout est regroupé dans le bloc de code suivant :
Comme ça. 10 lignes de code. Utilisons ceci :
7. Courons !
Voici comment exécuter l’intégralité de l’appel API LLM Judge :
On voit donc immédiatement que le juge LLM juge correctement les performances du « modèle » en place. En particulier, il identifie que les deux derniers résultats du modèle sont incorrects, ce à quoi nous nous attendions.
Bien que cela soit une bonne chose pour montrer que tout fonctionne, dans un environnement de production, nous ne pouvons pas simplement « imprimer » le résultat dans la console : nous devons le stocker et nous assurer que le format est standardisé. Voici comment nous procédons :
Et voilà à quoi ça ressemble.
Notez que nous effectuons également un « traitement par lots », ce qui signifie que nous envoyons plusieurs éléments d’entrée à la fois. Cela permet d’économiser du temps et de l’argent.
8. Bonus
Maintenant, voici le kicker. Supposons que vous ayez une tâche complètement différente à évaluer. Supposons que vous souhaitiez évaluer la réponse du chatbot de votre modèle. Le entier code peut être refactorisé en quelques lignes :
Comme deux « juges » différents changent uniquement en fonction des invites que nous fournissons au LLM, les modifications entre deux évaluations différentes sont extrêmement simples.
Conclusions
LLM-as-a-Judge est une idée simple avec beaucoup de pouvoir pratique. Lorsque votre modèle est approximatif, que votre tâche est complexe et que vous ne disposez pas d’un ensemble de données étiqueté, un LLM peut vous aider à évaluer les résultats, à comprendre les erreurs et à itérer plus rapidement.
Voici ce que nous avons construit :
- Un rôle et une personnalité clairs pour le juge
- Quelques exemples de plans pour guider son comportement
- Chaîne de pensée raisonnement pour la transparence
- Évaluation des lots pour gagner du temps et de l’argent
- Sortie structurée avec Pydantic pour une utilisation en production
Le résultat est un moteur d’évaluation flexible qui peut être réutilisé entre les tâches avec seulement des modifications mineures. Elle ne remplace pas l’évaluation humaine, mais elle constitue un point de départ solide bien avant que vous puissiez collecter les données nécessaires.
Avant de partir
Merci encore pour votre temps. Cela signifie beaucoup ❤️
Je m’appelle Piero Paialunga et je suis ce type ici :

Je suis originaire d’Italie, je suis titulaire d’un doctorat. de la Université de Cincinnatiet travaille comme Data Scientist chez The Trade Desk à New York. J’écris sur IA, apprentissage automatique et rôle évolutif des data scientists à la fois ici sur TDS et sur LinkedIn. Si l’article vous a plu et souhaitez en savoir plus sur le machine learning et suivre mes études, vous pouvez :
A. Suivez-moi sur Linkedinoù je publie toutes mes histoires
B. Suivez-moi sur GitHuboù vous pouvez voir tout mon code
C. Pour toute question, vous pouvez m’envoyer un email à piero.paialunga@hotmail



