부트캠프와 다른 AI학교,
AI는 아이펠에서 배우세요
아이펠 무료 입학하기
#인공지능 

Language model 이야기 (2) – InstructGPT와 ICL

InstructGPT와 강화학습으로 인해 스마트한 ChatGPT가 개발된 내용을 알아봐요!

2023-06-14 | 백병인

*본 연구는 모두의연구소 K-디지털 플랫폼의 지원 받아 작성된 글입니다.


 

시즌1 : ChatGPT의 근본원리를 파헤쳐 보다.

  1. FunLM LAB 시즌1을 시작하면서
  2. GPT-3에서 시작된 새로운 패러다임
  3. InstructGPT, LM과의 대화를 가능하게 하다
  4. ChatGPT을 탄생시킨 발견, In-context Learning(ICL)
  5. ICL의 원인에 대한 가설, Double Descent
  6. Prompt Engineering과 Small LM의 가능성
  7. FunLM LAB 시즌1을 마치며

 

3. InstructGPT, LM과의 대화를 가능하게 하다

하지만, GPT-3만으로 오늘날의 ChatGPT가 되기에 충분하지는 않습니다. 왜 일까요?

GPT-3에게 우리가 원하는 어떤 task를 지시하려면, prompt에 예시(demonstration)을 제공해야 합니다. 그런데 ChatGPT 사용자가 자기가 원하는 답변을 끌어내려고 굳이 예시를 몇개씩이나 들어가면서까지 ChatGPT를 사용하려고 들까요? 그렇게 유스케이스를 가정한다면 너무 비현실적일 겁니다. 사용자가 뭔가 질문이나 요청을 하면, 사용자가 입력한 프롬프트에서 사용자의 의도를 파악하고 적절한 답변을 제공한다는 것, 이것을 LM이 수행할 수 있을까요? 다시말해 그저 Next token prediction loss를 최소화하는 방식으로만 학습된 GPT-3가 이런 과업을 수행하는게 가능할까요?

놀랍게도 GPT-3는 어느정도 이걸 해냅니다. 하지만 만족할만한 완성도는 아닙니다. 이때 OpenAI는 2022년 3월에 발표된 InstructGPT(Ouyang et al, 2022. Training language models to follow instructions with human feedback) [링크] 를 통해 그 답을 찾았습니다. 우리를 놀라게 한 ChatGPT의 기술적인 토대는 InstructGPT에서 이미 완성된 것이었습니다.

InstructGPT 기본개념도

 

ChatGPT에 대해 이미 많은 분들이 익히 알고 계시기 때문에, 위 그림에서 설명한 instruction learning 및 이를 가능하게 했던 RLHF(Reinforcement Learning with Human Feedback)의 개념에 대해서 이 글에서 다시 길게 설명할 필요는 없을 것 같습니다. 하지만 instruction learning이 가지는 의미에 대해서는 짚고 넘어가고 싶습니다.

OpenAI의 연구자 입장이 되어 생각해 볼까요? GPT-3 때처럼 few-shot 예시를 주지 않고도 LM이 사용자가 입력한 요청(instruction)만을 바탕으로 적절한 답을 주게 하려면 어떻게 해야 할까요? 얼른 떠오르는 답은 사용자의 입력(X)와 그에 적절한 답변(Y)을 쌍으로 하는 paired dataset을 구축한 후 그 데이터셋으로 GPT-3를 파인튜닝한다 아닐까요? 맞습니다. 그것이 위 그림의 STEP-1에서 시도한 SFT(Supervised FineTune) 단계입니다. 이를 위해 OpenAI에서는 5만개 이상의 X-Y 쌍을 Human Labeler들을 통해 모았다고 합니다. 이만큼의 데이터를 수작업만으로 (그것도 체계적으로) 모은다는 것은 쉬운일은 아닙니다만, 데이터 분량으로 볼때 pretrain에 사용했던 테라바이트 단위의 텍스트 데이터에 비교하자면 엄청 작은 분량입니다. 어쨌거나 이것으로도 소위 [사용자의 요청에 대응하기] task가 어느정도 수행 가능해졌습니다. 그러나 여기까지는 GPT-3를 학습시킬 때와 방법은 동일하고 다만 특별히 모은 추가데이터셋을 활용한 정도입니다.

그러나 이것만으로는 충분하지 않습니다. 지금까지의 GPT-3는 그저 끊임없이 다음에 올 토큰을 예측하기만 하는 text generator에 불과했습니다. 이 LM이 사용자 요청 처리기더 잘 동작하게 하려면 데이터셋을 통한 지도학습만으로는 한계가 있습니다. 드디어 강화학습이 등장할 때가 되었군요. 강화학습을 하려면 LM이 얼마나 주어진 사용자 요청 X에 답변 Y를 잘했는지 평가하는 Reward Model이 필요해집니다. 그래서 STEP-2에서는 먼저 요청 X에 대한 다양한 답변 Y_1, Y_2, Y_3, Y_4…를 생성하고, 여기에 Human Labeler들이 이 답변이 얼마나 적절한지(혹은 해롭지 않은지)에 대한 평가점수(r)를 매깁니다. 그러면 (X, Y)를 입력으로 해서 평가점수 r을 예측하는 Reward Model을 학습시킬 수 있는 데이터셋을 확보하게 됩니다. 그리고 나서 STEP-3에서는 이렇게 훈련된 Reward Model이 내리는 평가점수를 극대화하는 방향으로 강화학습(PPO)을 수행하여 LM을 강화학습시킵니다.

