coredot.today
DAPO 완전 해부: DeepSeek-R1의 비밀을 풀어낸 오픈소스 강화학습의 모든 것
블로그로 돌아가기
DAPO강화학습GRPOPPOLLM추론DeepSeek-R1

DAPO 완전 해부: DeepSeek-R1의 비밀을 풀어낸 오픈소스 강화학습의 모든 것

DeepSeek-R1이 강화학습만으로 AI에게 '생각하는 법'을 가르쳤다고 했지만, 핵심 레시피는 비밀이었다. DAPO는 그 비밀을 4가지 기법으로 풀어내고, 절반의 훈련 스텝으로 더 높은 성능을 달성한 뒤 모든 코드를 공개했다. 엔트로피 붕괴부터 동적 샘플링까지, 대규모 RL의 진짜 난관과 해법을 논문 기반으로 풀어본다.

코어닷투데이2026-03-2539

들어가며: "레시피가 없는 요리책"의 문제

2025년 1월, DeepSeek-R1이 공개되었을 때 AI 커뮤니티는 열광했다. 별도의 지도 학습(SFT) 없이 강화학습(RL)만으로 AI가 "생각하는 법"을 스스로 터득했다는 것이다. 수학 문제를 풀 때 "잠깐, 다시 생각해보자..."라며 자기 답을 되돌아보는 행동이 훈련 도중 자연 발생했다고 보고했다.

하지만 한 가지 치명적인 문제가 있었다. 핵심 레시피를 공개하지 않았다.

DeepSeek 기술 보고서는 GRPO라는 알고리즘을 사용했다고 밝혔지만, 구체적으로 어떤 하이퍼파라미터를 썼는지, 훈련 중 어떤 문제를 만났고 어떻게 해결했는지는 거의 언급하지 않았다. OpenAI의 o1도 마찬가지였다. 이것은 마치 "이 식당의 시그니처 요리를 만들었습니다"라고만 하고, 레시피는 알려주지 않는 것과 같았다.

전 세계 연구자들이 공개된 정보만으로 재현을 시도했지만, 결과는 참담했다. 같은 Qwen2.5-32B 모델에 GRPO를 적용해봤더니 AIME 2024(미국 고등학생 수학 경시대회 문제)에서 겨우 30점 — DeepSeek-R1-Zero의 47점에 한참 못 미쳤다. 무엇이 빠진 걸까?

2025년 3월, 35명의 연구자로 구성된 팀이 이 수수께끼를 풀어냈다. 그들은 DAPO(Decoupled Clip and Dynamic sAmpling Policy Optimization)라는 알고리즘을 발표하며, 대규모 LLM 강화학습의 네 가지 핵심 난관과 그 해법을 남김없이 공개했다. 결과는 놀라웠다: 같은 모델로 50점 — DeepSeek-R1-Zero를 넘어서면서, 훈련 스텝은 절반밖에 쓰지 않았다.

이 글에서는 DAPO가 발견한 네 가지 비밀이 무엇인지, 왜 각각이 필요했는지를 역사적 맥락부터 깊이 있게 풀어본다.


1. 강화학습으로 AI에게 "생각"을 가르치는 역사

1.1 RLHF: AI를 "착하게" 만든 첫 번째 시도 (2022)

강화학습이 LLM에 처음 적용된 것은 2022년 ChatGPT의 등장과 함께였다. RLHF(Reinforcement Learning from Human Feedback)는 AI의 답변을 사람이 평가하고, 그 선호에 맞게 모델을 조정하는 기법이다.

RLHF의 핵심 엔진은 PPO(Proximal Policy Optimization)였다. OpenAI가 2017년 제안한 이 알고리즘의 핵심 아이디어는 "모델을 업데이트하되, 한 번에 너무 많이 바꾸지 말자"는 것이다.

PPO의 핵심: 클리핑(Clipping)

모델이 업데이트될 때, 각 토큰의 확률이 변하는 비율을 [1-ε, 1+ε] 범위로 제한한다.

예: ε=0.2이면, 확률이 최대 20%만 오르거나 내릴 수 있다.

