What NLPs are now
What we want from NLP
이 논문에서는 이 두가지 흐름을 엮어서 모델을 만듬
perform down-stream tasks
zero shot
with almost no modification to the model
Approach 자체는 GPT-1 논문과 유사 (전 token들을 보고 다음 토큰을 예측)
McCann et al. (2018) decaNLP (The Natural Language Decathlon) 논문에 따르면 LM들은 instruction이 주어진 경우 Multitask를 잘 수행할 수 있음.
p(output | input)
이라고 하던걸 p(output | input, task)
라고 표현하면 Multitask를 instruction으로 표현할 수 있음.!
Translation: (French | English, translate English to French)
Question & Answering: (answer | question with document, answer the question)
(논문 시기 기준) 최근 연구에 따르면 이런 셋업에서 supervised 훈련이 되긴 되는데 너무 느리다.
우리 연구에 의하면 충분히 큰 모델에 대해서는 이런 추론을 하고 예측하는게 가능하다.
그렇다는건 unsupervised learning만으로 multitask가 가능하다는 얘기잖아?
training gogo
⇒ WebText, Common Crawl, Newspaper3k, LAMBADA, SQUAD 데이터셋 사용
Common Crawl (CC) had significant quality issues
⇒ 사람이 직접 좋은 document를 뽑아서 데이터셋을 새로 구축함.
dataset안에는 4500만개의 링크가 있었고 그 링크를 재구축한 결과 8백만개의 문서, 40GB의 텍스트가 나왔다. (이 과정에서 중복을 제거하려고 Wikipedia 데이터셋은 사용하지 않음)
Reddit 답변도 사용 (karma 3이상받은 댓글만 선별하여 사용)
위키피디아 데이터만으로는 일반화된 데이터가 만들어지지 않는다. ⇒ 다양한 데이터를 선별하여 수집.
8-gram bloom filtering (8단어씩 겹치는지 확인) 을 통해 판별했는데 single spaced-
아니 그럼 overfit 된건 아닌가?
BPE라는게 뭘까?
aaabbcd 라는게 있을때 가장 많은 문자열인 a를 가장 적은 문자로 치환 (허프만 부호화랑 비슷)
a, b, c, d를 모두 토큰으로 치환
근데 BPE는 ASCII인데 모든 문자열을 표현할 수 있어야해.
⇒ 아예 그냥 유니코드를 박아버리자.
context size = 1024, batch size = 512 로 증가.
Byte상에서 동작하기 때문에 lossy한 pre-processing이 더이상 아님.
zero shot 만으로 7/8 SOTA 달성
우리가 목표한 성능이 나왔을때 우리가 정말 잘해서 성능이 잘 나온건가에 대한 고민이 필요하다.
추가로 봐야할 한국어 논문 : https://arxiv.org/pdf/2109.04650.pdf
( 한국어는 BPE를 어떻게 적용해야할까? )
https://engineering.clova.ai/en/posts/2022/05/hyperclova-corpus
한국어 데이터셋을 어떻게 넣어야 잘 될까?