이렇게 되면 LM은 강화학습에 의해 최초의 LM보다는 약간의 왜곡이 발생합니다. 그래서 Next Token Predictor로서의 성능은 약간 떨어지게 됩니다. 대신 Human Instruction Response Generator로 거듭나게 되죠. 이 딜레마를 성공적으로 극복해서 LM으로서의 성능도 여전히 잘 유지하면서 사용자 질문/요청의 의도에 스마트하게 답변하는 똑똑한 LM이 오늘날의 ChatGPT입니다. InstructGPT 논문 전반에는 OpenAI가 이런 딜레마 상황을 어떻게 극복해 왔는지에 대한 기술적 분석이 다각도로 제시되어 있습니다.

OpenAI 이외에도 Deepmind의 Sparrow[링크], Anthropic의 Claude[링크] 등에서 Instruction Learning 개념을 다양하게 발전시켜 왔습니다. 이 연구들을 통해서도 RLHF에 대한 훨씬 풍부한 인사이트를 얻으실 수 있으니, 관심있으신 분들의 일독을 권하고 싶습니다.

 

4. ChatGPT을 탄생시킨 발견, In-context Learning(ICL)

하지만 우리의 궁금증은 여전히 풀리지 않았습니다. GPT-3의 pretrain 과정에서 in-context learning 능력이 얻어졌고, 강화학습을 통한 Instruction Learning을 통해 사용자와 대화 가능한 LM이 되었다는 얘기는 결국 결과론일 뿐이고, 그저 Language Model일 뿐인데 in-context learning이 가능해질 만큼의 스마트함을 얻게 된 이유는 아직 명쾌하지 않습니다.

OpenAI에서 2020년 초에 GPT-3를 통해 처음 발견하고 이름붙인 In-context learning(이하 ICL이라고 표현합니다)이라는 현상에 대해 처음 보고했습니다. 하지만 GPT-3 논문에서도 이 현상을 발견하고 이것이 매우 중요한 키워드가 될 것 같다는 느낌만 결론부에 제시했을 뿐 이 현상의 원인까지 명확히 설명하지는 못했습니다. 이후 2020년에는 ICL 현상을 규명하는 후속연구가 거의 보고되지 않았습니다. ICL이 다시 주목받기 시작한 것은 2021년도부터입니다. 과연 GPT-3가 얻게 된 ICL이란 무엇인지 이해하는데 스탠포드에서 나온 이 블로그[링크]가 큰 도움이 되었습니다. 이 블로그는 ICL에 대해 연구한 두 논문의 저자가 각자의 연구를 좀더 독자들이 이해하기 쉽게 엮어서 쓴 글입니다.

Xie et al, 2021. An Explanation of In-context Learning as Implicit Bayesian Inference [링크]

이 논문의 개요는 GPT-3의 In-context Learning 개념도와 이 논문의 수식 하나를 나란히 놓고 보면 이해하기 쉽습니다. 아래 왼쪽의 ICL 개념의 가로방향 좌표축을 concept 축이라고 가정해 봅시다. 그렇다면 ICL은 다름아닌, pretrain 과정을 통해 경험한 다양한 concept들에 대해, 주어진 prompt가 어떤 concept를 지시하는지에 대한 p(concept|prompt) 그리고, 주어진 prompt를 바탕으로 추론한 concept에 따라 어떤 output을 출력해야 할지 p(output|concept, prompt) 를 학습하여, 모든 concept에 대해 p(output|prompt)를 추론할 수 있는 능력을 pretrain 과정에서 가로방향 좌표축을 따라 획득하게 되었다는 설명입니다. 어떤가요? 그럴듯한 설명이 되었나요?

 

GPT-3 논문, in-context learning의 개념

 

 

ICL을 bayesian Inference 개념으로 해석한 수식.

 

 

 

 

 

Min et al, 2022. Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? [링크]

이 논문은 간단한 실험으로 ICL의 본질을 보다 명확하게 조명해 줍니다. (개인적으로 한국인 저자의 논문이라 더욱 인상적이었습니다.) ICL의 demonstration의 label을 random하게 주어도 ICL 결과에 영향이 없더라는 발견인데요, 이것이 의미하는 것은 ICL이란 token 자체의 value 에 주목하는 것이 아니라, in-context에서 어떤 token이 가지는 역할(혹은 포지션) 을 LM이 파악할 수 있다는 것입니다.

이 발견의 의미를 좀더 짦게 정리해 볼까요? ICL이란 다름아닌 LM이 패턴의 추상화 능력을 이미 가지고 있다는 뜻이 됩니다. 그렇기 때문에 pretrain 때보다 훨씬 적은 instruction learning용 데이터를 통해서도 LM이 사용자와 상호작용하는 적절한 패턴을 빠르게 학습할 수 있는 능력을 갖추게 됩니다.

 


모두의연구소 Language Model 관련 LAB LIST [🔗바로가기]

  • CALM LAB(context-aware language modeing) LAB
    • Goal-Oriented Dialogue System을 위한 Context-Aware Language Modeling 대한 연구
  • LLM(large language model research) LAB
    • Prompt Engineering, Transformer 모델 등 Large Language Model 응용 관련하여 연구 및 논문 작성
  • KBLM(Knowledge based language model) LAB 
    • LM에 knowledge를 추가로 적용하는 방안과 해당 모델을 잘 경량화해서 application level에 활용될 수 있게 하는 방안에 초점을 맞추어 연구 및 개발
  • KoAlpaca LAB
    • KoAlpaca는 한국어 언어모델의 사용성을 향상시키기 위한 연구와 한국어 Instruct Set 개선을 목표로 하는 프로젝트
  • CPLR(ChatGPT prompt learning research) LAB
    • 대용량 언어 모델과 Zero Shot, One Shot, Few Shot Learning 기법, 그리고 Prompt Engineering을 활용하여 문서 추천 방식을 개선하고, 새로운 검색 트렌드를 제시

 

✏️ 필진: 백병인 I 편집자: 신태양