[논문] DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
카테고리: Papers
최근에 등장한 DeepSeek가 엄청난 성능을 보여주면서 화제가 되었다.
강화학습을 통해 학습을 시켰다는 것을 보고 관심이 생겨 급하게 찾아보게 되었다.
Distillation에 대한 부분도 등장을 하는데 이 부분에 대해서는 생략을 하고 RL에 대해서만 정리했다.
1. Approach
이전의 작업에서는 모델의 성능을 강화하기 위해 많은 수의 supervised data에 의존했다.
이 논문에서는 cold-start은 SFT의 사용 없이도 large-scale RL을 통해 추론 능력이 많이 발전할 수 있다는 것을 보여준다.
그리고 적은 양의 cold-start data를 추가하면 성능이 더 좋아지는 것을 보여준다.
- DeepSeek-R1-Zero : SFT data없이 base model에 바로 RL 적용
- DeepSeek-R1 : 수천개의 CoT examples로 fine-tuned된 checkpoint에서 RL 시작
2.2. DeepSeek-R1-Zero: Reinforcement Learning on the Base Model
이전의 방식에서는 supervised data에 많이 의존을 해, 이것을 모으는데 많은 시간이 들었다.
하지만 이 논문은 어떠한 supervised data없이, pure RL 과정을 통한 self-evolution에 집중해 LLMs의 추론 능력을 발전시켰다.
특히 DeepSeek-V3-Base를 base model로 사용하고 GRPO를 추론 성능을 향상시키기 위한 RL 프레임워크로 사용하였다.
2.2.1. Reinforcement Learning Algorithm
Group Relative Policy Optimization(GRPO)
RL의 학습 비용을 줄이기 위해, GRPO를 사용했다.
- GRPO는 각 질문 \(q\)에 대해 old policy \(\pi_{\theta_{old}}\)로부터 output { \(o_1, o_2, … o_G\)}를 샘플링 한다.
- 목적함수인 \(J_{GRPO}(\theta)\)를 최대화 하는 방향으로 policy model \(\pi_\theta\)를 최적화 한다.
새로운 정책 \(\pi_\theta\)와 old policy \(\pi_{\theta_{old}}\)의 비율을 구한다.
Cliping 기법을 통해 앞서 구한 비율을 \(1-\epsilon\) 과 \(1+\epsilon\) 사이로 제한 한다.
\(A_i\) : advantage로 reward를 활용해 아래 수식을 통해 구한다.
KL divergence : \(D_{KL}(\pi_\theta \| \pi_{ref})\) 는 정책 \(\pi_\theta\) 가 \(\pi_{ref}\) 에서 너무 벗어나지 않도록 조정한다.
2.2.2 Reward Modeling
Reward는 RL의 최적화의 방향을 결정하는 학습 신호이다.
DeepSeek-R1-Zero를 학습시키기 위해, 두가지 종류의 reward로 구성된 rule-based reward system을 사용했다.
Acurracy Rewards : 모델의 응답이 정확한지 평가하는 보상 모델
예를 들어, 수학문제와 같이 정답이 있는 문제의 경우, 모델은 특정한 포맷(ex. 박스 안에)으로 정답을 제공해야하고, 그것은 믿을만한 방식으로 정확도를 검증한다.
LeetCode 문제의 경우 컴파일러를 사용해 미리 정의된 테스트케이스를 통해 피드백을 준다.
Format Rewards : 모델이 사고 과정을
and 태그 사이에 작성하도록 강제하는 보상 모델
DeepSeek-R1-Zero를 개발하는데 large-scale RL과정에서 reward hacking으로 피해를 받을 수 있기 때문에 결과나 과정중에 neural reward model을 활용하지 않았다.
또한 reward model을 다시 학습하는 것은 추가적인 자원이 들어가고, 학습 파이프라인을 복잡하게 한다.
2.2.3 Training Template
DeepSeek-R1-Zero를 학습시키기 위해, 템플릿을 설계하는 것부터 시작했다.
DeepSeek-R1-Zero는 먼저 추론 과정을 생성한후 최종 답을 출력해야한다.
추론 과정은 <think> </think> 태그 사이에 최종 답은 <answer> </answer> 태그 사이에 작성한다.
이러한 구조적 형식까지만 제한하는 것을 통해 최대한 특정 문제 해결 전략을 강조하는 것 같은 혹은 반사적 추론(reflective reasoning)을 강제하는 어떠한 편향도 피하려 했다.
이러한 접근 방식은 RL 과정에서 모델의 자연스러운 발전을 관찰할 수 있도록 설계됐다.
2.2.4. Performance, Self-evolution Process and Aha Moment of DeepSeek-R1-Zero
Performance of DeepSeek-R1-Zero
성능의 경우 OpenAI의 모델들과 비교할만한 성능을 가지고 있다는 내용이 주를 이룬다.
Self-evolution Process of DeepSeek-R1-Zero
DeepSeek-R1-Zero의 self-evolution 과정은 RL이 모델의 추론 능력을 자율적으로 향상시키는 과정 잘 보여준다.
base model로부터 RL을 직접 시작해 학습하는 것은 모델이 SFT의 영향 없이 개선 되는 과정을 볼 수 있다.
이 접근법은 모델이 어떻게 시간에 걸쳐 진화를 하는지, 특히 복잡한 추론 문제를 다루는 능력의 관점의 진화를 명확하게 볼 수 있다.
위 그래프를 보면 DeepSeek-R1-Zero의 평균 답변 길이가 증가하는 것을 볼 수 있다. → <Think> 태그에 들어가는 내용이 많아짐
이러한 증가는 외부의 요인의 결과가 아니라 모델 스스로가 학습을 한 결과이다.
DeepSeek-R1-Zero는 계산하는 시간을 스스로 늘려 복잡한 추론 문제를 해결하는 능력을 자연적으로 얻었다.
이러한 self-evolution의 놀라운 점들 중 하나는 사고하는 시간이 증가하면서 자발적으로 등장한 행동들 이다.
- 모델이 이전 단계를 재방문, 재평가하는 reflection 같은 행동
- 문제 해결을 위한 다른 접근법 탐색하기 위해 다양한 방법 시험
그런데 이러한 행동들은 사전에 프로그램화 된것이 아니라 모델이 RL 환경과 상호작용의 결과로 등장한 것이다.
이러한 자발적인 발전은 DeepSeek-R1-Zero의 추론 능력을 강화했고, 더 어려운 문제를 더 효율적이고 정확하게 해결할 수 있게 했다.
Aha Moment of DeepSeek-R1-Zero
이 모델의 놀라운 점이 등장을 한다. 이것은 그것을 관찰하는 연구가에게도 놀라웠다고 한다.
답변으로 <think> 태그안에 추론 과정을 보여준다. 이때 추론 과정 중간에 갑자기 모델이 초기의 접근법에 대해 재평가하는 시간을 갖는다. 이런 행동은 모델의 추론 능력이 성장하고 있다는 것이고 강화학습이 어떻게 예상치 못한 결과를 주는지 보여주는 예시이다.
문제를 어떻게 푸는지 명확하게 학습된 모델이 아니라 올바른 보상을 제공했더니 스스로 나아진 문제 해결 방법을 학습하는 이것이 강화학습의 힘이자 아름다움이다.
Drawback of DeepSeek-R1-Zero
비록 DeepSeek-R1-Zero가 강한 추론 능력과 예상치 못한 강력한 추론 행동을 통해 스스로 발전하는 것을 보여줬어도 직면한 몇가지 문제가 있었다.
예를 들어, DeepSeek-R1-Zero는 가독성이 떨어지고 language mixing 부분에서 어려움을 겪었다.
추론 과정을 더 읽기 쉽게 그리고 그것을 공유하기 위해 cold-start data와 RL을 활용한 DeepSeek-R1를 만들었다.
2.3 DeepSeek-R1: Reinforcement Learning with Cold Start
DeepSeek-R1-Zero의 결과를 보니 자연스럽게 두개의 질문이 떠올랐다.
- 적은 양의 high-quality 데이터를 cold start로써 제공을 하면 추론 능력이 더 향상되고 수렴이 빨라질까?
- 어떻게 명확하고 일관성있는 Chains of Thought(CoT)를 생산하면서도 강력한 능력을 보여줄수 있는 유저친화적인 모델을 학습할 수 있을까?
이 질문에 대한 답을 하기 위해 DeepSeek-R1을 학습하기 위한 파이프라인을 만들었고, 이것은 4단계로 진행된다.
2.3.1 Cold Start
DeepSeek-R1을 위한 초기 RL actor로써의 모델을 fine-tune하기 위한 적은 양의 긴 CoT 데이터를 수집했다.
이 데이터를 수집하기 위한 다양한 방식을 활용했다.
- few-shot prompting with a long CoT
- 모델에게 자세한 답변을 생성하도록 직접 요청하고, 그 답변에 대한 reflection과 검증
- DeepSeek-R1-Zero의 읽을수 있는 형식 갖은 데이터
- 사람에 의해 후처리 된 데이터
이를 통해 RL의 시작 지점으로의 DeepSeek V3-Base를 fine-tune할 수천개의 cold-start 데이터를 모았다.
DeepSeek-R1-Zero와 비교를 한 cold start data를 활용한 장점은
- Readability : 출력 포맷을 |special_token|<reasoning_process>|special_token|<summary>으로 함
- Potential : DeepSeek-R1-Zero보다 성능이 좋다.
2.3.2 Reasoning-oriented Reinforcement Learning
이 단계는 모델의 추론 능력을 강화하기 위한 단계이다. 특히 코딩, 수학, 과학, 논리 추론 등 명확한 정답을 가진 잘 정의된 문제에 대한 것이다.
학습 과정에서 RL 프롬프트가 여러 언어를 포함할 때, CoT가 여러 언어를 사용한다는 것을 확인했다.
이 문제를 해결하기 위해서, RL 학습중에 일정한 언어에 대한 (target 언어 단어의 비율을 계산한)Reward를 추가했다.
비록 성능을 저하시키긴 하지만 가독성을 증가시키므로 추론 정확도 Reward에 언어에 대한 Reward를 더한 최종적인 Reward를 완성했다.
2.3.3. Rejection Sampling and Supervised Fine-Tuning
이 단계에서는 다른 도메인의 데이터를 통합하여 모델의 Writing, Role-Playing, 기타 일반적인 작업 능력을 향상시킨다.
Reasoning data
- RL 학습에서의 Checkpoint에서 Rejection sampling을 통해 추론 프롬프트를 모으고 추론 경로 데이터를 생성
- 이전 단계에서는 rule-based rewards를 사용해 평가할 수 있는 데이터만 사용했다. 하지만 이 단계에서는 추가적인 데이터를 통합함으로써 데이터셋을 확장한다.
Non-Reasoning data
- Writing, 사실 기반 QA, self-congnition, 번역 등 non-reasoning data에 대해서는 DeepSeek-V3 파이프라인을 사용하고 DeepSeek-V3의 SFT 데이터셋을 재활용한다.
- 특정 non-reasoning 문제에서는 DeepSeek-V3를 통해 CoT를 만들지만 단순한 “hello”같은 질의는 CoT를 제공하지 않고 바로 응답.
2.3.4. Reinforcement Learning for all Scenarios
모델을 사람의 선호도에 더욱 잘 맞추기 위해, 모델의 helpfulness와 harmlessness를 향상시키는 동시에 추론 능력을 개선하는 것을 목표로 2차 RL단계를 수행한다.
이 단계에서는 다양한 reward signals와 프롬프트 분포의 조합을 사용해 모델을 훈련한다.
-
reasoning data에 대해서는 rule-based reward를 사용하는 DeepSeek-R1-Zero를 활용.
-
general data에 대해서는 사람의 선호도를 반영하기 위한 reward를 사용한다. DeepSeek-V3 파이프라인 사용
-
helpfulness 측면에서는 최종 요약에만 집중하여, 평가 시 사용자에 대한 응답의 활용성과 관련성을 강조하고 기본적인 추론 과정에 대한 간섭을 최소화한다.
-
harmlessness 측면에서는 생성 과정 중에 발생할 수 있는 잠재적인 위험, 편향 또는 유해한 콘텐츠를 식별하고 완화하기 위해 모델의 응답 전체, 즉 추론 과정과 요약 모두를 평가한다.
궁극적으로, Reward와 다양한 데이터 분포의 통합을 통해 모델의 추론을 강하게 학습하면서 helpfulness와 harmlessness를 향상시킬 수 있다.
4.2 Unsuccessful Attempts
DeepSeek-R1의 개발 초기 단계에서 경험한 실패에 대해서 설명한다.
Process Reward Model(PRM)
PRM은 모델이 추론 문제를 해결하는데 더 나은 방법을 제시하는 합리적인 방법이다. 하지만 3가지 문제점이 있었다.
- 일반적인 추론에서 세밀한 단계를 명확하게 정의하는 것은 어렵다.
- 중간 단계가 맞는지 결정하는 것이 어려운 일이었다.
- 한번 model-based PRM이 소개되면, 부가피하게 reward hacking이 일어난다. 그리고 reward model을 재학습 하는 것은 추가적인 자원이 필요하고 전체 학습 파이프라인을 복잡하게 한다.
Monte Carlo Tree Search (MCTS)
MCTS을 사용하여 test-time의 계산 확장성을 향상시키는 방법을 연구했다.
하지만 학습으로 scaling up할 때 몇가지 문제점이 있었다.
- 상대적으로 탐색 구간이 잘 정의되어 있는 체스와 달리, 탐색 공간이 급격하게 증가했다. 이것을 해결하기 위해서 상한을 뒀지만 이것은 모델의 local optima에 빠지게했다.
- value model은 생성 퀄리티에 직접적인 영향을 줬다.
결과적으로 MCTS는 pre-trained value와 pair로 학습을 하면 성능을 올릴 수 있지만, self-search를 통해 반복적으로 모델의 성능을 올리는 것은 어려웠다.
5. Conclusion
DeepSeek-R1-Zero는 cold-start data를 사용하지 않고 pure RL 접근 방식을 통해 다양한 작업에서 우수한 성능을 달성한 모델이다.
DeepSeek-R1은 cold-start data를 활용하고 반복적인 RL fine-tuning을 결합하여 더욱 강력한 성능을 발휘한다.
결과적으로 DeepSeek-R1은 다양한 작업에서 OpenAI-o1-1217과 유사한 성능을 달성했다.
댓글남기기