Qué es el ajuste fino
El ajuste fino es simplemente más entrenamiento, pero con un conjunto de datos pequeño y curado, elegido para instalar un comportamiento específico, y partiendo de un modelo ya preentrenado en lugar de desde cero. El modelo conserva todo lo que aprendió durante el preentrenamiento y ajusta sus pesos para inclinarse hacia los nuevos ejemplos. Como el modelo base ya entiende el lenguaje y el mundo, el ajuste fino necesita órdenes de magnitud menos datos y cómputo que el preentrenamiento: miles de ejemplos, no billones de tokens.
El ajuste fino supervisado y el formato del conjunto de datos
La forma más común es el ajuste fino supervisado (SFT): entrenar con pares explícitos de entrada → salida para que el modelo aprenda a producir la salida dada la entrada. Para un asistente de chat, el conjunto de datos es un conjunto de conversaciones (un prompt y la respuesta ideal) y el modelo se entrena para predecir los tokens de la respuesta. Mecánicamente es el mismo objetivo de siguiente token que en el preentrenamiento, pero la pérdida suele aplicarse solo a los tokens de la respuesta, para que el modelo aprenda a responder los prompts en lugar de continuarlos.
Un ejemplo típico parece un registro estructurado: una instrucción de sistema, un mensaje del usuario y la respuesta objetivo del asistente. De cientos a decenas de miles de estos, escritos o curados por personas, bastan para convertir un modelo base en algo que se comporta de forma confiable como asistente, que es exactamente la Etapa 1 del proceso de RLHF.
Ajuste por instrucciones frente a ajuste por tarea
Vale la pena distinguir dos variantes. El ajuste por instrucciones usa una mezcla amplia de muchos tipos de tarea redactados como instrucciones, y le enseña al modelo la habilidad general de seguir instrucciones: esa es la idea de FLAN que convirtió a los modelos base, usados sin ejemplos en el prompt (zero-shot), en generalistas útiles. El ajuste por tarea reduce el conjunto de datos a un solo trabajo (clasificar tickets de soporte, extraer campos de facturas, escribir con el estilo de la casa) para exprimir la máxima confiabilidad en esa única cosa.
Cuándo hacer ajuste fino, y cuándo no
El ajuste fino vale la pena cuando necesita un comportamiento o formato consistente que las instrucciones del prompt no logran imponer de forma confiable, cuando quiere integrar un tono o un dominio para poder usar un modelo más pequeño y barato, o cuando su prompt creció hasta volverse un muro de ejemplos que preferiría pasar a los pesos. Es la herramienta equivocada para el conocimiento que cambia: para eso, la recuperación (RAG) es mejor, porque puede actualizar un almacén de documentos al instante sin reentrenar.
Una escalera útil: pruebe primero con instrucciones en el prompt, luego con algunos ejemplos dentro del prompt (few-shot), luego con recuperación, y recurra al ajuste fino cuando esos se estanquen. El ajuste fino cambia cómo se comporta el modelo; la recuperación cambia qué sabe al momento de responder. Confundir las dos cosas es el error más común.
Los modos de falla
El ajuste fino es filoso y puede cortarle. Olvido catastrófico: si entrena demasiado con un conjunto de datos estrecho, el modelo empeora en todo lo demás. Sobreajuste: con muy pocos ejemplos o ejemplos demasiado repetitivos, el modelo memoriza patrones superficiales en lugar del comportamiento buscado y generaliza mal. Y uno sutil: hacer ajuste fino con datos generados por un modelo puede amplificar las rarezas del modelo base en lugar de corregirlas. Los conjuntos de datos pequeños, limpios y diversos, con un entrenamiento conservador, superan a los grandes y desordenados.
El ajuste fino completo además produce una copia nueva y completa del modelo que hay que almacenar y servir, lo que sale caro a escala. Ese costo es justo lo que resuelven los métodos eficientes en parámetros; vea la explicación sobre LoRA / PEFT, que entrena un pequeño conjunto de pesos adaptadores en lugar de todos y es como se hace hoy en la práctica la mayor parte del ajuste fino.