논문 리뷰/자연어처리
Training language models to follow instructions with human feedback 리뷰
kyj0015
2025. 5. 26. 00:51
- 링크:
https://arxiv.org/pdf/2203.02155
Background
- Reinforce learning
- Environment: state를 주는 상황 또는 환경 -> 입력 문장
- Action: state에 대한 agent의 행동 -> 출력 문장
- Agent: Policy에 따라 행동하는 모델 -> PPO 모델
- Critic: Actor의 행동을 평가하고 reward를 반환하는 모델
- Policy: Agent가 어떤 state에 놓였을 때 어떤 action을 할지 결정하는 strategy 또는 함수 -> PPO 모델 파라미터
- PPO
- RL 모델의 파라미터 업데이트 알고리즘
- PPO: KL divergence이 일정 이하가 되도록하거나 cliping으로 간단하게 발산하지 않게 조금씩 안정적인 학습
- Large Language model이 misaligned
- LLM 모델을 크게 만들고 학습시켜 prompted만으로 다양한 NLP task에서 성과를 보이나 꼭 사용자의 의도대로 대답을 생성하지는 않음 -> language modeling objective가 predicting the next token on webpage라서
- Untruthful, toxic, not helpful 등 -> 모델은 사용자의 의도와 aligned하지 못하다
- -> Reinforcement Learning from Human Feedback으로 align하게 finetuning하자
Methods
- 1. collect demonstration data, and train a supervised policy
- 40명의 labeller 고용
- 모델을 학습시킬 질문/답변 데이터셋 생성
- OpenAPI로 받은 prompt에 대해 모범적인 답변을 작성
- GPT-3를 위 데이터로 supervised learning -> SFT
- 2. Collect comparison data, and train a reward model
- SFT의 대답을 labeler의 선호대로 rating
- 이 데이터로 RM 모델을 학습
- 3. Optimize a policy against the reward model using reinforcement learning
- SFT로 모델 초기화
- RM의 reward가 최대가 되게 학습 (PPO 알고리즘)
- 1.3B InstructGPT가 175B GPT보다 align
- Model
- SFT (supervised fine-tuning): GPT-3 175B, finetuning 1 epoch 만으로 overfitting되서 RM score와 human preference ratins로 학습
- RM (reward modeling)
- prompt와 response를 받으면 scalar reward를 반환
- 6B
- loss가 작아지려면 log 값이 0에 수렴해야함 -> 두 답변에 대한 scalar reward (yw, yl)의 차이가 1에 가까워야함 -> 사람이 선호하는 답변 yw에 대해서는 1에 가까운 reward를 반환하고, 사람이 선호하지 않는 답변인 yl에 대해서는 0에 가까운 reward를 반환해야함
- K개의 데이터 중에서 2개를 뽑을 수 있는 경우의 수가 (K 2)
- Reinforcement learning (RL)
- PPO의 KL penalty를 사용함.
- policy의 분포 차이를 기반으로 업데이트에 제안을 두는 방법
- per-token KL penalty는 token을 기준으로 SFT와 분포가 너무 멀어지는 것을 방지
- rθ(x,y): 해당 문장이 사람이 선호하도록 커지게 학습
- -blog(): 업데이트 된 RL GPT가 예측한 토큰과 아직 업데이트 안 한 SFT GPT가 예측한 토큰의 차이가 적어지게 함
- +rlog(): pretrain data를 사용해 RL GPT이 크게 변하는 것을 방지
- 첫번째 수식이 PPO, 두번째 수식이 PPO-ptx
Experiment
- Dataset
- 1-1) 200 prompts per user ID를 train, val, test로 나누고 train만 개인식별정보 제거
- 1-2) labeler에게 prompt 작성 요청 -> plain, few-shot, user-based
- Plain: 여러 주제에 대해 다양하게 작성
- Few-shot: instruction + samples
- User-based: OpenAI 사용자들의 프롬프트 참고
- 애매한 경우 chat room으로 연구진이 판정 -> 연구진의 편향 반영이 가능하지만 labeler간의 일치율이 상당히 높음
- -> GPT-3 supervised finetuning dataset (13k)
- 2-1) SFT가 생성한 답변에 labeler가 rating
- 2-2) OpenAI 사용자가 rating
- -> RM finetuning dataset (33k)
- 3) SFT가 생성한 답안에 대해 RM이 평가하며 학습 (31k)
- -> PPO dataset (31k)
- Table 1
- SFT baseline이 T0, FLAN보다 NLP task에서 조금 더 높은 성능과 laber에서 선호됌
- InstructGPT는 instruction대로 따라 잘 하는데 GPT-3는 좀 더 조심스러운 프롬프팅이 필요
- 데이터를 만들지 않은 held-out customers (screening test도 제거)로 evaluate했더니 labeler와 같은 선호
- 또한 public NLP dataset에 대해 automatic evaluation
- Figure 1
- InstructGPT는 여전히 간단한 실수를 함
- evaluation
- human preference ratings: quality of each reponse를 1-7의 likert scale로 측정
- public NLP dataset: 1) safety, truthfulness, toxicity, bias 2) traditional NLP task에서 zero-shot 성능
- RealToxicityPrompts dataset에서 human evaluation
- Figure 3
- human preference를 측정
- left: GPT API 사용자의 prompt를 사용함
- right: InstructGPT API 사용자의 prompt를 사용함
- 모델 사이즈에 관계 없이 RLHF가 효과적임
- training labeler와 heldout labeler과 일관된 평가
- prompt의 분포를 바꿔도 결과가 일관됌
- Figure 4, 5
- 여러 human preference 측정에서 PPO가 Hallucinations를 제외하고 가장 높은 성능을 보임
- GPT: GPT-3
- GPT (prompted): GPT-3 few-shot
- Figure 6
- human evaluation on the TruthfulQA dataset
- color bar: truthfulness and informativeness
- gray bar: truthfulness
- truthfulness는 "I have no comment"와 같이 정답을 모를때도 사실이기 때문에 인정됌
- 두 지표를 비교해 모델이 사실을 얼마나 맞추고, 그 사실 중에 얼마나 충분한 정보를 제공하는지 볼 수 있음
- Figure 7
- Perspective API (유해함을 측정해주는 API)를 활용해 측정함
- InstructGPT가 toxicity하지만 instruction following 능력이 있음
- Respectful: safe하고 respectful하게 출력하라고 instruction을 넣어줌
Discussion
- 대부분의 LLM 연구는 pretraining이었으나 이번 연구처럼 LLM을 Finetuning하는 것은 많은 비용이 듬 -> Alignment 방식은 훨씬 적은 비용이 듬
- 이 때까지 나온 논문 중 가장 효율적으로 사용자 친화적인 모델 학습 방법
- LLM을 finetuning하면 일반화 능력을 잃어버리는 경향이 있는데 InstructGPT는 일반화 능력을 유지하면서도 사용자 친화적
Result
- 1.3B의 InstructGPT 모델이 175B GPT-3 모델보다 선호되는 output을 생성함
- truthfulness하고 toxic을 적게 생성
- InstructGPT는 여전히 간단한 실수를 함
- public NLP task에서 성능 감소가 보이지만 PPO-ptx를 사용하면 원래의 성능과 유사해져 높은 성능을 내면서도 사람의 의도에 맞도록 학습 가능
Limitation
- 모델 학습에 대한 컴퓨팅 자원/ 탄소 발자국 논의가 빠짐
- labeling data 필요
- toxicity는 크게 개선되지 않으면서 Instruction을 잘 따