BOND: Best-of-N을 추론 비용 없이 흉내 내다
BOND: Aligning LLMs with Best-of-N Distillation (Sessa et al., Google DeepMind, arXiv 2024)
Introduction
Best-of-N 샘플링은 정렬 품질을 올리는 가장 손쉬운 방법 중 하나다. 참조 정책 \(\pi_{ref}\)에서 \(N\)개의 생성을 뽑고, reward model이 가장 높다고 판정한 것을 고른다. 별도 학습 없이도 reward가 확실히 올라가고, 실제로 #19 PPO로 학습한 정책보다 Best-of-N이 더 나은 reward-KL 트레이드오프를 보인다는 보고도 많다. 문제는 비용이다. 추론 시점에 \(N\)번의 생성과 \(N\)번의 reward 채점이 필요하니, \(N=8\)이면 서빙 비용이 그대로 8배가 된다. 실서비스에 그대로 얹을 수 없는 트릭인 셈이다.
BOND(Best-of-N Distillation)는 이 딜레마를 정면으로 다룬다. 질문은 단순하다. Best-of-N이 만들어내는 출력 분포를 이미 알고 있다면, 그 분포를 단일 샘플 정책 \(\pi_\theta\)에 그대로 증류(distillation)하면 되지 않을까. 그러면 학습 시점에만 \(N\)배 비용을 치르고, 배포된 모델은 한 번의 forward pass로 Best-of-N 수준의 출력을 낸다.
이 논문의 기여는 세 갈래다. 첫째, Best-of-N이 뽑는 분포의 정확한 해석적 형태를 유도한다(Theorem 1). 둘째, 그 분포로 증류할 때 어떤 발산(divergence)을 최소화해야 mode collapse 없이 잘 되는지 분석한다. 셋째, 작은 \(n\)의 Best-of-n을 반복 적용하는 iterative BOND와, 이를 실전에 맞게 안정화한 J-BOND를 제안해 실제로 Gemma 계열 모델 정렬에 사용한다. 특히 Theorem 1의 결과는 그 자체로 흥미로운데, Best-of-N이 독립적인 기법이 아니라 특정 reward와 특정 KL 정규화 강도를 가진 표준 RLHF의 한 인스턴스였음을 보여준다.
Background
#19 PPO에서 다룬 KL 정규화 RLHF의 목적함수를 다시 떠올려보자.
\[\max_{\pi} \; \mathbb{E}_{y \sim \pi}[r(y)] - \beta \, \mathrm{KL}(\pi \Vert \pi_{ref})\]여기서 \(r(y)\)는 reward model의 점수, \(\beta\)는 정책이 참조 정책에서 얼마나 벗어날 수 있는지를 통제하는 계수다. PPO나 #22 RLOO 같은 REINFORCE 계열은 이 목적함수를 정책 경사(policy gradient)로 직접 최적화한다.
Best-of-N은 전혀 다른 경로로 비슷한 효과를 낸다. \(\pi_{ref}\)에서 \(y_1, \dots, y_N\)을 독립적으로 뽑고 \(\arg\max_i r(y_i)\)를 반환한다. 학습이 필요 없고, reward가 정확하기만 하면 품질이 보장된다. 하지만 이 절차가 정의하는 확률분포 \(\pi_{BoN}\)이 정확히 어떤 모양인지는 직관적으로 와닿지 않는다. “reward 상위권에 확률을 더 준다” 정도로만 알고 있으면, 그 분포를 다른 정책으로 증류할 방법이 없다. BOND는 이 분포를 닫힌 형태(closed form)로 유도하는 데서 출발한다.
Method
Theorem 1: Best-of-N 분포의 해석적 형태
\(\pi_{ref}\)에서 뽑은 하나의 샘플이 \(y\)보다 나쁘거나 같을 확률과, 엄격히 나쁠 확률을 각각 정의한다.
\[p_{\le}(y) = \mathbb{P}[r(y') \le r(y)], \qquad p_{<}(y) = \mathbb{P}[r(y') < r(y)]\]- \(p_{\le}(y)\): \(y\)가 \(N\)개 후보 중 최댓값이 되려면, 나머지 \(N-1\)개가 모두 이 확률 안에 들어와야 한다.
- \(p_{<}(y)\): reward가 동점(tie)일 때를 보정하기 위해 별도로 필요하다.
이 두 값으로 Best-of-N이 뽑는 정확한 분포가 다음과 같이 유도된다.
\[\pi_{BoN}(y) = \pi_{ref}(y) \cdot p_{\le}(y)^{N-1} \cdot \sum_{i=1}^{N}\left(\frac{p_{<}(y)}{p_{\le}(y)}\right)^{i-1}\]- \(\pi_{ref}(y)\): 애초에 \(y\)가 뽑힐 확률. 이 항이 없으면 \(\pi_{ref}\)가 전혀 생성하지 않는 \(y\)에도 확률이 붙어버린다.
- \(p_{\le}(y)^{N-1}\): 나머지 \(N-1\)개가 모두 \(y\)보다 나쁘거나 같아야 한다는 조건. \(p_{\le}(y)\)가 1보다 작으면 \(N\)이 커질수록 지수적으로 줄어드므로, reward가 낮은 생성은 \(N\)이 커질수록 급격히 배제된다.
- 뒤의 합(합 인덱스 \(i\)는 \(1\)부터 \(N\)까지 움직인다): 동점 처리를 위한 보정항. \(p_{<}(y) = p_{\le}(y)\)(동점 없음)이면 이 합은 정확히 \(N\)개 항이 균등하게 기여하지 않고 등비수열로 정리되며, 동점이 흔할수록(\(p_{<} \ll p_{\le}\)) 첫 항 근처로 수렴해 단순화된다.
결정적 통찰은 이 분포가 표준 RLHF 해와 정확히 같은 형태라는 점이다. KL 정규화 RLHF의 최적해는 \(\pi^*(y) \propto \pi_{ref}(y) \exp(r(y)/\beta)\) 형태를 띤다. Theorem 1의 \(\pi_{BoN}(y)\)를 이 형태에 맞춰보면, reward를
\[r_{BOND}(y) = \log p_{\le}(y)\]로 두고 KL 강도를
\[\beta_{BOND} = \frac{1}{N-1}\]로 두었을 때의 RLHF 해와 (동점 보정항을 빼면) 정확히 일치한다. 즉 Best-of-N은 “reward가 높은 순서대로 뽑는” 별도의 기법이 아니라, reward를 log-quantile로 재정의하고 \(N\)이 커질수록 KL 강도를 약하게 준 표준 RLHF였다. \(N\)이 커지면 \(\beta_{BOND}\)가 작아지므로 \(\pi_{ref}\)로부터 더 멀리 벗어나도 되고, 이는 직관과도 맞는다.
토이 예제: 3개 생성으로 손으로 따라가기
\(\pi_{ref}\)가 세 가지 생성 \(y_1, y_2, y_3\)만 내놓는다고 하자. 확률과 reward는 다음과 같이 준다.
| \(y\) | \(\pi_{ref}(y)\) | \(r(y)\) | \(p_{\le}(y)\) | \(p_{<}(y)\) |
|---|---|---|---|---|
| \(y_1\) | 0.5 | 1 | 0.5 | 0.0 |
| \(y_2\) | 0.3 | 5 | 0.8 | 0.5 |
| \(y_3\) | 0.2 | 10 | 1.0 | 0.8 |
\(p_{\le}(y)\)는 그냥 reward 오름차순으로 누적한 확률 질량이다. 예를 들어 \(p_{\le}(y_2) = \mathbb{P}[r(y') \le 5]\)인데, \(y_1\)(reward 1)과 \(y_2\)(reward 5) 모두 조건을 만족하므로 \(0.5+0.3=0.8\)이다.
이제 \(N=3\)으로 Theorem 1을 적용한다. \(y_3\)부터 계산해보면, \(p_{\le}(y_3)=1.0\), \(p_{<}(y_3)=0.8\)이므로 비율은 \(0.8/1.0=0.8\)이고
\[\pi_{BoN}(y_3) \propto 0.2 \times 1.0^{2} \times (1 + 0.8 + 0.8^2) = 0.2 \times 2.44 = 0.488\]같은 방식으로 \(y_1\)은 비율이 \(0/0.5=0\)이라 합이 \(1+0+0=1\)로 정리되어 \(0.5 \times 0.5^2 \times 1 = 0.125\), \(y_2\)는 비율 \(0.5/0.8=0.625\)로 합이 \(1+0.625+0.625^2=2.015625\)가 되어 \(0.3 \times 0.8^2 \times 2.015625 = 0.387\)이 나온다. 세 값을 더하면 \(0.125+0.387+0.488=1.000\)으로, 정규화 상수가 이미 1이라는 것까지 정확히 맞아떨어진다(Theorem 1이 근사가 아니라 정확한 분포이기 때문이다).
| \(y\) | \(\pi_{ref}(y)\) | \(\pi_{BoN}(y)\), \(N=3\) | 배율 |
|---|---|---|---|
| \(y_1\) (최저 reward) | 0.500 | 0.125 | \(\times 0.25\) |
| \(y_2\) | 0.300 | 0.387 | \(\times 1.29\) |
| \(y_3\) (최고 reward) | 0.200 | 0.488 | \(\times 2.44\) |
원래 20%에 불과했던 \(y_3\)의 확률이 Best-of-N을 거치며 48.8%로, 원래 50%였던 \(y_1\)의 확률은 12.5%로 뒤집힌다. 이것이 Best-of-N이 “품질을 끌어올리는” 과정을 확률 질량 이동으로 정확히 보여준다. 그리고 \(r_{BOND}(y) = \log p_{\le}(y)\)를 계산해보면 \(y_1, y_2, y_3\) 순서대로 \(-0.693, -0.223, 0\)이 되어 실제 reward 순위와 정확히 같은 순서를 유지한다. \(p_{\le}(y)\)는 결국 reward를 등수(rank)로, 즉 quantile로 바꿔 표현한 것이다.
Jeffreys divergence로 증류하기
\(\pi_{BoN}\)이 무엇인지 알았으니 이제 \(\pi_\theta\)를 이 분포에 맞춰 증류하면 된다. 문제는 어떤 발산을 최소화하느냐다. forward KL과 backward KL은 서로 다른 실패 모드를 만든다.
\[\text{Jeffreys}^\beta(\pi \Vert \pi_{BoN}) = (1-\beta)\,\mathrm{KL}(\pi_{BoN} \Vert \pi) + \beta\,\mathrm{KL}(\pi \Vert \pi_{BoN})\]| \(\beta\) | 발산 종류 | 경향 | 위험 |
|---|---|---|---|
| 0 | forward KL, \(\mathrm{KL}(\pi_{BoN}\Vert\pi)\) | mode-covering: \(\pi_{BoN}\)이 확률을 주는 영역을 폭넓게 덮는다 | 저품질 영역까지 과하게 커버 |
| 1 | backward KL, \(\mathrm{KL}(\pi\Vert\pi_{BoN})\) | mode-seeking: 확률이 가장 높은 봉우리에 집중한다 | 정책 붕괴(collapse) |
| 0.5 | Jeffreys(대칭) | 둘을 절충 | 실험적으로 가장 균형 잡힘 |
\(N=8\)로 학습한 XSum 요약 실험(Figure 2)에서 \(\beta=0.5\)는 forward KL과 backward KL을 동시에 낮추면서, reward의 log-quantile 값은 순수 backward KL만 최소화했을 때와 비슷한 수준까지 올렸다. 즉 대칭 Jeffreys divergence 하나로 mode-covering의 안전성과 mode-seeking의 reward 개선을 함께 얻은 셈이다.
Iterative BOND와 EMA 앵커
한 번의 Best-of-N 증류로는 \(N\)을 아주 크게 잡지 않는 한 개선 폭이 제한적이다. BOND는 대신 작은 \(n\)의 Best-of-n 증류를 반복 적용하는 메타 알고리즘을 제안한다.
\[\pi_0 = \pi_{ref}, \qquad \pi_{t+1} = \arg\min_\pi D\big(\pi \Vert \text{Best-of-}n(\pi_{anchor}^t)\big)\]매 스텝 앵커 정책 \(\pi_{anchor}^t\)을 기준으로 Best-of-\(n\) 분포를 만들고 거기로 증류한 뒤, 앵커를 갱신해 다음 스텝으로 넘어간다. 작은 \(n\)을 여러 번 누적하면 실질적으로 큰 \(N\)을 한 번에 쓴 것과 비슷한 효과를 낸다.
이를 실전에 맞게 안정화한 버전이 J-BOND다. 앵커를 매번 통째로 갈아 끼우는 대신 지수이동평균(EMA)으로 부드럽게 갱신한다.
\[\theta_{anchor}^{t+1} \leftarrow (1-\eta)\,\theta_{anchor}^t + \eta\,\theta_{t+1}\]Figure 5에 따르면 \(\eta=0.02\)의 EMA 앵커는 50스텝마다 앵커를 한 번에 교체하는 방식과 동일한 reward에 도달하면서도 KL 증가량은 현저히 작았다. 즉 같은 reward를 더 적은 KL 예산으로 얻는, 더 좋은 reward-KL 트레이드오프를 만들어냈다.
quantile 추정: 실무 트릭
\(p_{\le}(y)\)는 닫힌 형태로 계산할 수 없으니 몬테카를로로 근사한다. \(\pi_{ref}\)(또는 앵커)에서 \(k\)개를 뽑아
\[\hat{p}_{\le}(y) = \frac{1}{k}\sum_i \mathbb{I}\{r(y_i) \le r(y)\}\]로 추정한다. 학습 중에는 프롬프트당 16 샘플로도 충분했고, 평가 시엔 더 정밀한 32 샘플을 사용했다. 그런데 매 학습 스텝마다 16개씩 뽑아 reward를 채점하는 것도 비용이다. J-BOND는 이를 극단적으로 줄여, 앵커 샘플 단 2개만으로 동작하는 실용 reward를 쓴다.
\(y\)의 reward \(r(y)\)가 두 앵커 샘플 \(y_1, y_2\)의 reward보다 모두 낮으면 \(-\log 16\)을, 그렇지 않으면 \(0\)을 준다. 언뜻 임의로 골라낸 값 같지만, 이 두 값은 진짜 log-quantile reward \(\log p_{\le}(y)\)의 오목함(concavity)을 흉내 내도록 설계됐다. \(p_{\le}(y)=0.5\)인 경계에서 이 근사 reward의 기댓값이 \(\log(0.5)\)가 되도록 정확히 보정돼 있어서, 샘플 2개짜리 근사임에도 진짜 quantile reward의 스케일을 유지한다.
Experiments
논문은 T5 기반 XSum 요약과 Gemma 7B 정렬 두 축에서 검증한다.
XSum 요약(T5, \(N=8\)): 위 표에서 정리했듯 \(\beta=0.5\)가 forward·backward KL을 동시에 최소화하며 reward도 backward KL 수준으로 끌어올렸다.
Iterative BOND (Figure 4): 작은 \(n\)(2, 4)을 반복 적용한 iterative 방식은 학습이 진행되는 내내 reward가 꾸준히 개선됐다. 반면 \(n\)을 반복 없이 \(N=4, 8, 16\)으로 한 번에 키운 비반복 방식은 학습 초반에 reward가 빠르게 오르다가 일찍 포화됐다. 작은 \(n\)을 유지하면서도 반복 적용만으로 큰 \(N\)이 주는 트레이드오프를 따라잡은 셈이다.
Gemma 7B (Figure 7): J-BOND(\(\eta=0.02\))는 학습 내내 KL이 안정적으로 선형 증가하면서 reward가 계속 개선됐다. 비교 대상인 #22 RLOO 계열 REINFORCE는 정규화 계수 \(\beta_{RL} \in \{0.001, 0.01, 0.1, 1\}\) 선택에 매우 민감해서, 값에 따라 reward-KL 트레이드오프가 크게 흔들렸다.
| 방법 | KL 거동 | reward-KL 트레이드오프 | 하이퍼파라미터 민감도 |
|---|---|---|---|
| REINFORCE (\(\beta_{RL}\) 튜닝) | 값에 따라 요동 | \(\beta_{RL}\)에 따라 크게 변동 | 높음(4개 값 모두 시도 필요) |
| J-BOND (\(\eta=0.02\)) | 안정적 선형 증가 | 모든 REINFORCE baseline보다 우수 | 낮음 |
J-BOND는 논문 발표 시점 기준 실제로 Gemma 1.1(2B, 7B), RecurrentGemma(2B, 9B), CodeGemma 1.1 정렬에 쓰였다. 이 계보는 #43 프론티어 모델의 reward 설계에서 다시 짚겠지만, Gemma 계열의 post-training이 WARM류 reward 설계와 BOND·WARP류 정책 최적화를 함께 쌓아 만들어졌다는 사실이 여기서부터 확인된다.
Conclusion
BOND의 핵심 메시지는 두 가지로 요약된다. 하나는 이론적 발견으로, Best-of-N이 “따로 노는 추론 트릭”이 아니라 reward를 log-quantile로 재정의한 표준 KL 정규화 RLHF의 한 인스턴스라는 것이다(Theorem 1). 다른 하나는 실용적 해법으로, 이 사실을 이용해 Best-of-N의 출력 분포를 Jeffreys divergence로 단일 샘플 정책에 증류하고, iterative 절차와 EMA 앵커(J-BOND)로 안정화하면 \(N\)배 추론 비용 없이 Best-of-N에 준하는 품질을 얻을 수 있다는 것이다.
한계도 명확하다. 추론 비용은 사라졌지만 학습 비용은 그대로 남는다. quantile을 추정하려면 매 스텝 여러 개의 후보를 뽑아 reward model로 채점해야 하고, J-BOND가 2-샘플 근사로 이를 줄였다고 해도 여전히 reward model 채점 자체가 병목이다. 또한 이 모든 논의는 reward model이 정확하다는 전제 위에 서 있다. Best-of-N이든 그 증류판이든, reward가 틀리면 잘못된 quantile로 확률 질량을 몰아줄 뿐이다. Best-of-N을 reward 품질 자체를 높이는 데 쓰는 방향은 #34 Generative Verifiers의 선택 실험과 맞닿아 있으니 함께 참고할 만하다. 같은 DeepMind 계열에서 reward 설계 쪽을 다룬 #13 WARM과, 정책 쪽을 다루는 다음 편 #29 WARP로 이어서 본다.
RLHF Reward 설계 시리즈
이 글은 RLHF Reward 설계 시리즈의 스물여덟 번째 글이다.
1부. 지형도
- Deep RL from Human Preferences (Christiano 2017) — 선호로 보상을 배우는 원형
- InstructGPT (Ouyang 2022) — RLHF 3단계 표준 레시피
- HH-RLHF (Bai 2022) — helpful·harmless preference model
2부. 스칼라 RM 해부
- Rethinking Bradley-Terry (2024) — reward 변환의 수학적 기반
- Secrets of RLHF II (2024) — 선호 데이터 노이즈와 RM 일반화
- Skywork-Reward (2024) — 데이터 큐레이션이 아키텍처를 이긴다
- ArmoRM (2024) — 다목적 분해와 MoE 게이팅
- Llama 2 (2023) — helpfulness·safety RM 분리 프로덕션 레시피
- RewardBench 2 (2025) — RM을 어떻게 평가할 것인가
3부. Reward Hacking
- Overoptimization Scaling Laws (2022) — Goodhart의 법칙 정량화
- Length Correlations in RLHF (2023) — 성능 향상의 얼마가 길이인가
- ODIN (2024) — 길이를 reward에서 분리
- WARM (2024) — weight averaging으로 hacking 방어
4부. 안전성 정렬
- Safe RLHF (2023) — 안전성을 reward가 아니라 제약으로
- Rule-Based Rewards (2024) — 안전 규칙을 reward로 직접 번역
- Deliberative Alignment (2024) — 안전 명세를 모델의 추론 안으로
- Shallow Safety Alignment (2024) — 정렬은 첫 몇 토큰에만 얹혀 있다
- OR-Bench (2024) — 과잉 거절을 어떻게 측정할 것인가
5부. reward를 정책으로
- PPO (2017) — clipped surrogate objective
- Secrets of RLHF I (2023) — PPO 학습 안정화 트릭
- GRPO / DeepSeekMath (2024) — value network를 버리다
- RLOO (2024) — REINFORCE로 충분한가
- DPO (2023) — reward를 없애면 어떻게 되는가
- SimPO (2024) — reference-free + 길이 정규화
- KTO (2024) — 선호 쌍 없이 이진 신호만으로
- GSPO (2025) — importance ratio를 시퀀스 단위로
- DAPO (2025) — 신호 없는 프롬프트를 버린다
- (현재 글) BOND (2024) — Best-of-N을 추론 비용 없이
- WARP (2024) — 정책을 weight space에서 병합
6부. Process & Verifiable Reward
- Let's Verify Step by Step (2023) — 과정 감독이 결과 감독을 이긴다
- Math-Shepherd (2023) — 사람 라벨 없는 PRM
- DeepSeek-R1 (2025) — RLVR, 규칙이 reward가 될 때
7부. Generative Reward Model
- Prometheus 2 (2024) — 오픈 평가자 모델과 rubric 조건부 평가
- Generative Verifiers (2024) — reward를 next-token prediction으로
- Generative Reward Models (2024) — GenRM과 선호 학습의 결합
- Self-Taught Evaluators (2024) — 사람 라벨 없이 judge를 키우다
- DeepSeek-GRM / SPCT (2025) — inference-time scaling
8부. 생각하는 Judge, 그리고 그 신뢰
- ReasonGRM (2025) — reasoning 능력을 judge에 이식
- J1 (2025) — RL로 judge를 생각하게 만들기
- Rubrics as Rewards (2025) — 비검증 도메인으로
- CriticEval (2024) — judge 자체를 어떻게 평가하나
- One Token to Fool LLM-as-a-Judge (2025) — GenRM도 뚫린다
9부. 실전 종합
- 프론티어 모델의 reward 설계 (2025~2026) — 열한 개 모델이 실제로 택한 것
- reward를 어떻게 설계할 것인가 — 시리즈를 관통한 RM 설계 원칙 한 장
본 시리즈는 44편으로 구성된다.
참고 문헌
- Sessa et al., 2024. BOND: Aligning LLMs with Best-of-N Distillation.
- Ramé et al., 2024. WARM: On the Benefits of Weight Averaged Reward Models.
- Ramé et al., 2024. WARP: On the Benefits of Weight Averaged Rewarded Policies.
- Gemma Team, 2025. Gemma 3 Technical Report.
Enjoy Reading This Article?
Here are some more articles you might like to read next: