Capítulo 1: Fine-Tuning Completo
Quando Usar Fine-Tuning Completo
- Grande mudança de domínio em relação aos dados de pré-treinamento
- Computação e dados suficientes disponíveis
- Máxima performance necessária
Requisitos de Computação
| Tamanho do Modelo | VRAM (FP16) | VRAM (LoRA) |
|---|---|---|
| 7B | 56GB | 16GB |
| 13B | 104GB | 32GB |
| 70B | 560GB | 80GB |
Loop de Treinamento
from transformers import Trainer, TrainingArguments
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=4,
gradient_accumulation_steps=8,
learning_rate=2e-5,
warmup_steps=100,
fp16=True,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()
Esquecimento Catastrófico
O fine-tuning completo pode fazer o modelo esquecer conhecimentos pré-treinados. Mitigações:
- Taxas de aprendizado mais baixas
- Treinamento mais curto
- Regularização
- Buffers de replay