이 "안전벨트" 덕분에 모델이 한 번의 업데이트로 완전히 망가지는 것을 방지한다.

하지만 PPO에는 한 가지 비싼 구성 요소가 있었다: 가치 함수(Value Function). 각 상태의 "예상 보상"을 추정하는 별도의 신경망이 필요했고, 이것은 훈련 비용을 크게 높였다.

1.2 GRPO: 가치 함수를 제거한 혁신 (2024–2025)

DeepSeek 팀은 2024년 GRPO(Group Relative Policy Optimization)를 제안해 이 문제를 해결했다. 핵심 아이디어는 "비싼 가치 함수 대신, 같은 질문에 대한 여러 답변의 상대적 점수를 비교하자"는 것이다.

1. 그룹 생성 같은 수학 문제에 대해 G=16개의 답변을 생성
2. 보상 계산 각 답변의 정답 여부 확인: 맞으면 +1, 틀리면 -1
3. 상대적 비교 그룹 내 평균과 표준편차로 정규화 → "이 답변은 평균보다 얼마나 좋은가?"
4. 모델 업데이트 평균보다 좋은 답변의 확률은 높이고, 나쁜 답변의 확률은 낮춤

GRPO는 PPO의 가치 함수를 제거해 훈련 비용을 크게 낮추면서도, DeepSeek-R1에서 대규모 검증에 성공했다. AI가 강화학습만으로 "잠깐, 다시 생각해보자"라는 반성적 사고를 자발적으로 학습한 것이다.

1.3 하지만 GRPO만으로는 부족했다

문제는 다른 팀이 GRPO를 그대로 따라 해도 비슷한 결과를 얻지 못했다는 것이다. DAPO 저자들도 처음에 같은 경험을 했다:

"Qwen2.5-32B에 GRPO를 적용했더니 AIME 2024에서 겨우 30점이었다. DeepSeek-R1-Zero의 47점과는 17점 차이."

이 17점의 격차 뒤에는 GRPO 논문이 언급하지 않은 네 가지 핵심 문제가 숨어 있었다. DAPO는 이 문제들을 하나씩 발견하고 해결해 나갔다.


2. 문제 1 — 엔트로피 붕괴: AI가 "같은 말만 반복"하게 되는 현상

2.1 엔트로피란 무엇인가

엔트로피(entropy)는 모델의 "다양성 지수"라고 생각하면 된다. 엔트로피가 높으면 모델이 다양한 답변을 생성하고, 낮으면 거의 같은 답변만 반복한다.

사람으로 치면 이렇다:

  • 높은 엔트로피: "이 문제를 이렇게도, 저렇게도 풀어볼까? 다른 접근법도 시도해보자."
  • 낮은 엔트로피: "이 문제는 무조건 이 공식이야. 다른 방법? 생각 안 해."

강화학습에서 엔트로피가 붕괴(collapse)하면, 모델은 한두 가지 패턴에만 매달리게 되고, 새로운 풀이법을 탐색하지 않는다. 이것은 치명적이다. 강화학습의 핵심은 탐색(exploration)활용(exploitation)의 균형인데, 엔트로피 붕괴는 탐색을 완전히 죽여버린다.

2.2 왜 PPO의 클리핑이 엔트로피를 죽이는가

DAPO 팀이 발견한 원인은 PPO의 대칭 클리핑이었다. 표준 PPO는 확률 변화를 [1-ε, 1+ε] 범위로 제한한다. ε=0.2라면 [0.8, 1.2].

이 제한은 합리적으로 보이지만, 확률의 비대칭성을 간과하고 있다:

PPO 클리핑의 비대칭 문제
낮은 확률 토큰 (π=0.01)
최대 0.012까지만 증가 가능 (+0.002)
높은 확률 토큰 (π=0.90)
최대 1.08까지 증가 가능 (+0.18)

확률이 0.01인 토큰(새로운 시도를 나타내는 토큰)은 한 번의 업데이트로 0.002밖에 올릴 수 없다. 반면 확률이 0.90인 토큰(기존에 자주 쓰던 토큰)은 0.18이나 올릴 수 있다. 결과적으로 기존에 잘 쓰던 토큰은 더 강해지고, 새로운 시도는 더 어려워진다. 이것이 엔트로피 붕괴의 메커니즘이다.

