Saltar al contenido principal

Capítulo 3: Argumentos de Entrenamiento y Optimización

Ajuste de la Configuración de Entrenamiento​

Los argumentos de entrenamiento óptimos son cruciales para un fine-tuning exitoso.


TrainingArguments Completo​

from transformers import TrainingArguments

training_args = TrainingArguments(
# Output
output_dir="./results",
overwrite_output_dir=True,

# Training duration
num_train_epochs=3,
max_steps=-1, # -1 means use epochs

# Batch size
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
gradient_accumulation_steps=4,

# Learning rate
learning_rate=2e-4,
lr_scheduler_type="cosine",
warmup_ratio=0.03,
weight_decay=0.01,

# Precision
bf16=True,

# Memory optimization
gradient_checkpointing=True,
optim="paged_adamw_8bit",

# Logging
logging_steps=10,
logging_first_step=True,

# Saving
save_strategy="epoch",
save_total_limit=2,

# Evaluation
evaluation_strategy="epoch",
load_best_model_at_end=True,

# Other
seed=42,
dataloader_num_workers=4,
)

Programaciones de Tasa de Aprendizaje​

ScheduleComportamientoMejor para
linearDecaimiento linealTareas simples
cosineDecaimiento cosenoidalLa mayoría de los fine-tuning
constantSin decaimientoEntrenamientos muy cortos
polynomialDecaimiento polinomialEntrenamientos largos

Guía de Hiperparámetros​

ParámetroLoRAQLoRA
Tasa de aprendizaje1e-4 a 5e-41e-4 a 2e-4
Épocas1-51-3
Tamaño de batch (efectivo)8-328-16
Warmup3-10%3-5%

Resolución de Problemas​

ProblemaSolución
La pérdida no disminuyeAumente la tasa de aprendizaje
Pérdida NaNDisminuya la tasa de aprendizaje, habilite grad clipping
Error OOMReduzca el tamaño de batch, habilite checkpointing
SobreajusteEarly stopping, más datos, regularización

Continuar al Quiz →