카테고리 없음

[논문리뷰]Training language models to follow instructionswith human feedback

succulentum 2024. 8. 12. 18:23

2022.03.04. openAI. 

LLM + RLHF의 아이디어인가보다. 

 

0. Abstract

- LLM의 크기를 늘여도 사람의 의도를 이해하는데 한계를 보인다. 거짓말, 해로운 말 등을 한다. (not aligned with user)

- Human Feedback으로 유저와 align하게끔 finetuning 하는 법을 제시한다. 

    1. OpenAI API로 우리가 기대하는 모델 반응과 레이블을 작성

    2. GPT-3 fine tune

    3. 결과(들)을 ranking, human feedback으로 더욱 fine tune

    4. Instruct GPT 완성.

- 1.3B Instruct GPT > 175B GPT-3, 진실성 증가, 해로움 감소, 공개 NLP 데이터셋에서도 좋은 성능

- 그러나 실수도 가끔씩 한다.

 

1. Introduction

- LLM이 NLP를 잘 수행하지만 거짓말, 편견, 해로운 말, 유저 의도 무시 등이 아직 숙제로 남아있다.

    - 이런 이유는 여태까지 많은 LM들은 다음 토큰을 예측하는데 집중했고, 그것이 유저의 안전하게 도와주는 것과는 거리가 멀기 때문이다. (misaligned) 

-  모델은 1.helpful, 2. honest, 3. harmless 해야 한다. 

    1. SFT(Supervised Fine Tuning)

    2. RM(Reward Model) training

    3. PPO를 이용한 RL training. 

 

- main finding으로는

    1. labler는 같은 질문에 대한 instructGPT의 응답을 chatGPT-3보다 더 선호했다.

    2. 더 진실했다.

    3. toxicity는 25% 우세, bias는 그대로

    4. performance regression을 최소화 할 수 있었다. 

        - PPO-ptx

    5. labler에 대해서 hold-out 검증 시도 -> 성공적. 

    6. 다른 NLP dataset보다 우리 labler에 기반해 학습한 모델을 더 선호

    7. 지시에 따르기, 요약, 코딩 질문 잘함. 

    8. 실수

 

2. Related work

- RL은 게임에서 시작되었지만, 이젠 RLHF로써 LLM에서도 사용. 우리는 그중에서도 align에 사용. 

- NLP의 fine tuning

- harm의 측정. 

- harm을 최소하 하기 위한 model의 행동 제어

 

3. Methods and experimental details 

3.1 High Level Methodology 

    Step 1: Collect demonstration data, and train a supervised policy.

    Step 2: Collect comparison data, and train a reward model.

    Step 3: Optimize a policy against the reward model using PPO.

3.2 Dataset

- OpenAPI의 playground에서 유저가 이전 버전의 instructGPT를 사용한 프롬프트를 가공해서 text prompt dataset을 만들었다. 

- 그 전(최초) 버전에는 labler들에게 프롬프트를 작성하라고 지시했다.

- 우리는 3개의 dataset을 사용했다.  

    1. SFT dataset: text prompt sample + human desired output

    2. RM dataset: model output + human ranking

    3. PPO dataset: text prompt sample. no human

dataset의 종류들
프롬프트 카테고리

3.3 Tasks

- 우리의 training task는 2개의 source를 가지고 있다

    1. dataset of prompt written by labler

    2. dataset of prompt submitted by earlier instructGPT on API. 

- 대부분 영어지만 다른 언어나 코딩도 다룬다. 

- 아무튼 labler에게 최선을 다해서 유저의 intent을 추측하게끔 했음. (Appendix B 참고)

 

3.4 Human data collection

3.5 Models

- GPT-3를 사용했고 3가지 방법을 이용해서 training 했다. (SFT, RM, PPO)

- 각종 hyper parameters...

- RM 

    - K = 4 ~9 까지 비교. 예컨데 5개를 비교하면 모델은 C(5,2) = 10개의 비교 데이터 축적.

    - 

    -reward model의 loss function은 다음과 같다:

- RL 

    - PPO 사용. 

-Baselines

    - PPO까지 끝난 모델, SFT, GPT-3,

    - FLAN, T0 dataset에 대해서 GPT-3(175B)과 비교 (Appendix C 참조) 

 

3.6 Evaluation

- 얼마나 잘 aligned되었는지를 정의하고 평가해야만 했다.

- helpfulness를 정의해야 했다. 우리는 유저의 의도와 일치함을 기준삼았다. 

    - 프롬프트의 의도는 labler의 판단에 맡겼다.

- 진실성(honesty)도 정의/평가해야만 했다. 모델의 "믿음"과 실제 "결과물"을 비교 해야 하는데, 모델의 믿음을 알 수는 없다. 그래서 2가지 기준을 사용했다.

    1. 모델이 얼마나 없는 사실을 만들어 내는지(hallucination)

    2. TruthfulQA dataset

- harm은 모델의 출력이 실제 세상에서 적용 되었을 때의 유해성을 평가하려고 했지만, 너무 많은걸 예측해야 해서 관뒀다.     

    - 그래서 labler에게 평가 기준 부여 + Dataset(RealTocixityPrompts, CrowS-Pair)

 

