Recursos/Entrenamiento de modelos/Métodos de entrenamiento

Método

Preentrenamiento continuo

El preentrenamiento continuo entrena un modelo con su texto sin procesar de la misma manera en que se entrenó inicialmente: prediciendo la siguiente palabra. Añade conocimiento de su dominio, no un comportamiento nuevo, por lo que suele ir seguido de una ejecución supervisada.

Capítulo 75 min de lectura5 referencias

Qué es

Un modelo base aprendió lo que sabe en el preentrenamiento: predecir la siguiente palabra a través de una gran cantidad de texto público. El preentrenamiento continuo ejecuta ese mismo proceso por segunda vez, en su texto. No hay prompts, ni respuestas, ni evaluador; el modelo lee su documentación y mejora en la predicción de cómo continúa, lo que significa que absorbe su vocabulario, sus entidades y sus hechos.

La idea está bien consolidada. Gururangan et al. (2020) demostraron en cuatro dominios (artículos biomédicos y de informática, noticias y reseñas) y ocho tareas que una segunda fase de preentrenamiento en texto del dominio mejoraba los resultados, y que el preentrenamiento en el propio texto sin etiquetar de la tarea ayudaba incluso después de eso.

Cómo se prepara el texto

  • Pasajes de unas 700 palabras, cortados en los saltos de párrafo para que ningún pasaje termine a mitad de una idea. Los documentos muy cortos pueden omitirse.
  • Los datos personales se suprimen, como en cualquier preparación de datos.
  • Se reserva aproximadamente el 5 % de los pasajes, de modo que la pérdida se pueda medir en texto con el que el modelo nunca se entrena.
1 · DIVIDIR EN SALTOS DE PÁRRAFOABCDEFreservado (~5 %)un pasaje ≈ 700 palabras ≈ 900 tokens2 · EMPAQUETAR EN SECUENCIAS DE 2048 TOKENSsecuencia 1ABsecuencia 2CDEcompletocompletola pérdida cubre cada token: no hay preguntas y respuestas, solo texto
Cómo los documentos se convierten en datos de preentrenamiento continuo. El texto se divide en pasajes de unas 700 palabras en los saltos de párrafo, para que ningún pasaje termine a mitad de una idea, y se reserva aproximadamente un 5 % para medir la pérdida en texto con el que el modelo nunca se entrena. En Hugging Face, los pasajes cortos se empaquetan uno al lado del otro en secuencias de longitud completa, por lo que no se gasta capacidad de cálculo en el relleno. Las longitudes son ilustrativas.

Cómo lo entrena cada proveedor

Hugging Face: cada pasaje es una línea de text. La pérdida cubre cada token, a diferencia del entrenamiento supervisado, donde solo cuenta la respuesta. Los pasajes cortos se empaquetan juntos en secuencias de longitud completa, por lo que no se gasta computación en el relleno.

