Recursos/Entrenamiento de modelos/Métodos de entrenamiento

Método

Ajuste fino supervisado (SFT)

El ajuste fino supervisado enseña a un modelo mediante ejemplos: se le muestra una conversación y la respuesta deseada, y sus pesos se ajustan para que dicha respuesta sea más probable, token por token.

Capítulo 76 min de lectura5 referencias

Qué es

El ajuste fino supervisado es la forma más directa de cambiar el comportamiento de un modelo: usted le proporciona ejemplos de las conversaciones que desea y lo entrena para reproducir las respuestas. «Supervisado» significa que cada ejemplo viene con la respuesta adjunta. No se le pide al modelo que juzgue o explore; se le indica, para cada contexto, cuáles son las siguientes palabras correctas.

Un modelo preentrenado ya ha aprendido el lenguaje y gran parte sobre el mundo a partir de textos públicos. Lo que no ha visto es su producto, el tono de su equipo o el formato que esperan sus usuarios. SFT cierra esa brecha con un conjunto de datos comparativamente minúsculo: de cientos a unos pocos miles de buenas conversaciones, no los billones de tokens utilizados en el preentrenamiento. El estudio LIMA lo dejó muy claro: un modelo de 65B parámetros ajustado con solo 1000 ejemplos cuidadosamente seleccionados se comportó como un asistente capaz, lo que sus autores interpretaron como evidencia de que casi todo el conocimiento se aprende en el preentrenamiento, y el ajuste fino enseña principalmente el formato para utilizarlo.

Cómo funciona

Cada registro de entrenamiento es una conversación. Las respuestas del asistente que usted marcó como entrenables son los objetivos; todo lo que precede a un objetivo es su contexto.

Un registro supervisado (formato de chat)
{"messages": [
  {"role": "system",    "content": "You are Scalata's support assistant."},
  {"role": "user",      "content": "How do I reset my password?"},
  {"role": "assistant", "content": "Open Settings → Security and choose Reset password. You'll get an email link valid for 30 minutes."}
]}

El modelo lee el registro como una larga secuencia de tokens. En cada posición dentro del objetivo, predice una probabilidad para cada token de su vocabulario, y el entrenador comprueba cuánta probabilidad le asignó al token que realmente sigue. La penalización para un token es −ln p, el logaritmo natural negativo de esa probabilidad. Al promediarse sobre la respuesta, se obtiene la pérdida de entropía cruzada.

Entropía cruzada, en una línea
loss for one reply = average over its target tokens of  −ln p(correct next token | everything before it)

p = 0.90  →  0.11
p = 0.50  →  0.69
p = 0.05  →  3.00

Solo se puntúan los tokens objetivo. El mensaje del sistema y las palabras del usuario se leen, porque dan forma a la predicción, pero nunca se evalúan. Esto es el enmascaramiento de pérdida: el modelo aprende a responder como su equipo, no a imitar a sus usuarios.

systemUsted es el asistente de soporte de Scalata.leído · enmascarado
user¿Cómo restablezco mi contraseña?leído · enmascarado
assistantAbra Configuración → Seguridad y elija Restablecer contraseña.evaluado · pérdida contabilizada
El modelo lee cada token, pero su error solo se mide en la respuesta objetivo. El contexto da forma a la predicción; nunca se evalúa por sí mismo.
Contexto (leído, no puntuado): “¿Cómo restablezco mi contraseña?”
Openp 0.20 · 1.61␣Settingsp 0.85 · 0.16␣→p 0.62 · 0.48␣Securityp 0.90 · 0.11
suma de penalizaciones 2.364 tokens objetivopérdida ≈ 0.59
Pérdida supervisada, un token objetivo a la vez. La penalización de cada token es −ln p, donde p es la probabilidad de que el modelo haya dado el token correcto. Una suposición segura y correcta casi no cuesta nada; una sorpresa cuesta mucho. La pérdida de la respuesta es el promedio.

Después de cada lote, la retropropagación calcula cómo debe cambiar cada peso entrenable para que los tokens objetivo sean más probables, y el optimizador da un pequeño paso en esa dirección. La tasa de aprendizaje establece el tamaño del paso. Una pasada por todos los registros es una época.

Puntuación de una respuesta, token por token
  1. La respuesta de destino comienza con “Open Settings → Security”. Supongamos que el modelo asigna a esos cuatro tokens probabilidades de 0,20, 0,85, 0,62 y 0,90.
  2. Las penalizaciones son −ln 0,20 = 1,61, −ln 0,85 = 0,16, −ln 0,62 = 0,48 y −ln 0,90 = 0,11.
  3. Su suma es 2,36; el promedio de los cuatro tokens es de aproximadamente 0,59. La mayor parte de la penalización proviene de la primera palabra: el modelo no esperaba que la respuesta comenzara con “Open”.
  4. La actualización eleva las cuatro probabilidades, y la más sorprendente es la que más aumenta, ya que el impulso sobre cada token crece en función de lo lejos que esté su probabilidad de 1. Tras unas pocas épocas con respuestas similares, el promedio podría descender a alrededor de 0,2.

