Définition
Un modèle affiné a lu vos réponses d'entraînement de nombreuses fois. Posez-lui à nouveau l'une de ces questions et il pourra reproduire la réponse presque mot pour mot. Cela ressemble à de la compétence, mais c'est de la mémorisation : cela ne vous dit rien sur la façon dont le modèle gérera le prochain client, dont il n'a jamais vu la question.
L'ensemble de test est la solution, et l'une des règles les plus anciennes de l'apprentissage automatique : gardez certains exemples complètement à l'écart de l'entraînement, et n'évaluez le modèle que sur ceux-ci. Les grands modèles de langage rendent cette règle encore plus importante. Des études sur des bancs d'essai publics ont révélé à plusieurs reprises que des modèles avaient vu des éléments de test pendant l'entraînement et avaient obtenu de meilleurs scores de ce fait — un problème connu sous le nom de contamination des données ou fuite.
Fonctionnement
dataset has ≥ 10 conversations? no → no test set
yes → test = 10% of conversations (at least 3)
random, but fixed for this prep
each assistant reply in a test conversation → one question
asked with the conversation up to that point
reference answer = the reply itself
reply identical to a training reply → dropped- Mises de côté en premier. Avant que la validation ne soit séparée ou que quoi que ce soit ne soit écrit pour l'entraînement, la préparation des données sélectionne 10 % des conversations, au moins 3. Les jeux de données de moins de 10 conversations n'ont pas d'ensemble de test.
- Aléatoires, mais figées par préparation. La sélection est aléatoire, elle n'est donc pas biaisée vers des conversations faciles ou difficiles, et elle reste la même pour cette préparation, de sorte qu'une nouvelle évaluation pose les mêmes questions.
- Une question par réponse. Chaque réponse de l'assistant dans une conversation de test devient une question, posée avec l'historique de la conversation jusqu'à ce point. La réponse elle-même sert de réponse de référence.
- Aucune copie cachée. Une réponse de test identique mot pour mot à une réponse d'entraînement — la même réponse standard dans une autre conversation — est écartée, car le modèle l'a effectivement déjà vue.
- Ne sortent jamais. Les conversations de test ne figurent ni dans le fichier d'entraînement ni dans le fichier de validation, et elles ne sont jamais envoyées au fournisseur.
- Sert d'apprentissage
- non
- Envoyé au fournisseur
- non
Le modèle s'est-il vraiment amélioré ?
- Sert d'apprentissage
- non
- Envoyé au fournisseur
- oui
Un deuxième avis lorsqu'il n'y a pas d'ensemble de test
- Sert d'apprentissage
- oui
- Envoyé au fournisseur
- oui
Une simple vérification de cohérence : les résultats sont optimistes
Pourquoi la validation n'est pas un test rigoureux
Les conversations de validation ne servent pas à l'apprentissage, alors pourquoi ne pas évaluer sur celles-ci ? Parce que le fournisseur reçoit le fichier de validation et l'utilise pendant l'entraînement, pour calculer la perte de validation et surveiller l'exécution. Les données ne sont plus entre vos mains, et chaque décision prise en observant ces chiffres — quelle exécution conserver, combien d'époques — ajuste un peu le résultat vers ces questions particulières. La validation est un bon second avis ; ce n'est pas un examen à l'aveugle.
D'où Evaluate tire ses questions
| Source | Vu pendant l'entraînement ? | À utiliser pour |
|---|---|---|
| Test mis de côté | Non | Juger si le modèle s'est réellement amélioré |
| Validation | Vu par le fournisseur, non soumis à l'apprentissage | Un second avis lorsqu'il n'y a pas d'ensemble de test |
| Échantillon d'entraînement | Oui, utilisé pour l'entraînement | Une simple vérification de cohérence ; les résultats sont optimistes |
Evaluate prend la première source existante, dans cet ordre. Un résultat sur un échantillon d'entraînement est une limite supérieure : si le modèle affiné ne gagne pas même sur les questions qu'il a apprises, il ne gagnera pas sur de nouvelles questions ; s'il gagne, vous ne savez toujours pas dans quelle mesure.
- Le jeu de données compte 120 conversations, la préparation des données en met donc 10 % de côté : 12 conversations, choisies au hasard et figées pour cette préparation.
- Ces 12 conversations contiennent 31 réponses de l'assistant. Chacune devient une question, posée avec l'historique de la conversation jusqu'à ce point et avec la réponse comme réponse de référence.
- Deux réponses sont identiques mot pour mot à des réponses présentes dans les conversations d'entraînement — une réponse standard sur la réinitialisation d'un mot de passe. Elles sont écartées : il reste 29 questions de test.
- Les 108 autres conversations passent à la répartition habituelle de validation et d'entraînement. Aucun des fichiers ne contient de conversation de test, et le fournisseur n'en reçoit jamais.
- Après l'entraînement, Evaluate pose les 29 questions de test. À titre de comparaison : un jeu de données de 25 conversations en garderait 3 de côté (le minimum), et un de 9 n'aurait aucun ensemble de test, Evaluate se rabattrait donc sur les questions de validation.
Bonnes pratiques
- Laissez-lui de la marge. Un jeu de test de 29 questions est utile mais restreint : à cette taille, un taux de réussite de 60 % reste compatible avec une absence d'amélioration. Plus de conversations dans le jeu de données signifient plus de questions de test et un verdict plus solide.
- Excluez les conversations de test des entraînements ultérieurs. Si vous les copiez dans un autre jeu de données et vous entraînez dessus, le modèle suivant les aura vues et son évaluation sera artificiellement flatteuse.
- Comparez ce qui est comparable. Une nouvelle préparation extrait son propre jeu de test. Lorsque vous comparez des modèles, utilisez les questions de test d'une seule préparation pour tous.
- Prenez les avertissements au sérieux. Une évaluation sur un échantillon d'entraînement est signalée comme telle pour une bonne raison : considérez-la comme une vérification de cohérence, et non comme un résultat.
Sources des questions
Questions issues de la préparation des données de conversations mises de côté. Jamais utilisées pour l'entraînement, ni pour la validation, ni envoyées au fournisseur : le test propre, et l'option par défaut.
Questions issues de la division de validation. Non utilisées pour l'apprentissage, mais vues par le fournisseur lors de la surveillance de l'entraînement. Utilisées lorsque la préparation ne comporte pas de jeu de test.
Un échantillon de questions sur lesquelles le modèle s'est entraîné. Le dernier recours, signalé par un avertissement : les résultats sont optimistes et montrent uniquement que rien n'est gravement défectueux.
Erreurs courantes
- Évaluer sur des questions d'entraînement et interpréter le résultat comme une performance en conditions réelles.
- Considérer les résultats de validation comme étant aussi rigoureux que les résultats de tests mis de côté.
- Copier des conversations de test dans un jeu de données d'entraînement ultérieur, de sorte que le modèle suivant les ait déjà vues.
- Considérer une poignée de questions de test comme un verdict : les petits ensembles de test nécessitent un écart important pour être significatifs.
- Comparer des modèles qui ont chacun été évalués sur l'ensemble de test d'une préparation différente.
Références et lectures complémentaires
Les sources externes s'ouvrent dans un nouvel onglet.
- 01Training, validation, and test data setsWikipedia · en.wikipedia.orgLa division en trois parties, et pourquoi le jeu de test n'est utilisé qu'à la fin.
- 02Leakage (machine learning)Wikipedia · en.wikipedia.orgComment les informations des données de test s'infiltrent dans l'entraînement et gonflent les scores.
- 03NLP Evaluation in trouble: On the Need to Measure LLM Data Contamination for each BenchmarkSainz et al., 2023 · arXiv · arxiv.orgPourquoi la contamination rend les résultats d'évaluation peu fiables, et pourquoi elle doit être vérifiée.
- 04Time Travel in LLMs: Tracing Data Contamination in Large Language ModelsGolchin & Surdeanu, 2023 · arXiv · arxiv.orgDétecter lorsqu'un modèle a mémorisé des exemples de test, en lui demandant de les compléter.