콘텐츠로 이동

Post-training과 Alignment

분류: Layer 11 - AI 기초 & 머신러닝 | 선수지식: L11-30 (ML 패러다임), L11-40 (신경망), L11-50 (트랜스포머), L11-60 (Pre-training), L11-80 (평가)

Post-training과 Alignment — 학습 신호, Offline/Online, Reward

섹션 제목: “Post-training과 Alignment — 학습 신호, Offline/Online, Reward”

Post-training은 사전학습된 base 모델을 목표 작업·사람의 선호·안전 정책에 맞게 조정하는 단계다. SFT(Supervised Fine-Tuning, 모범 답안을 따라 하게 만드는 지도 fine-tuning), 선호 최적화, scalar reward를 이용한 online RL(Reinforcement Learning, 강화학습) 등을 필요에 따라 조합한다. PEFT(Parameter-Efficient Fine-Tuning) 는 이들과 경쟁하는 별도 정렬 단계가 아니라, 선택한 목적함수를 적은 학습 파라미터로 최적화하는 직교적인 구현 선택이다.

처음 읽을 때는 알고리즘 이름을 연대순으로 외우지 말고 세 축을 분리한다.

  1. 학습 신호: demonstration, preference, scalar reward 중 무엇을 주는가?
  2. 데이터 시점: 현재 policy가 만든 응답으로 갱신하는 online인가, 미리 고정한 데이터로 학습하는 offline인가?
  3. reward 검증 가능성: 사람·AI의 주관적 판단을 학습한 점수인가, 정답·테스트·환경 상태로 재현 가능하게 검증하는 점수인가?

첫 회독에서는 알고리즘 이름을 한꺼번에 외우지 않는다. 먼저 모범 응답을 보여 주는 단계, 고정된 선호 데이터를 비교하는 단계, 현재 policy의 응답을 reward로 갱신하는 단계를 구분한다. 적은 파라미터만 학습하는 구현 선택은 이 학습 신호들과 별도 축으로 둔다. 각 약어는 아래에서 해당 신호가 실제로 등장할 때 나눠 정의한다.

이 문서의 핵심 질문은 하나다.

base 모델이 이미 똑똑한데도,
왜 다시 학습해야 하고,
어떤 학습 신호를 넣으면 어떤 행동이 바뀌는가?
  • base 모델 ≠ 자동으로 제품 요구에 맞는 모델: 지시 형식·안전 경계·도메인 행동이 부족하면 그 행동을 겨냥한 post-training이 필요할 수 있다
  • 운영자의 fine-tuning 결정: 자체 fine-tune 할지, API 사용할지, RAG로 우회할지 결정의 토대
  • 병렬 선택지의 확대: 고정된 선호 데이터, 현재 policy를 이용한 online 탐색, 검증 가능한 reward는 서로 다른 신호와 비용을 가지므로 목적에 맞는 방법군을 고른다
  • alignment 위험: jailbreak·prompt injection·refusal 과잉 등 운영 silent failure의 출처
  • 비용 모델: 파라미터 업데이트, rollout 생성, reward 계산, verifier 실행이 각각 비용을 만든다. 알고리즘 이름만으로 총비용을 고정할 수 없다

2.5 선행 기술의 한계 — 하나의 loss로 모든 행동을 가르칠 수 없는 이유

섹션 제목: “2.5 선행 기술의 한계 — 하나의 loss로 모든 행동을 가르칠 수 없는 이유”

선행 단계인 pretraining만 한 base 모델은 다음 토큰 분포를 잘 맞추지만, “주어진 지시를 따른다”, “거절 경계를 지킨다”, “검산 가능한 답을 탐색한다” 같은 행동을 직접 목표로 삼지 않는다. InstructGPT (Ouyang et al., 2022)는 labeler demonstration으로 SFT한 뒤, 사람의 응답 순위를 reward model로 학습하고 PPO(Proximal Policy Optimization, value estimate를 쓰고 한 번의 policy update가 지나치게 커지지 않게 제한하는 방식) 로 policy를 갱신했다. 이 파이프라인은 중요한 기준점이지만 모든 post-training이 반드시 통과하는 고정 3단계는 아니다.

그 뒤의 방법들은 하나가 앞 방법을 폐기한 진화 계보라기보다, 어떤 신호를 어떤 비용으로 이용할지에 대한 병렬 해법이다.

  • Demonstration이 있으면 SFT: 목표 응답을 token 단위로 직접 모방한다. 탐색 없이 형식·말투·도구 호출 예시를 가르치기 쉽지만, 보이지 않은 응답 사이의 상대 선호를 직접 표현하지는 않는다.
  • 고정된 선호 라벨이 있으면 offline preference optimization: DPO(Direct Preference Optimization)는 pairwise chosen/rejected 선호를 직접 학습한다. KTO(Kahneman-Tversky Optimization)는 pair가 없는 desirable/undesirable binary feedback을 쓰고, ORPO(Odds Ratio Preference Optimization)는 모범 응답의 SFT loss와 pairwise 선호 penalty를 한 목적함수에 결합한다. Rollout 중 reward model을 호출하지 않아 단순하지만, 데이터가 현재 policy의 실패를 덮지 못하면 off-policy 분포 차이가 남는다.
  • 현재 policy 응답을 채점할 수 있으면 online optimization: PPO와 함께 RLOO(REINFORCE Leave-One-Out)는 같은 prompt의 다른 completion reward를 baseline으로 써 별도 critic을 피하고, GRPO(Group Relative Policy Optimization)는 한 prompt의 응답 group 안에서 reward를 상대화해 advantage를 만든다. 새 실패를 즉시 탐색할 수 있지만 rollout과 reward 계산이 필요하고, reward가 잘못되면 그 빈틈도 즉시 학습한다.
  • 정답을 재현 가능하게 확인할 수 있으면 RLVR(Reinforcement Learning with Verifiable Rewards): 수학 정답, 코드 테스트, sandbox 상태 같은 verifier를 online optimizer의 reward로 쓴다. RLVR은 optimizer 이름이 아니며 GRPO만의 기능도 아니다. PPO·RLOO 등과도 결합할 수 있다.

RLHF(Reinforcement Learning from Human Feedback, 사람 피드백을 이용한 강화학습)라는 말의 경계도 주의한다. 좁게는 사람 선호 → reward model → PPO 파이프라인을 가리키지만, 넓게는 사람 feedback을 이용하는 정렬 전체를 뜻하기도 한다. DPO 원 논문도 표준 RLHF 목적을 classification loss로 푼다고 설명한다. 따라서 RLHF vs DPO를 비교할 때는 RLHF가 feedback 출처인지, reward-model-plus-RL 구현인지 먼저 명시해야 한다.

반례: DPO는 offline, GRPO는 verifiable reward라고 한 줄로 외우면 틀린다. Online DPO는 현재 policy의 응답을 새로 비교해 갱신하고, GRPO는 학습된 reward model도 받을 수 있다. offline/online은 알고리즘 이름만이 아니라 학습 중 현재 policy의 응답과 feedback을 새로 만드는지로 판정하고, RLVR 여부는 reward를 독립적으로 검증할 수 있는지로 판정한다.

이 토픽이 사라지면 무엇이 깨지는가: base 모델만 배포하면 지시 형식, 안전 경계, 검증 가능한 문제 해결이 제품 요구와 어긋날 수 있다. 그러나 이를 SFT → DPO → GRPO로 자동 연결하면 데이터가 없는 단계를 억지로 추가하거나, verifier가 없는 주관적 과제에 RLVR을 적용하게 된다. 먼저 바꿀 행동과 사용 가능한 신호를 정의해야 한다.

