[논문리뷰]Language Models are Unsupervised Multitask Learners
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이다.
최근 들어 self-attention 구조를 갖는 Transformer가 이런 조건부 확률을 훌륭하게 표현해낸다.
하나의 task를 수행하는 프레임워크는 으로 표현될 수 있다. multitask를 수행하는 프레임워크는 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의 작동 원리는 아래와 같다.
- 딕셔너리의 모든 단어를 글자(character)단위로 분리한다.
- 가장 빈도수가 높은 유니그램 쌍을 하나의 유니그램으로 통합한다.
- 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.
Author And Source
이 문제에 관하여([논문리뷰]Language Models are Unsupervised Multitask Learners), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alsbmj012123/논문리뷰Language-Models-are-Unsupervised-Multitask-Learners저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)