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

Date, Antrenare & Fine-Tuning TRL 1.x / Transformers 5.x (octombrie 2026) Q&A AI / Distribuie cod

Automatizează bucla de antrenare: Trainer din Transformers pentru cazul general și SFTTrainer din TRL pentru fine-tuning supervizat al modelelor de limbaj, inclusiv pe conversații.

Sintaxă & invocare Python
from trl import SFTTrainer, SFTConfig

trainer = SFTTrainer(
    model="Qwen/Qwen3-0.6B",
    train_dataset=dataset,
    peft_config=lora_config,
    args=SFTConfig(output_dir="./rezultat_lora", max_length=1024, per_device_train_batch_size=4, learning_rate=1e-4),
)
trainer.train()

Ce face Trainer și SFTTrainer din TRL (Supervised Fine-Tuning)

Trainer din Transformers se ocupă de bucla de antrenare: optimizator, acumularea gradienților, precizie mixtă, salvarea checkpoint-urilor și raportarea metricilor. SFTTrainer din TRL (Transformers Reinforcement Learning) este varianta pentru fine-tuning supervizat al modelelor de limbaj.

SFTTrainer acceptă dataset-uri de tip text ({"text": ...}), conversaționale ({"messages": [...]}) și prompt-completion. La dataset-urile conversaționale aplică automat șablonul de chat al modelului. model poate fi un ID de pe Hub (TRL încarcă modelul) sau un model deja încărcat, iar peft_config adaugă adaptoare LoRA.

Opțiuni utile din SFTConfig: max_length (lungimea maximă a secvenței, implicit 1024; înlocuiește vechiul max_seq_length), packing=True (mai multe exemple în aceeași secvență) și assistant_only_loss=True (pierderea se calculează doar pe răspunsurile asistentului). Rata de învățare implicită este 2e-5; documentația recomandă în jur de 1e-4 când antrenezi adaptoare.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
model ID de pe Hub sau model încărcat.
train_dataset Dataset text, conversațional sau prompt-completion.
peft_config Configurația LoRA (LoraConfig).
SFTConfig(max_length=...) Lungimea maximă a secvenței; implicit 1024. None = fără trunchiere.
SFTConfig(packing=True) Împachetează exemplele scurte în aceeași secvență.
SFTConfig(assistant_only_loss=True) Pierderea doar pe mesajele asistentului (cere un șablon cu marcaje de generare).
SFTConfig(dataset_text_field="text") Coloana de text pentru dataset-urile de tip text.
SFTConfig(learning_rate=...) Implicit 2e-5; pentru adaptoare, aproximativ 1e-4.
gradient_accumulation_steps, gradient_checkpointing, bf16 Opțiuni moștenite din TrainingArguments.

Exemple practice

Exemplul 1: Exemplul minim din documentație

from trl import SFTTrainer
from datasets import load_dataset

trainer = SFTTrainer(
    model="Qwen/Qwen3-0.6B",
    train_dataset=load_dataset("trl-lib/Capybara", split="train"),
)
trainer.train()

Exemplul 2: Dataset conversațional

{"messages": [{"role": "user", "content": "What color is the sky?"},
              {"role": "assistant", "content": "It is blue."}]}

Exemplul 3: Configurație pentru o placă cu memorie puțină

SFTConfig(per_device_train_batch_size=2, gradient_accumulation_steps=8, gradient_checkpointing=True, bf16=True, max_length=1024)

Exemplul 4: Salvarea modelului

trainer.save_model("./modelul_meu_finetuned")

Greșeli frecvente și bune practici

  • Folosești max_seq_length în SFTConfig. Parametrul se numește acum max_length.
  • Formatezi manual conversațiile cu tokeni speciali. Cu coloana messages, SFTTrainer aplică singur șablonul de chat.
  • Păstrezi rata implicită 2e-5 când antrenezi doar LoRA. Pentru adaptoare, documentația TRL sugerează o rată mai mare, în jur de 1e-4.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Trainer și SFTTrainer din TRL (Supervised Fine-Tuning)

Ai o întrebare despre Trainer și SFTTrainer din TRL (Supervised Fine-Tuning) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.