2026-07-14에 확인한 Hugging Face TRL(Transformer Reinforcement Learning) main taxonomy는 GRPO·RLOO·Online DPO·PPO를 online, SFT·DPO·KTO·ORPO를 offline으로 병렬 분류한다. 여기서 main은 개발 문서이고, 같은 페이지가 안내한 당시 최신 stable release는 별도의 v1.8.0이다. 아래 분류는 확인일의 main 상태를 요약한 것이므로 설치 버전의 지원 범위와 같다고 단정하지 않는다. 다음 표는 이 taxonomy에 학습 신호와 reward 검증 가능성 축을 더한 학습용 지도다.

방법군직접 받는 학습 신호데이터 시점reward 검증 가능성대표 실패 신호
SFT모범 응답 demonstration보통 offlinereward를 직접 쓰지 않음일반 능력 회귀, 포맷만 모방
DPO·ORPO같은 prompt의 chosen/rejected 선호쌍보통 offline선호 라벨의 품질에 의존길이·스타일 편향, 분포 밖 응답 취약
KTO응답별 desirable/undesirable binary signalofflinebinary 라벨의 품질에 의존클래스 불균형, 라벨 기준 불일치
PPO·RLOO·GRPO생성 응답마다 계산한 scalar rewardonline rolloutreward model도 verifier도 가능reward hacking, rollout 비용, 분산
Online DPO현재 policy 응답 사이의 갱신된 선호online feedbackannotator·judge의 신뢰도에 의존judge 편향, feedback 지연
RLVR과 결합한 online optimizer정답·테스트·환경이 계산한 scalar reward보통 online rollout높지만 verifier coverage에 한정허술한 테스트 exploit, 비검증 품질 저하
PEFT adapter 구현위 목적함수 중 하나목적함수에 따라 다름목적함수에 따라 다름adapter 용량·적용 위치 부족, 양자화 회귀

여기서 gold set은 학습 후 성능을 비교하는 고정 평가셋, reward model은 응답을 scalar 점수로 바꾸는 학습 모델, verifier는 정답·테스트·환경 규칙으로 점수를 재현하는 검사기다. reward hacking은 모델이 진짜 목표 대신 이 점수 함수의 빈틈을 이용하는 실패다.

목표 행동을 직접 보여줄 수 있는가?
└─ yes: demonstration으로 SFT 후보
응답의 좋고 나쁨을 비교하거나 binary label로 남길 수 있는가?
├─ 고정 데이터: DPO·KTO·ORPO 같은 offline 방법 후보
└─ 현재 policy 응답을 계속 채점: Online DPO 또는 online RL 후보
각 생성 응답에 scalar reward를 계산할 수 있는가?
├─ 학습 reward model·AI judge: PPO·RLOO·GRPO 후보
└─ 정답·테스트·환경 verifier: PPO·RLOO·GRPO + RLVR 후보

이 분기는 순서를 강제하지 않는다. 이미 instruction-following 모델을 도메인 선호에 맞추면 SFT 없이 preference 단계부터 시작할 수 있고, 좋은 demonstration만 충분하면 SFT에서 멈출 수도 있다. SFT 후 online RL을 하다가 검증된 좋은 trace를 다시 SFT 데이터로 증류하는 반복도 가능하다. 각 단계의 채택 여부는 이름이 아니라 추가된 평가 이득, 회귀, 총 학습 비용으로 결정한다.

SFT는 (instruction, response) 쌍으로 next-token loss를 학습하는 단계다. L11-30의 지도학습과 같은 구조지만, label이 spam/not spam 같은 class가 아니라 모범 답변 전체다.

등장한 문제: base 모델은 언어 패턴을 잘 알아도 “사용자 지시를 읽고 정해진 형식으로 답한다”는 행동을 자동으로 배우지 않는다. SFT는 좋은 답안을 많이 보여 주어 기본 응답 습관을 만든다.

작은 데이터 예시

{
"messages": [
{
"role": "user",
"content": "환불 정책을 고객에게 짧게 안내해줘. 반드시 JSON으로 답해."
},
{
"role": "assistant",
"content": "{\"summary\":\"구매 후 7일 이내 미사용 상품은 환불 가능합니다.\",\"next_action\":\"주문번호를 확인해 주세요.\"}"
}
]
}

이 샘플에서 모델은 “환불 정책 지식”만 배우는 것이 아니라 짧게, 고객에게, JSON으로라는 행동 패턴까지 같이 모방한다. 그래서 SFT 데이터는 정답 내용뿐 아니라 말투, 길이, 거절 방식, 도구 호출 포맷까지 일관돼야 한다.

  • 데이터 양은 결과가 아니라 입력 변수: LIMA는 적은 수의 선별된 demonstration으로 강한 결과를 보였지만, 이를 모든 도메인의 최소 충분량으로 일반화할 수 없다. 중복 제거 후 token 수, 과제 다양성, base 모델의 기존 능력, held-out learning curve로 충분성을 판단한다
  • 도구보다 데이터 계약이 먼저: TRL SFTTrainer는 language-modeling과 prompt-completion 형식을 지원한다. 어떤 trainer를 쓰든 chat template, loss를 계산할 token 범위, 중복·오염 정책이 같아야 비교가 성립한다
  • catastrophic forgetting: post-training 후 일반 능력(수학·코드·다국어)이 떨어지는 현상. target gain과 일반 능력 회귀를 보며 general data replay 비율을 비교한다
  • NEFTune (Jain 2023, arXiv:2310.05914): SFT 시 embedding에 noise를 주입해 일반화를 노린다. 논문 설정의 α와 평가 이득은 재현 후보이지 보편 기본값이 아니다
  • Rejection Sampling Fine-Tuning (RFT/STaR): 모델이 자기 응답 N개 생성 → 정답인 것만 SFT 데이터로. R1·Llama 3 post-training에 사용

경계: SFT는 “좋은 답안 하나를 따라 하게 만드는” 데 강하다. 두 답 중 어느 쪽을 사람이 더 선호하는지, 안전 정책상 어디까지 거절해야 하는지는 SFT만으로 안정화하기 어렵다. 이런 잔여 문제가 평가에서 확인되고 신뢰할 feedback이 있을 때 preference 학습이나 online reward 최적화를 추가한다.

실패 신호: training loss는 내려가는데 gold set의 일반 질의, 코딩, 다국어 점수가 떨어지면 catastrophic forgetting을 의심한다. 포맷 준수율만 올랐고 해결률이 그대로라면 데이터가 표면 형식만 가르쳤을 가능성이 크다.

PEFT(Parameter-Efficient Fine-Tuning)는 전체 가중치를 학습하는 대신 소수의 추가 파라미터만 학습하는 계열이다 (L11-40 §3.9 참고). 핵심 철학은 “base 모델의 일반 능력은 보존하고, 바꾸고 싶은 행동만 작은 adapter에 담자”다.

LoRA(Low-Rank Adaptation) 는 큰 가중치 변화량 ΔW를 작은 두 행렬 A, B의 곱으로 근사한다.

full fine-tuning: W 전체를 업데이트
LoRA: W는 freeze, ΔW ≈ A B, A와 B만 학습

d_in × d_out projection의 full update는 d_in × d_out개 값을 학습한다. LoRA rank가 r이면 추가 학습 값은 d_in × r + r × d_out개다. r이 projection 차원보다 훨씬 작을 때 optimizer state와 gradient 메모리가 줄어드는 이유가 이 식에 있다. 구체 수치는 §3.14의 측정 예시에서 계산한다.

QLoRA(Quantized LoRA) 는 base model을 4-bit로 저장하고 LoRA adapter만 학습한다. 줄이는 대상은 “학습되는 adapter”가 아니라 base parameter 저장량이다. DoRA(Weight-Decomposed LoRA) 는 LoRA 변화량을 direction과 magnitude로 나눠 더 안정적인 표현을 노린다.

