Super Kawaii Cute Cat Kaoani

NLP/LLM

[Reinforcement Learning] GRPO (Group Relative Policy Optimization)

zozni 2025. 2. 3. 18:04
728x90
반응형
SMALL

DeepSeek R1에서 사용했다고 하는 GRPO 강화학습 방법에 대해 공부해보자!

 

기존 LLM 학습 방식 : 사전 훈련 -> 지도 학습 (SFT) -> 강화 학습 (RL)

DeepSeek 방식 : 사전 훈련 -> 강화 학습 (RL)

 

DeepSeek 팀에서는 GRPO (Group Relative Policy Optimization) 이라는 새로운 강화학습 기법을 개발함.

 

✅ GRPO (Group Relative Policy Optimization) 작동 원리

- 모델이 여러개의 답변을 생성함.

- 미리 정의된 규칙에 따라 각각의 답변에 점수를 매김

- 더 높은 점수를 받은 답변을 학습하여 개선함 (강화 학습)

 

💡 기존 RLHF 강화 학습 방식과 다르게 사람이 직접 피드백을 줄 필요 없이 자동화된 방식으로 훈련이 가능하다.

 

  • 추론 능력이 강화되고, 문제 해결 시간이 증가하면서 'Aha Moment' 현상도 나타남❗️
    • 즉, 모델이 스스로 답변을 다시 생각하고 수정하는 능력이 생김!

<DeepSeek-R1-Zero 란?>

원래 다른 LLM 모델들은 파인튜닝, SFT 방식으로 단계 단계를 거치면서 대답을 하는 방식인데, 

이 딥시크 제로는 그 단계를 다 삭제하고 오로지 강화학습만으로만 모델 학습이 되었다. 

 

또한, 파인튜닝된 데이터들이 없다보니 2가지의 큰 문제점이 존재.

 

문제점 1. poor readability

-> 가독성이 떨어짐

 

문제점 2. language mixing

-> 중국어나 영어 이외에 다른 나라 언어로 물어보면 영어로 사고 과정을 거치고 영어로 답변을 한다던지, 다른 나라 언어들을 믹싱해서 답변.

 

위 두 문제점을 해결하기 위해 강화학습을 수행하기 전에 '콜드 스타트' 데이터를 주입시켜서 얘를 한번 파인튜닝을 시키고 다시 강화학습을 시키고 다시 파인튜닝을 시켜서 만듬.

 


기존 LLM 즉 o1 모델의 경우에는 cot 길이를 늘리다보니까 o1 모델의 논리 능력이 높아졌다. 모델이 생각하고 사고하는 과정.

-> 근데 이 모델을 배포를 하고 나서 테스트 타임에서 효과적으로 모델의 성능을 강화시키는 방법이 아직까지는 효과적인게 없음. 

이를 해결하고자 업계에서는 3가지 방법을 제안하고 있음.

 

1. process-based reward models : 모델이 생각을 하는 단계들을 거칠때마다 한 단계를 보고 이게 지금 잘 생각하고 있는건지, 만약에 잘 생각하고 있으면 보상을 주고, 그 다음 단계로 가고 이런식의 방법.

2. reinforcement learning : 강화학습

3.  Monte Carlo Tree Search와 Beam Search : 검색 알고리즘을 시도. 

 

근데 이 방법들이 쓰읍.. 그래서 딥시크팀이 새로운 방법을 도입해봄.

그게 바로 아무런 SFT 데이터 없이, 오로지 강화학습을 토대로 LLM 모델의 성능을 발전시켰다~

즉, supervised data 없이, 자기 스스로 진화하면서 생각하도록 만들어낸 모델.

 

기존에 만들어 놨던 DeepSeed-V3 라는 모델에다가 GRPO라는 강화학습 프레임워크를 사용해서 성능을 끌어올렸다.

 

적은 양의 콜드 스타트 데이터를 학습을 시킨 다음에 multi-stage training 파이프라인을 결합했다고 한다.

베이스라인모델에다가 콜드스타트 데이터를 파인튜닝을 시키고 그 다음에 reasoning oriented RL, 강화 학습을 시켰다고 함. 

이 과정이 끝난 뒤에 새로운 SFT 데이터를 한 번 더 넣었다고 함.

 