2.3 해법: Clip-Higher — "올릴 때는 여유를 줘라"

DAPO의 첫 번째 기법 Clip-Higher**는 놀라울 정도로 간단한 해법이다: **상한과 하한의 클리핑 범위를 분리(decouple)한다.

기존 PPO

클리핑 범위: [1-ε, 1+ε]

ε = 0.2 → [0.8, 1.2]

상하한 대칭
DAPO (Clip-Higher)

클리핑 범위: [1-ε_low, 1+ε_high]

ε_low=0.2, ε_high=0.28 → [0.8, 1.28]

올릴 때 더 넓은 범위 허용

하한(ε_low=0.2)은 그대로 유지한다. 확률이 0으로 추락하는 것은 여전히 위험하기 때문이다. 하지만 상한(ε_high=0.28)은 40% 더 넓게 열어준다. 이렇게 하면 낮은 확률의 토큰(새로운 시도)도 기존보다 더 빠르게 확률을 올릴 수 있어서, 탐색이 살아남는다.

수치가 작아 보이지만 효과는 극적이다:

기존 GRPO (ε=0.2)
30점 (엔트로피 붕괴)
+ Clip-Higher (ε_high=0.28)
38점 (+8점)

8점 향상. 하이퍼파라미터 하나만 바꿨을 뿐인데, 엔트로피가 유지되면서 모델이 다양한 풀이법을 계속 시도하게 된 결과다.


3. 문제 2 — 보상 노이즈: "잘하고도 벌받는" 불합리

3.1 긴 추론의 딜레마

대규모 LLM RL의 핵심 시나리오는 Long-CoT(긴 연쇄 사고)다. 복잡한 수학 문제를 풀 때 AI가 수천 토큰에 걸쳐 단계별로 사고하는 것이다.

하지만 실용적인 이유로 최대 생성 길이(L_max)를 정해야 한다. DAPO에서는 20,480 토큰이다. 문제는 AI가 이 한도를 초과하면 응답이 잘리고(truncated), 정답을 내놓지 못하게 된다.

기존 방식은 잘린 응답에 -1(오답과 동일한 벌점)을 주었다. 하지만 이것이 심각한 노이즈를 만든다:

사례: 억울한 벌점

AI가 매우 어려운 기하학 문제를 풀고 있다. 19,000 토큰까지 완벽하게 추론했고, 마지막 계산 단계만 남았다. 하지만 응답이 20,480 토큰에서 잘렸다. 이 AI는 올바른 추론 과정을 밟았음에도 -1을 받는다. 한편, 첫 줄부터 완전히 잘못된 풀이를 쓴 짧은 응답도 역시 -1을 받는다.

강화학습 입장에서 두 응답은 동일하게 나쁜 것으로 학습된다. 이것은 명백한 노이즈다. 올바른 추론 패턴을 벌하고 있기 때문이다.

3.2 해법: Overlong Reward Shaping — "부드러운 벌점"

DAPO는 두 단계로 이 문제를 해결한다.

1단계: Overlong Filtering — 잘린 응답의 손실(loss)을 아예 마스킹한다. 즉, 학습에서 제외한다.

"이 접근법만으로도 훈련이 현저하게 안정화되고 성능이 향상되었다."

2단계: Soft Overlong Punishment — 완전 제외 대신, 길이에 비례하는 부드러운 벌점을 준다.

Soft Overlong Punishment
|y| ≤ 16,384 토큰
벌점 없음 (R=0)
16,384 < |y| ≤ 20,480
점진적 벌점 (0 → -1)
|y| > 20,480
최대 벌점 (R=-1)

16,384 토큰(L_max - L_cache)까지는 자유롭게 추론하게 하고, 그 이후부터 20,480 토큰까지는 선형적으로 벌점이 증가한다. 이 "완충 구간(cache window)"이 4,096 토큰이다.