뒤의 비교표에 나오는 rsLoRA(rank-stabilized LoRA) 는 rank가 커질 때 scaling을 alpha/r 대신 alpha/sqrt(r)로 바꿔 gradient scale을 안정화한다. LoRA-FA(LoRA with Frozen-A) 는 저랭크 행렬 A를 고정하고 B만 학습해 rank 증가에 따른 activation memory 부담을 줄이는 변형이다. 둘 다 보편 우위가 아니라 rank·메모리·품질 sweep의 후보로 읽는다.

3.3 PEFT — LoRA / QLoRA / DoRA 비교

LoRA

base는 고정하고 low-rank update를 학습

rank·module별 품질/메모리 곡선을 측정할 때

QLoRA

양자화한 base에 LoRA adapter를 학습

base 저장 메모리가 제약이고 양자화 회귀를 검증할 때

DoRA

update를 direction과 magnitude로 분해

같은 parameter budget에서 LoRA 대비 이득을 측정할 때

rsLoRA

rank 증가 시 scaling을 안정화

여러 rank의 최적화 안정성을 비교할 때

LoRA-FA

A 행렬을 고정해 activation memory를 줄임

메모리 절감과 품질 손실을 함께 측정할 때

Adapter

block 사이에 별도 작은 module을 추가

배포 구조와 adapter 교체성이 더 중요할 때

LoRA target modules란 무엇인가: LoRA를 어느 선형층에 붙일지 정하는 목록이다. LLaMA 계열의 q_proj, k_proj, v_proj, o_proj는 attention projection이고, gate_proj, up_proj, down_proj는 MLP projection이다. 다른 architecture는 이름과 구조가 다르므로 이 일곱 이름을 그대로 “표준 module”로 옮기면 안 된다. PEFT는 architecture를 아는 경우 target을 자동 선택할 수 있고, 모르는 구조에는 명시적 설정을 요구한다.

rank와 target module은 함께 용량을 결정한다. attention 일부만 target한 채 rank만 높이는 것과 모든 linear layer를 낮은 rank로 target하는 것은 trainable parameter 수가 비슷해도 표현 가능한 update가 다르다. TRL의 LoRA Without Regret 재현은 특정 SmolLM3 수학 RL 설정에서 all-linear, r=1을 사용했고, 같은 문서는 SFT와 RL의 적정 rank가 다를 수 있다고 설명한다. 이는 r=1 또는 all-linear가 모든 과제의 기본값이라는 뜻이 아니라, 모델·목적함수·데이터에 맞춰 module coverage와 rank를 따로 측정해야 한다는 반례다.

선택 순서는 다음과 같다.

  1. base 대비 바꾸려는 행동과 고정 gold set을 정한다.
  2. architecture에서 실제 linear module 이름과 trainable parameter 수를 확인한다.
  3. 같은 token budget으로 좁은 module 집합과 넓은 집합, 낮은 rank와 높은 rank를 비교한다.
  4. 품질 이득이 포화되는 가장 작은 구성을 고르고, full fine-tuning 또는 비양자화 LoRA와 회귀를 비교한다.

경계와 실패 신호: LoRA는 base 모델 능력 밖의 문제를 자동으로 새로 만드는 도구가 아니다. 학습 loss는 내려가는데 고정 평가셋이 base와 거의 같으면 adapter 용량뿐 아니라 데이터 중복, chat template, loss masking, 평가셋 민감도를 함께 의심한다. QLoRA는 base 저장 메모리를 줄이지만 양자화 오차와 kernel 제약을 추가하므로 같은 gold set과 token budget에서 비양자화 LoRA와 비교한다.

3.4 사람·AI feedback과 online policy optimization

섹션 제목: “3.4 사람·AI feedback과 online policy optimization”

RLHF(Reinforcement Learning from Human Feedback)는 사람의 feedback으로 모델 행동을 조정하는 큰 범주다. InstructGPT가 사용한 좁은 의미의 대표 파이프라인은 다음 세 단계다.

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)
- KL이 커지면 reward exploit·일반 능력 회귀 위험을 별도 평가

여기서 reward model은 선호 데이터를 보고 응답을 scalar 점수로 바꾸는 모델이다. PPO(Proximal Policy Optimization) 는 policy update 비율을 clip하고 value estimate를 사용해 online rollout의 분산을 다룬다. reference model은 정렬 전 기준 policy이고, KL(Kullback-Leibler divergence) penalty는 새 policy가 기준 분포에서 과도하게 멀어지는 것을 제한한다.

메모리 모델

구성요소역할왜 필요한가
policy model실제 업데이트되는 모델reward를 높이는 방향으로 학습
reference modelKL 기준점원래 모델에서 너무 멀어지는 것 방지
reward model사람 선호 점수 예측텍스트 응답을 scalar reward로 변환
critic/valuePPO의 value 추정policy-gradient variance 완화

이 표는 논리적 역할을 센 것이지 항상 네 개의 full model copy가 GPU에 상주한다는 뜻이 아니다. 실제 구현은 value head 공유, PEFT adapter, quantization, sharding, offload를 쓸 수 있다. peak memory에는 gradient·optimizer state·activation·rollout KV cache까지 포함해 측정한다. 단순화한 수치 예시는 §3.14에 둔다.

  • PPO: value model과 clipped update를 사용한다. reward model이나 environment score를 최대화할 수 있지만 구성요소와 hyperparameter가 많다.
  • RLOO(REINFORCE Leave-One-Out): 같은 prompt의 다른 completion reward 평균을 baseline으로 사용해 별도 value model 없이 policy gradient 분산을 줄인다. RLOO 원 논문은 PPO보다 단순한 online RL 대안을 제시한다.
  • GRPO: 같은 prompt의 group reward를 상대화해 advantage를 만든다. §3.6에서 RLOO와 baseline 계산 경계를 비교한다.
  • Online DPO/OAIF: Guo et al. (2024, arXiv:2402.04792)은 현재 policy에서 두 응답을 뽑고 LLM annotator가 선호를 정한 뒤 DPO 같은 direct-alignment loss로 갱신하는 OAIF(Online AI Feedback)를 제안했다. loss는 DPO 계열이지만 데이터 생성과 feedback은 online이므로 DPO=offline이라는 이름 기반 분류의 반례다.

선택 기준: learned reward나 verifier를 현재 policy 응답에 적용해 탐색할 가치가 있고 rollout 비용을 감당할 때 online 방법을 검토한다. value estimation이 필요하고 PPO의 clipping 특성을 검증하려면 PPO, 더 단순한 sequence-level baseline을 원하면 RLOO, 같은 prompt의 group-relative 비교가 과제에 맞으면 GRPO가 후보다. 어느 방법도 reward 품질 문제를 대신 해결하지 않는다.

실패 신호: train reward는 오르는데 gold set, 응답 길이, 안전 거절, 다양성이 나빠지면 optimizer보다 reward misspecification을 먼저 의심한다. KL 제약을 켠 run에서 KL이 거의 0이고 제품 지표도 그대로면 제약이 너무 강하거나 reward가 구분력을 잃었을 수 있다. KL과 길이가 급증하면 policy가 reference 밖의 reward 빈틈을 탐색하는지 확인한다. KL 항을 끈 구성은 같은 진단을 그대로 적용하지 않고 policy drift와 gold set 회귀를 직접 측정한다.

