LLM Post-Training Scaling 완전 정복: SFT, RLHF, Test-time Compute 총정리
A Survey of Post-Training Scaling in Large Language Models
TL;DR Highlight
프리트레이닝 데이터가 고갈되자 대안으로 떠오른 'Post-Training Scaling' 3가지 방법론을 한 번에 정리한 서베이.
Who Should Read
LLM 파인튜닝이나 추론 비용 최적화를 고민하는 ML 엔지니어 및 LLM 기반 서비스 아키텍처를 설계하는 개발자. 특히 o1/o3 같은 추론 특화 모델이 왜 다른지 궁금한 사람.
Core Mechanics
- 고품질 인터넷 텍스트가 바닥나고 GPU 비용이 한계에 달하면서, 프리트레이닝 대신 '이미 학습된 모델을 더 잘 쓰는 법'이 주류 연구 방향이 됨
- Post-Training Scaling은 SFT(모범답안 따라하기), RLxF(보상 피드백으로 강화학습), TTC(추론 시점에 계산 더 쏟기) 3가지로 나뉨
- SFT는 소량의 고품질 데이터로도 효과가 크지만, 데이터 품질과 다양성이 스케일링의 핵심 병목
- RLxF(RLHF/RLAIF 포함)는 인간 선호도나 AI 피드백으로 모델을 정렬시키는데, 보상 모델 품질이 성능 상한선을 결정
- TTC(Test-time Compute)는 추론할 때 더 오래 생각하게 만드는 방식으로, o1 스타일의 Chain-of-Thought 확장이 대표 사례
- Post-Training은 전체 학습 비용의 극히 일부만 차지하지만, 같은 베이스 모델에서 성능 격차를 크게 벌릴 수 있음
Evidence
- 서베이 논문 특성상 구체적 단일 실험 수치는 없으나, 인용된 연구들에서 SFT만으로도 RLHF 대비 경쟁력 있는 성능을 소수 데이터로 달성한 사례 다수 정리
- TTC 관련 연구에서 추론 시 계산량을 늘릴수록 수학·코딩 벤치마크 성능이 log-linear하게 향상되는 스케일링 법칙 확인
- Post-Training에 투입되는 계산량은 프리트레이닝 대비 수십~수백 분의 1 수준이지만, 모델 실사용 성능(MMLU, HumanEval 등)에서 의미 있는 개선을 이끌어냄
How to Apply
- 작은 모델(예: Llama-3.1-8B)을 도메인 특화 SFT 데이터로 파인튜닝할 때, 데이터 양보다 품질(다양성+정확성)에 집중하면 큰 모델 부럽지 않은 결과를 낼 수 있음
- 복잡한 추론이 필요한 태스크(수학, 코딩, 법률 분석)라면 TTC 방식 적용 고려 — 단순히 temperature 올리는 게 아니라 Chain-of-Thought + 다수 샘플링 후 검증하는 파이프라인 구성
- RLHF 구축이 부담스러우면 RLAIF(AI가 피드백 주는 방식)로 대체 가능 — 인간 레이블러 없이도 Claude나 GPT-4를 judge로 써서 선호도 데이터 자동 생성
Code Example
# TTC 스타일: Best-of-N 샘플링으로 추론 품질 올리기
import anthropic
client = anthropic.Anthropic()
def best_of_n_inference(prompt: str, n: int = 8) -> str:
"""N개 응답 생성 후 가장 자신감 있는 답 선택 (간단한 TTC 구현)"""
responses = []
for _ in range(n):
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}]
)
responses.append(msg.content[0].text)
# 다수결 또는 별도 judge 모델로 최선 선택
judge_prompt = f"""
다음 {n}개의 응답 중 가장 정확하고 논리적인 것을 선택해 그 내용만 출력하세요.
응답들:
" + "\n---\n".join(f"{i+1}. {r}" for i, r in enumerate(responses))
judge = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": judge_prompt}]
)
return judge.content[0].text
# 사용 예
result = best_of_n_inference("피보나치 수열의 10번째 항을 구하는 파이썬 코드를 작성하고 설명하세요.", n=4)
print(result)Terminology
Original Abstract (Expand)
Large language models (LLMs) have achieved remarkable proficiency in understanding and generating human natural languages, mainly owing to the "scaling law" that optimizes relationships among language modeling loss, model parameters, and pre-trained tokens. However, with the exhaustion of high-quality internet corpora and increasing computational demands, the sustainability of pre-training scaling needs to be addressed. This paper presents a comprehensive survey of post-training scaling, an emergent paradigm aiming to relieve the limitations of traditional pre-training by focusing on the alignment phase, which traditionally accounts for a minor fraction of the total training computation. Our survey categorizes post-training scaling into three key methodologies: Supervised Fine-tuning (SFT), Reinforcement Learning from Feedback (RLxF), and Test-time Compute (TTC). We provide an in-depth analysis of the motivation behind post-training scaling, the scalable variants of these methodologies, and a comparative discussion against traditional approaches. By examining the latest advancements, identifying promising application scenarios, and highlighting unresolved issues, we seek a coherent understanding and map future research trajectories in the landscape of post-training scaling for LLMs.