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.
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.
{"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.
{"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…"}textuna línea por pasaje→aprende cada tokenpromptel título del documento+completionel pasaje→aprende el pasajeNo 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.
- Un centro de ayuda de 120 000 palabras se divide en unos 170 pasajes de aproximadamente 700 palabras.
- Se reserva aproximadamente el 5 % (9 pasajes); se entrena con 161, unas 113 000 palabras.
- 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.
- 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.
- 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.
- 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
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.
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.
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.
- 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.
- 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.
- 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.
- 04SFT TrainerHugging Face TRL docs · huggingface.coEntrenamiento en texto sin formato y empaquetado de secuencias con Hugging Face TRL.
- 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comAjuste de modelos abiertos como Gemma, Llama y Qwen en Vertex AI.