Ressources/Entraînement du modèle/Des conversations aux exemples d'entraînement

Concept

Masquage de la perte

Pourquoi un modèle est évalué uniquement sur les jetons cibles de chaque enregistrement, comment cela se fait en pratique, et ce que cela change ou non.

Chapitre 34 min de lecture4 références

De quoi s'agit-il

Un enregistrement d'entraînement contient bien plus que la réponse à apprendre : une invite système, parfois plusieurs interventions précédentes, et la question de l'utilisateur. Le masquage de la perte signifie que l'erreur d'entraînement — la perte — est calculée uniquement sur les jetons de la réponse cible. Le modèle lit chaque jeton, et le contexte façonne chacune de ses prédictions, mais il n'est jamais évalué sur sa capacité à prédire le contexte lui-même.

Howmasqué␣domasqué␣Imasqué␣resetmasqué␣mymasqué␣passwordmasqué?masquéOpenp 0.62perte 0.48␣Settingsp 0.81perte 0.21␣→p 0.35perte 1.05␣Securityp 0.90perte 0.11
7 tokens de contexte · aucune perteperte de l'enregistrement ≈ 0,46
Chaque token cible a une probabilité que le modèle lui a attribuée (p) et une perte, −ln p. Les tokens de contexte sont lus et façonnent chaque prédiction, mais ne comportent aucune perte. La perte de l'enregistrement est la moyenne sur les tokens cibles uniquement.

Fonctionnement

Un modèle de langage est entraîné en prédisant chaque jeton suivant. À chaque position, il génère une probabilité pour chaque jeton de son vocabulaire, et la perte à cette position correspond au logarithme négatif de la probabilité attribuée au jeton correct : proche de 0 lorsqu'il était confiant et avait raison, élevée lorsqu'il était confiant mais avait tort. La perte de l'enregistrement est la moyenne sur les positions prises en compte.

Perte avec masquage
loss for one record = average over target tokens of  −ln p(correct token | everything before it)

context tokens:  read, label = -100  →  ignored by the loss
target tokens:   read and scored     →  averaged into the loss

Sans masquage, la moyenne porterait sur chaque jeton de l'enregistrement. Avec le masquage, les positions de contexte sont ignorées. Les ingénieurs y parviennent en attribuant à chaque jeton de contexte une étiquette spéciale — -100 dans les bibliothèques basées sur PyTorch telles que Hugging Face Transformers — que la fonction de perte doit ignorer.

L'arithmétique d'un enregistrement
  1. Un enregistrement comporte 40 tokens de contexte (prompt système et question) et 4 tokens cibles : « Open », « Settings », « → », « Security ».
  2. Le modèle attribue aux tokens cibles corrects des probabilités de 0,62, 0,81, 0,35 et 0,90. Leurs pertes, −ln p, sont de 0,48, 0,21, 1,05 et 0,11.
  3. La perte de l'enregistrement est leur moyenne : (0,48 + 0,21 + 1,05 + 0,11) ÷ 4 ≈ 0,46.
  4. Les 40 tokens de contexte n'ajoutent rien. La mise à jour augmentera principalement la probabilité de « → », le token dont le modèle était le moins sûr.

Pourquoi masquer

  • Le signal va là où vous le souhaitez. Vos cibles représentent le comportement que vous avez choisi. Sans masquage, une grande partie de l'effort d'entraînement consisterait à prédire les questions des utilisateurs et à répéter l'invite système.
  • Le modèle n'apprend pas à imiter les utilisateurs. L'entraînement sur les interventions des utilisateurs apprend au modèle à écrire comme les personnes qui posent les questions — fautes de frappe incluses —, ce qui peut se répercuter sur ses réponses.
  • Un contexte long ne noie pas les réponses courtes. Dans un enregistrement comprenant un historique de 2 000 jetons et une réponse de 60 jetons, une perte non masquée porterait à environ 97 % sur l'historique.

Le masquage est-il toujours préférable ?

Le masquage est le choix standard et l'option par défaut dans la plupart des services et bibliothèques d'entraînement. Il existe des exceptions : une étude de 2024 menée par Shi et ses collègues a révélé que l'entraînement sur les instructions peut également être utile lorsque celles-ci sont longues et les résultats courts, ou lorsqu'il y a très peu d'exemples. Pour le réglage fin sur des conversations réelles, où les interventions des utilisateurs ne constituent pas le comportement que vous souhaitez reproduire, le masquage du contexte reste l'option par défaut la plus judicieuse.

Masqué ne signifie pas inutile

Un jeton masqué n'est pas évalué, mais il est tout de même lu, et le modèle apprend à produire la cible compte tenu de ce contexte. Si le contexte contient une affirmation erronée que la cible approuve, le modèle apprend à l'approuver. Si l'invite système lors de l'entraînement diffère de celle utilisée ultérieurement, le comportement appris risque de ne pas être transposé. Le masquage restreint ce qui est évalué ; il ne rend pas le reste de l'enregistrement sans importance.

Erreurs courantes

  • Supposer que, puisque le contexte n'est pas évalué, sa qualité n'a pas d'importance.
  • Interpréter une faible perte d'entraînement comme une preuve de qualité lorsque les cibles sont courtes et simples.
  • Comparer les valeurs de perte entre des jeux de données ayant des longueurs de cibles très différentes.
  • S'attendre à ce que le modèle apprenne une information qui n'apparaît que dans les messages des utilisateurs.

Références et lectures complémentaires

Les sources externes s'ouvrent dans un nouvel onglet.

  1. 01Instruction Tuning With Loss Over InstructionsShi et al., 2024 · arXiv · arxiv.orgQuand l'entraînement sur l'invite ainsi que sur la réponse est utile.
  2. 02SFT TrainerHugging Face TRL docs · huggingface.coLes options de perte limitées à la complétion et à l'assistant en pratique.
  3. 03Causal language modelingHugging Face Transformers docs · huggingface.coLa prédiction du jeton suivant et la préparation des étiquettes à cet effet.
  4. 04Supervised Fine-TuningHugging Face LLM Course · huggingface.coLe réglage fin sur des données de chat, étape par étape.

Transformez des semaines de travail d'expert en quelques minutes

Découvrez comment Scalata s'adapte à votre équipe, à vos données et à vos contrôles.

Contacter le service commercial