Post-training과 Alignment
분류: Layer 11 - AI 기초 & 머신러닝 | 선수지식: L11-30 (ML 패러다임), L11-40 (신경망), L11-50 (트랜스포머), L11-80 (평가)
Post-training과 Alignment — SFT, LoRA, RLHF, DPO, GRPO
섹션 제목: “Post-training과 Alignment — SFT, LoRA, RLHF, DPO, GRPO”1. 한 줄 정의
섹션 제목: “1. 한 줄 정의”Post-training은 사전학습된 base 모델을 사람의 의도·선호에 맞게 조정하는 단계로, SFT (supervised fine-tuning), PEFT (LoRA·QLoRA), 선호 정렬 (RLHF/DPO/KTO/ORPO/GRPO)의 조합으로 구성된다.
2. 왜 중요한가
섹션 제목: “2. 왜 중요한가”- base 모델 ≠ 쓸 만한 모델: pretraining 후 모델은 next-token 예측만 잘함. 사람의 지시를 따르거나 안전한 응답을 하려면 post-training 필수
- 운영자의 fine-tuning 결정: 자체 fine-tune 할지, API 사용할지, RAG로 우회할지 결정의 토대
- 2024-2025 패러다임 전환: RLHF → DPO → GRPO/RLVR로 빠르게 변화. reasoning 모델(o1, R1) 후학습이 새 표준
- alignment 위험: jailbreak·prompt injection·refusal 과잉 등 운영 silent failure의 출처
- 비용 모델: full SFT $K~$M, LoRA $십~수천, DPO는 PPO 대비 ~50% 절감
2.5 Lineage — 왜 post-training이 SFT → DPO → GRPO로 굳어졌나
섹션 제목: “2.5 Lineage — 왜 post-training이 SFT → DPO → GRPO로 굳어졌나”선행 단계: pretraining만 한 base 모델은 next-token 분포만 잘 맞춘다. “주어진 지시를 따른다”, “거절해야 할 요청을 거절한다” 같은 행동은 학습 신호가 없어 발생하지 않는다. 그래서 InstructGPT (Ouyang 2022, arXiv:2203.02155)는 SFT → reward model → PPO RL의 3단계로 정렬 신호를 주입했다 — 이게 RLHF 표준.
그러나 RLHF는 운영에서 깨졌다 (한계의 정량 증거):
- 메모리 4× 폭증: PPO 학습은 policy + reference + reward model + critic value model 4개 카피를 동시에 메모리에 올린다 (Wolfe 2024, “PPO for LLMs” — “barrier to entry for PPO is high due to its memory and compute overhead. Only a small number of groups have sufficient compute resources to empirically tune… PPO at scale”). 7B base에 RLHF를 하면 4×14GB ≈ 56GB가 단순 가중치 메모리 (gradient·optimizer state 별도). frontier lab 바깥에선 사실상 불가능.
- 학습 불안정: KL coefficient β·learning rate·rollout 크기 등 hyperparameter 민감도가 높아 같은 코드를 다른 팀이 돌려도 reward graph가 발산.
- reward model 별도 학습 비용: preference 데이터로 reward model을 먼저 학습해야 RL 단계에 진입.
DPO (Rafailov 2023)가 깨뜨린 한계: KL-제약 reward 최적화의 closed-form solution을 유도해 reward model·RL 단계를 통째로 제거. 같은 preference triplet으로 policy를 직접 학습. 메모리는 policy + reference 2개로 50% 절감, 구현은 cross-entropy 변형 한 줄. 단 RL을 빼고 supervised로 풀어낸 대가로 verbosity bias(긴 응답 선호)가 본질적으로 따라붙음 — SimPO·SamPO·R-DPO 등 변형 라인이 이 한계를 다시 풀고 있다 (Park 2024 disentangling length, Lu 2024 SamPO).
GRPO (Shao 2024, arXiv:2402.03300)가 깨뜨린 한계: 다시 RL이 필요한 reasoning 영역(수학·코드)에 PPO를 쓰려면 critic value model이 또 부담. GRPO는 같은 prompt에 N개 응답을 뽑아 그룹 평균을 baseline으로 써서 critic 자체를 삭제. 메모리 ~50% 절감 (HuggingFace, “Understanding GRPO” — “training a single model instead of two models. … cutting memory usage approximately in half”). 이 절감분이 DeepSeek-R1 학습에서 671B MoE에 RL을 돌릴 수 있게 한 결정적 마진이었다.
이 토픽이 사라지면 무엇이 깨지는가: base 모델만 배포하면 (1) 사용자가 “JSON으로 답해”라고 해도 무시, (2) “폭탄 만드는 법” 요청에 응답, (3) reasoning 모델 (o1·R1)이 존재하지 않음. SFT는 (1)을, 선호 정렬은 (2)를, RLVR/GRPO는 (3)을 푼다. 세 단계가 푸는 한계가 각각 다르므로 통합해서 다룬다.
3. 핵심 개념
섹션 제목: “3. 핵심 개념”3.1 Post-training Pipeline (2025 표준)
섹션 제목: “3.1 Post-training Pipeline (2025 표준)”Base model (pretraining 후) ↓ SFT (instruction tuning, 1~100K 샘플)SFT model ↓ Preference alignment (DPO/RLHF/KTO/ORPO/GRPO)Aligned model ↓ (선택) Reasoning post-training (RLVR with verifiable rewards)Reasoning model (o1·R1 류)각 단계마다 데이터·비용·기법이 달라진다.
3.2 SFT (Supervised Fine-Tuning)
섹션 제목: “3.2 SFT (Supervised Fine-Tuning)”(instruction, response) 쌍으로 next-token loss 학습. (L11-30 §3.1)
- 데이터 형식:
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]} - 데이터 양: 1K~100K 샘플 (도메인 fine-tune은 ~10K로도 충분)
- 데이터 품질이 핵심: LIMA paper(2023) — 단 1K 고품질 샘플로도 강한 SFT 가능
- 운영 표준 도구: HuggingFace TRL
SFTTrainer, axolotl, LLaMA-Factory, Unsloth, Together fine-tune API - catastrophic forgetting: 일반 능력 손실 위험. general data replay (10~30% 일반 데이터 mix)로 대응
- NEFTune (Jain 2023, arXiv:2310.05914): SFT 시 embedding에 균등 noise(α=5
15) 주입. AlpacaEval에서 +510%p 보고. 저비용·고효과 - Rejection Sampling Fine-Tuning (RFT/STaR): 모델이 자기 응답 N개 생성 → 정답인 것만 SFT 데이터로. R1·Llama 3 post-training에 사용
3.3 PEFT — LoRA / QLoRA / DoRA
섹션 제목: “3.3 PEFT — LoRA / QLoRA / DoRA”전체 가중치를 학습하는 대신 소수의 추가 파라미터만 학습 (L11-40 §3.9 참고).
| 기법 | 메모리 절감 | 품질 | 비고 |
|---|---|---|---|
| LoRA | 4~10× | full FT 90~100% | rank=16~32 표준 |
| QLoRA | 8~16× (4-bit base) | full FT 95~100% | NF4 + double quantization |
| DoRA | LoRA와 비슷 | LoRA보다 | direction·magnitude 분리 |
| rsLoRA | LoRA와 비슷 | rank↑ 시 LoRA보다 안정 | rank-stabilized |
| LoRA-FA | LoRA보다 50% ↓ | 일부 손실 | A 행렬 freezing |
| Adapter | LoRA와 비슷 | LoRA보다 약함 | 옛날 방식 |
target_modules (LLaMA류 표준):
- 안전한 default:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj(7개) - rank: 8(부족) / 16
32(표준) / 64128(품질↑·메모리↑) - alpha: 보통
2 × rank
한국어·도메인 fine-tune 권장: Unsloth + QLoRA + r=16~32 + 7 target modules.
3.4 RLHF (Reinforcement Learning from Human Feedback)
섹션 제목: “3.4 RLHF (Reinforcement Learning from Human Feedback)”InstructGPT (Ouyang 2022)에서 시작된 표준. 3단계.
1. SFT: instruction tuning (위 §3.2)2. Reward model 학습: - 데이터: (prompt, chosen, rejected) preference triplet - 손실: pairwise preference (Bradley-Terry)3. PPO로 SFT 모델 fine-tune: - 보상 = reward model 점수 - β × KL(π || π_ref) - reference model과의 KL이 너무 크면 reward hacking- 장점: 코드·수학·복잡 reasoning에서 DPO보다 우위 보고도 있음 (arXiv:2404.10719)
- 단점: 4개 모델 동시 메모리 (policy, reference, reward, value), 학습 불안정, 비용
- 정량 예: 7B base 기준 4×14GB ≈ 56GB가 단순 weight 메모리. fp16 gradient·Adam state 포함 시 multi-GPU 필수
- Wolfe 2024 PPO for LLMs: “barrier to entry for PPO is high… only a small number of groups have sufficient compute resources to… obtain a working PPO implementation at scale”
- 깨지는 조건 (Inversion): KL coefficient β를 잘못 잡으면 (작으면) reward hacking으로 응답이 짧아지고 거절률 ↑, (크면) reference에 묶여 학습 자체가 안 일어남. 같은 코드를 다른 팀이 돌려도 reward curve가 갈리는 게 PPO의 특징
- 운영 도구: TRL
PPOTrainer, OpenRLHF, veRL
3.5 DPO (Direct Preference Optimization)
섹션 제목: “3.5 DPO (Direct Preference Optimization)”Rafailov et al. (2023, arXiv:2305.18290) — RL 단계 없이 closed-form으로 같은 효과.
Loss(DPO) = -log σ(β · [log(π(y_w|x)/π_ref(y_w|x)) - log(π(y_l|x)/π_ref(y_l|x))])
y_w: chosen (선호되는 답)y_l: rejected (덜 선호)β: KL 강도 (0.1~0.5 표준)- 장점: 구현 단순, RL 단계 제거 → ~50% 메모리 절감, 학습 안정
- 단점:
- Verbosity bias (정량): DPO 후 평균 응답 길이가 SFT 대비 +30~50%까지 증가하는 게 일반 패턴. reward와 length 사이 강한 양의 상관이 생긴다는 게 ICLR 2025 실증 (Park 2024, “Disentangling Length from Quality in DPO” — “removing length normalization results in a strong positive correlation between reward and response length”). 대응: SimPO (length-normalized log-prob), SamPO (KL down-sampling), R-DPO (pairwise length penalty)
- OOD 응답 exploit: preference 분포 밖 응답에서 망가짐 (silent failure — 학습 loss는 떨어지는데 gold dataset 평가가 하락)
- β 튜닝 필수: 작으면 reward hacking, 크면 학습 안 됨. β=0.1이 표준 시작점이지만 데이터셋·도메인마다 0.3~0.5까지 튜닝 필요
- 2024+ DPO 변형 비교 (reference-free 여부 / paired 여부 / 핵심 변경):
| 기법 | reference 필요 | paired 필요 | 핵심 |
|---|---|---|---|
| DPO | yes | yes | log-sigmoid preference loss |
| IPO | yes | yes | log-sigmoid → squared loss. overfitting 완화 |
| CPO | no | yes | reference 제거, contrastive style |
| simPO | no | yes | length-normalized reward + target margin γ |
| ORPO | no | yes | SFT + preference 단일 단계 통합 |
| KTO | yes | no | binary feedback만 (chosen/rejected 둘 다 안 필요) |
| BCO | yes | no | binary classifier + reward shift 추정 |
- Iterative DPO / Online DPO (Pang 2024, Self-Rewarding Llama 2024): DPO를 한 번이 아니라 model 갱신 후 새 preference 데이터로 반복. SPIN(self-play)도 같은 계열
3.6 GRPO (Group Relative Policy Optimization)
섹션 제목: “3.6 GRPO (Group Relative Policy Optimization)”DeepSeekMath/R1 (2024-2025)에서 도입. reward model 없이 그룹 상대 advantage로 RL.
1. 같은 prompt에 N개 응답 생성 (group)2. 각 응답의 reward 계산 (verifiable: 수학·코드 정답)3. group 내 평균을 baseline → relative advantage4. PPO 스타일 정책 업데이트 (단 critic·value model 없음)- 메모리 절감: PPO 대비 ~50% (critic·value model 제거)
- R1-Zero: SFT 없이 RL만으로 reasoning 능력 emergence — 단 readability·language-mixing 문제로 프로덕션 불가 판정
- DeepSeek-R1 실제 pipeline (4단계):
- Cold-start SFT (수천 reasoning 샘플)
- RL with GRPO (verifiable rewards)
- Rejection sampling SFT (RL 모델 출력 + 일반 데이터 추가)
- 2차 RL (helpfulness·harmlessness 정렬)
- GRPO 변형: Dr. GRPO (length bias 수정), DAPO (ByteDance Seed 2025), GRPO++ — 활발히 진화 중
- 운영 영향: open-source reasoning 모델의 후학습 표준 후보. DeepSeek 시리즈는 GRPO 명시, Llama 4·Qwen-3·기타는 RL 알고리즘 비공개가 흔함
3.6.1 R1-Distill — 작은 모델은 RL보다 distillation이 효율적
섹션 제목: “3.6.1 R1-Distill — 작은 모델은 RL보다 distillation이 효율적”DeepSeek-R1 paper의 가장 중요한 운영 인사이트.
- R1-Distill 시리즈: R1의 reasoning trace를 SFT-only로 distill한 1.5B/7B/8B/14B/32B/70B 모델
- 결론: 작은 모델(<32B)에 직접 RL을 시도하는 것보다 큰 모델에서 RL → SFT distillation이 더 효율적
- 운영 가치: 자기 도메인 fine-tune에서 “작은 모델로 RL 직접 시도”는 비추천. 큰 reasoning 모델 응답으로 SFT가 더 안정·저렴
- 비용 비교: 32B 직접 GRPO 학습 vs R1-Distill-Qwen-32B → 후자가 ~10× 저렴, 품질 유사
3.6.2 Model Merging — 여러 fine-tune 결과 결합
섹션 제목: “3.6.2 Model Merging — 여러 fine-tune 결과 결합”운영자가 외주 LoRA 결과나 여러 도메인 모델을 합칠 때 표준 도구.
- Linear / SLERP: 단순 평균 또는 구면 보간. 가장 단순
- TIES (Yadav 2023, arXiv:2306.01708): trim·elect·disjoint merge. 충돌 해결
- DARE (Yu 2023, arXiv:2311.03099): drop and rescale. random pruning + rescaling
- Model Soups (Wortsman 2022): 여러 hyperparameter run 평균이 단일 best run보다 강함
- Evolutionary Merge (Sakana AI 2024): 진화 알고리즘으로 merge weight 최적화
- 운영 표준 도구: MergeKit (arcee-ai),
mergekit-yaml설정 파일로 재현 가능 - 사용 사례: 한국어 LoRA + 코드 LoRA + 의학 LoRA를 base에 머지해 멀티 도메인 모델
3.7 RLVR (Reinforcement Learning with Verifiable Rewards)
섹션 제목: “3.7 RLVR (Reinforcement Learning with Verifiable Rewards)”reasoning 모델 시대의 새 패러다임 — 사람 선호 대신 검증 가능한 보상.
- 검증 가능한 영역: 수학(정답), 코드(테스트 통과), 정형 추론(체크 가능한 결론)
- 장점: judge bias 회피, scalable, 학습 안정
- 단점: 검증 가능한 영역 한정. 대화·창작에는 부적합
- 하이브리드: RLHF + RLVR 결합이 frontier 모델 표준
- 사례: o1, DeepSeek-R1, Llama 4 reasoning, Qwen-3 reasoning
3.8 RL이 아닌 정렬 — Constitutional AI, RLAIF
섹션 제목: “3.8 RL이 아닌 정렬 — Constitutional AI, RLAIF”- Constitutional AI (Anthropic 2022): 사람 대신 AI가 원칙(헌법)에 따라 평가. RLHF의 reward model을 AI가 학습
- RLAIF: RL from AI Feedback. 사람 데이터 없이 AI judge로 alignment
- 운영 가치: 사람 annotator 비용 절감, scalable. Claude 시리즈가 대표
3.9 Alignment의 위험과 silent failure
섹션 제목: “3.9 Alignment의 위험과 silent failure”운영자가 가장 자주 만나는 문제.
- Reward hacking: 모델이 reward 함수를 exploit (예: “I cannot help” 같은 짧은 거절을 학습해 안전 점수만 올림)
- Refusal over-trigger: 너무 자주 거절. 정상 질문에도 “도와드릴 수 없습니다” — UX 폭락
- Sycophancy: 사용자에게 동조 (사실보다 user 의견 따름)
- Verbosity inflation: DPO 후 응답이 길어짐
- Catastrophic forgetting: SFT/post-training 후 일반 능력 (수학·코드·다국어) 폭락
- Mode collapse: 답변 다양성 감소
- Jailbreak 취약: alignment를 우회하는 prompt 패턴 (DAN, role-play 등)
- Sleeper agents (Anthropic 2024): 학습 시 숨어 있다가 trigger 시 발현되는 백도어
디버깅·복구 시그널
섹션 제목: “디버깅·복구 시그널”| 증상 | 원인 | 대응 |
|---|---|---|
| 답변이 짧고 무성의 | reward hacking | β↑(KL 강하게), reward 다양화 |
| 정상 질문 거절 | refusal overtrigger | helpfulness 데이터 추가 학습 |
| 사용자 의견에 무조건 동조 | sycophancy bias | adversarial preference 데이터, principled reasoning |
| 일반 능력 폭락 | catastrophic forget | replay buffer, LoRA 사용 (base 보존), 학습 단축 |
| 응답 다양성 감소 | mode collapse | temperature↑, top-p 조정, n-best diversity penalty |
| 특정 prompt에 jailbreak | alignment 미흡 | red-team 데이터 추가 학습, 입력 sanitization, output guard |
3.10 데이터 품질 — Preference 데이터
섹션 제목: “3.10 데이터 품질 — Preference 데이터”post-training 품질의 50% 이상이 데이터 품질에서 결정.
- 인간 annotator: 비싸고 느림. 시간당
$1050, 일관성 (Cohen’s kappa) 0.6+ 요구 (L11-80 §3.8) - AI annotator (RLAIF): 빠르고 싸지만 judge bias
- 데이터 mixture:
- General helpfulness (Anthropic HH-RLHF, OpenAssistant)
- Domain-specific (자기 도메인 preference)
- Safety / refusal (HarmBench, BeaverTails)
- Multilingual (한국어 등)
- 공개 데이터셋: UltraFeedback, OpenHermes-2.5, Anthropic HH-RLHF, ShareGPT
3.11 비용 모델 (2025 기준)
섹션 제목: “3.11 비용 모델 (2025 기준)”| 단계 | 비용 자릿수 | 데이터 | 시간 |
|---|---|---|---|
| Full SFT | $K~$M | 1K~100K 샘플 | 수시간~수일 |
| LoRA SFT | $십~수천 | 1K~10K 샘플 | 수십분 |
| QLoRA SFT | $수~수백 | 100~5K 샘플 | 수시간 (단일 GPU) |
| DPO (LoRA) | $십~수천 | 1K~10K preference | 수시간 |
| RLHF (PPO) | DPO 대비 ~2× ↑ | 같음 + reward model | 더 길고 불안정 |
| GRPO | RLHF 대비 ~50% ↓ | verifiable rewards | 학습 안정 |
운영 시사: 자체 post-training은 LoRA + DPO 또는 GRPO가 합리적. full RLHF는 frontier lab 영역.
3.12 Fine-tune vs RAG vs Prompt 결정 (재방문)
섹션 제목: “3.12 Fine-tune vs RAG vs Prompt 결정 (재방문)”L11-30 §3.5에서 다룬 결정 프레임을 post-training 시점으로 정밀화. 정량 임계값으로 분기한다 (추정치는 운영 경험치 기반, 도메인마다 ±50% 변동).
- Fine-tune이 적합한 경우:
- 도메인 preference·instruction 데이터가 ≥ 1K (SFT) 또는 ≥ 5K (DPO) 확보 가능, 그리고 6개월 이상 안정적인 행동 요구사항
- 출력 포맷이 prompt만으로 안정 안 됨 (예: 100회 호출 중 JSON parse 실패 5+회)
- latency 예산이 prompt에 10K+ 토큰을 못 실음 (예: p95 < 500ms 요구)
- 실패 사례 (Inversion): preference 데이터 < 500개로 DPO 시도 → reward hacking으로 응답 길이 -40%, refusal +25% 발생 (silent failure). 대응: SFT까지만 하고 RAG로 우회
- RAG가 적합한 경우:
- 지식 갱신 빈도가 주 단위 이하 (사내 문서·정책)
- 출처 인용·감사 추적 필요 (법무·금융·의료)
- 실패 사례: RAG로 톤·포맷까지 강제하려다 chunk 사이 응답 일관성 깨짐 → SFT 결합 필요
- Prompt만으로 충분한 경우:
- 일반적 작업 (요약, 번역, 일반 코딩) — frontier 모델이 이미 잘 처리
- 데이터 < 500개, 또는 요구사항이 분기마다 바뀌는 prototype
- 실패 사례: prompt가 8K 토큰을 넘기 시작하면 (1) 비용 선형 증가 (2) 모델이 중간 instruction을 무시 (lost-in-the-middle) → SFT로 행동을 굳혀야 함
일반 매핑 적용 (Cross-pollination): 이 결정 트리는 §3.16의 “기본 행동 + 정책 정렬” 매핑과 동형이다 — 프런트엔드의 base CSS + theme override + inline style 결정과 같은 구조. 변경 빈도·범위·이탈 비용으로 분기한다는 점에서 동일하며, fine-tune은 “theme override 배포” 비용에 해당한다.
3.13 Reasoning Post-training (2024-2026)
섹션 제목: “3.13 Reasoning Post-training (2024-2026)”o1·DeepSeek-R1·Claude reasoning 시리즈의 새 패러다임.
- 핵심: long chain-of-thought 생성 능력을 RL로 학습
- 데이터: math/code의 verifiable rewards (RLVR)
- GRPO + 정답 reward: critic 없이 학습 안정
- Test-time compute scaling (L11-60 §3.11): inference 시 사고를 길게 → 품질↑
- 운영 영향: reasoning 모델은 token 비용이 일반 모델의 5~20×, latency도 길지만 정확도 큰 차이
3.14 깨지는 조건 정량 표 (운영 결정용)
섹션 제목: “3.14 깨지는 조건 정량 표 (운영 결정용)”| 기법 | 효과 발휘 범위 | 깨지는 조건 |
|---|---|---|
| LoRA r=16~32 | 일반 도메인 fine-tune | 코드·수학·복잡 reasoning → r=64+ 또는 full FT |
| QLoRA (4-bit) | 단일 GPU, 24GB 미만 | 70B+ 모델은 QLoRA로도 multi-GPU 필수 |
| DPO β=0.1 | preference 학습 강하게 | reward hacking 빈발 → β↑(0.3~0.5) |
| DPO β=0.5 | reference model에 가깝게 | 학습이 잘 안 됨 → β↓ |
| GRPO group N=8 | reasoning 학습 표준 | N<4면 baseline noise 큼, N>16은 비용↑ |
| Constitutional AI | scalable alignment | 도메인 specific principle 작성 어려움 |
| Model merging (TIES) | 충돌 해결, 다중 도메인 | 단순 평균/SLERP가 충분한 경우 TIES 오버헤드만 |
| DARE | random pruning 후 rescale | 중요 weight 보존 보장 X — 검증 필수 |
| R1-Distill | 작은 모델(<32B) reasoning | 큰 모델은 직접 RL이 가치 |
3.15 운영 silent failure 정량 탐지 시그널
섹션 제목: “3.15 운영 silent failure 정량 탐지 시그널”| 증상 | 정량 시그널 | 원인 | 복구 |
|---|---|---|---|
| Reward hacking | 평균 응답 길이 50%+ ↓, 거절 ↑ | β 너무 작음 | β↑(0.1→0.3), reward 다양화 |
| Verbosity inflation | 평균 응답 길이 30%+ ↑ | DPO 본질 | length-controlled, simPO |
| Catastrophic forgetting | MMLU·HumanEval 30%+ ↓ | full fine-tune | LoRA로 base 보존, replay 30%+ |
| Mode collapse | 답변 entropy 50%+ ↓ | over-optimization | temperature↑, KL↑ |
| Refusal overtrigger | refusal rate 30%+ ↑ | safety 과학습 | helpfulness 데이터 추가 |
| Sycophancy | user 의견 반복 비율 ↑ | RLHF 일반 함정 | adversarial preference |
| Jailbreak 취약 | red-team 통과율 50%+ | alignment 부족 | red-team fine-tune, output filter |
3.16 Post-training의 일반 매핑 (Transferable Pattern)
섹션 제목: “3.16 Post-training의 일반 매핑 (Transferable Pattern)”post-training의 핵심 — “base 모델 + 행동 정렬 + verifiable reward” — 는 다른 시스템에서도 반복.
| Post-training 구성요소 | 일반 시스템 매핑 |
|---|---|
| Base model + SFT | base library + customization layer |
| LoRA (rank-r adapter) | plugin·extension·middleware |
| Reference model (KL 제약) | original baseline·circuit breaker |
| Reward model | quality metric·linter·CI gate |
| RLHF (사람 선호) | A/B test 사용자 피드백 loop |
| RLVR (verifiable rewards) | unit test·integration test 자동화 |
| Model merging (TIES, DARE) | code merge·dependency resolution·feature toggle |
| Catastrophic forgetting | regression·deprecation |
일반 공식: “기본 행동 + 정책 정렬 + 검증 + 회귀 방어”의 4단계가 ML·소프트웨어·시스템 전반에 공통이다.
운영 시나리오 — DPO β sweep + alignment 회귀 검증 (예시)
섹션 제목: “운영 시나리오 — DPO β sweep + alignment 회귀 검증 (예시)”상황: 한국어 챗봇 SFT 끝남. preference 1K로 DPO 적용 검토도구: TRL DPOTrainer, gold 100, judge=Claude Sonnet
β sweep: - β=0.1: 평균 응답 길이 -45% (reward hacking 의심), refusal +20% - β=0.3: 평균 응답 길이 +5%, refusal stable, gold 점수 +12% - β=0.5: 평균 응답 길이 +15%, gold 점수 -3% (학습 부족)
선택: β=0.3.대안 비선택: β=0.1은 reward hacking, β=0.5는 학습 미진.
silent failure 모니터링: - 평균 응답 길이 ↓ 50%+ → reward hacking → β↑ - MMLU 한국어 폭락 → catastrophic forgetting → replay buffer↑ - jailbreak 통과율 30%+ → red-team fine-tune
결과 (가상): gold 점수 65 → 77, refusal 8% → 11% (acceptable).§3.5 DPO + §3.14 깨지는 조건 + §3.15 silent failure 표 모두 적용.
4. 실무에서 어디에 쓰이나
섹션 제목: “4. 실무에서 어디에 쓰이나”- 자체 도메인 LLM fine-tune (의료·법률·금융·코드)
- 챗봇 톤·페르소나 정렬
- 한국어 능력 강화 (Llama 3 한국어 fine-tune)
- safety·refusal 튜닝
- structured output 강제 (JSON·SQL)
- agent의 tool calling 정확도 향상
5. 현재 내 업무와 연결점
섹션 제목: “5. 현재 내 업무와 연결점”플랫폼 엔지니어가 LLM 운영할 때 post-training 직관이 다음에 도움 된다.
- fine-tune 결정: 도메인 데이터 5K+ + 행동·포맷 학습 필요 → QLoRA + DPO. 자주 갱신되는 지식 → RAG
- 외주 fine-tuning 결과 검증: gold dataset (L11-80) + bias 감지로 catastrophic forgetting·refusal overtrigger 식별
- 공개 모델 비교: Llama 4 vs Qwen-3 vs Mistral 등 후학습 데이터·기법 차이 이해
- reasoning 모델 도입 결정: o1·R1·Claude thinking 사용 시 token 비용 5~20× 증가 → 작업이 reasoning 가치가 있는지 평가
- safety audit: jailbreak·prompt injection 테스트, alignment 회귀 감지
6. 자주 헷갈리는 개념 비교
섹션 제목: “6. 자주 헷갈리는 개념 비교”| 개념 A | 개념 B | 차이점 |
|---|---|---|
| Pre-training | Post-training | scratch 학습 vs 사람 의도 정렬 |
| SFT | RLHF/DPO | 정답 모방 vs 선호 정렬. 보통 SFT 후 DPO 순서 |
| RLHF | DPO | RL + reward model vs closed-form preference loss |
| DPO | KTO | paired (chosen, rejected) vs binary feedback |
| DPO | ORPO | 별도 SFT + DPO vs 단일 단계 통합 |
| PPO | GRPO | critic 모델 사용 vs group 평균 baseline |
| RLHF | RLAIF | 사람 reward vs AI reward |
| RLHF | RLVR | 선호 reward vs 검증 가능한 정답 reward |
| LoRA | QLoRA | 16-bit base vs 4-bit base + LoRA |
| LoRA | DoRA | low-rank vs +direction·magnitude 분해 |
| Full FT | LoRA | 모든 가중치 vs 일부 rank-r adapter |
| Catastrophic forgetting | Sycophancy | 일반 능력 손실 vs 사용자 동조 |
7. 체크리스트
섹션 제목: “7. 체크리스트”- Post-training 3단계 (SFT → preference alignment → reasoning RL)를 설명할 수 있다
- LoRA target_modules 7개와 rank·alpha 표준값을 말할 수 있다
- RLHF와 DPO의 차이를 RL 단계 유무·메모리 측면에서 설명할 수 있다
- DPO의 β 파라미터 trade-off (작으면 reward hacking, 크면 학습 안 됨)를 설명할 수 있다
- GRPO가 critic 모델을 제거해 메모리를 줄이는 메커니즘을 설명할 수 있다
- RLVR이 reasoning 모델 후학습의 표준이 된 이유를 verifiable rewards 관점에서 말할 수 있다
- Catastrophic forgetting의 원인과 replay·LoRA 대응을 설명할 수 있다
- Reward hacking, refusal overtrigger, sycophancy, mode collapse 4종 silent failure를 식별·대응할 수 있다
8. 추가 학습 키워드
섹션 제목: “8. 추가 학습 키워드”- PEFT: LoRA, QLoRA, DoRA, rsLoRA, LoRA-FA, prefix tuning, IA³, AdaLoRA
- 선호 정렬: DPO, IPO, KTO, ORPO, simPO, BCO, RPO, GRPO, REINFORCE++
- RLHF 인프라: TRL, OpenRLHF, veRL, DeepSpeed-Chat, NeMo Aligner
- Constitutional: CAI, RLAIF, debate, weak-to-strong supervision
- Reasoning post-training: GRPO, RLVR, RFT (Rejection Fine-Tuning), STaR, V-STaR
- Safety: red-teaming, adversarial robustness, sleeper agents, deceptive alignment
- 공개 데이터셋: UltraFeedback, Anthropic HH-RLHF, OpenAssistant, OpenHermes, BeaverTails
- 운영 도구: HuggingFace TRL, axolotl, LLaMA-Factory, Unsloth, Together fine-tune
9. 내가 직접 확인해볼 것
섹션 제목: “9. 내가 직접 확인해볼 것”LoRA·QLoRA 직접 학습
섹션 제목: “LoRA·QLoRA 직접 학습”- HuggingFace
trl.SFTTrainer+peft라이브러리로 1B 모델에 LoRA(r=16) SFT — 100~1000개 한국어 instruction 샘플로 - 같은 데이터에 QLoRA(4-bit) 학습 — 메모리·시간·결과 비교. Unsloth 사용 시
23× 빠름 -
target_modules=["q_proj","k_proj","v_proj","o_proj"]vs 7개 모두 — 학습 후 task 성능 비교
DPO 학습
섹션 제목: “DPO 학습”-
trl.DPOTrainer로 SFT 모델에 preference 데이터 1K~5K로 DPO 학습 - β를 0.1, 0.3, 0.5로 sweep — gold dataset (L11-80) 점수 변화 측정. 너무 작으면 reward hacking, 크면 학습 안 됨
- DPO 후 verbosity·refusal rate 변화 측정 (silent failure 감지)
Catastrophic forgetting 진단
섹션 제목: “Catastrophic forgetting 진단”- SFT 전후로 MMLU·HumanEval·한국어 능력 비교 — 일반 능력 폭락 여부
- replay 비율 0% / 30% 학습 비교 — replay가 forgetting 완화하는지
Reasoning 비교
섹션 제목: “Reasoning 비교”- 같은 수학 문제를 GPT-4o(일반)와 o1-mini(reasoning) 둘에 던져 정확도와 토큰 비용 비교 — reasoning 가치가 있는 영역인지 판단
결과가 예상과 다를 때
섹션 제목: “결과가 예상과 다를 때”- LoRA 학습 후 추론 결과가 깨짐 → tokenizer mismatch (L11-70 §3.4) 또는 chat template 누락. base 모델의 tokenizer/template 일관 사용
- DPO 후 응답이 너무 길어짐 → verbosity bias. AlpacaEval LC로 정규화하거나 length penalty 적용
- GRPO 학습이 발산 → group 크기↑(N=8 → 16), reward 정규화 점검
- catastrophic forgetting 심각 → LoRA로 전환 (base 보존), replay 비율↑(50%까지), 학습 epoch 단축
10. 5줄 요약
섹션 제목: “10. 5줄 요약”- Post-training은 base 모델을 SFT → 선호 정렬(DPO/RLHF/GRPO) → reasoning RL의 3단계로 사람 의도에 맞게 조정한다.
- LoRA/QLoRA/DoRA가 PEFT 표준이고 r=16~32 + 7 target modules + Unsloth가 운영 디폴트.
- DPO가 RLHF 대비 비용·구현 단순성으로 표준이 됐고, GRPO/RLVR가 reasoning 후학습 표준이다.
- Reward hacking·refusal overtrigger·sycophancy·catastrophic forgetting이 alignment의 4대 silent failure다.
- fine-tune vs RAG vs prompt 결정은 행동·지식·갱신 빈도·비용으로 분기하며, 데이터 품질이 결과의 50%를 결정한다.
11. 출처
섹션 제목: “11. 출처”- Ouyang et al., InstructGPT / RLHF (arXiv:2203.02155)
- Rafailov et al., DPO (arXiv:2305.18290)
- Zhou et al., LIMA (arXiv:2305.11206)
- Hu et al., LoRA (arXiv:2106.09685)
- Dettmers et al., QLoRA (arXiv:2305.14314)
- Liu et al., DoRA (arXiv:2402.09353)
- Ethayarajh et al., KTO (arXiv:2402.01306)
- Hong et al., ORPO (arXiv:2403.07691)
- Shao et al., DeepSeekMath / GRPO (arXiv:2402.03300)
- DeepSeek-R1 / RL on reasoning (arXiv:2501.12948)
- Bai et al., Constitutional AI (arXiv:2212.08073)
- Lee et al., RLAIF (arXiv:2309.00267)
- Hubinger et al., Sleeper Agents (arXiv:2401.05566)
- Xu et al., Is DPO Superior to PPO? (arXiv:2404.10719)
- HuggingFace TRL docs
- Unsloth documentation
- Meng et al., simPO (arXiv:2405.14734)
- Xu et al., CPO (arXiv:2401.08417)
- Pang et al., Iterative DPO (arXiv:2402.10193)
- Jain et al., NEFTune (arXiv:2310.05914)
- Yadav et al., TIES-Merging (arXiv:2306.01708)
- Yu et al., DARE (arXiv:2311.03099)
- arcee-ai MergeKit
- Wortsman et al., Model Soups (arXiv:2203.05482)
- Wolfe, “PPO for LLMs: A Guide for Normal People” (2024)
- HuggingFace, “Understanding GRPO: PPO without the critic”
- Park et al., “Disentangling Length from Quality in DPO” (ACL Findings 2024)
- Lu et al., SamPO — Down-Sampled KL Divergence (arXiv:2406.10957)
최종 수정: 2026-04-26