트랜스포머·PEFT 2일 과정5장 · Decoder-only LLM과 학습 단계8 / 15← 이전목차다음 →MetaContents

5장. Decoder-only LLM과 학습 단계

LLM 이 만들어지는 세 단계

신입 상담원 한 명이 현장에 나가기까지를 떠올려 봅니다. 먼저 도서관 책을 두루 읽어 교양을 쌓습니다(사전학습). 그다음 모범 답안집으로 "이런 질문에는 이렇게 답한다"를 연습합니다(SFT). 마지막으로 선배가 두 답을 나란히 놓고 "이쪽이 더 친절하고 정확하다"고 짚어 줍니다(선호도 정렬). ChatGPT 같은 대화형 LLM 도 보통 이 세 단계를 거칩니다.

사전학습, 지도 미세조정, 선호도 정렬의 세 단계와 각각의 결과인 Base 모델, Instruct 모델, 정렬된 모델을 이은 그림

그림은 왼쪽에서 오른쪽으로 갈수록 데이터는 적어지고 더 다듬어집니다. 사전학습은 수조 개 토큰의 일반 텍스트, SFT 는 사람이 만든 수천~수십만 쌍, 선호도 정렬은 "더 좋은 답, 덜 좋은 답" 쌍입니다. 아래 둥근 상자가 각 단계를 마친 모델입니다. 그림 아래 줄처럼 2일차에는 공개 Instruct 모델(Qwen2.5)에 우리 데이터로 2단계 SFT 를 LoRA 로 더 합니다.

세 단계 비교

단계데이터학습 목표결과
1. 사전학습(Pre-training)웹·책·코드 등 수조 개 토큰의 일반 텍스트다음 토큰 예측Base 모델: 언어와 지식을 익혔지만 대화 형식에는 익숙하지 않음
2. 지도 미세조정(SFT)사람이 만든 (지시, 모범 답변) 수천~수십만 쌍답변 부분의 다음 토큰 예측Instruct 모델: 지시를 따르고 대화 형식으로 답함
3. 선호도 정렬(Preference Alignment)같은 질문의 (더 좋은 답, 덜 좋은 답) 쌍사람이 선호하는 답의 확률을 높임더 도움되고 안전한 모델
SFT 는 모범 답안 하나를 따라 쓰게 하고, 선호도 정렬은 두 답 중 나은 쪽을 높이는 차이를 나란히 놓은 비교 그림

SFT 와 선호도 정렬은 둘 다 (지시, 답변) 데이터를 쓰지만 가르치는 방식이 다릅니다. "환불 규정을 알려줘"라는 질문으로 보면, SFT 는 모범 답변 하나("네, 구매 후 7일 이내에 환불 가능합니다. ...")를 그대로 따라 쓰게 합니다. 선호도 정렬은 두 답을 비교해 더 친절하고 근거를 갖춘 답의 확률은 높이고, 퉁명스럽거나 부정확한 답의 확률은 낮춥니다. SFT 가 정답 하나 외우기라면, 선호도 정렬은 "이 답이 저 답보다 낫다"는 상대적인 기준을 배우는 것입니다.

짧은 예시

Python
import pandas as pd

# SFT 데이터: 한 행 = (지시, 모범 답변) 한 쌍
sft = pd.DataFrame([
    {"instruction": "환불 규정을 알려줘",
     "response": "네, 구매 후 7일 이내에 환불 가능합니다."},
])

# 선호도 데이터: 한 행 = (지시, 더 좋은 답, 덜 좋은 답)
# chosen = 골라 뽑힌 답, rejected = 밀려난 답
pref = pd.DataFrame([
    {"instruction": "환불 규정을 알려줘",
     "chosen": "네, 구매 후 7일 이내에 환불 가능합니다. 영수증을 함께 준비해 주세요.",
     "rejected": "규정 보세요."},
])

print("SFT 열:", list(sft.columns), sft.shape)
# 결과: SFT 열: ['instruction', 'response'] (1, 2)
print("선호도 열:", list(pref.columns), pref.shape)
# 결과: 선호도 열: ['instruction', 'chosen', 'rejected'] (1, 3)

이 코드가 뜻하는 것

모범 답안집과 "두 답 비교표"를 표 두 개로 만들어 열을 견주었습니다. SFT 표는 열이 둘(지시, 답)이고, 선호도 표는 열이 셋(지시, 좋은 답, 덜 좋은 답)입니다. 데이터의 모양이 다르면 학습 방법도 달라집니다.

줄하는 일쉽게 말하면
sft = pd.DataFrame([...])지시와 모범 답변 한 쌍모범 답안집 한 쪽
"chosen", "rejected"더 좋은 답과 덜 좋은 답선배가 고른 쪽과 밀린 쪽
sft.shape, pref.shape행과 열의 수(1, 2) 와 (1, 3)

2일차의 페르소나 데이터(persona_sft_raw.csv)는 prompt, response 두 열이므로 SFT 데이터입니다. 7장에서 이 표를 대화 형식으로 바꿉니다.

주의할 점

  • 노트북은 1단계 사전학습을 이 장에서 GPT 와 함께 이미 보았다고 정리합니다. 2일차에 우리가 할 일은 2단계 SFT 를 작은 규모로, LoRA 로 효율적으로 해 보는 것입니다. 사전학습과 선호도 정렬은 직접 하지 않습니다.
  • Qwen2.5-0.5B-Instruct 는 이미 SFT 를 거친 모델입니다. 그 위에 우리 데이터로 SFT 를 더하면 말투와 형식은 잘 바뀌지만, 원래 잘하던 일반 답변이 흔들릴 수 있습니다. 9장에서 이 부작용을 점검합니다.
← 이전 절5장 · Qwen 설계도 읽기다음 절 →5장 · Prompt, RAG, Fine-tuning 고르기