DPO(Direct Preference Optimization)는 고정 preference pair에서 policy를 직접 학습하는 offline 방법이다. Rafailov et al. (2023, arXiv:2305.18290)은 KL-제약 reward 최적화를 닫힌 형태로 정리해 별도 reward model 학습과 training-time rollout을 제거했다.

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 (덜 선호)
β: reference 대비 선호 log-ratio의 scale을 정하는 계수
  • 핵심 직관: chosen 답변 y_w는 reference보다 policy에서 더 그럴듯해져야 하고, rejected 답변 y_l은 덜 그럴듯해져야 한다. 단, policy가 reference에서 너무 멀어지면 β가 제동을 건다.
  • 장점: 고정 선호 데이터에 대해 reward model·online rollout·value model이 필요 없어 파이프라인이 단순하다
  • 단점:
    • 길이·스타일 편향: preference 데이터나 judge가 긴 답을 선호하면 DPO도 그 상관을 학습할 수 있다. Park et al. (2024)은 reward와 response length의 양의 상관을 분석했다. 길이 통제 평가와 길이 분포가 다른 holdout으로 분리해 확인한다
    • OOD 응답 exploit: preference 분포 밖 응답에서 망가짐 (silent failure — 학습 loss는 떨어지는데 gold dataset 평가가 하락)
    • β와 reference 민감도: 같은 β라도 model scale, loss variant, 데이터 길이 분포에 따라 update가 달라진다. 한 값의 관측 결과를 다른 과제에 그대로 옮기지 않는다

RLHF와 DPO 메모리 비교

PPO/RLHF: policy + reference + reward model + critic/value
DPO: policy + reference (구현에 따라 adapter·reference 공유 가능)

좁은 의미의 PPO-based RLHF는 “선호 → reward model → online RL”로 가고, offline DPO는 “고정 선호쌍 → preference loss”로 간다. 전자는 현재 policy가 새로 만든 응답을 탐색하고, 후자는 이미 수집한 데이터의 coverage 안에서 싸고 재현 가능하게 반복한다. 팀 크기가 아니라 feedback freshness의 가치, rollout/reward 비용, fixed dataset coverage로 고른다.

β 손계산 직관

chosen 개선폭 = log π(chosen) - log π_ref(chosen)
rejected 개선폭 = log π(rejected) - log π_ref(rejected)
DPO가 키우는 값 = chosen 개선폭 - rejected 개선폭

원래 KL-regularized 유도에서 β는 reference에서 벗어나는 비용과 연결되지만, 실제 DPO loss에서는 logit scale과 gradient에도 함께 작용한다. 따라서 “작으면 항상 reward hacking, 크면 항상 학습 정지”라는 단일 규칙으로 쓰지 않는다. β sweep에서는 preference accuracy·KL·응답 길이·gold set 회귀를 함께 보고, 관측된 방향만 해당 model/data/run의 근거로 사용한다.

  • 2024+ DPO 변형 비교 (reference-free 여부 / paired 여부 / 핵심 변경): 처음에는 선택 심화로 읽는다. 핵심은 “DPO처럼 chosen/rejected 쌍이 필요한가, KTO처럼 binary feedback만으로 되는가, ORPO처럼 SFT와 preference를 한 단계로 합치는가”다.
기법데이터 신호reference학습 시점핵심 경계
DPOpaired chosen/rejected필요offline별도 RM·rollout 없이 pair를 직접 학습
KTOunpaired desirable/undesirable필요offlinepair가 없어도 되지만 binary label 필요
ORPOpaired preference + favored response불필요offlineSFT NLL과 odds-ratio penalty를 결합
IPOpaired chosen/rejected필요offlinesquared objective로 inductive bias 변경
CPOpaired chosen/rejected불필요offlinecontrastive objective
SimPOpaired chosen/rejected불필요offlinelength-normalized reward와 margin

KTO(Kahneman-Tversky Optimization) 는 같은 prompt의 chosen/rejected 쌍을 반드시 요구하지 않고 각 응답의 desirable/undesirable binary feedback을 쓴다. ORPO(Odds Ratio Preference Optimization) 는 favored response의 NLL 학습과 preference penalty를 한 목적함수에 결합한다. pairwise 비교의 신뢰도가 높으면 DPO·ORPO류, pair를 만들기 어렵지만 응답별 binary label이 믿을 만하면 KTO류가 후보지만, 데이터 형태만으로 승자를 정하지 않고 같은 gold set에서 비교한다. KTO 원 논문도 모든 상황에 보편적으로 우월한 하나의 loss는 없다고 명시한다.

  • Iterative/Online DPO: model 갱신 후 현재 policy의 응답으로 preference를 다시 만든다. Guo et al. (arXiv:2402.04792)의 OAIF는 현재 policy에서 두 응답을 뽑고 LLM annotator가 선호를 정한 뒤 DPO·IPO·SLiC 같은 direct alignment loss를 적용한다. TRL의 Online DPO도 prompt-only dataset에서 응답을 생성하고 reward model·judge로 선호를 정한다. 반면 Calandriello et al. (arXiv:2403.08635)은 online IPO와 Nash-MD의 등가성 및 IPO-MD를 중심으로 분석하고 online DPO를 비교 대상으로 다룬 연구다. 두 논문의 역할을 바꾸어 인용하지 않는다.

3.6 GRPO (Group Relative Policy Optimization)

섹션 제목: “3.6 GRPO (Group Relative Policy Optimization)”

GRPO(Group Relative Policy Optimization)는 DeepSeekMath (2024)에서 제안된 online policy optimization 방법이다. 같은 prompt에서 나온 여러 응답의 reward를 그룹 안에서 상대화해 advantage를 만들며, PPO의 별도 critic/value model을 요구하지 않는다. 그러나 reward model을 제거한다는 뜻은 아니다. DeepSeekMath 실험은 학습된 outcome reward model과 process reward model을 사용했고, iterative RL에서는 새 policy의 표본으로 reward model도 다시 학습했다. TRL GRPOTrainer는 학습된 reward model, custom reward function, 환경이 제공하는 reward를 모두 받을 수 있다.

1. 같은 prompt에 N개 응답 생성 (group)
2. 각 응답의 scalar reward 계산 (학습 RM 또는 verifier 가능)
3. group reward의 평균·표준편차로 relative advantage 계산
4. clipped policy update (별도 critic/value model 없음)
- 원 GRPO 목적함수: reference policy에 대한 KL penalty 포함
- TRL main 기본값(beta=0): KL 항을 끄고 reference model도 적재하지 않음

작은 계산 예시

prompt: "2x + 3 = 11을 풀어라"
응답 4개 reward: [1.0, 1.0, 0.0, 0.5]
group 평균 baseline: (1.0 + 1.0 + 0.0 + 0.5) / 4 = 0.625
group reward 표준편차: 약 0.415
standardized relative advantage = (reward - 0.625) / 0.415:
응답 A: 약 +0.90 -> 더 밀어준다
응답 B: 약 +0.90 -> 더 밀어준다
응답 C: 약 -1.51 -> 줄인다
응답 D: 약 -0.30 -> 약하게 줄인다