비유하자면, 시험에서 답안지가 3페이지까지인데 2.5페이지를 넘기면 "곧 끝내세요"라는 경고를, 3페이지를 넘으면 "감점"을 받는 것이다. 갑자기 0점이 되는 게 아니라, 점진적으로 불이익을 받으니 훨씬 합리적이다.

효과:

Overlong Filtering만
36점
+ Soft Overlong Punishment
41점 (+5점)

4. 문제 3 — 긴 답변의 역설: 토큰 수준 손실의 필요성

4.1 GRPO의 "샘플 수준" 손실의 문제

GRPO의 기본 손실 함수는 샘플 수준(sample-level)이다. 각 응답에 동일한 가중치를 부여하고, 응답 내에서는 토큰 수로 나눈다.

이것이 왜 문제일까? 구체적 예를 보자:

사례 1: 뛰어난 긴 풀이가 무시된다

응답길이정답 여부토큰당 그래디언트 기여
응답 A100 토큰 (짧은 풀이)정답1/100 = 0.01
응답 B2,000 토큰 (상세한 풀이)정답1/2,000 = 0.0005

응답 B가 더 상세하고 정교한 추론 과정을 담고 있음에도, 토큰당 그래디언트 기여는 응답 A의 1/20에 불과하다. 모델은 짧은 풀이를 선호하게 되고, 복잡한 추론 패턴을 학습하지 못한다.

사례 2: 쓸데없이 긴 횡설수설에 약한 벌점

반대의 경우도 문제다. 2,000 토큰에 걸쳐 횡설수설하며 틀린 답을 낸 응답은, 길이로 나누면 토큰당 벌점이 매우 작아진다. 틀린 답변인데 벌점이 약해서 제대로 학습되지 않는다.

4.2 해법: Token-Level Policy Gradient Loss

DAPO의 해법은 전체 토큰 수로 나누는 것이다.

GRPO (샘플 수준)

Loss = (1/G) × Σ (1/|oᵢ| × Σ loss_t)

각 샘플에 동일 가중치 → 긴 답변 불이익
DAPO (토큰 수준)

Loss = (1/Σ|oᵢ|) × ΣΣ loss_t

전체 토큰으로 정규화 → 긴 답변 공정 반영

미묘한 차이처럼 보이지만 효과는 분명하다:

  • 긴 고품질 답변의 추론 패턴이 제대로 학습됨
  • 횡설수설이 적절하게 벌점을 받음
  • 엔트로피가 통제된 범위에서 증가 (폭주하지 않음)

논문에서도 "이 기법은 점수 자체를 크게 올리지는 않지만(41→42), 훈련의 안정성을 크게 높이고 길이 증가를 건강하게 만든다"고 강조한다.


5. 문제 4 — 사라지는 그래디언트: 동적 샘플링의 필요성

5.1 "전부 맞으면 배울 게 없다" 문제

이것은 DAPO의 네 가지 기법 중 가장 큰 성능 향상을 가져온 기법이다.

GRPO에서 어드밴티지(advantage)는 그룹 내 상대적 비교로 계산된다. 같은 질문에 대해 16개의 답변을 생성했을 때:

Case A: 정상적인 그룹 16개 중 10개 정답, 6개 오답 → 정답은 양의 어드밴티지, 오답은 음의 어드밴티지 → 학습 가능
Case B: 전부 정답 16개 모두 정답 → 보상 평균 = 1, 표준편차 = 0 → 어드밴티지 = 0 → 그래디언트 소멸
Case C: 전부 오답 16개 모두 오답 → 보상 평균 = -1, 표준편차 = 0 → 어드밴티지 = 0 → 그래디언트 소멸

핵심: 모든 답변이 같은 결과(전부 정답 또는 전부 오답)면, 비교할 것이 없어서 어드밴티지가 0이 되고, 이 질문에서는 아무것도 배우지 못한다.

이것이 왜 심각한 문제일까? 훈련이 진행될수록 모델이 쉬운 문제를 맞히는 비율이 올라간다. 논문의 Figure 3(b)에 따르면, 훈련 초반에는 약 20%의 샘플이 "전부 정답"이지만, 훈련이 진행될수록 60%까지 증가한다. 즉, 훈련이 진행될수록 실질적으로 학습에 기여하는 데이터가 줄어든다.

