GRPO:Zero, GRPO를 간단하고 효율적으로 구성한 LLM용 강화학습 프레임워크

GPRO:Zero 소개

GRPO:Zero는 LLM을 강화학습(RL)으로 학습시키는 대표적인 기법인 GRPO(Group Relative Policy Optimization)를 간단하고 효율적으로 구현한 오픈소스 프로젝트입니다. Hugging Face의 transformers나 vLLM 같은 복잡한 라이브러리 없이 PyTorch와 tokenizers만으로 구현되어 있습니다. 단일 A40 GPU만으로도 돌릴 수 있는 가벼운 구성이라, 연구나 실험 목적으로도 매우 적합합니다.

GRPO:Zero는 DeepSeek에서 제안한 GRPO 알고리즘 기반으로, LLM을 강화학습 방식으로 학습시키기 위한 프레임워크입니다. 특히 기존의 강화학습 기반 학습법들이 흔히 사용하는 KL Divergence, Reference Policy Network, Value Estimation Network 등을 제거하여 메모리 효율성과 구현 난이도를 낮췄습니다.

또한, 이 프레임워크는 특정 태스크(Countdown Task)를 학습시키는 데 초점을 맞추고 있으며, 해당 태스크는 주어진 숫자를 조합하여 특정 수식을 만들어내는 문제입니다. 학습 시에는 단순한 정답뿐 아니라 추론 과정을 텍스트로 출력하게 유도하는 포맷 보상까지 도입되어, LLM이 ‘Chain-of-thought’ 스타일로 사고 과정을 학습할 수 있도록 구성되어 있습니다.

GRPO:Zero의 주요 특징

  • 완전 자체 구현: tokenizers와 PyTorch 외에 의존성 없음
  • 단일 GPU 학습 가능: 기본 config는 A40(48GB) 기준으로 설정
  • KL Divergence 제거: 더 적은 GPU 메모리 사용
  • Token-level Policy Gradient Loss : 각 토큰별로 동일한 가중치로 학습
  • Overlong Episode Filtering 지원: context 길이 초과한 학습 샘플 무시 기능 제공

GRPO:Zero의 동작 방식

GRPO:Zero는 DeepSeek의 GRPO(Group Relative Policy Optimization) 알고리즘을 기반으로 작동합니다. 기존의 PPO처럼 Advantage 기반 Policy Gradient를 사용하지만, Value Network 없이 Reward를 정규화하여 Advantage로 사용하는 방식입니다.

전체 학습 절차는 다음과 같습니다:

  1. 학습 스텝마다 N 개의 질문 q_1, q_2, \cdots, q_N 을 샘플링합니다.
  2. 각 질문 q_i 에 대해 M 개의 답변 a_{i,1}, a_{i,2}, \cdots, a_{i,M} 을 생성합니다.
  3. 각 답변 a_{i,j} 에 대한 보상 r_{i,j} 를 계산합니다.
  4. 각 질문에 대해 보상의 평균과 표준편차를 계산합니다:
    \mu_i \leftarrow \text{mean}(r_{i,1}, r_{i,2}, \cdots, r_{i,M}) \\ \sigma_i \leftarrow \text{std}(r_{i,1}, r_{i,2}, \cdots, r_{i,M})
  5. 각 답변의 토큰 t에 대해 Advantage를 계산합니다:
    A_{i,j}[t] \leftarrow \frac{r_{i,j} - \mu_i}{\sigma_i}
  6. Advantage를 이용하여 Policy Gradient를 계산합니다:
    \nabla_\theta \log \pi_\theta(a_{i,j}[t]) \cdot A_{i,j}[t]
  7. 계산된 그래디언트를 이용해 정책 네트워크 \pi(\theta) 를 업데이트하고 1번으로 돌아갑니다.

이 구조는 일반적인 PPO에서 사용하는 KL Penalty나 Reference Model 없이 작동하며, 메모리 사용량을 줄이면서도 안정적인 학습이 가능하게 설계되었습니다.

GRPO:Zero 설치 및 학습 방법

# uv를 사용한 설치
pip install uv
uv sync

# Git LFS 설치
apt update
apt install git-lfs -y
git lfs install

# 데이터셋과 모델 다운로드
git clone https://huggingface.co/datasets/Jiayi-Pan/Countdown-Tasks-3to4
git clone https://huggingface.co/Qwen/Qwen2.5-3B-Instruct

# 학습 실행
uv run train.py

라이선스

GRPO:Zero 프로젝트는 Apache-2.0 라이선스로 공개 및 배포되고 있습니다.

:github: GRPO:Zero 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: