Preference Ranking Optimization for Human Alignment 논문리뷰
🔢

Preference Ranking Optimization for Human Alignment 논문리뷰

Tags
NLP
논문리뷰
RLHF
Published
Published July 3, 2023

arXiv

Github

Abstract

Large language models (LLMs) often contain misleading content, emphasizing the need to align them with human values to ensure secure AI systems. Reinforcement learning from human feedback (RLHF) has been employed to achieve this alignment by combining a reward model, typically based on Bradley-Terry paired comparison, with an RL algorithm such as Proximal Policy Optimization (PPO) to optimize LLM responses. However, RLHF exhibits complexity, instability, and sensitivity to hyperparameters. In this paper, we propose Preference Ranking Optimization (PRO) as an alternative to PPO for directly aligning LLMs with the Bradley-Terry comparison. PRO extends the pairwise Bradley-Terry comparison to accommodate preference rankings of any length. By iteratively contrasting the likelihood of generating responses, PRO instructs the LLM to prioritize the best response while progressively ranking the remaining responses. In this manner, PRO effectively transforms human alignment into aligning the probability ranking of n responses generated by LLM with the preference ranking of humans towards these responses. Experiments have shown that PRO outperforms existing alignment algorithms, achieving comparable results to ChatGPT and human responses through automatic-based, reward-based, GPT-4, and human evaluations. Furthermore, we demonstrate that longer, more diverse, and higher-quality preference ranking sequences can consistently enhance the performance of human alignment.
→ PRO라는 새로운 방법론을 제안: BRadley-Terry compairson을 확장한 것
  • 사실 얼마전에 읽던 DPO랑 비슷한 느낌..
  • 2개(좋은 예제, 나쁜 예제) 만으로도 SoTA 성능을 찍음
  • 3개(1,2,3등)이상의 예제를 쓰면 성능이 더 많이 올라감

SFT vs RLHF vs PRO

Figure1: SFT vs RLHF vs PRO
Figure1: SFT vs RLHF vs PRO
  • SFT는 y1 즉 사람이(혹은 GPT가) 작성한 좋은 응답 하나만 학습
  • RLHF는 Reward Model을 통해 Proxy로 LLM의 Alignment를 학습
    • 이때, y_iy_j 보다 낫다 라는 것만 학습
    • 1:1 비교만 하는 RM
  • PRO는 랭킹이 있다면 → 랭킹 데이터셋을 쭈우욱 확장
    • 만약 y_1, y_2, y_3이 있다면
      • y_1 > y_2 , y_1 > y_3 , y_2 > y_3 느낌으로,
      • 순서대로 1등을 하나씩 내려가면서 데이터셋을 학습
    • 이론상 무한한 i 개의 샘플을 본다면 → 완벽한 Human Preference를 학습하는 것이 됨
  • RLHF에서는 자기자신이 생성한 샘플(Self-Instruct)를 사용했지만 여기서는 외부 LLM이 생성한 샘플도 사용 가능

SFT

  • SFT는 단순히 가장 좋은 것을 학습할 뿐

RLHF & Bradley-Terry(BT) Model

  • BT 모델은 와 같이 두개 응답 Y 중에서 어떤 응답을 더 선호하는지를 찾는 Preference Probability Model.
  • BT 모델은 일종의 Binary Classification 문제로 치환이 가능함.
  • 위에서 는 Logistic func, 는 Reward Model🤔.
  • RLHF에서는 에게 Feedback을 제공한다.
  • 기존 에서 너무 틀어지지 않도록 를 조절하면서 Reward를 최대한 받도록 학습하는 방법.
  • 근데 위 수식은 사실 미분불가능하기 때문에 → PPO같은 방법을 쓴다.

RLHF 대신 PRO

PRO 파이프라인
PRO 파이프라인

Bradley-Terry Model을 여러개로 확장

  • Bradley-Terry 수식이 y_1, y_2 두 개 밖에 비교를 못하는 것을 넘겨서 학습하자
  • 위와 같이 2개 비교에서 2~N개의 비교로 늘릴 수 있다.
  • 단 위 수식은 → y_1 을 2..N까지 비교만 하고, 나머지 데이터간의 관계는 쓰지 못하기 때문에..
  • y_ky_k+1 부터 y_n 까지 모두 비교해서 나오는 확률곱으로 계산하는 식으로 바꾼다.
  • 이렇게 하면… 만약 n → 으로 보내버리면, 모든 경우에 대해 사람의 Preference를 학습하는 셈.