배치(batch) 크기가 512개 프롬프트인데, 그 중 60%가 학습에 기여하지 않으면 실질 배치는 205개로 줄어든다. 그래디언트가 불안정해지고 학습 효율이 급격히 떨어진다.

5.2 해법: Dynamic Sampling — "의미 있는 샘플만 남겨라"

DAPO의 동적 샘플링(Dynamic Sampling)은 이 문제를 직접적으로 해결한다:

제약 조건: 0 < |{정답인 응답}| < G

한 질문에 대한 G개 응답 중, 적어도 하나는 정답이고 적어도 하나는 오답이어야 한다.

이 제약을 만족하지 않는 질문(전부 정답 또는 전부 오답)은 버리고, 제약을 만족하는 질문이 배치를 채울 때까지 추가 샘플링한다.

비유하자면, 학교에서 시험 문제를 낼 때와 같다. 전교생이 다 맞는 문제(너무 쉬움)나 전교생이 다 틀리는 문제(너무 어려움)는 변별력이 없다. 일부는 맞고 일부는 틀리는 문제만이 학생들을 효과적으로 평가하고 가르칠 수 있다. 동적 샘플링은 이 "변별력 있는 문제"만 남기는 것이다.

"추가 샘플링이 비용을 높이지 않느냐?"는 의문이 있을 수 있다. 논문은 "생성 시간은 가장 긴 응답(long-tail)에 의해 좌우되므로, 짧은 응답을 추가로 생성하는 비용은 무시할 수 있다"고 설명한다.

효과는 극적이다:

동적 샘플링 없이
42점
동적 샘플링 적용 (DAPO)
50점 (+8점)

8점 향상. 네 가지 기법 중 단독으로 가장 큰 효과를 보인 기법이다.


6. 네 기법의 누적 효과: 30점에서 50점으로

DAPO의 네 기법은 독립적으로도 효과적이지만, 순차적으로 적용할 때 누적적으로 작용한다. 논문의 핵심 실험 결과를 보자:

기본 GRPO
30점
+ Overlong Filtering
36점
+ Clip-Higher
38점
+ Soft Overlong Punishment
41점
+ Token-level Loss
42점
+ Dynamic Sampling (DAPO)
50점

30점 → 50점. 67% 향상.** 그리고 이 모든 것은 DeepSeek-R1-Zero의 47점을 넘어서면서, 훈련 스텝은 **절반(약 5만 스텝 vs 10만 스텝)밖에 사용하지 않았다.

DAPO
50점
~50K 스텝
DeepSeek-R1-Zero
47점
~100K 스텝
DAPO는 3점 높고
스텝은 절반

7. 놀라운 발견: AI가 스스로 "반성"을 배우다

7.1 창발적 행동의 등장

DAPO 논문에서 가장 흥미로운 부분은 훈련 중 관찰된 창발적 행동(emergent behavior)이다.

훈련 초반, 모델은 수학 문제를 "직선적으로" 풀었다. 한 단계씩 풀어나가되, 중간에 자기 풀이를 되돌아보는 일은 없었다.

하지만 훈련이 진행되자, 명시적으로 가르치지 않았는데도 반성(reflection)역추적(backtracking) 패턴이 자발적으로 등장했다:

훈련 후반부에 나타난 반성적 사고
모델의 추론 과정
"...이면각은 arctan(2/3)이 되므로...

그런데 잠깐, 다시 생각해보자. 평면의 이면각에 관해 좀 더 신중하게 기하학적으로 접근해봐야 할 것 같다..."

이것은 DeepSeek-R1 보고서에서도 언급된 현상이다. 강화학습이 단순히 기존의 추론 패턴을 강화하는 것을 넘어, 완전히 새로운 추론 방식을 자발적으로 만들어낸다는 것을 보여준다.

