7장. SFT 데이터 구성과 Chat Template
먼저 큰 그림부터
새로 들어온 상담원에게 말투를 가르친다고 해 봅시다. 규칙을 길게 설명하는 것보다, 손님 질문과 선배가 쓴 모범 답안을 수백 장 보여 주고 따라 쓰게 하는 편이 빠릅니다. 이것이 SFT(Supervised Fine-Tuning, 지도 미세조정)입니다. 그런데 모범 답안 묶음을 그대로 건넬 수는 없습니다. 빠진 장, 겹친 장을 골라내고, "손님 말"과 "상담원 말"을 표시한 대본 양식으로 옮겨 적고, 연습용과 시험용으로 나눠야 합니다. 이 장은 그 준비 과정을 다룹니다. 모델은 아직 학습시키지 않습니다. 학습은 8장에서 합니다.
이 장에서 챙겨 갈 것은 세 가지입니다. 첫째, SFT 데이터가 무엇이고 무엇을 잘 가르치는지, 좋은 데이터의 조건이 무엇인지입니다. 둘째, pandas 로 읽은 질문·답변 표(327행)를 점검하고, prompt-completion 대화 형식으로 바꾸고, 80·10·10 으로 나눠 Hugging Face Dataset 으로 만드는 과정입니다. 셋째, 모델이 실제로 읽는 모양인 Chat Template 문자열과, 그것을 숫자로 바꾼 input_ids, attention_mask, labels 입니다. df.isna(), df.duplicated(), df.sample(frac=1) 처럼 데이터 분석에서 늘 쓰던 도구가 그대로 학습 데이터 준비 도구가 됩니다.