[논문리뷰]Language Models are Unsupervised Multitask Learners

0

논문리뷰

목록 보기
3/5
post-thumbnail

1. Introduction

머신러닝 시스템들은 큰 데이터셋, 큰 용량의 모델, 그리고 지도 학습을 활용해 그들이 훈련된 과제(task)에서는 훌륭한 성과를 보인다. 그러나 현재 시스템들은 'competant generalists'라기 보단'narrow experts'들이다. 이렇게 한 가지 task에만 훈련된 머신러닝 모델을 훈련시키려면 (dataset, objective) 쌍이 필요한데, 이를 확보하기가 쉽지 않다.

반면 mmultitask learning은 한 가지 모델이 여러가지 task를 해결할 수 있기 때문에 이런 문제를 겪지 않는다. 우리는 이 논문에서 language model이 zero-shot 설정에서 여러 down-stream task들을 수행할 수 있음을 보인다. 이 과정에서 어떤 parameter나 architecture 수정도 필요하지 않다.

2. Approach

우리 접근법의 핵심은 Language Modeling이다.

p(x)=i=1np(sns1,...,sn1)p(x)=\prod_{i=1}^{n}p(s_n\mid s_1,...,s_{n-1})

최근 들어 self-attention 구조를 갖는 Transformer가 이런 조건부 확률을 훌륭하게 표현해낸다.
하나의 task를 수행하는 프레임워크는 p(outputinput)p(output\mid input)으로 표현될 수 있다. multitask를 수행하는 프레임워크는 task에 대한 정보도 필요로하기 때문에 p(outputinput,task)p(output\mid input, task) 를 모델링해야한다.
특정 task를 설정하는 것은 architecture 레벨에서 수행되기도 한다. task-specific encoder와 decoder나 특별한 알고리즘을 사용하는 방식으로 말이다. 그러나 McCann et al.(2018)에서 알 수 있듯이 언어는 task를 특정하는 유연한 방식을 제공한다. 예를 들어 번역 학습의 예시는 (translate to french, english task, french text)식의 sequence로 쓸 수 있다.

2.1 Training Dataset

우리는 최대한 크고 다양한 데이터셋을 만드는 것을 목표로 한다. Common Crawl과 같은 web crawl 방법이 좋은 방법 중 하나인데, 이런 방식은 데이터 품질 문제를 갖는다. 그렇기 때문에 우리는 인간에 의해 curated/filtered된 웹 페이지많을 사용한다. 예를 들어 Reddit에서 3 karma 이상을 받은 글의 outbound link를 수집한다.

이렇게 수집된 데이터셋을 WebText라고 부른다. 총 40GB의 800만개가 넘는 문서 데이터이다.

2.2 Input Representation

General Language Model은 어떤 string에 대해서든 그 string이 등장할 확률을 계산할 수 있어야 하고, 또 생성할 수 있어야 한다. 그러나 byte-level LM들은 단어 단위 LM이기 때문에 위 목표를 달성하지 못한다.

Byte Pair Encoding(BPE)는 character level LM과 word level LM사이의 현실적인 중간점이다. BPE의 작동 원리는 아래와 같다.

  1. 딕셔너리의 모든 단어를 글자(character)단위로 분리한다.
  2. 가장 빈도수가 높은 유니그램 쌍을 하나의 유니그램으로 통합한다.
  3. 2.를 정해진 횟수만큼 반복한다.

예시를 들어보자면 시작 단계는 다음과 같다.

#dictionary
h i g h : 5, h i g h e r : 2, n e w e s t : 6, w i d e s t : 3

2번을 한 번 반복하면 딕셔너리에서 (e, s) 쌍이 9회로 가장 빈도수가 높으므로 (e, s)쌍을 es로 통합한다.

#updated dictionary
h i g h : 5, h i g h e r : 2, n e w es t : 6, w i d es t : 3

한 번 더 반복하면 9회 등장하는 (es, t)를 est로 통합한다.

#updated dictionary
h i g h : 5, h i g h e r : 2, n e w est : 6, w i d est : 3

자세한 내용은 아래 글을 참조하면 된다.
https://wikidocs.net/22592

2.3 Model

우리 모델은 OpenAI의 GPT 모델을 대부분 따라간다.


GPT-2와 GPT-1의 차이점은 Layer normalization의 위치에 있다. GPT-1에선 Layer normalization이 각각의 sub block 이후에 위치하고 있다. 반면 GPT-2에선 Layer normalization이 sub block의 input 부분으로 옮겼다는 것 입니다. 또한 마지막 self-attention block 이후에는 추가적인 layer normalization이 존재한다. (이미지 출처: https://supkoon.tistory.com/25)


GPT-2는 decoder의 개수에 따라 4개의 사이즈로 나뉜다. (이미지 출처: https://jalammar.github.io/illustrated-gpt2/)

출처: Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.

profile
산업공학과 학부생입니다

0개의 댓글