Trainer & TRL SFTTrainer (Supervised Fine-Tuning) în Hugging Face Hub & Transformers

Automatizează întreaga buclă de antrenare și ajustare fină (Fine-Tuning) a modelelor: calculul gradienților, optimizatorul, salvarea checkpoint-urilor și raportarea metricilor.

Sintaxă & invocare Python
from trl import SFTTrainer, SFTConfig

trainer = SFTTrainer(
    model=model,
    train_dataset=dataset['train'],
    peft_config=lora_config,
    args=SFTConfig(output_dir='./rezultat_lora', max_seq_length=1024, per_device_train_batch_size=4, learning_rate=2e-4)
)
trainer.train()

Descriere & Utilizare

Scrierea manuală a unei bucle de antrenare în PyTorch pentru modele mari implică sute de linii de cod pentru acumulare de gradienți, precizie mixtă, planificarea ratei de învățare (learning rate scheduler) și distribuție multi-GPU.

Clasa Trainer din Transformers (și extensia sa specializată pentru LLM-uri conversaționale, SFTTrainer din biblioteca TRL – Transformer Reinforcement Learning) se ocupă de toate aceste detalii.

SFTTrainer acceptă direct seturi de date cu coloana 'messages' (conversații în format chat), aplică automat chat_template-ul modelului, suportă împachetarea exemplelor scurte (packing=True) și primește direct configurația LoRA prin parametrul peft_config.

Cum să o reții ușor

💡 Ca un antrenor olimpic profesionist: tu îi aduci sportivul (`model`) și programa de exerciții (`train_dataset`), iar el cronometrează seriile, dozează efortul, monitorizează pulsul și salvează progresul după fiecare etapă.

Opțiuni și parametri tehnici

  • Configurează optimizatorul (de exemplu paged_adamw_8bit pentru economie de VRAM).
  • Folosește gradient_accumulation_steps pentru a simula batch-uri mari pe plăci video cu memorie mică.
  • Activează gradient_checkpointing=True pentru a recalcula activările intermediare în loc să le stocheze în VRAM.

Exemple practice și cazuri de utilizare

  • Configurație eficientă pentru o placă de 16 GB VRAM: SFTConfig(per_device_train_batch_size=2, gradient_accumulation_steps=8, bf16=True, logging_steps=10, num_train_epochs=3, optim='paged_adamw_8bit')
  • Salvare model final după antrenare: trainer.save_model('./modelul_meu_finetuned')

Sfaturi de configurare & capcane

Pentru fine-tuning pe instrucțiuni și conversații ale LLM-urilor moderne, folosește întotdeauna SFTTrainer (din pip install trl) în locul Trainer-ului de bază, deoarece gestionează nativ formatarea prompt-răspuns.

Comenzi și ghiduri înrudite