Preference Ranking Optimization

  • 원래는 Reward function이 RM에 의해서 주어지지만
  • 여기에서는 , 즉 에 의해서 계산되는 값으로 본다.
  • LM이, 각 생성문장 에 대해, 각 토큰의 생성 확률을 단순곱을 통해서 생긴 을 일종의 Reward Model처럼 사용한다.
  • 만약 위에 있던 가 Optimize된다고 하면 → 는 Human Preference에 Align된다.
  • 다만 단순히 Human Preference 따르는 것 외에도 SFT를 추가로 학습해야 좀더 Fluent한 생성이 가능하다.
  • 따라서 Loss를 계산할때는 두개를 합쳐서 사용하고, 값을 조절해 SFT 학습 강도를 조절한다.
  • 는 일반적인 Causal LM 학습에 사용하는 NLL Loss(CE Loss)
  • 는 앞서 봤던 를 그대로 써서 → exp로. (사실상 생성된 토큰 부분의 PPL값)
  • 즉, 여러 모델 학습할 필요도 없이.. SFT와 PRO를 단일 학습 Stage로 학습 가능.

PRO의 장점

데이터 효율 & 학습 효율

  • SFT보다 데이터 효율적: Negative Sample을 함께 활용함
  • RLHF에서 2^N개의 샘플 계산이 필요한 것에 대비해서 → N-1번의 샘플 계산만 있으면 되어서 효율적
    • 특히, 단순 2개 비교도 되고 K개 비교도 되지만..
    • 샘플 데이터셋 간 데이터 랭킹 수가 달라도 됨
      • 즉, 어떤건 1:1 비교 어떤건 1:10 비교(1등~10등)하는 샘플을 모두다 합쳐서 쓸 수 있다.

쉬운 학습 = 미분 가능

  • 그리고 무엇보다 PRO 수식은 미분가능함
  • 원래 contrastive learning에서는 similarity를 사용하지만 → PRO에서는 LM 가 보이는 Likelihood로 대체

Dynamic Temperature

  • 그리고 Ranking간 간격(모델의 선호)에 대해서도 아래와 같이 Temperature를 붙여준 수식으로 바꿔주면..
  • 간의 차이가 커지면 → 간 Human Preference 차이가 큰 것
    • 이 경우 는 자연히 작아지고 → Loss가 더 커지게 됨
  • 단독으로 학습시 Dynamic Temperature를 함께 사용하면 성능이 꽤 많이 오른다.
    • 모두 사용시에도 Dynamic Temperature를 쓰면 약간의 향상이 있다.

학습 데이터의 높은 자유도

  • 학습 데이터셋을 만드는데 있어서 외에도 ChatGPT, GPT4, Alpaca,… 등을 써도 OK.
  • 오히려 질 좋은 데이터 & 질 나쁜 외부 응답을 모두 각각 Positive/Negative Contrastive Leraning에 쓰는게 최종 성능에 더 큰 도움이 된다.

성능?

  • 베이스 실험 모델은 LLaMA 7B.
  • 성능 측정은…
    • BLEU Score로 Test set 비교
    • Reward Models로 preference score 비교
  • 학습 조건
    • (l = ranking length)
    • seq len = 512
    • epochs = 2
    • lr = 5e-6
    • max gen tokens = 128
    • batch/device = 2
    • gradient accumulation = 8
    • total batch = 112
  • 데이터셋 생성에는 LLaMA, Curie, Alpaca, ChatGLM, ChatGPT
  • 타 방법론에는 BoN, RLHF, CoH, RRHF등과 비교
notion image
  • 타입은 단순 HH 데이터셋의 1쌍(2개세트)
  • Alpaca,3은 Alpaca로 생성한 데이터를 끼워넣어 학습한 3개 세트
  • ChatGPT,3은 ChatGPT로 생성한 데이터를 끼워넣어 학습한 3개 세트.
  • 대부분의 케이스에서 Reward가 가장 높았음
notion image
notion image
  • RRHF와 비교해도 높은 성능
  • GPT-4 Evaluatiaon은 순서 bias 막기 위해 앞뒤 바꿔서 풀로 돌린 뒤 mean
  • PRO vs RRHF에서, GPT4는 압도적으로 PRO를 선호

다른걸 섞으면 성능이 오른다

Figure 3: Results of experiments on different ranking lengths.
Figure 3: Results of experiments on different ranking lengths.
  • 더 좋은 예제를 넣으면 → 성능이 오른다 (ChatGPT 보라색이 가장 성능 높음)
  • 중간 것만(alpaca) 넣는것보다 → 중간거 + 나쁜거(Curie) 넣는게 더 낫다 → 파란색 4 vs 빨간색 4

자기자신, Self-Bootstrapping augmentation이 성능을 올릴까?

notion image
  • 그닥 안오름
  • 오히려 Reward 떨어짐
  • 저자들은 Reward Model이 조금 덜 똑똑해서 그런게 아닐까?(RM크기가 1.5B수준, LM이 7B)

정리

  • RRHF보다 한 발자국 더 나아간 논문
  • 간단히 수정 혹은 간단한 방식으로 구현도 가능 (물론 깃헙도 공개됨)
  • 외부 모델의 좋은 응답을 쓸 수 있는 예제는 언제나 sLM에 도움이 될 것 같다.
  • DPO와는 다르게 수식위주의 논문이 아니라서 읽기 편했음..