PPO는 learned value로 advantage를 추정하지만, GRPO는 같은 prompt의 group reward를 상대화한다. RLOO도 별도 value model이 없지만, 각 completion에 대해 나머지 completion reward의 평균을 leave-one-out baseline으로 쓴다. GRPO의 표준편차 정규화는 reward scale을 맞추는 장점이 있지만, 모든 reward가 같은 group에서는 signal이 0이 되고 문제 난이도별 편향이 생길 수 있다. optimizer 선택은 “critic 제거”만이 아니라 baseline bias·variance와 rollout 수를 함께 본다.

  • KL·reference 경계: 원 GRPO 목적함수는 -β KL(policy || reference) 항으로 policy drift를 제약한다. 반면 2026-07-14에 확인한 TRL mainGRPOConfigbeta=0.0이 기본이며, 이때 KL 항을 쓰지 않고 reference model도 적재하지 않는다. beta>0으로 켜면 reference가 다시 필요하다. 따라서 “GRPO는 항상 reference가 필요하다”와 “GRPO에는 reference 제약이 없다”는 모두 부정확하다
  • 메모리 경계: 별도 critic/value model이 없다는 절감은 공통이지만, 원 논문식 beta>0 구성은 reference가 필요하고 TRL main 기본 beta=0 구성은 필요하지 않다. learned reward model 대신 program verifier를 쓰는지도 메모리를 바꾼다. 최종 peak memory는 policy, rollout KV cache, 선택한 reference·reward 구성, PEFT, sharding을 포함해 측정한다
  • Reward 경계: 수학 exact match를 쓰면 RLVR이지만, learned helpfulness reward를 쓰면 GRPO여도 RLVR이 아니다
  • DeepSeekMath와 DeepSeek-R1의 경계: DeepSeekMath는 GRPO에 learned outcome/process reward model을 결합한 사례다. DeepSeek-R1의 reasoning RL은 규칙 기반 accuracy reward와 format reward를 사용하고 neural outcome/process reward model을 쓰지 않았으므로 RLVR 사례에 해당한다. 둘 다 GRPO를 썼다는 이유로 reward taxonomy까지 같다고 보면 안 된다
  • R1-Zero 관찰: DeepSeek-R1 논문은 SFT 없이 RL을 적용한 설정에서 reasoning 행동과 함께 readability·language mixing 문제를 보고했다. 이는 모든 base model에서 같은 emergence가 재현된다는 보장이 아니다
  • DeepSeek-R1이 보고한 pipeline (사례):
    1. Cold-start SFT
    2. RL with GRPO (reasoning task의 규칙 기반 accuracy·format reward)
    3. Rejection sampling SFT (RL 모델 출력 + 일반 데이터 추가)
    4. 2차 RL (helpfulness·harmlessness 정렬)

이 사례는 SFT → GRPO가 보편 pipeline이라는 뜻이 아니다. 특정 모델의 데이터와 reward 조합이므로 다른 모델에는 각 단계의 추가 이득을 ablation으로 확인한다.

3.6.1 R1-Distill — teacher trace distillation 선택지

섹션 제목: “3.6.1 R1-Distill — teacher trace distillation 선택지”

DeepSeek-R1 paper가 제공한 하나의 비교 사례다.

  • R1-Distill 시리즈: R1의 reasoning trace를 SFT-only로 distill한 1.5B/7B/8B/14B/32B/70B 모델
  • 논문 관찰: 해당 benchmark와 teacher/student 조합에서는 작은 모델에 직접 RL을 적용한 결과보다 R1 trace를 distill한 모델이 강했다
  • 선택 기준: 신뢰할 teacher trace와 verifier가 있고 student inference 비용을 줄이는 것이 목표면 distillation을 먼저 비교한다. teacher가 약한 사내 도메인이나 student가 online 환경 탐색을 배워야 하면 직접 RL 후보도 남는다
  • 비용 측정: teacher trace 생성·필터링 비용, student SFT token 수, 직접 RL rollout·verifier 비용을 같은 성공 샘플 수 기준으로 비교한다

학습 흐름으로 읽기: 이 사례의 큰 R1 teacher 모델은 RLVR/GRPO로 reasoning trace를 만들고, 작은 student 모델은 그 trace를 SFT 데이터처럼 따라 배운다. 작은 모델 입장에서는 어려운 RL 환경을 직접 탐험하는 것이 아니라, 이미 좋은 풀이 흔적을 모방하는 문제로 바뀐다.

경계: distillation은 teacher가 할 수 있는 행동을 압축하는 데 강하다. teacher가 틀리는 도메인, 회사 내부 지식, 최신 정책은 그대로 증류되지 않는다. 이 경우에는 RAG, 도메인 SFT, 별도 gold set 검증이 필요하다.

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 설정 파일로 merge 조건 기록 가능
  • 사용 사례: 한국어 LoRA + 코드 LoRA + 의학 LoRA를 base에 머지해 멀티 도메인 모델

경계와 실패 신호: model merging은 “각 모델의 장점만 자동으로 합쳐진다”가 아니다. 한국어 LoRA와 코드 LoRA가 같은 layer에서 서로 다른 방향으로 가중치를 밀었다면 단순 평균이 둘 다 약하게 만들 수 있다. merge 후에는 각 도메인 gold set을 따로 돌려야 하며, 한 도메인은 좋아지고 다른 도메인이 떨어지면 TIES/DARE 같은 충돌 완화나 adapter routing을 검토한다.

3.7 RLVR (Reinforcement Learning with Verifiable Rewards)

섹션 제목: “3.7 RLVR (Reinforcement Learning with Verifiable Rewards)”

RLVR(Reinforcement Learning with Verifiable Rewards)는 검증 가능한 scalar reward를 쓰는 RL 설정이다. optimizer 이름이 아니라 reward의 출처와 검증 성질을 가리킨다. PPO·RLOO·GRPO 중 무엇으로 policy를 갱신하든 reward가 정답·테스트·환경 규칙으로 재현 가능하면 RLVR로 볼 수 있다.

  • 검증 가능한 영역: 수학(정답), 코드(테스트 통과), 정형 추론(체크 가능한 결론)
  • 장점: 같은 입력·출력에 대한 reward를 재현하기 쉽고, 주관적 judge bias를 줄일 수 있다
  • 단점: 검증 가능한 영역 한정. 대화·창작에는 부적합
  • 하이브리드: 정답 reward와 형식·안전·도움됨 reward를 함께 쓸 수 있지만 가중치가 실제 목표를 왜곡하지 않는지 따로 평가한다
  • 공개 근거가 분명한 사례: DeepSeek-R1의 reasoning RL은 규칙 기반 accuracy·format reward를 쓴 RLVR 사례다. 반대로 DeepSeekMath는 learned outcome/process reward model을 썼으므로, 수학 과제였다는 이유만으로 RLVR 사례에 넣지 않는다. 다른 비공개 모델은 공개된 기술 보고서 범위 이상으로 optimizer와 reward 구성을 단정하지 않는다

경계: RLVR은 “사람 평가가 필요 없다”가 아니라 “정답 검증이 가능한 좁은 영역에서는 사람 선호보다 더 깨끗한 reward를 만들 수 있다”는 뜻이다. 고객 상담, 글쓰기, 정책 해석처럼 품질 기준이 다축인 영역은 여전히 preference data, judge, gold set이 필요하다.

실패 신호: 코드 테스트 pass rate는 오르는데 hidden test나 설명 품질이 나빠지면 공개 테스트를 exploit했거나 verifier coverage가 좁은 것이다. group reward가 자주 전부 같아 advantage가 0이 되면 문제 난이도·sampling 다양성·reward granularity를 확인한다. 수학 성능은 좋아졌지만 일반 대화와 안전성이 나빠지면 RLVR만으로 alignment가 끝났다고 보면 안 된다.

3.8 Feedback 출처 축 — Constitutional AI, RLAIF

섹션 제목: “3.8 Feedback 출처 축 — Constitutional AI, RLAIF”

offline/online과 별도로 누가 feedback을 만드는가도 구분한다. 사람, AI judge, 명시적 원칙, 기계 verifier는 서로 다른 편향과 비용을 만든다.

  • Constitutional AI (Anthropic 2022): 모델이 따라야 할 원칙 목록을 “헌법”처럼 두고, AI가 응답을 비판·수정·평가하게 만드는 접근이다. 핵심은 개별 annotator의 선호가 아니라 명시된 원칙에 따라 harmlessness를 밀어주는 것이다.
  • RLAIF(RL from AI Feedback): 사람 annotator 대신 AI judge의 feedback으로 reward model이나 선호 데이터를 만든다. 이름에 RL이 있지만 AI 선호를 offline DPO에 쓸 수도 있고 online RL reward에 쓸 수도 있다. feedback 출처와 optimizer를 분리해 적는다.
  • 운영 가치: 사람 annotator 비용 절감, scalable. Claude 시리즈가 대표

