ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS25 2강] Transformers in Language: The development of GPT Models including GPT3
    ✨ AI/NLP 2023. 4. 9. 23:25

    CS25 2: Transformers in Language - Mark Chen(Open AI)

    GPT 시리즈에 대한 간단한 설명과 세미나를 Open AI 연구원이 진행한 세미나이다. 크게 어려운 내용이나 흥미로운 부분은 없었으나 Open AI 연구원이 어떤 인사이트나 어떤 목적으로 GPT와 Language model을 바라보는지 알 수 있는 세미나다.

     

     

    Transformers in Language

    Transformer 발생 이전 모델들과 Transformer의 등장 배경 등에 대해서 설명한다.

     

    3-Gram Model(Shannon 1951)

    two preceding words가 주어질 때 다음 word의 확률에 대한 아주 큰 lookup table을 이용한 모델. 

    단어들이 어느 정도 관련 있는 것 처럼 보이지만, 생성된 문장에는 일관성이 없다.

     

     

    Recurrent Neural Nets (Sutskever et al 2011)

    신경망으로 넘어와서, RNN 계열의 모델은 recurrent cell이 어떤 상태를 기억하고 그 정보를 지속하게 하는 구조로 자연어 생성을 하였다. RNN계열이 생성해낸 모델은 이제 제법 문장 같아 보이기 시작했다.

     

     

    Transformer (Liu and Saleh et al 2018)

    그리고 2018년 Language model의 근간이 되는 우리의 첫 autoregressive transformer가 등장했다. long term dependency를 잘 포착하고 유저가 제공하는 prompt로부터 완성된 문장을 만들 수 있게 되었다. 약간의 스펠링 실수가 있고 이 부분은 여떤 문장이고 어떤 문서든 간에 말이 되지 않는 것을 확인할 수 있다.

     

     

    GPT2: Big Transformer (Radford et al 2019)

    GPT1은 어떤 Downstream task에 대해 학습하지 않고, 큰 web data를 이용해 이전 token이 주어지면 next token prediction하는 방식으로 pretrain한 뒤 task에 대한 성능을 측정했다. 즉 prompt사용한 zero-shot 성능을 확인한 것이라고 볼 수 있다. GPT2는 1.5 Bilion 파라미터를 가진 모델이며 GPT1에서 Scale을 확장하였을 때 zero-shot 성능이 어떻게 되는지 확인한 모델이다. GPT2가 생성해낸 문장은 여러 단락에 거쳐서 일관성이 있는 문장을 생성해 냈다. 

     

    Reference : The Illustrated GPT-2

     

     

    GPT3: Very Big Transformer (Brown et al 2019)

    GPT3는 GPT2를 더 확장한 것으로 무려 175 Bilion의 파라미터를 가진 모델이며 인상적이 부분은, 시적이고 유려한 문체를 가진 소설까지 생성해낼 수 있다는 점이다. 175bilion을 가지게 된 점은 두번째 figure에서 보이는 것 처럼 모델의 파라미터 수가 많을 수록 진짜 사람은 GPT가 생성해낸 문장을 구별할 수 없게 되었기 때문이다.

     

     

    그런데, 이렇게 뉴스나 문서를 생성해내는 모델이 얼마나 유횽할까에 대해 의문을 갖게 된다. 사실 GPT는 언어 모델을 만드는데 최종 목표를 둔 프로젝트가 아니라, 비지도학습이라는 문제를 해결하기 위한 도구로 주로 사용되었다고 한다. 그래서 Open AI에서 언어 모델을 개발한 과정과 왜 GPT시리즈에 도달하게 되었는지, 어떻게 도달하게 되었는지, 어떤 동기가 있었는지 설명하고 이 섹션이 끝나면 더 직관적으로 받아들일 수 있게 될 것이라고 설명한다.

     

     

    History of Language Modeling at OpenAI

    2012년에 이미지와 레이블을 가져와 레이블에 맞게 이미지를 분류할 수 있는 Alexnet을 개발하였다. 알렉스넷을 통해 발견한 점은, 알렉스 넷을 개발한 시스템이 잘 일반화될 수 있다는 점이었다. Train set의 분포를 가지지 않는 데이터셋을 가져와도 성능이 좋다는 것을 확인했고 supervised learning은 정말 강력하며 다양한 도메인에서 모델을 train해서 다양한 레이블을 아주 정확하게 분류할 수 있었다.

     

    Supervised learning이 잘 동작하는 강력한 도구이지만, 지도학습의 문제점은 레이블이 부족하다는 점이다. 특히 언어 task에서는 원문-요약 쌍을 이루는 데이터셋 등이 많지 않고 수집하는 것도 어렵다. 

     

    Unsupervised learning은 레이블이 없는 데이터셋에서도 가능하지만, Down stream task과 관련 없는 objective를 최적화 하는 것은 scarier하다. 그럼에도 불과하고 낙관적인 점은 unlabelded 데이터셋은 엄청나게 많다는 점이다.

     

     

    진짜 문제는 Unlabed dataset을 활용해서 데이터가 많지 않는 task를 해결할 수 있느냐는 점이다. 언어는 다양한 환경에서 사용되는 문장과 단어들을 보고 모델이 사전 훈련을 통해 그 관계를 이해하고, 이해하고 활용하여 모든 종류의 Downstream task에 활용하기 정말 좋은 도메인이다. 

     

    Unsupervised learning은 Supervised learning에서의 guarantee들이 더이상 적용되지 않는다. 그래서 비지도 학습에서 생성모델을 사용하는 이유와 Autoregressive 구조를 사용하는 이유는 다소 직관적이다. 그래서 Chen은 리처드 파인만의 말을 인용한다. "What I cannot create, I do not understand." 라고 하고 "there's the inverse of this idea which we call analysis by synthesis What I can create I can also understand"라고 했다. 일관된 다양한 샘플을 생성할 수 있는 언어 모델을 만들어낼 수 있다면 언어 이해 task를 푸는데 도움을 주는 representation을 build 해낼 것이라고 생각했다고 한다.

     

    그리고 왜 Autoregressive 구조를 선택했는가에 대해서 얘기한다. 일부 다른 사람들은 Autoregressive 모델은 일종의 local objective라고 얘기한다. 단지 일종의 n-gram approximation과 같은 다음 단어를 예측하는 것이 왜 전체 문장을 요약하는 것과 같은 일을 정말로 가능하게 하는지 얘기해보겠다. 직관적인 주장은 미스테리 소설과 같이 결말이 마지막에 나오는(?) 것처럼 하고 싶었다(?) 

     

    아마존 리뷰의 next token prediction으로 생성된 lstm feature로 linear model을 training하였을 때 놀라운 점을 발견했다. 레이블이없음에도 긍적적인 리뷰와 부정적인 리뷰에 대한 activation이 구별이 되었다. 그래서 다음 token을 예측하는 것 만으로도 하나의 뉴럴넷이 엄청난 예측력을 가질 수 있음을 알게 되었다. 

     

    GPT2는 GPT1과 같이 매우 큰 Internet corpus로 학습되었고 똑같이 next token prediction을 통해 사전 훈련 되었다. 하지만 GPT2의 핵심은 많은 downstream task는 이미 사전 훈련 때 언어 모델로 자연스럽게 표현될 수  있다는 점이다. 예를 들어 Translation task라고 하면 "Translate English to French"와 같은 프롬프트만으로 task를 명시 할 수 있고 이는 next token prediction으로 표현할 수 있다. e.g. P(token | "~~ 번역할 문장, Translation English to French") 이 zero shot 기법은 요약, 번역, 독해 등 어떤 nlp task에도 적용이 가능하다. 하지만 오른쪽 그림에서 볼 수 있듯이 이 zero shot능력은 모델의 파라미터 수가 커질 수록 끌어올릴 수 있다.

     

    GPT3의 주요 인사이트는 In context learning으로 설명될 수 있다. 프롬프트가 무엇인지에 따라 task가 무엇인지 빠르게 판단하고 해당 작업에 적용하여 다음 토큰을 예측하게 된다. 학습 중, 모든 SGD 단계의 외부 루프와 task가 무엇인지 파악하고 다음 토큰을 모델링 하는 내부 루프가 있어 산술, 독해 등 더 복잡하고 많은 task를 수행할 수 있게 됬다.

     

    GPT3에서도 마찬가지로 Zero shot의 성능은 모델의 파라미터가 증가할 수록 증가한다. Zero shot과 Few shot의 격차 마저도 모델 파라미터를 늘림으로써 개선할 수 있음을 확인했고 모델의 스케일은 결정적으로 중요한 요소라는 것을 확인하였다.  

     

    우리는 transformer를 이러한 방식으로 pre traning 할 수 있다는 것을 보았고, 많은 양의 unlabeled 데이터를 사용해서 적은 양의 데이터가 있는 task라도 수행할 수 있고 이는 NLP에서 지배적인 패러다임으로 지금까지 사용되고 있다. BERT나 T5와 같은 follow-up objective들이 SOTA를 달성하기도 하였다. 이렇게 언어에 적용된 트랜스포머 계열의 모델은 시퀀스 모델이므로 모든 바이트 시퀀스를 수집해 모델링할 수 있다. 예를 들어 비디오나 오디오 데이터는 바이트의 시퀀스로 표현될 수 있고, 이러한 종류의 패러다임은 적어도 좋은 inductive biases가 없을 때 매우 흥미롭게 다가온다.

     

     

    Autoregressive Lanuage Modeling is Universal

    그렇다면 inductive bias가 강할 때도 잘 동작하냐는 질문이 생길 수 있다. 이 대답은 O이다. 이를 암시하는 몇 가지에 대해 설명해 본다.

     

    이미지에서는 다음 픽셀 Prediction, 오디오에서는 다음 음소 Prediction 처럼, 시퀀스로 풀면 같은 방식이다.

     

    그리고 코드를 생성하는 Codex 에 대해서도 어떻게 정확하지 않고 suboptimal한 웹 데이터를 가지고 훈련하고 샘플하고(e.g. Pass@k sampling), Evaluation했는지도 설명했는데 그 부분은 생략하겠음.

     

     

    Conclusion

    • Neural Language modeling은 상당히 급속도로 발전했으며, GPT는 언어 모델링을 잘 하기 위해서 만들어진 결과가 아니라 언어에서 비지도 학습을 하기 위해서 발전된 모델이었다.
    • Autoregressive modeling은 이미지와 같이 inductive bias가 강한 경우에도 강력한 결과를 얻을 수 있는 보편적인 형태이다.
    • Code에서 GPT3를 파인튜닝해서 강력한 Code genration model을 생성할 수 있으며 샘플링은 모델을 개선하는데 비합리적이지만 효과적인 방법이라는 것이다.

     

     

    댓글

Designed by Tistory.