4. Results 

4.1 Results on the API distribution

- labeler가 instruct혰fmf GPT-3보다 더 선호했다. 

- 훨씬 믿을만 하고 컨트롤하기 쉬웠다.

- held-out 된 labler들도 선호했다(training data를 만든 labler의 취향이 반영되지 않았다)

    - 사람을 5개로 쪼개봤는데(5-fold), held out labler에게는 69.6%, training labler에게는 72.4%의 accuracy로 작은 차이가 났다. 

- Public NLP dataset은 언어모델의 실사용을 반영하지 않는다. 

    - FLAN과 T0보다 성능이 좋았다.

    - public NLP dataset은 평가하기 쉬운 항목들로 이루어져 있다. (분류, 질의응답, 번역, 요약)

    - 실제의 사용은 open-ended generation과 brainstorming이 57%. 

4.2 Results on the public NLP datasets

- improvements on truthfulness

    - 회색: Truthfulness, 색깔: Truthfulness & informativeness

    - 평가기준: TruthfulQA dataset에 대한 인간의 평가. 

- Toxicity는 소량 감소, bias는 그대로

 

    - 평가기준: RealToxicityPrompt을 주고  1. PerspectiveAPI 2. 인간 평가 

( fig 39 참고) 

    - 안전한 출력을 요구했을 때는 더 착했지만, 유해한 프롬프트에는 유해한 출력

x: Prompt Toxicity y: Output Toxicity

- RLHF의 파인튜닝을 조정함으로써 성능저하를 줄일 수 있었다. 

    - pretraining update를 추가하는것이 KL coefficient를 증가시키는 것보다 더 나앗다(fig 29, 33)

 

 

4.3 Qualitative results

- summarize를 더 잘한다. 

- 개선점: 

    1. 거짓 전제의 질문에 속는다

    2. overly hedge. 하나의 답이 있어도 자꾸 미미한 답까지 고려

    3. 여러가지 제약이 있을 때 성능 저하

 

5. Discussion

5.1 implications on alignment research

- general lessons

    1. model alignment cost < pretraining cost

    2. 지시를 따를 때 일반화 능력이 있더라

    3. low-tax alignment technique

    4. real world에 쓸 수 있는 aligned model을 제시했다.

5.2 who are we align to?

- labler의 성향.

- 우리(openAI)의 성향

- openAI playground에 프롬프트를 제출한 유저의 성향 

- 처음은 직원, 그 다음은 waitlist에서 골라진 유저 

- 모두의 성향을 만족시키는 model을 만드는건 불가능하고, 그것은 우리의 목표가 아니다. 

5.3 Limitations

- Methodology

    - labler의 편향이 들어갈 수 있다... 

- Models

    - model 자체가 여전히 toxic한 출력을 제공할 수 있다... 

5.4 Open Questions

- adversarial set-up labler를 이용할 수도 있었다. (최악의 답변을 골라서 데이터셋에 포함)

5.5 Broader Impacts

 

 

A. Additional prompt data details

- 프롬프트의 종류가 있는데, 이 분류는 langid.py 라는 경량화 분류 모델을 사용했다. 

 

B. Additional human data collection details 

 

C. Additional model details

- 모든 아키텍쳐는 GPT-3 

C.1 Details of SFT training

- 16 epoch, 0.2 dropout, ... ... 

C.2 Details of RM training 

- 모든 사이즈의 PPO 모델에 대해서 6B RM model을 썼다. 

- 마지막 reward model 역시 6B GPT-3의 파인 튜닝 버전을 썼다.

C.3 Details of initialization models for RLHF

- RLHF 모델도 pretrained 된 GPT-3 사용. (E.11)

 

 

D. Automatic evaluation details

D1. Toxicity and bias evaluation details

- basic, respectful, biased prompt를 작성한다. 

- average entropy (??)

D2. Prompt structure and evaulation features for each eval dataset 

 

E. Additional results

E1. Perfoamances on public NLP datasets

- 여러 nlp dataset에 대해서 bias, toxicity, truthfulness 와 여러 언어능력을 실험해봤다. 

- PPO 가 그 자체로는 성능이 안좋았지만 PPO-ptx는 성능이 좋아짐을 알 수 있다.

 

E.2 Reward model generalization across sets of lablers 

E.3 Metadata results as a function of model size

E.4 Likert scores

(Section 4.1과 비슷하다) (???)

E.5 Measuring bias

E.6 Fixing regression on public NLP datasets

E7. Optimal KL reward coefficient

- KL이 pretrained ... 계수보다는 중요하지 않지만 그래도 유의미했다. 

E8. PPO init model 

- pretrained data mix가 10%, 50%, 100%가 있었는데, 10%가 효과가 좋았다.

 

 

 

 

*Question

Q1: what is PPO?

Q2. what is performance regression in RLHF?

Q3. what is PPO-ptx?

Q4. held-out?

A4: hold-out 검증은 data를 train/test set으로 나누고 훈련 검증하는 방식이다. 

Q5: likert scale? 

A5: likert 척도는 1-5까지 동의 여부를 묻는 검사방법. 

Q6: KL coefficient?