목표: preference tuning을 하기 위해 reward 모델들을 사용하고, PPO(Proximal Policy Optimization)을 사용하는데, 이러한 것들이 왜 필요한지에 대해 알아보는 논문이다. 또한 PPO 알고리즘이 어떻게 동작하는지에 대해서도 한 번 알아볼 수 있도록 한다.
PPO 알고리즘이 어떻게 구성되어 있길래 reward model을 만들기가 어려울까?
기본적으로 3단계로 구성됨.
그렇다면 일반적으로 본 논문까지 왔다면 supervised fine-tuning에 대해서는 잘 알고 있을 것이고, reward model을 어떻게 학습하고, 또 학습된 reward model과 PPO 알고리즘을 통해 SFT된 모델을 업데이트하여 optimized policy를 찾아내는지에 대해 집중해야 할 것이다.
기본 transformer 구조의 unembedding layer
입력 텍스트
│
▼
[입력 임베딩] (예: 768차원) - [위치 임베딩] (768차원)
│
▼
[Transformer 블록] (768차원)
│
▼
[최종 Transformer 레이어 출력] (768차원)
│
▼
[Unembedding Layer] (768차원 → 50,000차원)
│
▼
[Softmax] (50,000차원)
│
▼
[예측된 단어] (어휘 사전 크기 50,000)
transformer based reward model
입력 텍스트
│
▼
[입력 임베딩] (768차원) - [위치 임베딩] (768차원)
│
▼
[Transformer 블록] (768차원)
│
▼
[최종 Transformer 레이어 출력] (768차원)
│
▼
[추가 선형 레이어 (Linear Layer)] (768차원 → 1차원)
│
▼
[보상 점수] (1차원)
두 가지의 차이점은 마지막 softmax layer + unembedding layer를 제거하고, 추가적인 linear layer를 통해 하나의 스칼라 값으로 변환하는 것이다.
기본적으로 sampling된 텍스트가 주어지면, 리워드 모델은 마지막 토큰에 대해 scalar로 된 reward value를 주게 되고, 더 좋은 샘플이면, 더 좋은 리워드가 부여된다.
리워드 모델의 학습 방법은 paired comparison dataset을 통해 학습을 한다. 그리고 loss 함수는 다음과 같이 설계한다.
그리고 위 식에 imitation learning 기법의 term을 추가하고 이에 계수를 곱해 reward modeling loss를 다음과 같이 설계한다.
또한, 리워드를 줄 시에 sampled된 응답에 한 번에 너무 많은 보상을 주지 않기 위해, Kullback-Leibler (KL) divergence term을 추가하여 리워드를 조정한다.
위의 식에서 알 수 있듯이, RL policy를 통해 학습되는 모델이 기존의 SFT된 모델 대비 많이 차이가 나면, penalty를 많이 부가하여 리워드를 낮추는 것이다.
이는 엔트로피 보너스라고 할 수도 있는데, 엔트로피는 정보의 불확실성의 측도이다. 이를 통해 엔트로피가 높다는 것은 에이전트가 여러 행동을 고르게 시도하게 된다는 것이다. 따라서 엔트로피 보너스라는 말은 KL term을 활용하여 특정 보상에 집중하여 모델이 조기에 수렴하는 것을 방지하고, 더 탐험을 할 수 있도록, 안정적으로 수렴할 수 있도록 하는 것이다.
회사에서 공부한 것에 대한 세미나를 하다가 이러한 질문을 받았다. '그렇다면 리워드는 어떻게 학습하는지는 알겠는데 어떻게 주는 거야?'
위에 번지르르하게 설명을 해놨지만 사실 잘 와닿지는 않을 것이다. 우리가 강화학습의 미로게임 같은 것들을 생각을 해본다면 강화학습은 한 스텝, 한 스텝 갈 때마다 보상을 얻고, 결국 최종 목적지에 도착했을 때 보상이 가장 클 만한 방향으로 policy를 최적화 해가는 것이다.
여기 LLM에서는 한 스텝, 한 스텝 가는 것을 한 토큰, 한 토큰이라고 생각하면 된다. 한 토큰(한 스텝), 한 토큰(한 스텝)을 진행해서 최종적으로 eos token(목적지)에 도달했을 때 보상이 가장 클 만한 방향으로 학습을 진행하는 것이다.
즉, 정리하자면 다음과 같은 단계로 리워드 모델을 학습하는 것이다.
human preference 데이터셋 구축
human preference 데이터셋을 통한 리워드 모델 학습
이제 이렇게 학습된 리워드 모델을 통해 최적화하고자 하는 policy
에 대해 reward를 부여하는 것이다.
리워드 모델의 코드를 보게 되면, eos token의 리워드를 output으로 사용한다.(eos_indices
부분 확인)이는 next token prediction을 생각했을 때, 이전 token의 영향으로 eos token이 나오게 되고, 이 값을 최종 reward로 판단하는 것이다. 강화학습의 미로게임에서 최종 목적지에 도착했을 때의 reward를 계산하는 것과 같은 것이다.
PPO 알고리즘
, GAE 개념
등은 다음 포스트에서 작성할 것.