Un pasaje para Hugging Face
{"text": "Sharing reports\n\nAny report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}

Modelos abiertos de Vertex AI (Gemma, Llama, Qwen): no hay modo de texto sin formato, por lo que cada pasaje se introduce como un prompt y una finalización, con el título del documento como prompt. Vertex aprende la finalización, que es el pasaje. Es posible que Vertex no muestre una curva de pérdida para este tipo de trabajo.

El mismo pasaje para los modelos abiertos de Vertex AI
{"prompt": "Sharing reports",
 "completion": "Any report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}
Hugging Face · texto sin formato
pasaje→textuna línea por pasaje→aprende cada token
Modelos abiertos de Vertex AI · prompt y completado
promptel título del documento+completionel pasaje→aprende el pasaje
El mismo pasaje, escrito de la forma en que cada proveedor puede entrenar con él. Hugging Face admite texto sin formato. Los modelos abiertos de Vertex AI no tienen modo de texto sin formato, por lo que el título del documento funciona como prompt y el pasaje es la parte que se aprende.

No disponible en otros lugares. Gemini, Azure, Fireworks y los modelos actuales de Bedrock no ofrecen preentrenamiento continuo; Bedrock solo lo hizo para Titan Text, que está retirado. En esos proveedores, los documentos se convierten en Q&A generadas.

Conocimiento, no comportamiento

Tras el preentrenamiento continuo, el modelo sabe más, pero no necesariamente responde mejor: fue entrenado para continuar texto, no para responder a una pregunta. Allen-Zhu y Li (2023) descubrieron que el conocimiento que un modelo ha memorizado no siempre se puede extraer mediante preguntas, y que las variadas formulaciones de un mismo hecho son las que lo hacen recuperable. Por lo tanto, la receta habitual es primero el preentrenamiento continuo y, a continuación, una ejecución supervisada, en chats o Q&A generadas, que continúe a partir del modelo entrenado.

Modelo baseconocimiento general
→lee su textoPreentrenamiento continuoahora conoce sus documentos
→continúa a partir deEjecución supervisadachats o preguntas y respuestas generadas: utiliza ese conocimiento para responder
El preentrenamiento continuo aporta conocimiento, no comportamiento. Un modelo que solo ha leído sus documentos continúa el texto; todavía no responde preguntas al respecto. Una ejecución supervisada que continúa a partir de ahí le enseña a utilizar lo que ha leído.
Dimensionamiento de una ejecución (ilustrativo)
  1. Un centro de ayuda de 120 000 palabras se divide en unos 170 pasajes de aproximadamente 700 palabras.
  2. Se reserva aproximadamente el 5 % (9 pasajes); se entrena con 161, unas 113 000 palabras.
  3. A razón de unos 1,3 tokens por palabra, esto equivale a aproximadamente 150 000 tokens por época. Dos épocas se entrenan con unos 300 000 tokens.
  4. Empaquetada en secuencias de 2048 tokens, una época equivale a unas 72 secuencias. Con un rango LoRA de 32 en un modelo abierto pequeño, es un trabajo corto y económico.
  5. A continuación, una ejecución supervisada sobre los chats de soporte y las Q&A generadas continúa a partir de esta, y se evalúa frente a ella.
  6. Por el contrario, un piloto en un documento de 2000 palabras produce tres pasajes: demuestra que el pipeline funciona, pero es muy poco texto para cambiar el modelo.

Cuándo elegirlo

  • Elíjalo cuando tenga un gran volumen de documentación (decenas de miles de palabras o más), entrene un modelo abierto y planee una ejecución supervisada posteriormente.
  • Elija las preguntas y respuestas generadas cuando desee mejores respuestas pronto, tenga menos documentos o entrene con un proveedor sin preentrenamiento continuo.
  • Considere ambos: el preentrenamiento continuo para absorber la documentación, y luego las preguntas y respuestas generadas y los chats para enseñar al modelo a responder a partir de ella.

Configuración

Longitud del pasajeTípico Alrededor de 700 palabras#

La longitud de cada pasaje de entrenamiento. Alrededor de 700 palabras, divididas en los saltos de párrafo, de modo que cada pasaje sea un texto coherente y encaje sin problemas en una secuencia de entrenamiento. Los documentos muy breves pueden omitirse por ser demasiado cortos para enseñar algo.

ÉpocasTípico 1–3#

Cuántas veces lee el modelo todos los pasajes. Manténgalo bajo: muchas pasadas hacen que el modelo recite los pasajes palabra por palabra en lugar de utilizar el conocimiento. Cada época también añade aproximadamente una época más de coste.

Rango de LoRATípico 32 (16 para otros métodos)#

El tamaño del adaptador que contiene lo que el modelo aprende. El nuevo conocimiento requiere un adaptador más grande que un cambio de estilo, por lo que Scalata utiliza el rango 32 para el preentrenamiento continuo y 16 para los demás métodos. Biderman et al. (2024) descubrieron, en código y matemáticas, que el ajuste fino completo aprende cambios de un rango entre 10 y 100 veces mayor que las configuraciones típicas de LoRA, una razón probable por la que los rangos bajos se quedan cortos cuando el objetivo es adquirir nuevo conocimiento.

Errores comunes

  • Ejecutarlo en unas pocas páginas y esperar un cambio. Requiere decenas de miles de palabras o más.
  • Detenerse tras el preentrenamiento continuo. El modelo sabe más, pero aún necesita una ejecución supervisada para responder bien.
  • Utilizar muchas épocas. El modelo empieza a recitar pasajes en lugar de utilizar lo que dicen.
  • Mantener un rango LoRA pequeño. El conocimiento necesita más capacidad de adaptador que el estilo.
  • Buscarlo en Gemini, Azure, Fireworks o Bedrock. Utilice allí Q&A generadas.

Referencias y lecturas adicionales

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

  1. 01Don't Stop Pretraining: Adapt Language Models to Domains and TasksGururangan et al., 2020 · arXiv · arxiv.orgEl estudio clásico del preentrenamiento adaptativo al dominio y a la tarea.
  2. 02LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgLoRA frente al ajuste fino completo para el preentrenamiento continuo, y por qué importa el rango.
  3. 03Synthetic continued pretrainingYang et al., 2024 · arXiv · arxiv.orgPor qué un corpus pequeño enseña poco por sí solo, y cómo ayudan las variaciones sintéticas.
  4. 04SFT TrainerHugging Face TRL docs · huggingface.coEntrenamiento en texto sin formato y empaquetado de secuencias con Hugging Face TRL.
  5. 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comAjuste de modelos abiertos como Gemma, Llama y Qwen en Vertex AI.

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