본문 바로가기
Paper summary

InstructGPT : Training language models to follow instructions with human feedback

by AI미남홀란드 2024. 3. 6.
728x90

안녕하세요 모든 논문을 리뷰하기에는 너무 가내수공업이 많이 들고 그래서 짧게나마 제가 읽고 , 봤었던 논문에 대한 생각을 정리를 위해 Summary를 만들어보았습니다.

 

https://openai.com/research/instruction-followinghttps://arxiv.org/abs/2203.02155

 

Training language models to follow instructions with human feedback

Making language models bigger does not inherently make them better at following a user's intent. For example, large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user. In other words, these models are not ali

arxiv.org

 

Model 의 관점

 

SFT(Supervised Fine-tunning)

말 그대로 우리가 평소 사용하는 파인튜닝 기법이다. GPT의 대화내용을 토대로 , 라벨러가 적절한 답변을 만들어서 학습을 진행한다. 라벨러의 답변에 의존을 하기 때문에 Scabliity 적이지 는 못한 것이 한계점이라 할 수 있다

 

RM(Reword Model)

리워드 모델은 두개의 output 가지고 비교를 하게 된다. 프로세스 속도를 높이기 위해 4~9개의 비교 답변에 순위를 매기고, 한 쌍의 비교 답변과 짝을 지어 Cross entropy Loss를 계산을 한다. 여기서 문제가 되는 것은 중복관련되는 답변이다. 빠르게 답을 구할 수 있지만, 여기서 문제 되는 것은 Comparison(비교) 들이 중복으로 들어가서 k-1개씩 개별로 취급하게되면 Overfitting 문제가 생길 수가 있어서, 프롬프트 별로 하나의 배치로 묶어서 계산을 한다. Prompt 당 single forward pass 가 발생에서 계산의 효율성이 증가한다고 한다.

 

PPO(Proximal Policy Optimization)

사람의 피드백을 기반으로 보상을 받는 모델이라고 할 수 있다. SFT, Frozent SFT를 사용해서 둘의 KL Divergence를 계산 한해서 페널티를 구해준다. SFT 가지고 Policy 업데이트를 하면 싱글모드로 Collasing을 한다는데 빠르게 수렴을 할 수도 있고, 원치 않는 Optima 수렴을 할 수 있다. 과하게 Optima 가 되어 기존 모델과 다른 결과를 나오지 않게끔 방지해 준다. 이렇게 구한 값을 통해 RM Score를 가져오는데 마지막에 임베딩 레이어(Decoding layer)가 있어서, 리워드모델은 PPO에게 Scalar 값으로 주고, 그걸 기반으로 업데이트함.

 

 

KL Reward에 대해서 베타라는 계수를 사용해서 새로 학습되는 모델과 Frozen SFT를 사용해서 Ratio를 준다.

 

 

Evaluation

Askell et al에 따르면 alignment를 평가하는 세 가지가 중요하다 Helper 한지, Honest 인지 Harmless 인지이다.

1. 지시를 잘 따랐는지

2. 이상한 말을 만들어내지 않는지

3. 부적절한 Output을 만드는지

 

위의 조건에 따라 라벨러들이 평가를 해서 1~7점으로 매기고, 기였는지 아닌지로 Binary 값으로 평가한다. 이 평가를 하는 사람들은 대부분 held out 과정에서 참여하지 않은 사람들이 참여했다. 데이터는 chatgpt api prompt 나 퍼블릭 NLP 데이터를 사용했다고 한다.

 

라벨링에 참여한 사람들과 안 한 사람들 둘 다 대체적으로 instructGPT 가 더 선호를 받았다. 일반화가 잘 되어있다.

 

 

 

728x90