Para qué es útil el SFT y para qué no

Objetivo¿SFT?Por qué
Un tono y una voz consistentesSíCada respuesta en los datos lo demuestra.
Un formato de salida fijo (secciones, JSON, longitud)SíEl formato es fácil de mostrar y fácil de puntuar token por token.
Fraseología del dominio y vocabulario del productoSíEl modelo asimila las palabras que utiliza su equipo.
Datos que cambian a menudo (precios, inventario, políticas)Rara vezLos datos entrenados se vuelven obsoletos; buscarlos en el momento de la respuesta es más seguro.
Juicios de «mejor que» sin una única respuesta correctaParcialmenteEl ajuste de preferencias expresa las comparaciones directamente.
Tareas con un resultado verificable (un cálculo, código que supera pruebas)ParcialmenteEl ajuste fino por refuerzo puede recompensar los resultados correctos en lugar de una redacción fija.

Una propiedad explica la mayoría de las sorpresas de SFT: imita. Si una de cada diez respuestas dice «por favor, póngase en contacto con soporte» en lugar de responder, el modelo aprende a decir eso aproximadamente una de cada diez veces. Si las respuestas se contradicen entre sí, el modelo aprende una mezcla confusa de ambas. Los objetivos limpios y consistentes importan más que una mayor cantidad de objetivos.

Cómo ajustarlo

La mayoría de las ejecuciones supervisadas necesitan poco ajuste. Comience con los valores predeterminados del proveedor («Auto»), lea las curvas y luego cambie una cosa a la vez.

ÉpocasTípico 1–3, o Auto#

Cuántas veces ve el modelo cada registro de entrenamiento. Si son muy pocas, las respuestas apenas cambian; si son demasiadas, la pérdida de entrenamiento sigue disminuyendo mientras que la pérdida de validación aumenta, porque el modelo está memorizando sus ejemplos. Los conjuntos de datos pequeños suelen tolerar más épocas que los grandes.

Multiplicador de la tasa de aprendizajeTípico Predeterminado del proveedor (×0.5–2)#

Los modelos alojados exponen un multiplicador sobre la tasa de aprendizaje predeterminada del proveedor en lugar del valor bruto. Un valor superior a 1 aprende más rápido, pero puede excederse o deteriorar las habilidades generales; un valor inferior a 1 es más suave y lento. Redúzcalo si la pérdida de validación presenta ruido o aumenta de forma prematura.

  • Ambas pérdidas disminuyen: sigue aprendiendo; otra época puede ayudar.
  • El entrenamiento disminuye, la validación se estabiliza: es lo adecuado; deténgase aquí.
  • El entrenamiento disminuye, la validación aumenta: sobreajuste; utilice menos épocas, un multiplicador más bajo o datos más variados.
  • Ninguna varía demasiado: los datos pueden ser inconsistentes o la tasa de aprendizaje es demasiado baja.

Errores comunes

  • Entrenar con respuestas que no desearía que se repitieran. Las respuestas deficientes, desactualizadas o inconsistentes se aprenden con la misma fidelidad que las buenas.
  • Ejecutar muchas épocas en un conjunto de datos pequeño y confiar en la disminución de la pérdida de entrenamiento. Vigile la pérdida de validación.
  • Utilizar SFT para almacenar datos que cambian. Cuando el dato cambia, el modelo sigue repitiendo el antiguo.
  • Juzgar la ejecución únicamente por la pérdida. Una pérdida menor significa una imitación más fiel de sus respuestas, no necesariamente mejores respuestas: ejecute una evaluación.
  • No dejar una división de validación, por lo que no hay forma de detectar el sobreajuste.

Referencias y lecturas adicionales

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

  1. 01SFT TrainerHugging Face TRL docs · huggingface.coDetalla la pérdida de entropía cruzada a nivel de token y muestra cómo funciona el entrenamiento únicamente en las finalizaciones.
  2. 02Supervised fine-tuningOpenAI API docs · developers.openai.comLa guía paso a paso de un proveedor alojado: formato de datos, hiperparámetros y evaluación del resultado.
  3. 03LIMA: Less Is More for AlignmentZhou et al., 2023 · arXiv · arxiv.org1000 ejemplos seleccionados fueron suficientes para ajustar un modelo de 65B y convertirlo en un asistente sólido.
  4. 04Training language models to follow instructions with human feedbackOuyang et al., 2022 · arXiv · arxiv.orgInstructGPT: el artículo que convirtió el ajuste fino supervisado en el primer paso del postentrenamiento moderno.
  5. 05Finetuned Language Models Are Zero-Shot LearnersWei et al., 2021 · arXiv · arxiv.orgEvidencia temprana de que el ajuste fino en instrucciones ayuda a un modelo a seguir instrucciones que nunca vio.

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