IQ Lab
← all posts
AI 2026.04.28 · 11 min read Advanced

PPO는 왜 TRPO를 대체했는가

2차 최적화의 계산 비용 문제부터 Clipped Objective의 수학적 구조, RLHF 스케일까지 — PPO가 강화학습의 실질적 표준이 된 이유를 추적한다.


TRPO는 이론적으로 아름답다. 단조 개선(monotonic improvement)을 보장하는 trust region이 있고, KL constraint가 정책의 급격한 변화를 막는다. 그런데 GPT-4를 훈련할 때는 TRPO를 쓰지 않는다. 왜인가?

TRPO의 계산 비용

TRPO의 매 업데이트는 세 가지 비용이 중첩된다.

첫째, Conjugate Gradient(CG) 반복이다. Hessian-vector product를 직접 계산하지 않고 Pearlmutter trick으로 우회하더라도, CG 10회 반복은 각각 2번의 forward/backward를 요구한다 — 업데이트당 20 FB. 둘째, line search다. KL constraint를 만족시키는 step size를 찾기 위해 평균 2-3번, 최대 10번의 backtrack이 추가된다. 셋째, 한 배치의 샘플을 단 한 번만 사용한다. 이 single-update 구조가 TRPO의 이론적 보장의 근거지만, 동시에 sample inefficiency의 원인이다.

업데이트당 총 비용을 정의하면:

CostTRPO=1+2NCG+NLS+NV30-40 FB\text{Cost}_{\text{TRPO}} = 1 + 2 \cdot N_{\text{CG}} + N_{\text{LS}} + N_{\text{V}} \approx 30\text{-}40 \text{ FB}

파라미터 수 dd10510^5-10610^6 수준이던 2017년에는 감당 가능했다. d1011d \sim 10^{11}인 현대 LLM에서는 Hessian-vector product 자체가 모든 레이어의 backward pass를 요구하므로, TRPO는 구조적으로 불가능하다.

Clipped Objective의 수학적 구조

PPO의 핵심은 다음 한 줄이다:

LCLIP(θ)=Et ⁣[min ⁣(rt(θ)A^t,  clip(rt(θ),1ϵ,1+ϵ)A^t)]L^{\text{CLIP}}(\theta) = \mathbb{E}_t\!\left[\min\!\Big(r_t(\theta)\hat{A}_t,\; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)\hat{A}_t\Big)\right]

여기서 rt(θ)=πθ(atst)/πθold(atst)r_t(\theta) = \pi_\theta(a_t \mid s_t) / \pi_{\theta_{\text{old}}}(a_t \mid s_t)는 importance ratio다.

단순 clipping clip(rt,1ϵ,1+ϵ)A^t\text{clip}(r_t, 1-\epsilon, 1+\epsilon)\hat{A}_t과 달리 min을 사용하는 이유가 있다. rt>1+ϵr_t > 1+\epsilon이면서 A^t<0\hat{A}_t < 0인 경우 — 나쁜 행동인데 정책이 그것을 더 자주 선택하는 상황 — 을 생각하자. 단순 clipping은 gradient를 0으로 만들어 정책을 고치지 못한다. min은 unclipped 항 rtA^tr_t\hat{A}_t가 더 작으므로 이를 선택하고, gradient를 활성화해 즉시 회복시킨다.

명제 1 · Pessimistic Lower Bound

모든 θ\theta에 대해 LCLIP(θ)LCPI(θ)=E[rtA^t]L^{\text{CLIP}}(\theta) \leq L^{\text{CPI}}(\theta) = \mathbb{E}[r_t\hat{A}_t].

▷ 증명

min(a,b)a\min(a, b) \leq a는 자명하다. rt[1ϵ,1+ϵ]r_t \in [1-\epsilon, 1+\epsilon]이면 clip이 비활성화되어 두 항이 같다. rt>1+ϵr_t > 1+\epsilon이고 A^t>0\hat{A}_t > 0이면 clipped 항이 더 작으므로 min = clipped < unclipped. rt<1ϵr_t < 1-\epsilon이고 A^t<0\hat{A}_t < 0인 경우도 마찬가지다. 따라서 LCLIPL^{\text{CLIP}}LCPIL^{\text{CPI}}의 lower bound다. \square

이 비대칭 구조가 PPO의 핵심 직관이다. “잘 가는 방향은 천천히, 잘못 가는 방향은 빨리 회복.”

왜 Multi-Epoch이 가능한가

