-
DAPO: An Open-Source LLM Reinforcement Learning System at Scale (25.03) 논문 리뷰AI/NLP 2025. 7. 19. 16:38728x90
DAPO: An Open-Source LLM Reinforcement Learning System at Scale (25.03) 논문 리뷰
DAPO란?
DAPO = Decoupled Clip and Dynamic sAmpling Policy Optimization
ByteDance, Tsinghua University, The University of Hong Kong가 공동 개발한 오픈소스 강화학습 시스템
배경과 문제점
기존 상황의 문제:
- OpenAI o1, DeepSeek R1 같은 최신 모델들이 강력한 성능을 보이지만 기술적 세부사항이 비공개
- 연구 커뮤니티가 검증하고 발전시키기 어려운 상황
- 기본 GRPO로는 AIME 2024에서 30점밖에 달성 못함 (목표 대비 크게 부족)
GRPO의 4가지 핵심 문제점
1. Entropy Collapse (엔트로피 붕괴)
- 정책이 빠르게 결정론적이 되어 탐색 능력 상실
- 고확률 토큰에만 수렴하여 다양한 추론 경로 발견 불가
2. Gradient Starvation (기울기 고갈)
- 모든 응답이 정답이거나 모든 응답이 오답인 경우
- GRPO의 그룹 상대적 어드벤티지가 0이 되어 학습 신호 소실
3. Length Bias (길이 편향)
- 모든 응답을 길이 상관없이 동등하게 취급
- 긴 추론 과정의 가치를 제대로 반영하지 못함
4. Reward Noise (보상 노이즈)
- 잘려진 응답에 대한 과도한 페널티
- 유효하지만 긴 추론 과정까지 처벌하는 문제
DAPO의 4가지 핵심 해결책
1. Clip-Higher: 비대칭 클리핑
기존 PPO/GRPO:
# 대칭적 클리핑 epsilon = 0.2 clip_range = [1-0.2, 1+0.2] = [0.8, 1.2]DAPO의 개선:
# 비대칭 클리핑 epsilon_low = 0.2 # 하한 epsilon_high = 0.28 # 상한 (더 크게!) clip_range = [0.8, 1.28]수식:
L_CLIP-HIGHER(θ) = E_t[min(r_t(θ)Â_t, clip(r_t(θ), 1-ε_low, 1+ε_high)Â_t)]효과: 저확률 토큰이 고보상을 받을 때 확률을 더 적극적으로 증가시켜 탐색 촉진
2. Dynamic Sampling: 동적 샘플링
문제: 모든 응답이 동일한 보상을 받는 프롬프트
# 이런 경우 어드벤티지가 모두 0이 됨 all_rewards = [1, 1, 1, 1] # 모두 정답 # 또는 all_rewards = [0, 0, 0, 0] # 모두 오답해결:
def filter_zero_gradient_prompts(batch): filtered = [] for prompt, responses in batch: rewards = [compute_reward(r) for r in responses] if len(set(rewards)) > 1: # 다양한 보상이 있는 경우만 filtered.append((prompt, responses)) return filtered효과: 일관된 기울기 흐름으로 학습 가속화
3. Token-Level Loss: 토큰 단위 손실
기존 방식:
# 응답 단위 평균 후 집계 sample_loss = mean(token_losses_per_response) total_loss = mean(sample_losses)DAPO 방식:
# 토큰 단위로 직접 계산 L_TOKEN = (1/∑T_i) * ∑∑L_i,t효과: 긴 추론 과정이 파라미터 업데이트에 더 큰 영향을 주어 추론 능력 향상
4. Overlong Reward Shaping: 점진적 길이 페널티
기존: 하드 컷오프
if len(response) > max_length: reward = -1 # 무조건 패널티DAPO: 소프트 페널티
if len(response) > threshold: penalty = soft_penalty_function(len(response) - threshold) reward = original_reward - penalty효과: 유효한 긴 추론 과정을 과도하게 처벌하지 않음
실험 결과 및 성능
메인 성과
- AIME 2024: 50점 달성 (vs DeepSeek-R1-Zero-Qwen-32B 47점)
- 효율성: 50% 적은 훈련 스텝으로 더 좋은 성능
- 오픈소스: 완전 재현 가능한 시스템 제공
개별 기법별 기여도

기본 GRPO 30% 기준선 + Overlong Filtering 36% +6점 + Clip-Higher 38% +2점 + Soft Overlong Punishment 41% +3점 + Token-level Loss 42% +1점 + Dynamic Sampling (완전한 DAPO) 50% +8점 핵심 통찰: Dynamic Sampling이 가장 큰 개선 효과 (+8점)
새로운 발견: 반성적 추론 능력 출현
훈련 초기:
"답은 A다."훈련 후:
"답은 A인 것 같은데... 잠깐, 내 추론을 다시 검토해보자. 계산을 다시 해보니 실제로는 B가 맞네."의미: RL 훈련이 단순히 기존 행동을 최적화하는 것이 아니라 완전히 새로운 메타인지 능력을 유도할 수 있음
훈련 모니터링 지표
핵심 메트릭:
- 평균 응답 길이: 추론 능력과 강한 상관관계
- 보상 점수: 직접적인 성능 지표
- 생성 엔트로피: 탐색-활용 균형 측정
- 평균 토큰 확률: 모델 확신도 파악
안정성 신호:
- 엔트로피가 급격히 떨어지면 조기 수렴 위험
- 응답 길이가 정체되면 훈련 문제 조기 경고
- 보상 점수와 길이의 균형이 건강한 학습 지표
데이터셋과 인프라
DAPO-Math-17K:
- 17,000개 수학 문제 (웹 소스 + 경시대회)
- 복잡한 답 형식을 정수로 변환하여 보상 계산 단순화
- 예: "a + b/c" → "a + b + c"로 문제 재구성
훈련 설정:
- 프레임워크: 오픈소스 verl
- 옵티마이저: AdamW with 상수 학습률
- 배치: 512 프롬프트, 프롬프트당 16 응답
중요성과 영향
기술적 기여:
- 산업 수준 성능의 완전 오픈소스 시스템
- 복잡한 추론 작업에 광범위하게 적용 가능한 4가지 핵심 기법
- RL이 메타인지 능력을 유도할 수 있다는 증거
Recap. 핵심 정리
- Entropy Collapse
- exploration & exploition
728x90'AI > NLP' 카테고리의 다른 글