Trainer로 파인튜닝하며 배우는 증류·훈련 기초
Trainer로 파인튜닝하며 배우는 증류·훈련 기초
증류를 이해하려면 먼저 사전학습 모델을 데이터로 파인튜닝하는 과정을 알아야 해요. Transformers의 Trainer는 데이터셋 로드·토크나이징·학습 설정·평가를 한 번에 다루는 고수준 훈련 인터페이스예요.
파인튜닝 흐름 (Trainer)
- 토크나이징: 데이터셋의 텍스트 컬럼을
input_ids·attention_mask로 변환 - 데이터 콜레이터: 배치를 동적 패딩으로 구성 (불필요한 패딩 연산 절약)
- 모델 로드: 사전학습 체크포인트를
dtype="auto"로 로드 - TrainingArguments: 에폭·배치·학습률 설정
- Trainer.train() 실행
from transformers import AutoModelForCausalLM, TrainingArguments, Trainer
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-0.6B", dtype="auto")
training_args = TrainingArguments(
output_dir="qwen3-finetuned",
num_train_epochs=3,
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
bf16=True,
learning_rate=2e-5,
)
trainer = Trainer(model=model, args=training_args, train_dataset=dataset)
trainer.train()
증류와의 연결
증류도 결국 'teacher의 출력을 라벨 삼아 student를 훈련'하는 것이므로, Trainer 기반 훈련 파이프라인 안에 증류 손실을 얹는 방식으로 구현할 수 있어요.