SFTTrainer — 지도 파인튜닝

SFTTrainer — 지도 파인튜닝

SFTTrainer는 언어 모델의 지도 파인튜닝(SFT) 을 위한 트레이너예요. 지시·채팅 데이터셋으로 모델이 원하는 응답 형식을 따르도록 만드는 가장 기본적인 포스트트레이닝 단계죠.

출처: TRL — SFT Trainer

데이터셋 예시

데이터셋 각 샘플은 표준(표준 텍스트) 또는 프롬프트-완성(prompt-completion) 형식일 수 있어요.

PEFT 어댑터 훈련

from datasets import load_dataset
from trl import SFTTrainer
from peft import LoraConfig

dataset = load_dataset("trl-lib/Capybara", split="train")

trainer = SFTTrainer(
    "Qwen/Qwen3-0.6B",
    train_dataset=dataset,
    peft_config=LoraConfig(),
)
trainer.train()

Vision 언어 모델 훈련

from trl import SFTConfig, SFTTrainer
from datasets import load_dataset

trainer = SFTTrainer(
    model="Qwen/Qwen2.5-VL-3B-Instruct",
    args=SFTConfig(max_length=None),
    train_dataset=load_dataset("trl-lib/llava-instruct-mix", split="train"),
)
trainer.train()

기본 예시

from trl import SFTTrainer
from datasets import load_dataset

dataset = load_dataset("roneneldan/TinyStories", split="train[:1%]")
trainer = SFTTrainer(model="Qwen/Qwen2.5-0.5B-Instruct", train_dataset=dataset)
trainer.train()

SFTTrainer는 loss_type="dft"(Dynamic Fine-Tuning) 같은 추가 손실 설정도 지원해요. SFTConfig가 SFT 전용 파라미터를 담당하고, 나머지 훈련 인자는 transformers의 TrainingArguments를 따라요.

더 알아보기