C.W.K.
Stream
Lesson 02 of 08 · published

Data Collator: Padding 과 그 너머

~22 min · training, collator

Level 0스카우트
0 XP0/50 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

Collator 의 역할

Data collator 가 토크나이즈 example 리스트 (ragged length) 를 단일 batch tensor (uniform shape) 로. 표준 셋:

  • DataCollatorWithPaddinginput_ids 를 batch 의 longest 까지 pad.
  • DataCollatorForLanguageModeling — MLM (masked) 또는 CLM (causal) pre-training 용. mlm=True 가 토큰 random mask.
  • DataCollatorForSeq2Seq — encoder-decoder 모델용 encoder + decoder side independent pad.
  • DataCollatorForCompletionOnlyLM (trl) — prompt 부분 mask, loss 가 assistant response 에만 흐름.

SFT 에 collator 가 중요한 이유

completion-only collator 없이 챗 데이터 학습하면 모델이 user prompt 도 predict 학습. gradient 낭비 + 챗 동작 종종 degrade. completion-only collator 가 instruction tuning 의 right default.

Code

Padding collator (분류)·python
from transformers import DataCollatorWithPadding
collator = DataCollatorWithPadding(tokenizer=tok, padding="longest")  # or "max_length"
Completion-only collator (instruction tuning)·python
from trl import DataCollatorForCompletionOnlyLM

# assistant header 마크 — loss 가 그 뒤에만 흐름
response_template = "<|start_header_id|>assistant<|end_header_id|>\n\n"
collator = DataCollatorForCompletionOnlyLM(
    response_template=response_template,
    tokenizer=tok,
)
MLM collator (BERT-스타일 pre-training)·python
from transformers import DataCollatorForLanguageModeling
collator = DataCollatorForLanguageModeling(
    tokenizer=tok,
    mlm=True,
    mlm_probability=0.15,  # 15% masking, BERT 디폴트
)

External links

Exercise

작은 instruction-tuning 데이터셋 (예: HuggingFaceH4/no_robots) 가져와. chat template 적용으로 토크나이즈. Trainer 둘 셋업: DataCollatorWithPadding 하나, DataCollatorForCompletionOnlyLM 하나. 100 step 학습. loss 곡선 + 최종 출력 비교.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.