왜 이런 일이 일어나는 걸까? 강화학습은 "정답을 맞히면 보상"이라는 단순한 규칙만 제공한다. 하지만 복잡한 문제에서 정답률을 높이려면, 자기 풀이를 검증하고 오류를 수정하는 전략이 효과적이다. 모델이 이것을 "발견"한 것이다. 누군가 가르치지 않아도, 보상을 최대화하는 과정에서 반성적 사고가 진화론적으로 선택된 셈이다.


8. 기술적 세부사항: 데이터셋과 훈련 설정

8.1 DAPO-Math-17K 데이터셋

DAPO 팀은 훈련 데이터도 공개했다. 17,000개의 수학 문제로 구성되며, 핵심적인 전처리가 적용되었다:

문제: 수학 답의 다양한 형식

수학 문제의 답은 분수, 무리수, 수식 등 다양한 형태를 가진다. 규칙 기반 보상 모델로 정답 여부를 판별하려면, 파싱이 정확해야 한다. 하지만 (a+√b)/c 같은 답을 문자열 비교로 검증하는 것은 매우 불안정하다.

해법: 정수 변환

모든 문제의 답을 정수(integer)로 변환했다. AIME 형식을 따라, 예를 들어:

  • 원래 답: (a+√b)/c
  • 변환: "a+b+c의 값을 구하시오" → 정수 답

이렇게 하면 규칙 기반 보상 모델이 단순한 정수 비교로 정확하게 정답 여부를 판별할 수 있다. 보상 해킹(reward hacking)의 위험을 원천 차단하는 것이다.

8.2 훈련 하이퍼파라미터

하이퍼파라미터
기본 모델Qwen2.5-32B
옵티마이저AdamW, lr=1×10⁻⁶
워밍업20 롤아웃 스텝 (선형)
롤아웃 배치512 프롬프트
프롬프트당 샘플G=16
미니배치512 (롤아웃당 16회 그래디언트 업데이트)
ε_low / ε_high0.2 / 0.28
최대 생성 길이20,480 토큰
기대 최대 길이16,384 토큰
캐시 윈도우4,096 토큰
평가 방법avg@32 (32회 반복 평균)
추론 온도1.0
Top-p0.7

특히 avg@32(같은 문제를 32번 풀어 평균을 내는 것)이라는 평가 방법이 주목할 만하다. LLM의 추론은 확률적이므로, 한 번의 시도로 점수를 매기면 분산이 크다. 32회 평균은 모델의 실력을 정확히 측정하기 위한 것이다.

8.3 KL 발산 제거

흥미로운 결정 하나: DAPO는 KL 발산 패널티를 완전히 제거했다.

기존 RLHF에서 KL 발산은 "모델이 원래 모델에서 너무 멀어지지 않게" 하는 안전장치였다. RLHF에서는 이것이 필수적이다 — 보상 해킹을 방지하기 위해.

하지만 DAPO의 Long-CoT 추론 훈련에서는 사정이 다르다. 모델이 "생각하는 방법"을 근본적으로 바꿔야 하기 때문에, 원래 모델에서 충분히 멀어져야 한다. KL 패널티는 오히려 이 과정을 방해한다. 또한 DAPO는 학습된 보상 모델 대신 규칙 기반 보상(정답이면 +1, 오답이면 -1)을 사용하므로, 보상 해킹의 위험이 낮다.


9. 2026년 시점에서 DAPO의 의미

9.1 오픈소스 RL의 이정표

DAPO가 발표된 2025년 3월 이후, 이 논문은 대규모 LLM 강화학습의 사실상의 표준 참조점이 되었다. 왜일까?

  1. 완전한 투명성: 알고리즘, 코드, 데이터셋, 하이퍼파라미터를 모두 공개
  2. 재현 가능성: verl 프레임워크 위에 구축되어 누구나 실행 가능
  3. 구체적인 문제-해결 쌍: "이런 문제가 있었고, 이렇게 해결했다"를 명확히 기술

2026년 현재, DAPO의 네 기법(Clip-Higher, Dynamic Sampling, Token-level Loss, Overlong Reward Shaping)은 대부분의 대규모 RL 시스템에 기본 구성 요소로 채택되고 있다.

9.2 "추론하는 AI"의 민주화