경계: AI가 평가한다고 객관적이라는 뜻은 아니다. RLAIF는 annotation 비용을 줄이지만, judge 모델의 선호·거절 성향·언어 편향을 증폭할 수 있다. 그래서 Constitutional AI나 RLAIF를 쓰더라도 gold set, red-team set, 사람 spot-check를 분리해야 한다.

Alignment 실패가 어려운 이유는 에러가 크게 터지지 않는 경우가 많기 때문이다. 학습 loss는 내려가고 reward 점수도 오르는데, 실제 제품에서는 거절률·길이·동조·안전성 중 하나가 조용히 망가진다.

실패 유형첫 정의주로 생기는 위치관측 신호
Reward hacking모델이 진짜 목표가 아니라 reward proxy만 exploitscalar reward 최적화, preference 학습reward는 오르지만 gold set/제품 지표 하락
Refusal overtrigger정상 질문까지 과하게 거절safety SFT, RLHF/RLAIFrefusal rate 증가, 재문의율 증가
Sycophancy사실보다 사용자 의견에 맞장구치는 성향preference alignment반대 근거 제시 실패, 잘못된 전제 수용
Verbosity inflation짧아도 되는 답이 길어지는 현상preference 학습, LLM-as-judge 평가평균 길이는 증가하지만 해결률 정체
Catastrophic forgettingpost-training 후 일반 능력(수학·코드·다국어)이 하락full SFT, continual pretrainingtarget 점수는 오르지만 일반 평가 하락
Mode collapse다양한 답변이 사라지고 비슷한 문장만 반복과한 preference 최적화entropy 감소, n-best 다양성 감소
Jailbreak 취약alignment를 우회하는 prompt 패턴에 안전 정책이 뚫림safety 데이터 부족, guardrail 부재red-team set 통과율 증가
Sleeper agents학습 때는 숨어 있다가 trigger에서 발현되는 백도어오염 데이터, 악의적 fine-tuning특정 trigger에서만 정책 이탈

한 증상에 원인을 하나만 붙이지 않는다. 먼저 학습 policy와 inference 설정을 분리하고, 아래 가설을 작은 ablation으로 확인한다.

증상먼저 비교할 가설확인·대응
답변이 짧고 무성의reward의 길이 proxy, KL, decoding 설정reward component·KL·정답률을 비교하고 원인 축만 수정
정상 질문 거절safety 경계 데이터 불균형, judge 거절 편향허용/거절 경계쌍과 category별 refusal 평가
사용자 의견에 무조건 동조preference label·judge의 sycophancy bias반대 근거가 있는 preference와 사람 disagreement 검수
일반 능력 하락forgetting, template·tokenizer mismatchloss mask 확인 후 replay·PEFT·학습량 ablation
응답 다양성 감소policy collapse, inference sampling 변경train entropy와 동일 decoding 조건의 n-best 다양성 분리
특정 prompt에 jailbreak학습 coverage 부족, 배포 guardrail 우회held-out red-team 유형별 평가와 defense-in-depth

3.10 데이터 품질 — Preference 데이터

섹션 제목: “3.10 데이터 품질 — Preference 데이터”

post-training에서는 optimizer를 바꿔도 학습 신호가 목표 행동을 대표하지 못하면 결과가 좋아지지 않는다. 특히 SFT demonstration, preference label, scalar reward는 서로 역할이 다르다.

