Skip to content

Commit e1e973f

Browse files
authored
new version of llm_judge notebook
1 parent 76b81d8 commit e1e973f

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

notebooks/fr/llm_judge.ipynb

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"cell_type": "markdown",
55
"metadata": {},
66
"source": [
7-
"# Utilisation d'un LLM juge 🧑‍⚖️ pour une évaluation automatisée et polyvalente \n",
7+
"# Utilisation d'un *LLM-as-judge* 🧑‍⚖️ pour une évaluation automatisée et polyvalente \n",
88
"_Auteur : [Aymeric Roucher](https://huggingface.co/m-ric)_ \n",
99
"_Traducteur : [Loïck Bourdois](https://hf.co/lbourdois)_\n",
1010
"\n",
@@ -16,14 +16,14 @@
1616
"- incohérent\n",
1717
"- ...\n",
1818
"\n",
19-
"La liste des critères est encore longue. Et même si nous disposions d'une liste limitée, chacun d'entre eux serait difficile à mesurer : « concevoir un programme basé sur des règles pour évaluer les sorties est extrêmement difficile. Les mesures d'évaluation traditionnelles basées sur la similarité entre les résultats et les réponses de référence (par exemple, ROUGE, BLEU) sont également inefficaces pour ces questions. »\n",
19+
"La liste des critères est encore longue. Et même si nous disposions d'une liste limitée, chacun d'entre eux serait difficile à mesurer : « concevoir un programme basé sur des règles pour évaluer les sorties est extrêmement difficile. Les mesures d'évaluation traditionnelles basées sur la similarité entre les résultats et les réponses de référence (par exemple, [ROUGE](https://hf.co/spaces/evaluate-metric/rouge), [BLEU](https://hf.co/spaces/evaluate-metric/bleu)) sont également inefficaces pour ces questions. »\n",
2020
"\n",
21-
"✅ Une solution puissante pour évaluer les sorties d'une manière humaine, sans nécessiter de temps humain coûteux, est l'utilisation d'un LLM juge.\n",
21+
"✅ Une solution puissante pour évaluer les sorties d'une manière humaine, sans nécessiter de temps humain coûteux, est l'utilisation d'un *LLM-as-judge*, c'est-à-dire d'un second modèle pour juger les sorties du premier modèle.\n",
2222
"Cette méthode a été présentée dans [Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena](https://huggingface.co/papers/2306.05685) que je vous encourage à lire.\n",
2323
"\n",
2424
"💡 L'idée est simple : demander à un LLM de faire la notation à votre place. 🤖✓ \n",
2525
"\n",
26-
"Mais nous verrons que cela ne fonctionne pas en étant prêt à l'emploi : il faut le paramétrer avec soin pour obtenir de bons résultats."
26+
"Mais nous verrons qu'il n'est pas prêt à l'emploi : il faut le paramétrer avec soin pour obtenir de bons résultats."
2727
]
2828
},
2929
{
@@ -88,21 +88,21 @@
8888
"Notons qu'on interragit en anglais avec ce modèle car nous utilisons ci-dessous un jeu de données en anglais. En pratique, le `Mixtral-8x7B-Instruct-v0.1` serait utilisable pour du français.\n",
8989
"\n",
9090
"\n",
91-
"## 1. Préparer la création et l'évaluation de notre LLM juge\n",
91+
"## 1. Préparer la création et l'évaluation de notre juge\n",
9292
"\n",
9393
"Supposons que vous souhaitiez confier à un LLM une tâche spécifique, comme répondre à des questions ouvertes.\n",
9494
"\n",
95-
"Le problème est que, comme nous l'avons vu plus haut, il est difficile de mesurer la qualité de la réponse. Par exemple, une correspondance exacte de la chaîne de caractères signalera comme fausses un trop grand nombre de réponses correctes mais formulées différemment.\n",
95+
"La difficulté réside dans le fait que, comme nous l'avons vu plus haut, il est difficile de mesurer la qualité de la réponse. Par exemple, une correspondance exacte signalera comme fausses un trop grand nombre de réponses correctes mais formulées différemment.\n",
9696
"\n",
97-
"Vous pourriez demander à des étiqueteurs humains d'évaluer les résultats, mais cela leur prendrait beaucoup de temps, et si vous voulez mettre à jour le modèle ou les questions, vous devriez tout recommencer.\n",
97+
"Vous pourriez demander à des humains d'évaluer les résultats, mais cela leur prendrait beaucoup de temps, et si vous voulez mettre à jour le modèle ou les questions, vous devriez tout recommencer.\n",
9898
"\n",
9999
"\n",
100-
"✅ Dans ce cas, vous pouvez configurer un LLM en tant que juge.\n",
100+
"✅ Dans ce cas, vous pouvez configurer un juge.\n",
101101
"\n",
102102
"**Mais pour en utiliser un, vous devrez d'abord évaluer la fiabilité avec laquelle il évalue les résultats de votre modèle.**\n",
103103
"\n",
104104
"➡️ La première étape sera donc... de créer un jeu de données d'évaluation par des humains. Quelques exemples d'annotations humaines, une trentaine seulement, devraient suffire pour se faire une bonne idée des performances du modèle.\n",
105-
"Vous pourrez réutiliser ce jeu de données chaque fois que vous voudrez tester votre LLM juge.\n",
105+
"Vous pourrez réutiliser ce jeu de données chaque fois que vous voudrez tester votre juge.\n",
106106
"\n",
107107
"Dans notre cas, nous utiliserons [`feedbackQA`](https://huggingface.co/datasets/McGill-NLP/feedbackQA), qui contient 2 évaluations humaines et des scores pour chaque couple question/réponse. L'utilisation d'un échantillon de 30 exemples sera représentative de ce que votre petit jeu de données d'évaluation pourrait être."
108108
]
@@ -334,8 +334,8 @@
334334
"cell_type": "markdown",
335335
"metadata": {},
336336
"source": [
337-
"## 2. Créer notre LLM juge\n",
338-
"Nous construisons notre LLM juge avec un prompt de base, contenant ces éléments :\n",
337+
"## 2. Créer notre juge\n",
338+
"Nous construisons notre juge avec un prompt de base, contenant ces éléments :\n",
339339
"- description de la tâche\n",
340340
"- description de l'échelle : `minimum`, `maximum`, types de valeurs (ici `float`)\n",
341341
"- explication du format de sortie\n",
@@ -466,13 +466,13 @@
466466
"cell_type": "markdown",
467467
"metadata": {},
468468
"source": [
469-
"## 3. Améliorer le LLM juge\n",
469+
"## 3. Améliorer le juge\n",
470470
"\n",
471-
"Comme montré par [Aparna Dhinakaran](https://twitter.com/aparnadhinak/status/1748368364395721128), les LLMs sont nuls pour évaluer les sorties dans des plages continues.\n",
471+
"Comme montré par [Aparna Dhinakaran](https://twitter.com/aparnadhinak/status/1748368364395721128), les LLMs sont mauvais pour évaluer les sorties dans des plages continues.\n",
472472
"[Cet article](https://www.databricks.com/blog/LLM-auto-eval-best-practices-RAG) nous donne quelques bonnes pratiques pour construire un meilleur prompt :\n",
473-
"- ⏳ **Laisser plus de temps pour la réflexion** en ajoutant un champ `Evaluation` avant la réponse finale.\n",
474-
"- 🔢 **Utiliser une petite échelle de nombres entiers** comme 1-4 ou 1-5 au lieu d'une grande échelle de nombres flottants comme nous l'avions auparavant.\n",
475-
"- 👩‍🏫 **Fournir une échelle indicative à des fins d'orientation**.\n",
473+
"- ⏳ **Laisser plus de temps au juge pour la réflexion** en ajoutant un champ `Evaluation` avant la réponse finale.\n",
474+
"- 🔢 **Utiliser une plage de nombres entiers pour les notes possibles** comme 1-4 ou 1-5 au lieu d'une grande plage de nombres flottants comme nous l'avions auparavant.\n",
475+
"- 👩‍🏫 **Fournir des indications sur la valeur des notes pour guider le juge dans ses notations**.\n",
476476
"- Nous ajoutons même une carotte pour motiver le LLM !"
477477
]
478478
},
@@ -593,7 +593,7 @@
593593
"\n",
594594
"Impressionnant ! 👏\n",
595595
"\n",
596-
"Affichons quelques erreurs de notre juge LLM pour les analyser :"
596+
"Affichons quelques erreurs de notre juge pour les analyser :"
597597
]
598598
},
599599
{
@@ -730,13 +730,13 @@
730730
"source": [
731731
"Les désaccords sont mineurs : globalement, nous semblons avoir atteint un bon niveau de performance pour notre système !\n",
732732
"\n",
733-
"## 4. Comment pousser notre LLM juge encore plus loin ?\n",
733+
"## 4. Comment aller encore plus loin avec notre juge ?\n",
734734
"\n",
735735
"🎯 **Vous n'atteindrez jamais 100%** \n",
736-
"Notons d'abord que notre vérité de base humaine a certainement du bruit, donc l'accord/corrélation n'ira jamais jusqu'à 100% même avec un juge LLM parfait.\n",
736+
"Notons d'abord que notre vérité de base humaine a certainement du bruit, donc l'accord/corrélation n'ira jamais jusqu'à 100% même avec un juge parfait.\n",
737737
"\n",
738738
"🧭 **Fournir une référence** \n",
739-
"Si vous aviez accès à une réponse de référence pour chaque question, vous devriez certainement la donner au juge LLM dans son prompt pour obtenir de meilleurs résultats !\n",
739+
"Si vous aviez accès à une réponse de référence pour chaque question, vous devriez certainement la donner au juge dans son prompt pour obtenir de meilleurs résultats !\n",
740740
"\n",
741741
"▶️ **Fournir des exemples de *few-shot*** \n",
742742
"L'ajout de quelques exemples de questions et d'évaluations de vérité de base dans le prompt peut améliorer les résultats. \n",
@@ -768,7 +768,7 @@
768768
"\n",
769769
"**Implémentation d'une génération structurée**\n",
770770
"\n",
771-
"En utilisant la **génération structurée**, vous pouvez configurer le LLM juge pour qu'il fournisse directement sa sortie sous forme de JSON avec les champs `Evaluation` et `Total rating`, ce qui facilite le parsing : consultez notre [recette sur le sujet](structured_generation) pour en savoir plus !\n",
771+
"En utilisant la **génération structurée**, vous pouvez configurer le juge pour qu'il fournisse directement sa sortie sous forme de JSON avec les champs `Evaluation` et `Total rating`, ce qui facilite le parsing : consultez notre [recette sur le sujet](structured_generation) pour en savoir plus !\n",
772772
"\n",
773773
"## Conclusion\n",
774774
"\n",

0 commit comments

Comments
 (0)