Instruction Tuning
El ajuste de instrucciones adapta un modelo de lenguaje preentrenado con pares de instrucciones y respuestas para que siga las peticiones. Abarca FLAN, InstructGPT, los datos y los VLM.
El ajuste de instrucciones consiste en ajustar un modelo de lenguaje grande (LLM) preentrenado con pares de instrucciones y respuestas deseadas para que siga peticiones escritas en lenguaje natural. Un modelo preentrenado solo continúa el texto: cuando OpenAI le pidió «Explica el alunizaje a un niño de 6 años en unas pocas frases», GPT-3 continuó con peticiones similares sobre la gravedad y la relatividad, mientras que el InstructGPT ajustado a instrucciones redactó la explicación. Investigadores de Google describieron el método en el artículo FLAN de 2021, en el que ajustaron un modelo de 137.000 millones de parámetros con más de 60 conjuntos de datos de procesamiento del lenguaje natural (NLP) reescritos como instrucciones; el modelo ajustado superó el rendimiento sin ejemplos de GPT-3, de 175.000 millones de parámetros, en 20 de las 25 tareas que nunca había visto. En los flujos de trabajo de modelos conversacionales, este mismo paso suele llamarse ajuste fino supervisado (SFT), y ambos términos se usan como sinónimos.
Cómo funciona el ajuste de instrucciones#
Cada ejemplo se formatea con una plantilla que indica dónde termina la instrucción y dónde empieza la respuesta, como las plantillas de chat de los modelos actuales o los encabezados «### Instruction» y «### Response» que utilizó Alpaca de Stanford. El entrenamiento utiliza la misma función de pérdida del siguiente token que el preentrenamiento, pero solo cuentan los tokens de la respuesta, así que el modelo aprende a generar respuestas en lugar de predecir las instrucciones. Un ejemplo de entrenamiento con GPT-2 de OpenAI muestra el proceso:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5)
# One instruction-response pair in the Alpaca prompt format
prompt_ids = tokenizer("### Instruction:\nName three animals that can fly.\n\n### Response:\n").input_ids
response_ids = tokenizer("Bats, eagles, and bees." + tokenizer.eos_token).input_ids
input_ids = torch.tensor([prompt_ids + response_ids])
# Label -100 drops the instruction from the loss, so the model learns only to respond
labels = torch.tensor([[-100] * len(prompt_ids) + response_ids])
for step in range(3):
loss = model(input_ids=input_ids, labels=labels).loss
loss.backward()
optimizer.step()
optimizer.zero_grad()
print(f"step {step}: loss {loss.item():.2f}")Solo los 10 tokens de la respuesta cuentan para la pérdida, y tres actualizaciones con este único ejemplo la reducen de 4,45 a 1,49. Una ejecución de ajuste de instrucciones aplica la misma actualización a miles o millones de pares distintos de instrucciones y respuestas, para que el modelo aprenda el hábito general de responder en lugar de aprender una respuesta concreta.
El ajuste de instrucciones suele ser la primera etapa del posentrenamiento, y los datos pueden proceder de varias fuentes:
Conjuntos de datos de instrucciones#
La colección Flan de Google creció hasta incluir 1.836 tareas en 2022, y el ajuste de instrucciones con ella mejoró un 9,4 % de media el rendimiento de PaLM, de 540.000 millones de parámetros. InstructGPT de OpenAI combinó demostraciones redactadas por anotadores con aprendizaje por refuerzo a partir de comentarios humanos (RLHF), y la gente prefirió las respuestas de su modelo de 1.300 millones de parámetros a las del GPT-3 de 175.000 millones. Alpaca de Stanford, publicado en marzo de 2023, ajustó LLaMA 7B de Meta por menos de 600 dólares con 52.000 ejemplos generados por un modelo de OpenAI mediante el método Self-Instruct, un ejemplo temprano del uso de datos sintéticos como fuente de datos para instrucciones. LIMA de Meta mostró hasta dónde se puede llegar con un conjunto de datos pequeño: ajustó un LLaMA de 65.000 millones de parámetros con solo 1.000 ejemplos cuidadosamente seleccionados, y sus autores concluyeron que un modelo aprende casi todo su conocimiento durante el preentrenamiento, mientras que el ajuste de instrucciones enseña el formato y el estilo de las respuestas. A continuación, métodos como la optimización directa de preferencias (DPO) refinan el modelo ajustado con datos de preferencias.
Ajuste visual de instrucciones#
Los modelos de visión y lenguaje (VLM) también aprenden a seguir instrucciones sobre imágenes. LLaVA, publicado en abril de 2023, proporcionó a GPT-4, que solo trabajaba con texto, los pies de foto y las cajas delimitadoras de imágenes de COCO, y le pidió que redactara 158.000 conversaciones, descripciones detalladas y ejemplos de razonamiento complejo sobre ellas. Después ajustó con esos datos un modelo que conecta un codificador de imágenes CLIP con un modelo de lenguaje, en un método conocido como ajuste visual de instrucciones. Los VLM ajustados a instrucciones responden a peticiones abiertas sobre una foto, y el bloque LLM de Ultralytics Platform Agents se basa en esa capacidad: envía la imagen, los resultados anteriores de YOLO26 y una instrucción escrita al modelo de visión y lenguaje seleccionado.
Ajuste de instrucciones frente a términos relacionados#
El ajuste de prompts aprende unos pocos vectores de prompt suaves y mantiene el modelo congelado, mientras que la ingeniería de prompts solo modifica el texto de entrada; en cambio, el ajuste de instrucciones actualiza los pesos del modelo. El ajuste fino de dominio adapta un modelo a un ámbito como la medicina o el derecho, sin que eso implique necesariamente enseñarle a seguir instrucciones. El ajuste de instrucciones también puede realizarse mediante ajuste fino eficiente en parámetros (PEFT): QLoRA entrena adaptadores LoRA en un modelo cuantizado de 4 bits, y sus autores aplicaron el ajuste de instrucciones a un modelo de 65.000 millones de parámetros usando una sola GPU de 48 GB.