[GRPO (Group Relative Policy Optimization)] 이란?

-> 일반적인 강화학습에서 사용하는 Critic 모델 (가치 함수)를 생략하고, 대신 그룹 내 보상 값들로부터 기준점을 추정하는 방식.

 

일반적 Critic 모델이라는 모델을 하나 더 사용을 하는데 이거는 AI가 특정 답변들을 생성을 해냈을 때 이 답변이 좋은지 안좋은지 점수를 매겨주는 함수임. 

이걸 생략을 하고 GRPO를 사용

모델이 여러 답변들을 생성했을 때 그 답변들을 그룹화시켜서 그 그룹 내의 답변들을 서로 비교를 하면서 그 답변들 중에서 좋은 것들 (보상값)을 평균값을 구하고 이걸 토대로 기준점을 측정해서 효율적으로 학습을 시킨다.

 

 

그리고 

이 optimization 함수를 토대로 최적화를 하게 된다.

 

 

여기서 A_i의 역할은 응답이 평균보다 더 나은지 여부에 따라 확률을 얼마나 증가시키거나 감소시킬지를 결정하는 데 도움을 줌.

 

 

Clip한다는 뜻은 Policy ratio가 1+e 보다 높으면 1+e로 자르고, 1-e보다 낮으면 1-e로 자른다는 뜻.

 

 

 

즉, A_i가 양수면 해당 답변이 나올 확률을 높이고자 하는 것!

 

 

<총 정리>

- Policy ratio와 Clip의 최소값을 찾는 것의 의미 : ratio가 안정된 범위 안에 있으면 바로 사용해서 업데이트하고, 아닐 경우에는 clip된 버전을 사용함.

- KL divergence를 빼는 이유 : 기준 베이스 모델의 정책에서 너무 벗어나지 않도록 컨트롤해줌.

- 아웃풋을 더하고 나눠서 평균값을 구하는 이유 : 아웃풋들은 그룹 형태이다 보니 각 출력의 업데이트를 계산해서 평균값을 구함. 그 이유는 특정 아웃풋에 과도하게 최적화되지 않도록 하기 위함.

 

<요약>

- 하나의 응답을 개별적으로 평가하는 대신, 여러 개의 응답을 그룹으로 묶어 비교하고 순위를 매긴다.

- 모델은 더 좋은 응답의 확률을 증가시키면서도, 너무 급격한 변화는 방지하도록 업데이트된다.

- 새로운 정책이 기준 정책과 크게 벗어나지 않도록 유지하여 안정성을 보장한다.

- 별도의 critic 모델 없이 학습할 수 있어 훈련 비용을 절감할 수 있다.

 

 


일반 강화학습보다 GRPO를 사용하는 이유?

- 더 빠른 훈련 : 외부 critic 없이 상대적인 순위(랭킹) 비교만 사용하므로 훨씬 효율적이다.

- 안정적인 업데이트 : 클리핑(clipping) 함수가 모델이 너무 극단적인 업데이트를 하지 못하도록 막아 오버피팅을 방지한다.

- 더 나은 제어 : KL Divergence 패널티를 적용하여 모델이 기준 정책에서 너무 멀어지는 것을 방지한다.

 

사용한 보상 모델 (Reward Model) ❗️ 2가지 리워드를 사용했다.

1. Accuracy rewards : rule-based verification of correctness를 사용. 

2. Format rewards : 모델이 항상 일관된 형식으로만 답변을 할 수 있도록 모델링. <think> and </think> 태그 내에서 답변을 한 애들 위주로만 학습을 시켰음.

 

Self-Evolution Process 를 통해 모델이 답변을 만들어 내고 스스로 생각을 할 때 어떤 식으로 모델이 스스로 진화를 하고 있는지 자세하게 뜯어보면서 모니터링 할 수 있다.

모델이 답변을 생성할 때 reflection을 많이 하는데 이거는 모델이 처음에 답변을 생성하기 위해서 단계별로 답변을 생성하다가 다시한번 이전 단계로 돌아가서 답변을 수정하는 것을 말함.

 

 

728x90
반응형
LIST

'NLP > LLM' 카테고리의 다른 글

Claude MCP(Model Context Protocol) 내용 정리  (0) 2024.12.09
[LLM] 테스트케이스 작성  (1) 2024.07.02