DeepSeek-R1과 OpenAI o1이 보여준 "생각하는 AI"는 놀라운 능력이었지만, 그 훈련 방법은 소수의 대형 연구소에만 접근 가능했다. DAPO는 이 기술을 누구나 재현할 수 있게 만들었다.

이것의 의미는 크다. 수학, 과학, 코딩뿐 아니라 법률 추론, 의학적 진단, 비즈니스 분석 등 다양한 영역에서 도메인 특화 추론 모델을 훈련시킬 수 있는 길이 열린 것이다.

9.3 DAPO 이후의 발전

DAPO는 출발점이었다. 2025~2026년에 걸쳐 DAPO를 기반으로 한 후속 연구들이 쏟아졌다:

  • OpenClaw-RL(2026): DAPO의 규칙 기반 보상을 넘어, 실시간 환경 피드백(사용자 반응, 터미널 출력 등)을 보상 신호로 활용
  • RLAnything: 과정 보상 모델(PRM)과 결과 보상의 통합이 에이전트 과제에서 결과 보상만 사용하는 것을 일관되게 능가함을 검증
  • 다양한 산업 적용: DAPO의 기법을 금융, 의료, 법률 추론 모델 훈련에 적용하는 사례 증가

10. 핵심 개념 최종 정리

DAPO의 핵심 통찰

GRPO만으로는 대규모 Long-CoT RL이 불가능하다. 엔트로피 붕괴, 보상 노이즈, 손실 함수 불균형, 그래디언트 소멸이라는 4가지 숨겨진 문제를 해결해야 한다.

① Clip-Higher

PPO 클리핑의 상한을 높여(0.2→0.28) 낮은 확률 토큰의 탐색을 허용, 엔트로피 붕괴 방지.

30 → 38점 (+8)
② Overlong Reward Shaping

잘린 응답에 즉사 벌점 대신 점진적 벌점 부여. 올바른 추론이 길이 때문에 억울하게 벌받는 것을 방지.

36 → 41점 (+5)
③ Token-level Loss

샘플별이 아닌 토큰별 정규화로, 긴 고품질 답변의 학습 기여를 공정하게 반영.

41 → 42점 (+1, 안정성 대폭 향상)
④ Dynamic Sampling

전부 정답/전부 오답인 그룹을 제외하고, 변별력 있는 샘플만으로 배치 구성.

42 → 50점 (+8, 최대 효과)

마무리: "비밀 레시피"를 공개한다는 것의 의미

DAPO 논문의 진정한 가치는 50점이라는 숫자가 아니다. "왜 30점밖에 안 나오는지"를 밝혀냈다는 것이다.

DeepSeek-R1이 "이 요리를 만들었다"고 보여줬다면, DAPO는 "그 요리를 만들 때 이런 실수를 하기 쉽고, 이렇게 해야 제대로 된다"를 레시피북으로 남겼다. 엔트로피가 붕괴하면 어떻게 되는지, 보상에 노이즈가 끼면 어떤 일이 벌어지는지, 긴 답변이 왜 제대로 학습되지 않는지 — 이 모든 "실패의 해부학"이 DAPO의 진짜 기여다.

AI 연구에서 성공 사례를 발표하는 것은 흔한 일이다. 하지만 "이 방법으로 해봤더니 안 됐고, 원인은 이것이었고, 이렇게 고쳤다"를 솔직하게, 그리고 재현 가능하게 공개하는 것은 드물다. DAPO는 그 드문 사례이며, 그래서 2026년 현재까지도 대규모 LLM 강화학습의 출발점으로 인용되고 있다.


참고 논문 및 자료

  • Yu et al., "DAPO: An Open-Source LLM Reinforcement Learning System at Scale," arXiv:2503.14476, March 2025.
  • DeepSeek-AI, "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning," January 2025.
  • Shao et al., "DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models" (GRPO), 2024.
  • Schulman et al., "Proximal Policy Optimization Algorithms" (PPO), OpenAI, 2017.
  • Ouyang et al., "Training language models to follow instructions with human feedback" (RLHF), NeurIPS 2022.
  • DAPO 프로젝트: dapo-sia.github.io