DeepSeekMath: GRPO로 수학 추론 끌어올리기
웹 수학 데이터 120B 토큰과 크리틱 없는 GRPO로 7B 모델이 MATH 51.7%
먼저 알아야 할 것
다루는 내용
DeepSeekMath는 Common Crawl에서 fastText 분류기와 도메인 단위 사람 주석을 4회 반복해 수학 웹 데이터 120B 토큰을 모으고, 코드 모델에서 출발해 7B 모델을 이어 학습했습니다. 강화학습에는 PPO의 가치 모델을 없애고 같은 질문에 대한 답 G개의 평균 · 표준편차로 어드밴티지를 정하는 GRPO를 도입해, MATH 46.8%→51.7%, GSM8K 82.9%→88.2%로 올렸습니다. 또 SFT · RFT · DPO · PPO · GRPO를 하나의 틀로 정리하고, RL이 Maj@K는 올리지만 Pass@K는 올리지 않는다는 분석을 내놨습니다.
초록
수학적 추론은 복잡하고 구조적인 성격 때문에 언어 모델에게 큰 도전입니다. 이 논문에서는 DeepSeekMath 7B를 소개합니다. 이 모델은 DeepSeek-Coder-Base-v1.5 7B를 Common Crawl에서 모은 수학 관련 토큰 1,200억(120B) 개와 자연어 · 코드 데이터로 이어서 사전학습한 것입니다. DeepSeekMath 7B는 외부 도구나 투표 기법에 기대지 않고 경시대회 수준의 MATH 벤치마크에서 51.7%라는 인상적인 점수를 달성해, Gemini-Ultra와 GPT-4의 성능 수준에 다가갔습니다. DeepSeekMath 7B에서 64개 샘플에 자기 일관성(self-consistency)을 적용하면 MATH에서 60.9%를 달성합니다. DeepSeekMath의 수학 추론 능력은 두 가지 핵심 요인 덕분입니다. 첫째, 정교하게 설계한 데이터 선별 파이프라인으로 공개 웹 데이터의 큰 잠재력을 활용했습니다. 둘째, 근접 정책 최적화(PPO)의 변형인 그룹 상대 정책 최적화(GRPO)를 도입해, 수학 추론 능력을 높이는 동시에 PPO의 메모리 사용량을 최적화했습니다.
해설
DeepSeekMath: GRPO로 수학 추론 끌어올리기
웹에서 수학 글 1,200억 토큰을 골라 7B 모델을 더 학습하고, PPO에서 가치 모델(크리틱)을 뺀 GRPO(그룹 상대 정책 최적화) 로 강화학습해 MATH 51.7%를 낸 논문입니다. GRPO는 후속작 DeepSeek-R1의 강화학습에도 그대로 쓰였습니다.
| 항목 | 내용 |
|---|---|
| 원제 | DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models |
| 저자 | Zhihong Shao 외 10명 (DeepSeek-AI · 칭화대 · 베이징대) |
| 발표 | 2024 · arXiv 2402.03300 |
| 트랙 · 수준 | 정렬 · 심화 |
| 먼저 알면 좋은 것 | PPO(클리핑 · 어드밴티지), RLHF와 KL 페널티, 보상 모델, 생각의 사슬, 표준화(평균 · 표준편차) |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 선호 최적화의 확장: DPO 계열 · AI 피드백 · 검증 가능한 보상 · 레드팀 — GRPO가 속한 '검증 가능한 보상' 흐름을 먼저 정리하는 수업
- 근접 정책 최적화 (PPO) — 확률비를 1±ε로 잘라 정책을 조금씩만 바꾸는, 단순하고 안정적인 정책 최적화
- 사람 피드백으로 지시를 따르게 학습하기 (InstructGPT) — SFT → 보상 모델 → PPO 3단계로 GPT-3를 지시 따르게 만든 RLHF 논문
한눈에 보기
- 공개 웹(Common Crawl)에서 수학 데이터를 반복적으로 골라내는 파이프라인과, 그 데이터로 만든 7B 모델이 얼마나 강한지 압니다.
- GRPO가 PPO와 무엇이 다른지 — 가치 모델 대신 "같은 질문에 대한 답 여러 개의 평균"을 기준선으로 쓴다는 점 — 을 손계산으로 이해합니다.
- 결과 감독(outcome)과 과정 감독(process), 반복 RL의 차이를 압니다.
- "RL이 왜 효과가 있나"에 대한 논문의 답(Maj@K는 오르고 Pass@K는 그대로)을 해석할 수 있습니다.
초록 (번역)
수학적 추론은 복잡하고 구조적인 성격 때문에 언어 모델에게 큰 도전입니다. 이 논문에서는 DeepSeekMath 7B를 소개합니다. 이 모델은 DeepSeek-Coder-Base-v1.5 7B를 Common Crawl에서 모은 수학 관련 토큰 1,200억(120B) 개와 자연어 · 코드 데이터로 이어서 사전학습한 것입니다. DeepSeekMath 7B는 외부 도구나 투표 기법에 기대지 않고 경시대회 수준의 MATH 벤치마크에서 51.7%라는 인상적인 점수를 달성해, Gemini-Ultra와 GPT-4의 성능 수준에 다가갔습니다. DeepSeekMath 7B에서 64개 샘플에 자기 일관성(self-consistency)을 적용하면 MATH에서 60.9%를 달성합니다. DeepSeekMath의 수학 추론 능력은 두 가지 핵심 요인 덕분입니다. 첫째, 정교하게 설계한 데이터 선별 파이프라인으로 공개 웹 데이터의 큰 잠재력을 활용했습니다. 둘째, 근접 정책 최적화(PPO)의 변형인 그룹 상대 정책 최적화(GRPO)를 도입해, 수학 추론 능력을 높이는 동시에 PPO의 메모리 사용량을 최적화했습니다.
무엇을 풀었나
두 가지 문제가 있었습니다.
- 공개 모델과 비공개 모델의 격차: GPT-4 · Gemini-Ultra 같은 최상위 모델은 공개되지 않았고, 공개 모델은 수학에서 크게 뒤졌습니다. 수학 데이터도 arXiv 논문이나 작은 웹 말뭉치(OpenWebMath 등) 위주라 규모와 다양성이 부족했습니다.
- PPO의 비용: LLM 강화학습의 표준인 PPO는 정책 모델과 비슷한 크기의 가치 모델(value model, 크리틱) 을 함께 학습해야 해서 메모리 · 계산 부담이 큽니다. 게다가 LLM에서는 보통 마지막 토큰에만 보상이 주어져, 토큰마다 정확한 가치를 배우는 크리틱을 학습하기도 어렵습니다.
핵심 아이디어
flowchart LR
A[Common Crawl 400억 HTML 페이지] --> B[fastText 분류기로 수학 페이지 회수]
B --> C[수학 도메인 발견 · URL 사람 주석]
C --> B
B --> D[DeepSeekMath 말뭉치 120B 토큰]
D --> E[DeepSeekMath-Base 7B: 500B 토큰 이어 학습]
E --> F[수학 지시 튜닝 776K 예시 = Instruct]
F --> G[GRPO 강화학습 = RL 모델]1. 웹에서 수학 데이터 캐기: 반복 선별 파이프라인
직관: 금광에서 처음엔 "이런 게 금이다"라는 표본 몇 개로 탐지기를 만들고, 탐지기로 찾은 광맥 주변을 사람이 확인해 표본을 늘린 뒤, 더 좋아진 탐지기로 다시 캡니다(해설용 비유).
단계:
- 씨앗 말뭉치로 OpenWebMath를 고르고, 거기서 50만 개를 양성, Common Crawl 웹페이지 50만 개를 음성으로 삼아 fastText 분류기를 학습합니다.
- URL 기반 중복 제거와 근접 중복 제거로 Common Crawl을 400억 HTML 페이지로 줄인 뒤, 분류기 점수가 높은 페이지만 남깁니다(1회차에서는 상위 400억 토큰).
- Common Crawl을 도메인(같은 기본 URL)으로 나누고, 1회차에 페이지의 10% 넘게 수집된 도메인을 수학 관련 도메인으로 봅니다(예: mathoverflow.net).
- 그 도메인 안의 수학 URL 경로를 사람이 주석하고, 빠졌던 페이지를 씨앗에 더해 분류기를 다시 학습합니다.
- 4회 반복 끝에 수학 웹페이지 3,550만 개, 1,200억 토큰을 얻었습니다. 4회차에는 데이터의 거의 98%가 이미 3회차에 수집돼 멈췄습니다.
오염 방지: 평가 벤치마크(GSM8K · MATH · CMATH · AGIEval 등)의 문제 · 답과 10-gram이 정확히 겹치는 부분을 지웠습니다.
왜 이렇게 했나: 처음 분류기는 양성 예시가 다양하지 않아 많은 수학 페이지를 놓쳤습니다. 도메인 단위로 넓혀 사람이 확인하면 양성 예시가 다양해져 다음 회차 회수율이 올라갑니다. 결과 말뭉치는 Minerva가 쓴 수학 웹페이지의 거의 7배, OpenWebMath의 9배 크기입니다.
2. 모델 학습: 코드 모델에서 출발
- Base: DeepSeek-Coder-Base-v1.5 7B에서 시작해 500B 토큰을 이어 학습합니다. 비율은 DeepSeekMath 말뭉치 56%, AlgebraicStack 4%, arXiv 10%, 깃허브 코드 20%, 영어 · 중국어 자연어 10%입니다.
- Instruct: 생각의 사슬(CoT) · 생각의 프로그램(PoT) · 도구 통합 추론 형식의 영어 · 중국어 수학 문제 776K개로 지시 튜닝합니다.
왜 코드 모델에서 출발했나: 저자들은 일반 LLM보다 코드로 학습한 모델에서 시작하는 편이 낫다고 봤고, 실험에서도 수학 학습 전에 코드를 학습하면 도구 사용 여부와 관계없이 수학 풀이 능력이 좋아졌습니다. 반면 흔히 쓰는 arXiv 논문 학습은 이 논문의 수학 벤치마크 어디에서도 뚜렷한 향상을 주지 못했습니다.
3. GRPO: 크리틱 대신 "그룹 평균"을 기준선으로
직관: 시험 채점을 할 때 "이 학생 답안이 절대적으로 몇 점짜리인가"를 따로 예측하는 조교(크리틱)를 두는 대신, 같은 문제를 여러 번 풀게 한 뒤 그 평균보다 잘했으면 칭찬, 못했으면 꾸중하는 방식입니다(해설용 비유).
단계:
- 질문 마다 이전 정책 로 답 개 를 샘플링합니다.
- 보상 모델(또는 규칙)로 각 답의 보상 를 구합니다.
- 그룹 안에서 평균을 빼고 표준편차로 나눠 상대 보상을 만듭니다. 이것을 그 답의 모든 토큰의 어드밴티지로 씁니다(결과 감독).
- PPO처럼 확률 비율을 클리핑한 목적식을 최대화하되, KL 발산을 보상이 아니라 손실에 직접 더합니다.
먼저 비교 대상인 PPO의 목적식입니다.
PPO에서 는 학습한 가치 함수 와 GAE로 계산하고, 보상에 토큰별 KL 페널티를 넣습니다: .
GRPO의 목적식은 다음과 같습니다.
(설명을 위해 확률 비율을 로 줄여 썼습니다.)
| 기호 | 뜻 |
|---|---|
| , | 질문, 그 질문에 대한 번째 샘플 답 |
| 질문 하나당 샘플 수(그룹 크기). 논문 실험은 64 | |
| 학습 중 정책, 샘플링에 쓴 이전 정책, 기준 정책(보통 SFT 모델) | |
| 새 정책과 이전 정책의 토큰 확률 비율 | |
| 클리핑 범위. 비율이 밖으로 나가면 더 밀지 않음 | |
| 어드밴티지. 결과 감독에서는 답 의 정규화 보상을 모든 토큰에 똑같이 줌 | |
| KL 계수. 논문 실험은 0.04 | |
| 기준 정책에서 멀어진 정도. 논문이 쓰는 불편 추정량으로 항상 0 이상 |
숫자로 해 보기(해설용 예): 한 질문에 답 개를 뽑았고, 정답이면 1 · 오답이면 0인 보상이 이라 합시다.
- 평균 , 표준편차 (여기서는 모집단 표준편차로 계산)이므로 입니다. 맞힌 답의 토큰은 확률이 올라가고 틀린 답의 토큰은 내려갑니다.
- 네 답이 모두 맞았다면() 평균과 같으니 어드밴티지가 0이 되어, 이 질문에서는 배울 것이 없습니다. "남보다 잘했나"만 보기 때문입니다.
- 클리핑: 인 토큰의 비율이 , 라면 로 잘려 한 번에 너무 크게 바뀌지 않습니다.
- KL 추정: 이면 입니다. 비율이 1이면 0이 됩니다.
왜 이렇게 했나:
- 크리틱 제거: 정책만 한 가치 모델을 없애 메모리와 계산을 크게 줄입니다. 마지막 토큰에만 보상이 있는 LLM 설정에서 토큰별 가치를 배우기 어려운 문제도 피합니다.
- 그룹 상대 비교: 보상 모델은 보통 같은 질문에 대한 답들의 비교로 학습하므로, 같은 질문 안에서 상대 비교하는 어드밴티지가 보상 모델의 성격과 잘 맞는다고 논문은 설명합니다.
- KL을 손실에: 보상에 KL을 섞으면 어드밴티지 계산이 복잡해지므로, 정규화 항으로 손실에 바로 더했습니다.
4. 결과 감독 · 과정 감독 · 반복 RL
직관: 결과 감독은 "최종 답이 맞았나"만 채점하고, 과정 감독은 풀이 한 줄 한 줄에 점수를 줍니다.
- 결과 감독(OS): 답 끝에만 정규화 보상을 주고 모든 토큰이 같은 어드밴티지를 받습니다.
- 과정 감독(PS): 과정 보상 모델이 단계마다 점수를 주고, 이를 정규화한 뒤, 각 토큰의 어드밴티지를 그 토큰 뒤에 오는 단계 점수의 합으로 둡니다.
(는 번째 단계가 끝나는 토큰 위치)
숫자로 해 보기(해설용 예): 답이 3단계이고 정규화 단계 점수가 라면, 1단계 토큰의 어드밴티지는 , 2단계는 , 3단계는 입니다.
- 반복 RL: 학습이 진행되면 예전 보상 모델이 현재 정책을 감독하기에 부족해질 수 있습니다. 그래서 정책 샘플로 보상 모델 학습 데이터를 새로 만들고, 과거 데이터 10%를 섞는 재생(replay)으로 보상 모델을 계속 학습한 뒤, 기준 모델을 현재 정책으로 바꿔 다시 학습합니다.
5. 여러 방법을 하나로 보는 틀
논문은 SFT · RFT(기각 샘플링 미세조정) · Online RFT · DPO · PPO · GRPO를 데이터 출처 · 알고리즘 · 보상 함수 세 요소로 정리하고, 모두 "어떤 토큰의 확률을 얼마나 올리고 내릴지(기울기 계수)"를 정하는 직 · 간접 RL로 봅니다.
- 온라인 vs 오프라인: 현재 정책에서 샘플링하는 Online RFT가 초기 SFT 모델에서 샘플링하는 RFT보다, 학습 후반에 크게 앞섰습니다.
- 기울기 계수: Online RFT는 정답 답을 모두 같은 세기로 강화하고 오답은 벌주지 않지만, GRPO는 보상 크기에 따라 강화 · 벌점을 달리 줘서 Online RFT를 앞섰습니다. GRPO+과정 감독이 GRPO+결과 감독보다 나았습니다.
- 반복 RL: 두 번 반복했고, 특히 첫 반복에서 성능이 크게 올랐습니다.
결과
| 모델 · 설정 | 보고된 수치 |
|---|---|
| DeepSeekMath 7B, MATH(도구 · 투표 없음) | 51.7% |
| 64개 샘플 자기 일관성, MATH | 60.9% |
| GRPO 전 → 후(Instruct → RL), GSM8K | 82.9% → 88.2% |
| GRPO 전 → 후, MATH | 46.8% → 51.7% |
| GRPO 전 → 후, CMATH(RL 데이터 밖 영역) | 84.6% → 88.8% |
| Instruct 7B, 도구 사용 허용 시 MATH | 약 60%에 근접 |
- RL 학습 데이터는 SFT 데이터 중 GSM8K · MATH 관련 CoT 형식 질문 약 14만 4천 개뿐인데도, 모든 평가 지표에서 Instruct 모델을 앞섰습니다.
- GRPO 설정: 정책 학습률 1e-6, KL 계수 0.04, 질문당 샘플 64개, 최대 길이 1024, 배치 1024, 탐색 단계마다 정책 업데이트 한 번.
- Base 7B는 MATH에서 기존 공개 기반 모델을 절대값 10% 넘게 앞섰고, 77배 큰 비공개 Minerva 540B보다 나았습니다.
- RL은 왜 효과가 있나: RL 뒤 Maj@K(여러 답의 다수결 정확도)는 올랐지만 Pass@K(K개 중 하나라도 맞을 확률)는 오르지 않았습니다. 논문은 RL이 근본 능력을 늘렸다기보다, 이미 상위 K개 안에 있던 정답을 더 자주 내게 해 출력 분포를 견고하게 만든 것으로 해석합니다.
왜 중요한가 · 이후 영향
- GRPO의 등장: 크리틱 없이 그룹 평균을 기준선으로 쓰는 간단한 구조 덕분에, 후속작 DeepSeek-R1이 추론 능력을 끌어내는 강화학습 알고리즘으로 GRPO를 썼습니다.
- 정답 확인이 쉬운 과제와 궁합: 수학처럼 답의 맞고 틀림을 규칙으로 판정할 수 있으면, 그룹 안 상대 비교만으로도 강한 학습 신호가 나옵니다.
- 데이터 쪽 교훈: 공개 웹에도 고품질 수학 데이터가 많고, 코드 학습이 수학 추론에 도움이 되며, arXiv 논문 학습은 기대만큼 효과가 없었다는 실험 결과를 남겼습니다.
- 통합 관점: SFT · RFT · DPO · PPO · GRPO를 하나의 틀로 본 정리는 방법들을 비교할 때 쓸모 있는 관점을 줍니다.
한계 · 주의할 점
- 기하 · 증명은 약함: 정량 추론 벤치마크 점수는 높지만 기하와 정리 증명은 비공개 모델보다 약하고, 시험 실행에서 삼각형 · 타원 문제를 다루지 못했습니다. 데이터 선택의 편향일 수 있다고 봅니다.
- 퓨샷 능력: 모델 규모 한계로 GPT-4와 달리 퓨샷 예시를 줘도 성능이 별로 오르지 않았습니다.
- RL의 효과 범위: Pass@K가 오르지 않아, 이 RL은 새 능력을 만들기보다 기존 분포를 다듬은 것일 수 있습니다. 논문은 지시 튜닝 질문만 쓰고 단순한 뉴클리어스 샘플링만 쓴 것이 원인일 수 있다고 봅니다.
- 보상 신호의 잡음: 모든 방법이 보상 신호를 그대로 믿는데, 정성 들여 주석한 PRM800K도 약 20%가 잘못 주석됐다고 논문이 인용합니다. 잡음에 강한 알고리즘이 과제로 남습니다.
- 그룹 크기의 비용: 크리틱은 없지만 질문마다 답을 64개씩 생성해야 하므로 샘플링 비용은 큽니다(해설자의 관찰).
- 이 글의 손계산 예는 해설용이며 논문 수치가 아닙니다.
이어서 읽을 것
- 앞: PPO · GAE · InstructGPT · 자기 일관성
- 함께: DPO (논문이 같은 틀로 비교한 오프라인 방법)
- 뒤: DeepSeek-R1 (GRPO로 추론 능력을 끌어낸 후속 연구)
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| GRPO | 같은 질문의 답 여러 개를 비교해 평균보다 나은 답을 강화하는 PPO 변형. 크리틱이 없음 |
| 크리틱(가치 모델) | 지금 상태에서 앞으로 받을 보상을 예측하는 별도 모델 |
| 어드밴티지(advantage) | 이 행동(답)이 기준선보다 얼마나 나았는지 |
| 기준선(baseline) | 어드밴티지 계산에서 빼 주는 값. GRPO는 그룹 평균 보상 |
| 결과 감독 / 과정 감독 | 최종 답만 채점 / 풀이 단계마다 채점 |
| 자기 일관성(self-consistency) | 여러 번 풀어 가장 많이 나온 답을 고르는 방법 |
| Pass@K / Maj@K | K개 중 하나라도 맞을 확률 / K개 다수결 답이 맞을 확률 |
| fastText | 빠른 텍스트 분류용 경량 모델 |
| 벤치마크 오염 | 평가 문제가 학습 데이터에 섞여 점수가 부풀려지는 것 |
스스로 점검
- GRPO가 PPO보다 메모리를 덜 쓰는 이유는?
정책 모델만 한 크기의 가치 모델(크리틱)을 학습하지 않고, 같은 질문에 대한 답들의 평균 보상을 기준선으로 쓰기 때문입니다.
- 한 질문의 답 8개가 모두 오답(보상 0)이면 GRPO 업데이트는?
그룹 평균과 모든 보상이 같아 어드밴티지가 0이므로 정책 손실 항으로는 배우는 것이 없습니다(KL 항만 남음).
- RL 뒤 Maj@K는 오르고 Pass@K는 그대로라는 결과의 뜻은?
모델이 원래 풀 수 있던 문제의 정답을 더 자주, 더 안정적으로 내게 됐을 뿐, 풀 수 있는 문제의 범위 자체가 넓어졌다는 증거는 아니라는 뜻입니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- DeepSeek-R1: 강화학습으로 추론 능력 끌어내기 — 정답 여부만 보상하는 순수 RL(GRPO)로 LLM에 긴 추론과 자기 검증을 끌어냄
출처
- 원문: https://arxiv.org/abs/2402.03300 (2024 · Zhihong Shao 외)
AI 원리부터 이해하기 · 정렬 모듈
정렬 모듈 학습
이 글은 정렬 모듈의 학습 자료입니다. 전체 10개 자료 중 8번째입니다.
출처·원문
원문 보기요약만