Guía de entrenamiento de modelos 2: Comparación de tres operaciones prácticas de entrenamiento
Este artículo analiza en profundidad los tres movimientos clave en el entrenamiento de LLM desde una perspectiva de implementación práctica.
Renderizando...
Este artículo, desde la perspectiva de la implementación práctica, analiza en detalle las tres acciones clave en el entrenamiento de LLM: PT (Preentrenamiento Incremental), SFT (Ajuste Fino Supervisado) y DPO (Alineación de Preferencias). ## 1. PT PT (Preentrenamiento Incremental): es como "alimentar" al modelo con libros. Tu enfoque principal está en el **"rendimiento"** y la **"limpieza de datos"**. **Los datos que tienes en tus manos:** son un montón de archivos `.txt` o `.jsonl` enormes, llenos de párrafos largos y extensos, sin distinción entre "pregunta" y "respuesta". **Las acciones centrales que realizas:** - **Segmentación (Chunking):** Debes dividir decenas de GB de texto en bloques de 2048 o 4096 tokens de longitud. - **¿Aumentar la tasa de aprendizaje? No, disminuirla:** Establecerás la tasa de aprendizaje (LR) muy baja (por ejemplo, `1e-5`), porque solo quieres que aprenda algunas palabras nuevas, sin alterar su lógica original. - **Los indicadores que observas:** **Pérdida (Loss)**. Mientras la pérdida disminuya suavemente, significa que está "memorizando el libro". - **La señal de finalización de la operación:** Descubres que el modelo comienza a comprender los términos técnicos que le proporcionas. ## 2. SFT SFT (Ajuste Fino Supervisado): es como hacer que el modelo "interprete un guion". Tu enfoque principal está en las **"plantillas de diálogo"** y la **"Máscara (Mask)"**. **Los datos que tienes en tus manos:** son pares de preguntas y respuestas estrictos. - `"instruction": "Me han roto el corazón, ¿qué hago?"` - `"output": "Te abrazo, llorar te hará sentir mejor..."` **Las acciones centrales que realizas:** - **Seleccionar plantilla (Template):** Este es el lugar donde es más fácil cometer errores. Debes especificar la plantilla correspondiente al modelo en el script (por ejemplo, `qwen` o `llama3`), de lo contrario, el modelo aprenderá incorrectamente. - **Establecer Máscara:** En el script de operación, debes asegurarte de que el modelo **solo calcule la pérdida en la Salida (Output)**. Si no lo configuras correctamente, el modelo memorizará la pregunta del usuario, lo que provocará que solo repita tus preguntas. - **Los indicadores que observas:** **Precisión del conjunto de validación** y **Pérdida**. Si la pérdida disminuye demasiado rápido (por ejemplo, a menos de 0.1 instantáneamente), significa que hay sobreajuste, y está memorizando el guion. - **La señal de finalización de la operación:** Introduces preguntas de prueba y puede chatear contigo en el tono que has establecido (por ejemplo, suave, humorístico). ## 3. DPO DPO (Alineación de Preferencias): es como hacer que el modelo "responda a un examen". Tu enfoque principal está en la **"gestión de la memoria"** y el **"parámetro Beta"**. **Los datos que tienes en tus manos:** son triples. Después de cada pregunta, hay una **"buena respuesta"** y una **"mala respuesta"**. **Las acciones centrales que realizas:** - **Carga de doble modelo:** Tu memoria se agotará instantáneamente. Porque debes cargar simultáneamente el "modelo en entrenamiento" y el "modelo de referencia". - **Ajustar el valor de Beta:** Este es el único parámetro esotérico de DPO. Modificas `pref_beta` en el script. Si después del entrenamiento el modelo habla de manera extrema o repite, debes volver a modificar este número (generalmente entre 0.1 y 0.5). - **Los indicadores que observas:** **Recompensas/márgenes**. Verás dos líneas, una es Elegida (Chosen) y la otra Rechazada (Rejected). Si las dos líneas se separan, significa que el modelo ha aprendido a distinguir entre "bueno" y "malo". - **La señal de finalización de la operación:** Las respuestas que antes eran "frías y robóticas" desaparecen, y el modelo se vuelve más comprensivo con tus preferencias. ## Resumen de las Diferencias Operativas | **Operación** | **PT (Adquirir Conocimiento)** | **SFT (Aprender Reglas)** | **DPO (Distinguir lo Bueno de lo Malo)** | | ------------------- | ----------------------- | ------------------------------ | -------------------------- | | **Lo más difícil** | Limpiar y eliminar texto basura | Escribir y corregir guiones de diálogo de alta calidad | Encontrar casos en los que el modelo se equivoque para crear pares de comparación | | **Interruptor principal del script** | `stage: pt` | `stage: sft` + `template: xxx` | `stage: dpo` + `beta: 0.1` | | **Requisitos de memoria** | Estable (memoria simple) | Estable (memoria simple) | **Enorme (memoria doble)** | | **Número de épocas de entrenamiento** | Generalmente solo se ejecuta 1 vez (para evitar la repetición) | Ejecutar 3-5 veces (aprender profundamente) | Ejecutar 1-2 veces (para evitar distorsiones) |
Comentario
Inicia sesión para ver y publicar comentarios
Ir a iniciar sesión