[NLP] Instructed gpt - Training language models to follow instructions with human feedback
목차
요약
Instruct GPT: Human Feedback을 기반으로 LLM을 파인튜닝하는 방법을 제안
Background
"최근 LLM의 패러다임은 fine-tuning하여 활용하기 보다, 모델에게 질문하고 있는 방식으로 옮겨가고 있다."
- 예를 들어, (1) 학습 데이터의 라벨을 LLM을 통해 분류하거나, (2) 질문하는 방식을 통해 해답을 얻는다.
- (1) 의 예시: 프롬프트 안에 텍스트 데이터와 요청 사항('텍스트 데이터를 A,B 둘 중 하나로 분류해줘')을 넣어서 라벨링
- (2): 우리가 목적하는 태스크를 수행하기 위해 GPT 프롬프트에 요청 사항을 입력한다.
"이제는, human instruction(=user intention)를 잘 따르는
LLM을 학습해야 할 시대가 왔다! "
Q. 기존 모델들의 문제가 뭐냐?
A. 기존 LLM은 텍스트 토큰을 기반으로 다음 토큰을 예측하는데 초점을 맞추기 때문에, human instruction에 최적화 (X)
(-> 그렇기에 사용자 instruction를 따르지 않는 결과나 toxic 한 결과 생성)
따라서, 논문은 Human Feedback에 최적화된 LLM 학습 기법을 제안한다.
Overview
목적: Human-instruction을 잘 따르는 LLM 모델을 만들기
Process
1) Supervised Fine-tuning(SFT)
2) Reward Model Training(RM)
3) Reinforcement Learning with Human Feedback(RLHF) via proximal policy optimization(PPO)
결과
- 작은 파라미터 수(1.3B)로 GPT-3보다 뛰어난 성능을 보임 (cf. GPT3-175B개의 파라미터)
- 평가지표: Better Human preference(=helpfulness), Higher truthfulness, Less toxicity
Dataset
구성
1) OpenAI API 인풋
2) Human rator들이 아래의 3개의 주제에 대한 prompt와 정답으로 주어진 데이터셋을 구성
이 데이터는 이후 각 모델 학습에 활용된 데이터셋의 베이스라인이 됨.
Supervised Fine-tuning(SFT)
collect demonstration data and train a supervised policy
1) collect demonstration data(예시 데이터):
- Human rator 들에게 질문에 대한 예상 답변을 수집
- query & answer set으로 구성된 학습 데이터 만듦
2) GPT-3를 파인튜닝(지도학습):
- 1)에서 수집한 query & answer set을 통해 GPT-3를 파인튜닝
*details
- 16 epoch, cosine learning rate decay, resicual dropout of 0.2
2) Reward Model Training(RM)
"Collect comparison data, and train a reward model."
1) comparison data collection
- 한 질문에 대한 다양한 모델들의 생성 결과를 수집
- human rator가 각 모델의 생성 결과를 랭킹을 매김
2) train reward model
: comparison data를 기반으로 리워드 모델 학습
-> 리워드 모델은 Prompt가 들어왔을 때, 사람들이 선호 순위(Preference)를 학습!
-> 리워드 모델은 사람이 선호하는 응답 순서에 맞춰서, 모델이 더 높은 보상을 받도록 함.
예) 질문 xx에 대해 세 개의 응답 a,b,c가 있다면, a,b,c 순서대로 선호도를 매김
-> 리워드 점수: a(0.9), b(0.7), c(0.4)
* reward 모델 loss function
- 모델 학습 목표: 프롬프트에 대한 응답의 보상의 차이가 극명하게 되도록 한다. -> 명확한 순위를 학습

* θ: 모델 파라미터
* K: 하나의 입력 프롬프트에 대한 모델 출력 결과 개수 (4<=K<=9)
- * KC2: 개의 출력 결과들 중 2개씩 뽑아 비교하는 방식, 총 KC2의 조합에 대해서 손실 값을 구하게 됨.
* 입력 데이터는 (x,yw,yl)로 구성됨
- x는 입력 프롬프트
- yw: 선호 응답, yl은 비선호 응답
*D: 전체 데이터셋
step1) 각 응답 간 점수 차이 계산
: 선호 응답과 비선호 결과의 리워드 점수 차이를 계산
step2) 시그모이드 함수 적용(차이를 확률로)
step3) 로그 손실 계산
- 크로스 엔트로피 사용: 선호 응답과 비선호 결과의 리워드 점수 차이가 클 수록 손실 함수 감수 하도록
step4) 평균 손실 계산
모든 응답 결과 조합(KC2개)에 대해서 평균 Loss 값을 구한다
3) Reinforcement Learning with Human Feedback(RLHF) via proximal policy optimization(PPO)
"Optimize a policy against the reward model using PPO"
SFT 모델을 학습 -> Reward 함수를 손실 함수로 사용 : Proximal policy optimization algorithm(PPO)
> 강화학습을 통한 fine-tuning 과정은 다음과 같이 이루어진다 :
3-1) InstructGPT는 프롬프트를 보고, 그에 대한 결과 (completion)를 추론함
3-2) 이 결과물을 Reward Model이 평가하여 reward(보상)를 계산
3-3) 보상 값이 InstructGPT에게 주어지고, 모델은 정책을 업데이트하여 사람이 원하는 아웃풋에 더 가까운 결과를 내게 됨

파라미터 설명

- KL 계수
: SFT에 비해서 강화학습이 너무 튀지 않도록 학습


주요 결과
- 작은 파라미터 수(1.3B)로 GPT-3보다 뛰어난 성능을 보임 (cf. GPT3-175B개의 파라미터)
- 평가지표: Better Human preference(=helpfulness), Higher truthfulness, Less toxicity
한계점
- 만약, 사용자의 인풋 자체가 toxic 하다면, GPT3보다는 Instructed GPT가 더 toxic 하다고 생각한다.
Perhaps the greatest limitation of our models is that, in most cases, they follow the user’s instruction, even if that could lead to harm in the real world. For example, when given a prompt instructing the models to be maximally biased, InstructGPT generates more toxic outputs than equivalently-sized GPT-3 models. We discuss potential mitigations in the following sections.
Reference
원래 논문: https://arxiv.org/pdf/2203.02155
참고 블로그: https://littlefoxdiary.tistory.com/101
[논문리뷰] GPT3의 새로워진 버전 - InstructGPT : 인간의 지시에 따른 결과물을 완성해내는 AI
InstructGPT : Training language models to follow instructions with human feedback 논문 링크 : https://cdn.openai.com/papers/Training_language_models_to_follow_instructions_with_human_feedback.pdf 블로그 포스팅 : https://towardsdatascience.com/the
littlefoxdiary.tistory.com