Recursos/Entrenamiento de modelos/De chats a ejemplos de entrenamiento

Concepto

Enmascaramiento de pérdida

Por qué un modelo se puntúa solo sobre los tokens objetivo de cada registro, cómo se hace en la práctica y qué cambia y qué no.

Capítulo 34 min de lectura4 referencias

Qué es

Un registro de entrenamiento contiene mucho más que la respuesta que se debe aprender: una instrucción del sistema, quizás varias intervenciones anteriores y la pregunta del usuario. El enmascaramiento de pérdida significa que el error de entrenamiento —la pérdida— se calcula únicamente sobre los tokens de la respuesta objetivo. El modelo lee cada token, y el contexto da forma a cada predicción que realiza, pero nunca se le puntúa por predecir el contexto en sí.

Howenmascarado␣doenmascarado␣Ienmascarado␣resetenmascarado␣myenmascarado␣passwordenmascarado?enmascaradoOpenp 0.62pérdida 0.48␣Settingsp 0.81pérdida 0.21␣→p 0.35pérdida 1.05␣Securityp 0.90pérdida 0.11
7 tokens de contexto · sin pérdidapérdida del registro ≈ 0.46
Cada token objetivo tiene una probabilidad asignada por el modelo (p) y una pérdida, −ln p. Los tokens de contexto se leen y dan forma a cada predicción, pero no conllevan pérdida. La pérdida del registro es el promedio únicamente sobre los tokens objetivo.

Cómo funciona

Un modelo de lenguaje se entrena prediciendo cada token siguiente. En cada posición, emite una probabilidad para cada token de su vocabulario, y la pérdida en esa posición es el logaritmo negativo de la probabilidad que asignó al token correcto: cercana a 0 cuando estaba seguro y acertó, y alta cuando estaba seguro y se equivocó. La pérdida del registro es el promedio de las posiciones que cuentan.

Pérdida con enmascaramiento
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

Sin el enmascaramiento, el promedio abarcaría cada token del registro. Con el enmascaramiento, las posiciones de contexto se omiten. Los entrenadores logran esto asignando a cada token de contexto una etiqueta especial —-100 en bibliotecas basadas en PyTorch como Hugging Face Transformers— que se le indica a la función de pérdida que ignore.

La aritmética de un registro
  1. Un registro tiene 40 tokens de contexto (prompt del sistema y pregunta) y 4 tokens de destino: “Open”, “ Settings”, “ →”, “ Security”.
  2. El modelo asigna a los tokens de destino correctos probabilidades de 0,62, 0,81, 0,35 y 0,90. Sus pérdidas, −ln p, son 0,48, 0,21, 1,05 y 0,11.
  3. La pérdida del registro es su promedio: (0,48 + 0,21 + 1,05 + 0,11) ÷ 4 ≈ 0,46.
  4. Los 40 tokens de contexto no añaden nada. La actualización aumentará principalmente la probabilidad de “ →”, el token del que el modelo estaba menos seguro.

Por qué enmascarar

  • La señal va donde usted desea. Sus objetivos representan el comportamiento que eligió. Sin el enmascaramiento, gran parte del esfuerzo de entrenamiento se destinaría a predecir las preguntas de los usuarios y a repetir las instrucciones del sistema.
  • El modelo no aprende a imitar a los usuarios. Entrenar con las intervenciones del usuario enseña al modelo a escribir como las personas que preguntan —con errores tipográficos incluidos—, lo cual puede filtrarse en sus respuestas.
  • El contexto largo no eclipsa las respuestas cortas. En un registro con un historial de 2000 tokens y una respuesta de 60 tokens, una pérdida sin enmascarar se basaría en un 97 % en el historial.

¿El enmascaramiento siempre es mejor?

El enmascaramiento es la opción estándar y predeterminada en la mayoría de los servicios y bibliotecas de entrenamiento. Existen excepciones: un estudio de 2024 realizado por Shi y sus colegas descubrió que entrenar también con las instrucciones puede ser útil cuando estas son largas y los resultados cortos, o cuando hay muy pocos ejemplos. Para el ajuste fino en conversaciones reales, donde las intervenciones del usuario no son el comportamiento que se desea reproducir, enmascarar el contexto sigue siendo la opción predeterminada más sensata.

Enmascarado no significa irrelevante

Un token enmascarado no se puntúa, pero se lee, y el modelo aprende a producir el objetivo dado ese contexto. Si el contexto contiene una afirmación incorrecta que el objetivo acepta, el modelo aprende a aceptarla. Si la instrucción del sistema durante el entrenamiento difiere de la que se utiliza posteriormente, es posible que el comportamiento aprendido no se mantenga. El enmascaramiento limita lo que se puntúa; no hace que el resto del registro pierda importancia.

Errores comunes

  • Asumir que, como el contexto no se puntúa, su calidad no importa.
  • Interpretar una pérdida de entrenamiento baja como prueba de calidad cuando los objetivos son cortos y fáciles.
  • Comparar los valores de pérdida entre conjuntos de datos con longitudes de objetivo muy diferentes.
  • Esperar que el modelo aprenda algo que solo aparece en los mensajes del usuario.

Referencias y lecturas adicionales

Las fuentes externas se abren en una pestaña nueva.

  1. 01Instruction Tuning With Loss Over InstructionsShi et al., 2024 · arXiv · arxiv.orgCuándo resulta útil entrenar tanto con la instrucción como con la respuesta.
  2. 02SFT TrainerHugging Face TRL docs · huggingface.coLas opciones de pérdida basadas solo en la finalización y solo en el asistente en la práctica.
  3. 03Causal language modelingHugging Face Transformers docs · huggingface.coLa predicción del siguiente token y cómo se preparan las etiquetas para ello.
  4. 04Supervised Fine-TuningHugging Face LLM Course · huggingface.coAjuste fino con datos de chat, paso a paso.

Convierta semanas de trabajo experto en minutos

Vea cómo Scalata se adapta a su equipo, a sus datos y a sus Controles.

Contactar con ventas