SFT 데이터: "이 상황에서는 이런 답을 하라"
Preference 데이터: "두 답 중 이 답이 더 낫다"
Safety 데이터: "이 요청은 거절하되, 이 정상 요청은 도와라"
Gold set: "학습 후 실제로 좋아졌는지 고정 평가셋으로 확인하라"
  • 인간 annotator: 단가·속도는 지역, 전문성, 위험도에 따라 크게 달라진다. 비용뿐 아니라 평가자 간 일치도와 disagreement 유형을 기록한다 (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

작은 반례: 안전 데이터가 “위험 요청은 거절” 예시만 많고 “정상 보안 학습 질문은 허용” 예시가 적으면 refusal overtrigger가 생긴다. 반대로 helpfulness 데이터만 많고 red-team 데이터가 부족하면 jailbreak 취약이 남는다. preference 데이터는 많을수록 좋은 것이 아니라, 원하는 행동 경계 양쪽을 모두 포함해야 한다.

3.11 비용 모델 — 알고리즘 이름보다 구성요소를 센다

섹션 제목: “3.11 비용 모델 — 알고리즘 이름보다 구성요소를 센다”

절대 비용은 model size, sequence length, 생성 길이, hardware, parallelism, kernel, API 단가에 따라 바뀐다. 그래서 $K, , 50% 절감을 방법의 속성으로 외우지 않고 다음 항목을 같은 단위로 센다.

비용 항목주로 커지는 방법측정 기준
trainable statefull FT, 큰 adapterparameter·gradient·optimizer byte
고정 model statereference·reward·value model 사용resident/offload/shard별 peak memory
rollout 생성PPO·RLOO·GRPO·Online DPO생성 token 수, tokens/s, KV cache peak
feedback 계산learned RM·AI judge·사람 annotation응답당 지연·호출비·label agreement
verifier 실행RLVR 코드·agent 환경test/sandbox 실행 시간, timeout·실패율
평가와 재시도모든 방법gold set 호출 수, seed 수, failed run 비용

offline DPO는 training-time rollout과 별도 reward model을 생략할 수 있어 같은 model/data 조건에서 단순해질 가능성이 크다. GRPO·RLOO는 PPO의 별도 value model을 피하지만 rollout과 reward 계산은 남는다. GRPO의 reference 비용은 원 논문식 KL 항을 켰는지, TRL main 기본처럼 beta=0으로 껐는지에 따라 달라진다. PEFT는 trainable state를 줄이지만 rollout token 비용을 자동으로 줄이지 않는다. 최종 선택은 목표 지표 1단위 개선당 총 GPU-hour·비용으로 비교한다.

3.12 Fine-tune vs RAG vs Prompt 결정 (재방문)

섹션 제목: “3.12 Fine-tune vs RAG vs Prompt 결정 (재방문)”

L11-30 §3.5에서 다룬 결정 프레임을 post-training 시점으로 정밀화한다. 고정 sample 수 하나로 분기하지 말고 무엇을 바꾸는가, 요구가 얼마나 안정적인가, 학습 curve가 계속 오르는가를 본다.

  • Fine-tune이 적합한 경우:
    • 반복되는 행동·형식·도메인 표현을 prompt만으로 안정화하기 어렵고, label spec이 유지될 전망이 있음
    • held-out set을 분리한 뒤 데이터·token을 늘릴수록 품질이 오르는 learning curve가 보임
    • 추론 prompt token·latency 절감이 학습·배포·회귀 검증 비용보다 큼
  • RAG가 적합한 경우:
    • 지식이 자주 바뀌고 출처별 접근 제어·삭제·갱신을 모델 weight 밖에서 관리해야 함
    • 출처 인용·감사 추적 필요 (법무·금융·의료)
    • 실패 사례: RAG로 톤·포맷까지 강제하려다 chunk 사이 응답 일관성 깨짐 → SFT 결합 필요
  • Prompt만으로 충분한 경우:
    • 일반적 작업 (요약, 번역, 일반 코딩) — frontier 모델이 이미 잘 처리
    • 요구가 자주 바뀌거나 아직 실패 taxonomy와 label spec이 안정되지 않은 prototype
    • prompt 길이·지연·실패율이 허용 범위에 있고 fine-tune의 추가 이득이 측정되지 않음

이 결정 트리는 “무엇을 바꾸는가”로 읽으면 흔들리지 않는다. 지식을 바꾸면 RAG가 먼저이고, 행동 습관을 바꾸면 SFT가 후보이며 LoRA 같은 PEFT는 그 학습의 구현 선택이다. 선호와 안전 경계를 바꾸면 preference 데이터나 scalar reward를 이용하는 방법이 후보가 된다. 요구사항이 자주 바뀌거나 데이터가 적으면 prompt와 orchestration으로 시작한다.

Reasoning post-training도 단일 알고리즘이 아니다. demonstration trace를 모방하는 SFT·distillation, 정답 후보를 골라 다시 학습하는 rejection sampling, verifier reward로 탐색하는 online RL을 조합할 수 있다.

  • 학습 신호: 풀이 demonstration, 정답·테스트 verifier, process/outcome reward를 구분한다
  • optimizer: 공개 사례의 GRPO뿐 아니라 PPO·RLOO 등 다른 online optimizer도 RLVR과 결합 가능하다
  • 검증 경계: 정답만 맞으면 틀린 추론도 보상할 수 있으므로 final-answer accuracy와 reasoning validity를 분리 평가한다
  • Test-time compute scaling (L11-60 §3.11): inference 시 사고를 길게 → 품질↑
  • 운영 영향: 생성 token과 latency가 늘 수 있으므로 문제별 정확도 이득 대비 token·시간 곡선을 측정한다

3.14 선택 심화: 측정 예시 — 구성·데이터·비용의 가상 시작점

섹션 제목: “3.14 선택 심화: 측정 예시 — 구성·데이터·비용의 가상 시작점”

아래 값은 보편 default나 release 표준이 아니다. 기존 문서의 수치 감각을 보존하기 위한 가상 실험 시작점이며, model architecture·task 난도·domain shift·dataset 품질·hardware가 바뀌면 grid와 subset을 다시 설계한다. 행 수 하나로 prompt, LoRA, full SFT를 고르지 않는다.

보존한 손계산 예시: 4096 × 4096 projection 하나의 full update는 약 1,678만 개 값을 학습한다. LoRA r=16이면 4096 × 16 + 16 × 4096 = 131,072개로, 이 projection만 보면 약 1/128이다. 실제 절감률은 target layer 수와 optimizer·activation 구성까지 포함해 다시 잰다.

보존한 메모리 상한 예시: 7B dense model의 fp16/bf16 weight를 약 14GB로 단순화하고, 같은 크기의 policy·reference·reward·value가 각각 별도 상주한다고 가정하면 weight만 4 × 14GB = 56GB다. value head 공유, adapter, quantization, sharding을 쓰는 실제 PPO의 고정 요구량이 아니라 구성요소별 예산을 빠뜨리지 않기 위한 사고 실험이다.

논문 결과의 경계: LIMA의 1K 선별 demonstration 결과는 데이터 품질의 중요성을 보여 주는 사례이지 SFT 최소량이 아니다. DeepSeek-R1의 cold-start·RL·rejection sampling·2차 RL 구성도 해당 모델의 사례이며 단계별 기본 sample 수를 제공하지 않는다.

측정 대상첫 sweep 예시함께 고정할 것판단 지표
LoRA rankr=8, 16, 32, 64target modules, token budgetgold score 대비 trainable byte·peak memory
target modulesattention 일부 vs all-linearrank 또는 parameter budget같은 비용에서 task별 회귀·이득
QLoRA4-bit vs 16-bit baseadapter, data order, seedpeak memory와 quantization-induced regression
DPO β0.1, 0.3, 0.5model, preference split, loss typeKL·preference accuracy·길이·gold score
GRPO group sizeG=4, 8, 16prompt batch, 총 rollout tokenzero-variance group 비율·reward 분산·GPU-hour
replay mix0%, 10%, 30%총 token budgettarget gain과 일반 능력 회귀
데이터 크기로그 간격 subset learning curve중복 제거·held-out split추가 1K sample 또는 1M token당 marginal gain

예를 들어 r=16~32, 일곱 projection, alpha=2r는 LLaMA류 실험의 후보 grid로는 쓸 수 있지만 운영 표준은 아니다. 최근 TRL 재현처럼 RL에서 all-linear, r=1이 강한 반례도 있고, SFT에서는 더 큰 rank가 필요한 연구 결과도 있다. 값 자체보다 동일 token budget과 seed에서 어느 축이 병목인지를 확인하는 것이 목적이다.

3.15 선택 심화: 측정 예시 — 가상 release alert

섹션 제목: “3.15 선택 심화: 측정 예시 — 가상 release alert”

다음 임계값도 예시다. baseline 분산과 제품 위험 허용도에서 alert를 보정하기 전에는 배포 차단 규칙으로 쓰지 않는다.

관측 예시가능한 가설다음 확인
평균 응답 길이 50% 감소reward 길이 proxy exploitβ 하나만 탓하지 말고 reward·KL·정답률·거절률 함께 비교
평균 응답 길이 30% 증가preference/judge의 장문 선호length-controlled 평가와 길이-matched holdout
일반 benchmark 30% 감소forgetting 또는 template mismatchreplay·학습률·loss mask·tokenizer를 분리 ablation
n-best entropy 50% 감소과최적화·sampling 설정 변화train policy entropy와 inference sampling 분리
정상 질의 refusal 30% 증가safety boundary 한쪽 데이터 과대표집허용/거절 경계쌍을 추가하고 category별 평가
red-team attack success 50%safety coverage 부족공격 유형별 held-out set과 defense-in-depth

3.16 Post-training의 일반 매핑 (Transferable Pattern)

섹션 제목: “3.16 Post-training의 일반 매핑 (Transferable Pattern)”

post-training의 핵심 — “base 모델 + 행동 정렬 + verifiable reward” — 는 다른 시스템에서도 반복.

Post-training 구성요소일반 시스템 매핑
Base model + SFTbase library + customization layer
LoRA (rank-r adapter)plugin·extension·middleware
Reference model (KL 제약)original baseline·circuit breaker
Reward modelquality 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 forgettingregression·deprecation

일반 공식: “기본 행동 + 정책 정렬 + 검증 + 회귀 방어”의 4단계가 ML·소프트웨어·시스템 전반에 공통이다.

선택 심화: 측정 예시 — DPO β sweep과 alignment 회귀

섹션 제목: “선택 심화: 측정 예시 — DPO β sweep과 alignment 회귀”

다음은 β의 보편 동작을 주장하는 결과가 아니라, 하나의 가상 run에서 여러 지표를 함께 읽는 방법을 보여 주는 worked example이다. 다른 model·dataset에서는 값과 변화 방향이 달라질 수 있다.

상황: 한국어 챗봇 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·KL·정답률을 함께 보고 β 또는 reward 수정
- MMLU 한국어 폭락 → catastrophic forgetting → replay buffer↑
- jailbreak 통과율 30%+ → red-team fine-tune
결과 (가상): gold 점수 65 → 77, refusal 8% → 11% (acceptable).

이 예시는 β를 “높을수록 좋다” 또는 “낮을수록 학습이 빠르다”로 보지 않는다. 원래 유도에서 β는 reference model과의 거리 제약에 연결되지만, 실제 선택은 해당 run의 KL·길이·preference accuracy·gold score를 함께 본다.

후보관측해석결정
β=0.1길이 -45%, refusal +20%reward를 좁게 exploit. 짧은 거절 쪽으로 이동제외
β=0.3길이 +5%, refusal stable, gold +12%행동은 바뀌지만 reference에서 과도 이탈 없음선택
β=0.5길이 +15%, gold -3%KL 제약이 강해 도메인 선호 학습이 약함제외 또는 재시도

여기서 gold 100은 빠른 smoke test 수준이다. 실제 release gate라면 L11-80의 gold dataset 기준처럼 표본 수, judge bias, 사람이 보는 disagreement sample을 따로 확인한다. §3.5 DPO, §3.14 구성 sweep, §3.15 가상 alert의 경계를 모두 적용한다.

  • 자체 도메인 LLM fine-tune (의료·법률·금융·코드)
  • 챗봇 톤·페르소나 정렬
  • 한국어 능력 강화 (Llama 3 한국어 fine-tune)
  • safety·refusal 튜닝
  • structured output 강제 (JSON·SQL)
  • agent의 tool calling 정확도 향상

엔지니어가 LLM 운영할 때 post-training 직관이 다음에 도움 된다.

  • fine-tune 결정: 행동·포맷 회귀가 반복되고 held-out learning curve가 개선되면 SFT나 preference 학습을 비교한다. 자주 갱신되는 지식은 RAG를 먼저 검토한다
  • 외주 fine-tuning 결과 검증: gold dataset (L11-80) + bias 감지로 catastrophic forgetting·refusal overtrigger 식별
  • 공개 모델 비교: Llama 4 vs Qwen-3 vs Mistral 등 후학습 데이터·기법 차이 이해
  • reasoning 모델 도입 결정: 작업별 정확도 이득과 생성 token·latency 증가를 함께 측정해 reasoning 가치가 있는지 평가
  • safety audit: jailbreak·prompt injection 테스트, alignment 회귀 감지
개념 A개념 B차이점
Pre-trainingPost-trainingscratch 학습 vs 사람 의도 정렬
SFT선호·reward 학습demonstration 모방 vs 응답 간 좋고 나쁨 최적화
PPO-based RLHFoffline DPOreward model + online RL vs 고정 pair loss
DPOKTOpaired (chosen, rejected) vs binary feedback
DPOORPOpairwise loss vs NLL+preference 단일 목적함수
PPORLOO/GRPOlearned value 사용 vs completion 간 상대 baseline
RLHFRLAIF사람 reward vs AI reward
RLHFRLVR선호 reward vs 검증 가능한 정답 reward
LoRAQLoRA16-bit base vs 4-bit base + LoRA
LoRADoRAlow-rank vs +direction·magnitude 분해
Full FTLoRA모든 가중치 vs 일부 rank-r adapter
Catastrophic forgettingSycophancy일반 능력 손실 vs 사용자 동조

7. 체크리스트 체크

  • post-training 방법을 demonstration·preference·scalar reward 신호로 분류할 수 있다
  • offline과 online을 현재 policy 응답·feedback 갱신 여부로 구분할 수 있다
  • PPO·RLOO·GRPO와 DPO·KTO·ORPO의 데이터 요구사항과 경계를 설명할 수 있다
  • GRPO는 optimizer이고 RLVR은 reward의 검증 가능성이라는 점을 설명할 수 있다
  • 원 GRPO의 KL·reference 항과 TRL main beta=0 기본 구성을 구분할 수 있다
  • RLHF가 feedback 범주인지 PPO pipeline인지 문맥에 따라 명시할 수 있다
  • LoRA rank·target module을 모델별 gold score와 비용 곡선으로 선택할 수 있다
  • β·group size·데이터 수치를 보편 default가 아니라 sweep 후보로 다룰 수 있다
  • Reward hacking, refusal overtrigger, sycophancy, mode collapse의 관측 신호를 설명할 수 있다
  • PEFT: LoRA, QLoRA, DoRA, rsLoRA, LoRA-FA, prefix tuning, IA³(Infused Adapter by Inhibiting and Amplifying Inner Activations, activation channel을 학습 벡터로 억제·증폭하는 방식), AdaLoRA
  • offline preference: DPO, IPO, KTO, ORPO, simPO, BCO
  • online optimization: PPO, RLOO, GRPO, Online DPO, 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

아래 값은 작은 재현 실험의 비교점을 만들기 위한 예시다. 모델·데이터·GPU가 달라지면 메모리 한도 안에서 grid를 다시 정하고, 절대 점수보다 동일 조건의 상대 차이를 본다.

LoRA·QLoRA 직접 학습 체크

  • TRL `SFTTrainer` + PEFT로 작은 공개 모델에 LoRA SFT — 예: r=8/16과 100/1000개 subset의 learning curve 비교
  • 같은 데이터·seed·token budget에 4-bit QLoRA와 비양자화 LoRA를 적용해 peak memory·시간·gold score 비교
  • `target_modules=["q_proj","k_proj","v_proj","o_proj"]`와 `all-linear`를 같은 trainable parameter budget에서 비교

DPO 학습 체크

  • `trl.DPOTrainer`로 동일 preference dataset의 1K/5K subset learning curve 비교
  • β를 0.1, 0.3, 0.5로 sweep — preference accuracy·KL·응답 길이·gold score를 함께 측정
  • DPO 후 verbosity·refusal rate 변화 측정 (silent failure 감지)

Catastrophic forgetting 진단 체크

  • SFT 전후로 MMLU·HumanEval·한국어 능력 비교 — 일반 능력 폭락 여부
  • replay 비율 0% / 30% 학습 비교 — replay가 forgetting 완화하는지
  • 같은 수학 문제를 GPT-4o(일반)와 o1-mini(reasoning) 둘에 던져 정확도와 토큰 비용 비교 — reasoning 가치가 있는 영역인지 판단
  • LoRA 학습 후 추론 결과가 깨짐 → tokenizer mismatch (L11-70 §3.5) 또는 chat template 누락. base 모델의 tokenizer/template 일관 사용
  • DPO 후 응답이 너무 길어짐 → verbosity bias. AlpacaEval LC로 정규화하거나 length penalty 적용
  • GRPO 학습이 발산 → group size를 바로 늘리기 전에 reward scale·zero-variance group 비율·KL·sampling 다양성을 분리 확인
  • catastrophic forgetting 심각 → template·loss mask를 먼저 확인하고, LoRA/full FT·replay mix·학습률·epoch를 같은 token budget에서 비교
  1. Post-training은 고정 3단계가 아니라 demonstration·preference·scalar reward 중 이용 가능한 학습 신호를 고르는 설계 문제다.
  2. SFT·DPO·KTO·ORPO는 보통 offline 데이터에, PPO·RLOO·GRPO는 현재 policy rollout을 쓰는 online 최적화에 놓인다.
  3. GRPO는 group-relative optimizer이고 RLVR은 reward 설정이며, 원 GRPO의 KL·reference와 TRL mainbeta=0 기본도 구분해야 한다.
  4. LoRA rank·target module과 β·group size·데이터 양은 모델·과제별 측정값이지 보편 운영 default가 아니다.
  5. 채택 여부는 gold set 이득, 회귀, rollout·reward·verifier를 포함한 총비용과 reward hacking 신호로 결정한다.

공식 문서의 trainer 분류·지원 범위는 2026-07-14에 다시 확인했다. 아래 main taxonomy와 trainer 문서는 개발 브랜치 문서이며, 당시 페이지가 안내한 최신 stable release는 별도의 v1.8.0이다. main의 기본값을 설치된 stable 버전의 동작으로 단정하지 말고, 구현 시 실제 설치 버전 문서를 함께 본다.


최종 수정: 2026-07-14