TRPO의 trust region bound는 single update 가정에 기반한다. Multi-epoch으로 재사용하면 두 번째 epoch부터 advantage estimate가 이미 변한 정책 기준이 아니라 old 정책 기준 — mismatch가 발생한다.

PPO의 clipping은 이 문제를 자연스럽게 처리한다. Importance ratio rtr_t[1ϵ,1+ϵ][1-\epsilon, 1+\epsilon]을 벗어나면 gradient가 0이 되거나(cap), 아니면 unclipped로 활성화되어 회복된다(recovery). 매 minibatch에서 이 메커니즘이 작동하므로, 같은 배치를 4-10 epoch 반복해도 정책이 너무 멀리 이탈하지 않는다.

트레이드오프

PPO는 TRPO의 단조 개선 보장을 포기한다. 대신 first-order optimization으로 multi-epoch을 가능하게 해 샘플 효율을 4-10배 향상시킨다. 이론적 손실이 실전의 이득보다 작다는 것이 수년간의 empirical 검증이 보여준 결론이다. Engstrom(2020)은 더 나아가 clipping 자체보다 advantage normalization, orthogonal initialization 같은 구현 세부사항이 성능에 더 큰 영향을 미친다는 것을 보였다.

PPO-Penalty와 RLHF에서의 확장

Schulman(2017)은 두 가지 변형을 제안했다. PPO-Clip(LCLIPL^{\text{CLIP}})과 PPO-Penalty다:

LKLPEN(θ)=LCPI(θ)βDˉKL(θoldθ)L^{\text{KLPEN}}(\theta) = L^{\text{CPI}}(\theta) - \beta \cdot \bar{D}_{\text{KL}}(\theta_{\text{old}} \| \theta)

Lagrangian duality 관점에서 두 형태는 이론적으로 동등하다. maxθL s.t. DˉKLδ\max_\theta L \text{ s.t. } \bar{D}_{\text{KL}} \leq \delta의 primal과 dual이다. 그러나 실전에서는 Clip이 선호된다. ϵ\epsilon 하나만 조정하면 되고, KL estimator의 분산에 의존하지 않기 때문이다.

RLHF에서는 두 KL이 동시에 등장한다:

LRLHF=LCLIPβlogπcurrπrefL^{\text{RLHF}} = L^{\text{CLIP}} - \beta \cdot \log\frac{\pi_{\text{curr}}}{\pi_{\text{ref}}}

LCLIPL^{\text{CLIP}}은 업데이트 간 trust region을, reference KL은 SFT 모델로부터의 누적 이탈을 제어한다. 175B 파라미터 모델에서 TRPO는 메모리 계산조차 불가능하지만(d2×4d^2 \times 4 bytes 1020\approx 10^{20} GB), PPO는 기존 분산 학습 인프라 위에서 동작한다.

표준 구현의 9가지 세부사항

PPO가 “잘 되는” 이유는 알고리즘 아이디어만이 아니다. Andrychowicz(2021)가 체계적으로 분석한 구현 세부사항이 성능의 상당 부분을 설명한다.

가장 중요한 것은 advantage normalization이다. 배치마다 A^t(A^tmean)/std\hat{A}_t \leftarrow (\hat{A}_t - \text{mean}) / \text{std}로 정규화하면, advantage의 스케일 변동이 effective learning rate를 불안정하게 만드는 문제를 해결한다. ϵ=0.2\epsilon = 0.2의 clip threshold가 모든 배치에서 일관된 의미를 갖게 된다.

그 다음이 Adam ϵ=105\epsilon = 10^{-5} (기본값 10810^{-8}이 RL에서 너무 작음), orthogonal initialization(hidden layers gain 2\sqrt{2}, policy output 0.01), gradient clipping(max norm 0.5), value function clipping이다.

정리

  • TRPO의 CG + line search는 업데이트당 30-40 FB를 요구한다. d1011d \sim 10^{11} 모델에서는 구조적으로 불가능하다.
  • LCLIPL^{\text{CLIP}}의 min 연산은 단순 clipping과 다르다. 잘못된 방향의 정책을 빠르게 회복시키는 비대칭 메커니즘이다.
  • Multi-epoch이 가능한 이유는 clipping이 매 minibatch에서 implicit trust region을 enforce하기 때문이다.
  • PPO의 실전 성능은 알고리즘과 구현 세부사항의 조합에서 나온다. 이론이 동기를 제공하고, 엔지니어링이 완성한다.

“PPO가 잘 된다”는 말은 “PPO의 표준 구현이 잘 된다”는 말이다.

REF
Schulman et al. · 2017 · Proximal Policy Optimization Algorithms · arXiv