관심있는 NLP 논문을 읽어보고 ChatGPT를 이용하여 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Meta, NYU]
- LLM-as-a-Judge prompting을 이용하여 스스로 반환한 reward로 학습하는 Self-Rewarding Language Models를 제안
- DPO를 이용하여 반복 학습을 진행하는 동안 instruction following & providing high-quality rewards 능력이 둘 다 향상됨
- Llama 2 70B 모델을 3 iterations로 학습하여 AlapacaEavl 2.0 리더보드에서 우수한 성능을 보임
1. Introduction
LLM을 사람의 선호에 맞게 align하기 위해서 도입된 Reinforcement Learning from Human Feedback (RLHF)가 매우 효과적이라는 것은 잘 알려져 있습니다.
여기에는 사람의 선호를 반영한 reward 모델이 존재하는데, 이 모델은 frozen되어(업데이트 되지 않고) LLM이 RL을 수행하는 데 활용됩니다.
최근에는 이러한 reward 모델의 존재 없이 LLM에게 선호를 직접 반영시키는 Direct Preference Optimization (DPO) 방식이 크게 주목받고 있습니다.
본 논문에서는 둘 중 어떤 방식이든지 간에 사람의 선호 데이터의 사이즈가 커지고 퀄리티가 높아지면 병목 현상이 발생한다는 것을 문제점으로 지적하며 이를 개선한 방법론을 제안합니다.
frozen reward 모델을 사용하는 것이 아니라 LLM alignment 동안 지속적으로 학습하는 self-imporving reward model을 제안합니다.
이는 주어진 프롬프트에 따라 response를 생성하는 'instruction following models'로의 역할과 '새로운 instruction following examples를 생성 및 평가'하는 역할을 둘 다 수행하는 모델을 학습시키는 방식을 뜻하게 됩니다.
2. Self-Rewarding Language Models
이 방법론의 핵심은 사전 학습된 언어 모델을 적은 양의 human-annotated seed data로 추가 학습시키는 것입니다.
이를 통해 (위에 언급한 것처럼) 'Instruction following' & 'Self-Instruction creation' 능력을 갖추게 됩니다.
2.1. Initialization
- Seed instruction following data
- human-authored instruction following data를 뜻합니다.
- 이를 이용하여 SFT를 적용하는데, 본 논문에서는 이 데이터를 Instruction Fine-Tuning (IFT) 데이터라고 부릅니다.
- Seed LLM-as-a-Judge instruction following data
- IFT 데이터로 SFT를 수행한 언어 모델은 LLM-as-a-Judge 역할을 수행할 수 있습니다.
- 이때 생성되는 데이터로 (evaluation instruction prompt, evaluation results response) 형식을 갖추고 있습니다.
- 이를 사용하는 것이 모델 성능 향상에 (미미한) 도움이 된다는 것을 실험적으로 밝혔습니다.
- Evaluation Fine-Tuning (EFT) 데이터라고 부릅니다.
2.2. Self-Instruction Creation
다음 세 과정을 반복하며 next iteration of training에 활용될 데이터를 생성합니다.
- Generate a new prompt: IFT 데이터로부터 sampling한 데이터를 few-shot prompting하여 새로운 prompt, $x_{i}$를 생성합니다.
- Generate candidate responses: 주어진 $x_{i}$를 바탕으로 N개의 후보 responses, $\{y^{1}_{i},...,y^{N}_{i}\}$를 생성합니다.
- Evaluate candidate responses: 동일 모델을 LLM-as-a-Judge로 사용하여 후보 responses를 $r^{n}_{i} \in [0,5]$의 스코어로 평가합니다.
2.3. Instruction Following Training
seed IFT & EFT 데이터로 학습을 시작합니다.
AI Feedback Training (AIFT)
self-instruction creation 단계 이후엔 생성된 후보들에 대해 평가를 내리며 feedback 데이터를 생성합니다.
이를 AIFT 데이터라고 부르는데, 두 가지 종류로 구분됩니다.
- Preference pairs: (instruction prompt $x_{i}$, winning response $y^{w}_{i}$, losing response y^{l}_{i}$) 형식으로 구성됩니다. 이는 DPO에 사용됩니다.
- Positive examples only: (instruction prompt, response) 형식으로 구성됩니다. 여기서는 perfect score $r^{n}_{i}=5$를 받은 케이스만 추가됩니다.
2.4. Overall Self-Alignmnet Algorithm
$t$번째 모델은 $t-1^{th}$ 모델에 의해 생성/증강된 학습 데이터를 이용하여 학습합니다.
따라서 $AIFT(M_{t})$를 모델 $M_{t}$를 사용하여 생성한 AI Feedback Training data로 정의합니다.
이 정의를 실제 연구에 적용한 것을 정리하면 다음과 같습니다.
3. Experiments
3.1. Experimental Setup
- Base Model: Llama 2 70B
- IFT Seed Data: Open Assistant 데이터셋을 instruction fine-tuning 데이터셋으로 활용
- EFT Seed Data: Open Assistatn 데이터셋에 포함된 ranked human responses를 train/eval 셋으로 구분한 뒤 LLM-as-a-Judge 데이터를 생성. 총 1775 train, 531 evaluation examples를 생성
- Instruction Following: AlapacaEval evaluation prompt를 활용하되, 평가자로 GPT-4를 사용
- Reward Modeling: Open Assistant 데이터셋으로부터 evaluation set에 대한 human ranking과의 상관관계를 구함. 이때 Spearman correlation과 Kendall's $\tau$를 사용함.
3.2. Results
Instruction Following Ability
- EFT + IFT seed training performs similarly to IFT alone: Evaluation Fine-Tuning 데이터셋을 사용하는 것이 최종 결과에 큰 영향을 주지 못한다는 것이 확인되었습니다. (30.5 wins vs. 30.9% wins)
- Iteraiton 2 ($M_{2}$) improves over Iteration 1 ($M_{1}$) and SFT Baseline: $M_{1}$과 $M_{2}$ 사이에는 커다란 gap이 존재합니다.
- Iteration 3 ($M_{3}$) improves over Iteration 2 ($M_{2}$): 위와 마찬가지입니다.
- Self-Rewarding models perform well on AlpacaEval 2 leaderboard: Open Assistant에서 추출한 적은 양의 seed 데이터만으로도 뛰어난 성능을 거둘 수 있음이 확인되었습니다.
- Preference optimization outperforms augmenting with positive examples only
- Data distribution analysis: 모델은 점점 더 긴 responses를 생성하도록 학습된다는 것이 확인되었습니다. ($M_{1}$: 1092, $M_{2}$: 1552, $M_{3}$: 2552)
Reward Modeling Ability
- EFT augmentation improves onver SFT baseline: EFT 데이터셋이 전체 결과에는 큰 영향을 주지 못했지만, baseline을 향상시키는 데에는 도움이 됩니다.
- Reward Modeling ability improves with Self-Training: iteration에 따라 모델 성능이 크게 향상된다는 것이 확인되었습니다 (위 그래프 참조). 특히 $M_{3}$의 경우 proprietary 학습 데이터를 이용한 다른 모델들과 견줄 수 있는 뛰어난 성능을 보여줍니다.
- Importance of the LLM-as-a-Judge Prompt: 5-point 스케일을 사용하는 Li et al. [2023a]에서 제안한 프롬프트를 사용했을 때는 성능이 현저히 떨어진다는 것이 확인되었습니다. (65.1% - 연구, 26.6% - 비교)
4. Related Work
LLM을 자동적으로 개선하고 교정하는 것은 최근 가장 핫한 연구 분야 중 하나입니다.
관련된 키워드들은 다음과 같습니다.
- Reinforcement Learning from Human Feedback (RLHF): Proximal Policy Optimization (PPO), Direct Preference Optimization (DPO), Pairwise Cringe Optimization (PCO)
- Reinforcement Learning from AI Feedback (RLAIF): LLM이 feedback을 제공 및 response를 refine → reward 모델 학습에 활용
- Improving LLMs vida data augmentation (and curation): Self-Instruct, Alpaca, Alpagasus, Instruction Backtranslation, Reinforced Self-Training (ReST)
- LLM-as-a-Judege: LLM을 reward 모델 학습 및 data curating에 활용
5. Insights
요즘 가장 효과적인 LLM 학습은 아무래도 LLM을 활용하는 것 같습니다.
그중에서도 이 연구는 'Self'라는 키워드를 정말 잘 살린 것 같다는 인상을 줍니다.
self-evaluation 하는 방식 자체는 조사해보면 꽤 나올 것 같은데, reward 모델을 학습시키는 것과 동시에 그것 자체가 generation model이라는 점이 아주 흥미롭게 느껴졌습니다.
two-stage를 one-stage로 만들었더니 오히려 더 좋았다는 것으로 해석할 수도 있는 것 같습니다.
본 논문을 읽는 동안에는 이 방식의 문제점보다는 이를 어디에 활용할 수 있을까에 대한 고민을 더 하게 된 것 같습니다.
과연 작은 모델에는 적용 가능한 방식일지도 궁금합니다.
Llama 2 70B 정도면 온전한 학습을 돌릴 수 있는 환경을 갖추기가 쉽지 않을텐데..
작은 모델로 큰 모델을 감독하는 것에 관한 OpenAI의 연구가 있었던 것 같은데, 거기에서는 작은 모델의 잘못된 정보나 편향이 그대로 전달될 수 있다는 문제점을 언급했습니다.
아마 모델의 사이즈가 크지 않으면 유사한 문제가 발생할 가능성이 높지 않을까 우려되기도 합니다.
출처 : https://arxiv.org/abs/2401.10020