GPT-1 논문 리뷰 - "Improving Language Understanding by Generative Pre-Training"

목록으로 돌아가기

Improving Language Understanding by Generative Pre-Training


이미지 설명

Review


Abstract

이미지 설명

자연어의 이해에 관한 내용과 현재 학습 시스템의 문제점을 제시하며 GPT 모델의 특징을 말하고 있다.

  • 자연어의 이해는 텍스트수반(텍스트 조각간의 방향 관계), 질문 답변, 의미론적 유사성 평가 및 문서 분류와 같은 광범위한 다양한 작업으로 구성된다.
  • 레이블이 없는 큰 텍스트 말뭉치가 풍부하지만 이러한 특정 작업을 학습하기 위한 레이블이 지정된 데이터는 부족
  • 즉 모델은 라벨링된 데이터를 중점적으로 편향된 학습을 진행하는 것이 문제
  • GPT 모델은 레이블이 지정되지 않은 다양한 텍스트 말뭉치에 대해서 사전 훈련을 통해 큰 이득을 얻을 수 있음
  • GPT 모델은 각 특정 작업에 대한 차별적 미세 조정을 수행할 수 있음


Introduction

이미지 설명

Abstract에서 말했던 라벨링 안된 데이터에 관한 단점과 라벨링이 안된 데이터를 학습 가능할 때 장점에 대한 이야기이다.

  • 레이블이 지정되지 않은 데이터의 언어 정보를 활용할 수 있는 모델은 시간과 비용이 많이 들 수 있는 더 많은 주석을 수집할 수 있는 귀중한 대안을 제공
  • 상당한 지도가 가능한 경우에도 지도되지 않은 방식으로 좋은 표현을 학습하면 상당한 성능 향상을 제공 + 지도 학습 의존도를 낮춤

이미지 설명

라벨링 안된 데이터를 활용한 학습이 단어 수준 이상의 정보를 활용하는 것에 어려운 이유를 설명한다.

  • 어떤 optimization objectives(손실 함수, 목표 지표 등…)가 transfer(전이)에 가장 효과적인지 알 수 없음
  • 이러한 학습된 representations(표현)을 목표 작업에 전달하는 가장 효과적인 방법에 대한 합의가 이루어지지 않음

    이러한 불확실성은 언어 처리를 위한 효과적인 준 지도 학습 접근법을 개발하는 것을 어렵게 만들었다.

이미지 설명

GPT의 목표는 광범위한 작업에 거의 적응하지 않고 이전하는 보편적인 표현을 배우는 것이라고 한다. 추가적으로 두 단계의 절차를 거처 교육을 한다고 한다.

  • 레이블이 지정되지 않은 데이터에 대한 LM objective(언어 모델링 목표)를 사용하여 신경망 모델의 초기 매개 변수를 학습
  • supervised objective(지도 학습에서 사용되는 Cross-Entropy Loss, Mean Squared Error (MSE) 등..)을 사용하여 파라미터를 target task에 맞춘다.

이미지 설명

GPT는 Transformer의 아키텍처를 사용했다고 한다. 트랜스포머 모델을 선정한 이유에 대해서 말한다.

  • text의 Long-term dependencies(시퀀스 데이터에서 시간적으로 멀리 떨어진 요소들 간의 의존성)에 강력함
  • 기존 RNN, LSTM에 비해서 구조화된 메모리를 사용할 수 있다.

이미지 설명

논문은 GPT 모델을 아래 4가지 유형으로 평가하겠다고 한다. 그리고 실적을 자랑한다.

  • natural language inference(자연어 추론)
  • question answering(질문 응답)
  • semantic similarity(의미론적 유사성)
  • text classification(텍스트 분류)


Related Work

이미지 설명

GPT 연구는 Semi-supervised Learning(반지도 학습)에 포함된다고 한다. 지난 몇 년 동안 연구원들은 라벨이 부착되지 않은 말뭉치에 대해 훈련된 단어 임베딩을 사용하여 다양한 작업에 대한 성능을 향상시키는 이점을 입증했다고 한다 그러나 이러한 접근 방식은 주로 단어 수준의 정보를 전달하는 반면, 우리는 더 높은 수준의 의미론을 포착하는 것을 목표로 한다고 한다.

이미지 설명

비지도 사전 훈련(Unsupervised pre-training)은 지도 학습 목표를 수정하는 대신 좋은 초기화 지점을 찾는 것인, 반지도 학습의 특별한 경우라고 한다.

이미지 설명

자연어 처리(NLP) 분야에서 반지도 학습을 개선하는 방법으로서 보조 비지도 훈련 목표를 사용하는 것에 대한 관련 연구에 대해서 말한다. 추가적으로 본 실험은 또한 auxiliary objective(보조 목표)를 사용하지만, 추가적인 보조 목표의 사용 없이도 비지도 사전 훈련이 이미 언어 처리 작업에 필요한 언어적 특징을 학습하고 있다고 말한다.


Framework

이미지 설명

지속적으로 학습을 두단계에 걸쳐 진행한다고 안내한다.

  • 첫번째 대용량 text Corpus(텍스트 집합)에서 high-capacity 언어 모델을 학습
  • 두번째 미세 조정 단계, 이 단계에서는 레이블이 지정된 데이터를 사용하여 차별적 task에 모델을 적용합니다

Unsupervised pre-training

이미지 설명

주어진 레이블이 없는 토큰 코퍼스 U = {u1, . . . , un}에서, 다음과 같은 표준 언어 모델링 목표를 최대화하기 위한 이야기이다.

  • L1(U): 주어진 토큰 코퍼스 U에 대한 언어 모델의 우도(likelihood)를 나타냄. 즉, 얼마나 주어진 문맥에서 다음 토큰 ui를 예측할 수 있는지를 나타내는 값
  • Σ: 시그마 기호는 모든 토큰에 대한 합을 나타냄. i는 1부터 n까지의 값(토큰 인덱스)을 순회
  • logP(ui|ui−k,…,ui−1;Θ): 현재 토큰 ui가 이전 k개의 토큰 ui−k, …, ui−1의 문맥(context)에 주어진 상황에서 등장할 확률의 로그 값을 나타냄.
  • P(ui|ui−k,…,ui−1;Θ): 주어진 문맥에서 다음 토큰 ui가 등장할 조건부 확률을 나타냄. 이 확률은 언어 모델에 의해 모델링되며, 이전 토큰들과의 관계를 기반으로 예측
  • k: 문맥 창의 크기를 나타내며, 현재 토큰 예측을 위해 사용되는 이전 토큰의 수를 결정
  • Θ: 언어 모델의 파라미터를 나타냄. 모델은 주어진 데이터를 기반으로 학습되어 문맥과 토큰 간의 관계를 모델링하는 파라미터를 조정

예시

예시를 들어보자면 아래와 같은 학습 데이터가 있다고 하자

1. A: "오늘 날씨 정말 좋아요."
2. B: "맞아, 햇살이 환하게 비치고 있어요."
3. A: "날씨가 좋으니 나가서 놀러 다녀야겠어요."
4. B: "이미 나는 오늘 밖에 놀러 나왔어어."

그렇다면 주어진 문장 4번에 대해서 아래와 같이 학습할 수 있다.
“ 나는 오늘 밖에 ___ “를 예측 한다.

  • P(“날씨가” | “이미 나는 오늘 밖에”) = P(ui | ui−k, …, ui−1; Θ)
  • P(“놀러” “이미 나는 오늘 밖에”) = P(ui ui−k, …, ui−1; Θ)


문맥 윈도우는 “이미 나는 오늘 밖에”이며 현재 단어는 “날씨가”와 “놀러”가 될 수 있다.
즉 모델은 문맥 윈도우에 기반하여 현재 단어 “날씨가”가 나올 확률, “놀러”가 나올 확률 P(ui | ui−k, …, ui−1; Θ)를 학습하게 된다.

이미지 설명

실험에서는 언어 모델을 위해 다중 레이어 트랜스포머 디코더를 사용했는데, 이는 트랜스포머의 변형이라고 한다. 모델은 입력 문맥 토큰 위에 다중 헤드 셀프 어텐션 연산을 적용하고 이어서 위치별 피드포워드 레이어를 사용하여 대상 토큰에 대한 출력 분포를 생성한다.

  • h0, hl: 모델의 각 레이어에서 얻은 출력을 나타냄. h0은 초기 입력 문맥 토큰에 대한 출력이며, hl은 마지막 레이어의 출력.
  • U: U = (u−k, . . . , u−1)로 표기되며, 이는 문맥 벡터를 나타냄. 이 벡터는 이전 k개의 토큰들로 구성함.
  • We: 토큰 임베딩 매트릭스, 각 토큰은 임베딩 공간에 표현되어 모델이 토큰의 의미와 관련 정보를 학습할 수 있음.
  • Wp: 위치 임베딩 매트릭스, 문맥 내에서 각 토큰의 상대적인 위치 정보를 나타냄.
  • softmax: 출력 벡터의 원소들을 확률 분포로 변환하는 함수, 이 함수를 통해 모델이 다음 토큰 예측을 위한 확률 분포를 생성함.
  • transformer_block: 트랜스포머의 하위 블록을 나타냄, 이 블록은 셀프 어텐션과 피드포워드 레이어 등의 연산을 통해 입력 데이터의 특징을 추출하고 변환함.

예시

예시를 들어보자면 아래와 같은 학습 데이터가 있다고 하자

예시 문장: "이미 나는 오늘 밖에"
현재 단어: "날씨가"
  • h0 = UWe + Wp
    입력 문맥 벡터 생성 부분으로, 문장 “이미 나는 오늘 밖에”를 토큰화하여 토큰 임베딩을 적용한다(UWe). 그 이후 문장 내 토큰들의 위치 정보를 나타내는 위치 임베딩 행렬 Wp를 적용한다(+ Wp). 이렇게 h0(UWe + Wp)를 계산한다. h0는 초기 입력 문맥 벡터(initial input context vector)로 주어진 문장 또는 텍스트의 특정 부분을 나타내는 벡터이다
  • hl = transformer_block(hl−1)∀i ∈ [1, n] (2)
    다중 레이어 트랜스포머 디코더를 사용하여 각 레이어에서 입력 데이터의 특징을 추출하고 변환한다. 예를 들어, 첫 번째 레이어에서 transformer_block(h0)를 수행하여 중간 결과 h1을 얻는다. 번째 레이어에서 transformer_block(h1)를 수행하여 h2를 얻는다. 이와 같이 n번째 레이어까지 반복하여 최종 출력 hn을 얻는다.
  • P (u) = softmax(hn WeT )
    마지막 레이어의 출력 hn을 이용하여 다음 단어 “날씨가”가 나올 확률 분포 P(“날씨가”)를 생성합니다. 출력 분포 P(u) = softmax(hn WeT )를 계산합니다. WeT는 토큰 임베딩 매트릭스를 전치(transpose)한 것이다. 토큰 임베딩 매트릭스 We는 각 단어를 임베딩한 벡터들을 열벡터로 나타낸 행렬이다. 그리고 WeT는 이 행렬을 전치하여 얻는 것이며 이렇게 하는 이유는 행렬 계산과 모델 구조의 일관성을 유지하기 위함이라고 한다. 토큰 임베딩 매트릭스 WeT의 전치를 사용하면, 마지막 레이어의 출력 벡터 hn과 토큰 임베딩을 곱셈 연산할 때 일관성 있는 표현을 사용할 수 있다.

Supervised fine-tuning

이미지 설명

문장 내에서 다음 단어를 예측하는 언어 모델링과 같은 사전 훈련 작업을 마친 후에, 주어진 레이블된 데이터를 활용하여 해당 작업에 맞게 예측 모델을 조정한다고 한다. 추가 보정 작업을 통해 모델은 더 많은 언어적 특성과 문맥 정보를 학습할 수 있게 되며, 이런 추가 정보를 활용하면 모델의 수렴 속도가 빨라진다고 한다.

이미지 설명

입력 토큰들 x1, …, xm으로부터 예측 확률 P(y)를 계산하는 방법을 보여준다. 레이블이 지정된 데이터 세트 C를 가정한다. 여기서 각 인스턴스는 레이블 y와 함께 입력 토큰 시퀀스인 x1, …, xm으로 구성된다. 입력은 사전 훈련된 모델을 통해 최종 transformer block의 활성화 hml을 얻은 다음 매개 변수 Wy로 추가된 선형 출력 계층에 입력되어 예측된다고 한다.

예시

예시 문장: "나는 자연어처리가 정말 좋아요"
# 문장 분류 작업으로 긍정과 부정을 나타내는 라벨링이 있다고 가정
  • 여기서 x1부터 xm까지의 토큰은 각각 “나는”, “자연어처리가”, “정말”, “좋아요” 이다.
  • 입력 토큰들을 모델에 통과시켜 활성화 값을 얻는다.(활성화 값 = hml)
  • 이 활성화 값 hml은 선형 출력 레이어에 주입되어 예측을 수행한다.(Wy는 선형 출력 레이어의 매개변수로 활성화 값과 연결되어 각 클래스(긍정 또는 부정)에 대한 점수를 계산한다)
  • softmax 함수를 통해 각 클래스에 대한 확률을 계산한다. softmax 함수는 점수를 확률로 변환하는데 사용되며, 가장 높은 확률을 가지는 클래스가 해당 문장의 예측 결과가 된다.


따라서 이 예시에서 P(y)를 계산하는 수식인 P(y|x1,…,xm) = softmax(hml Wy)는 주어진 입력 문장의 토큰들로부터 해당 문장이 긍정인지 부정인지를 예측하는 데 사용되는 확률 분포를 나타낸다.

이미지 설명

  • L2(C) = ΣlogP(긍정|나는, 자연어처리가, 정말, 좋아요)
    [“나는”, “자연어처리가”, “정말”, “좋아요”] 토큰 각각이 y 긍정이란 라벨과 얼마나 가까운지를 평가하면서 이를 합해 최종적인 목적 함수 L2(C)를 계산한다.


이미지 설명

L3(C)는 L2(C)와 λ * L1(C)를 합산한 것으로, 모델을 보조 목표와 주된 목표 모두를 동시에 최적화하도록 돕는다.

문장 1: "자연어 처리는 정말 재미있어요." (긍정)
문장 2: "자연어 처리는 너무 지루해요." (부정)
문장 3: "자연어 처리는 뭐하는 건지 모르겠어요." (부정)
  • L2(C) = logP(긍정 | “이 영화 정말 재미있어요.”) + logP(부정 | “이 영화 너무 지루해요.”) + logP(부정 | “이 영화는 뭐하는 건지 모르겠어요.”)
  • L1(C)는 언어 모델링을 위한 보조 목표로, 이전 단어들을 사용하여 다음 단어를 예측하는 데 모델을 훈련시킨다. 예를 들어, 문장 “자연어 처리는 정말”이 주어졌을 때, 다음 단어로 “재미있어요”가 나올 확률을 학습하는 것이다. 이 보조 목표를 통해 모델은 문장 내의 단어 간의 관계와 구조를 학습하게 된다.
  • λ는 가중치를 나타내는 파라미터이다. 이 값을 조정하여 L1(C) 값과 L2(C)의 값의 중요성(반영하는 정도?)을 조절할 수 있다



이미지 설명

  • 왼쪽 그림 (Transformer 아키텍처와 훈련 목적):
    Transformer 아키텍처와 연구에서 사용된 훈련 목적을 보여준다. Transformer 아키텍처는 입력 문장을 처리하고 특징을 추출하는데 사용되며, 이를 통해 언어 모델링과 다른 자연어 처리 작업을 수행할 수 있다. 왼쪽 그림은 이러한 Transformer 아키텍처의 개략적인 형태를 나타낸다.

  • 오른쪽 그림 (다양한 작업에 대한 미세 조정을 위한 입력 변환):
    이 부분에서는 다양한 작업에서 미세 조정을 위해 입력을 어떻게 변환하는지 보여준다. 모든 구조화된 입력은 토큰 시퀀스로 변환되어 사전 훈련된 모델에서 처리된다. 이 변환은 입력 데이터를 모델이 이해할 수 있는 형태로 바꿔주는 역할을 한다. 그리고 선형+소프트맥스 레이어가 추가되어 예측 결과를 생성한다.

    이미지 설명

이전 연구에서의 접근 방법에 대한 단점과 본 논문에서 제시하는 traversal-style approach(횡단 스타일 접근법)에 대한 이야기이다.

  • 이전 연구의 문제점
    텍스트 분류와 같은 일부 작업의 경우 위에서 설명한 대로 모델을 직접 미세 조정할 수 있다. 하지만 구조화된 입력(문장1, 문장2)와 같이 Q&A의 경우 사전 훈련된 모델이 연속적인 텍스트 시퀀스에 대해 훈련되었기 때문에 새로운 아키텍처를 추가 구성해야한다.(문장1, 문장2의 관계성을 찾는 레이어, 아키텍쳐가 필요)
    -traversal-style approach(횡단 스타일 접근법)
    사전 훈련된 모델이 처리할 수 있는 순서대로 구조화된 입력을 변환하는 방법이다. 입력 변환을 통해 작업 전반에 걸쳐 아키텍처를 광범위하게 변경하는 것을 방지할 수 있다. 모든 변환에는 임의로 초기화된 시작 및 종료 토큰(⟨s⟩, ⟨e⟩)을 추가하는 것이 포함된다.

예시

구조화된 입력: ("자연어 처리 재미있어?", "응! 조금 재미있어!")
  • 임시 데이터 변환
문장1 변환: ["⟨s⟩", "자연어", "처리는", "재미있어", "?", "⟨e⟩"]
문장2 변환: ["⟨s⟩", "응", "!", "조금", "재미있어", "!", "⟨e⟩"]
  • 변환된 입력 시퀀스
시퀀스: ["⟨s⟩", "자연어", "처리는", "재미있어", "?", "⟨e⟩", "⟨s⟩", "응", "!", "조금", "재미있어", "!", "⟨e⟩"]

이 변환된 입력 시퀀스를 모델에 주입하여 텍스트 추론 작업을 수행할 수 있다. 이렇게 하나의 입력 시퀀스로 변환하는 과정을 통해 모델은 구조화된 입력을 처리하고 해당 작업을 수행할 수 있게 된다.

이미지 설명

텍스트 추론 작업에서는 전제(premise)와 가설(hypothesis)의 관계를 판단하는 것이 목표이다. 전제와 가설을 합친 시퀀스($ 토큰으로 구분)를 모델에 입력으로 제공하여 텍스트 추론 작업을 수행해 모델은 이 합쳐진 시퀀스를 바탕으로 전제와 가설 사이의 추론 관계를 예측하거나 분류하는 데 활용한다.

  • Entailment (수반 관계): 전제가 주어졌을 때 가설이 옳다고 말할 수 있는 관계
  • Contradiction (모순 관계): 전제가 주어졌을 때 가설이 틀렸다고 말할 수 있는 관계
  • Neutral (중립 관계): 전제와 가설 간의 논리적 관계가 명확하지 않거나 중립적인 관계
전제 (premise): "고양이는 동물이다"
가설 (hypothesis): "고양이는 움직일 수 있다"
합쳐진 시퀀스: ["고양이는", "동물이다", "$", "고양이는", "움직일", "수", "있다"]
관계 : Entailment (수반 관계)
전제 (premise): "고양이는 동물이다"
가설 (hypothesis): "고양이는 식물이다"
합쳐진 시퀀스: ["고양이는", "동물이다", "$", "고양이는", "식물이다"]
관계 : Contradiction (모순 관계)
전제 (premise): "나는 오늘 밖에 나갔다"
가설 (hypothesis): "나는 집에 있다"
합쳐진 시퀀스: ["나는", "오늘", "밖에", "나갔다", "$", "나는", "집에", "있다"]
관계 : Neutral (중립 관계)



이미지 설명

유사성 작업의 경우 비교되는 두 문장의 고유한 순서가 없다. 이를 반영하기 위해 입력 시퀀스를 수정하여 가능한 문장 순서를 모두 포함하고(그 사이에 구분 기호가 있음) 각각 독립적으로 처리한다. 선형 출력 계층으로 공급되기 전에 요소 단위로 추가되는 두 개의 시퀀스 표현 hml을 생성한다.

입력: 두 개의 문장 ("나는 자연어 처리를 좋아해", "나는 너무 재미있어")
문장1 시퀀스 : ["⟨s⟩", "나는", "자연어", "처리를", "좋아해", "⟨e⟩"]
문장2 시퀀스 : ["⟨s⟩", "나는", "너무", "재미있어", "⟨e⟩"]
변환된 입력 시퀀스 1: ["⟨s⟩", "나는", "자연어", "처리를", "좋아해", "⟨e⟩", "$", "나는", "너무", "재미있어", "⟨e⟩"]
변환된 입력 시퀀스 2: ["⟨s⟩", "나는", "너무", "재미있어", "⟨e⟩", "$", "나는", "자연어", "처리를", "좋아해", "⟨e⟩"]

하나의 입력 시퀀스에 하나의 hml (sequence representation)을 생성한다. 두 hml 벡터는 요소별로 더해져서 문장 간의 유사도를 나타내는 최종 특성 벡터가 생성



이미지 설명

Question Answering”과 “Commonsense Reasoning”이라는 작업 유형에 대한 설명이다.

  • Question Answering (질문 응답): 이 작업에서는 주어진 문맥 문서(z), 질문(q) 및 가능한 답변들의 집합 {ak}을 다룬다. 예를 들어, 주어진 문맥은 “한국의 수도는 어디인가요?”라는 질문과 가능한 답변으로 “서울”, “도쿄”, “뉴욕” 등이 있을 수 있다.
  • Commonsense Reasoning (상식 추론): 주어진 문맥 문서(z), 질문(q) 및 가능한 답변들의 집합 {ak}을 사용하여 상식적인 추론 작업을 수행한다. 예를 들어, 주어진 문맥에서 “비가 오면 땅이…“라는 문장과 함께 “차가 막힌다”, “가벼워진다”, “풀이 자란다” 등의 가능한 답변들이 제시될 수 있다.

예를 들어 아래와 같은 구조의 시퀀스를 만들 수 있다.

문맥 문서(z): "한국은 동아시아의 한 반도에 위치한 나라입니다."
질문(q): "한국의 수도는 어디인가요?"
가능한 답변: {"서울", "도쿄", "뉴욕"}

아래 생성될 수 있는 입력 시퀀스이다.

[한국은 동아시아의 한 반도에 위치한 나라입니다.;한국의 수도는 어디인가요?;$;서울]
[한국은 동아시아의 한 반도에 위치한 나라입니다.;한국의 수도는 어디인가요?;$;도쿄]
[한국은 동아시아의 한 반도에 위치한 나라입니다.;한국의 수도는 어디인가요?;$;뉴욕]

[z;q;$;”서울”], [z;q;$;”도쿄”], [z;q;$;”뉴욕”]으로 학습이 이루어지며 학습되는 데이터의 정보에 따라 정답이 결정된다. 데이터가 텍스트간 관계성에서 뉴욕이 많약 더 많다면 확률적으로 뉴욕이 이란 단어가 나올 확률이 높아지기 때문에 답변은 뉴욕으로 나온다.


Experiments

실험에 관련된 파트이다.

이미지 설명

비지도 사전 훈련(Unsupervised pre-training)

  • 언어 모델을 훈련하기 위해 BooksCorpus 데이터셋을 사용 이 데이터셋은 다양한 장르의 7,000여 권의 미발표 도서를 포함하고 있으며, 모토, 판타지, 로맨스 등의 다양한 장르를 포함하고 있다. 중요한 점은 이 데이터셋에는 긴 연속된 텍스트가 포함되어 있어 생성 모델이 장거리 정보에 대한 조건화를 학습할 수 있게 된다.
  • 유사한 방법을 사용하는 ELMo [44]와 유사한 크기의 1B Word Benchmark 데이터셋도 있긴하다. 하지만 이 데이터셋은 문장 수준에서 섞여 있어 장거리 구조를 파괴한다. 저자들의 언어 모델은 이 데이터셋에서 매우 낮은 토큰 수준의 어려움(18.4)을 달성한다.

이미지 설명

모델 사양

  • 모델은 원래 Transformer 작업을 따른다.
  • 12-layer 디코더 전용 Transformer를 사용하며, 각 레이어에는 768 차원의 마스크된 셀프 어텐션 헤드가 있다.
  • 위치별 feed-forward 네트워크는 3072 차원의 내부 상태를 가진다.
  • Adam 최적화 방식을 사용하며, 최대 학습률은 2.5e-4이며, 학습률은 처음 2000번의 업데이트 동안 선형적으로 0에서 증가한 후 코사인 스케줄을 사용하여 0으로 조절된다.
  • 64개의 무작위로 샘플링한 연속된 512 토큰 시퀀스의 미니배치에서 100 에포크 동안 훈련한다.
  • 모델 내에서는 layernorm을 많이 사용하며, 간단한 가중치 초기화는 N (0, 0.02)로 설정된다.
  • 40,000개의 병합을 사용한 바이트페어 인코딩 (BPE) 어휘를 사용하며, 잔차, 임베딩 및 어텐션 드롭아웃은 0.1의 비율로 정규화된다.
  • L2 정규화의 수정 버전을 사용하며, 활성화 함수로는 Gaussian Error Linear Unit (GELU)를 사용한다.
  • 위치 임베딩으로 학습된 버전을 사용하며, 원시 텍스트를 정리하고 표준화하기 위해 ftfy 라이브러리와 spaCy 토크나이저를 사용한다.

이미지 설명

미세 조정

  • 명시되지 않은 경우, 비지도 사전 훈련에서의 하이퍼파라미터 설정을 재사용한다.
  • 분류기에는 0.1의 드롭아웃 비율을 추가한다.
  • 대부분의 작업에 대해 학습률은 6.25e-5이고 배치 크기는 32를 사용한다.
  • 미세 조정은 일반적으로 짧은 시간에 완료되며, 대부분의 경우 3개의 에포크 훈련이 충분하다.
  • 0.2%의 웜업을 포함한 선형 학습률 감소 일정을 사용한다.
  • 매개 변수 λ는 0.5로 설정된다.

이미지 설명

Supervised fine-tuning

자연어 추론, 질문 응답, 의미 유사성 및 텍스트 분류와 같은 다양한 지도 작업에 대한 실험을 수행한다고 한다. 이러한 일부 작업은 최근에 공개된 GLUE 다중 작업 벤치마크의 일부로 제공되며, 이를 활용한다. 그림 1은 모든 작업과 데이터셋의 개요를 제공한다.

이미지 설명

NLI

  • 이 작업은 두 문장을 읽고 그들 사이의 관계를 entailment(유추), contradiction(모순) 또는 neutral(중립) 중 하나로 판단하는 작업이다.
  • 이 작업은 어휘 entailment, 공용 참조, 어휘 및 문법적 모호성과 같은 다양한 현상의 존재로 인해 여전히 어렵다.
  • 우리는 이미지 캡션(SNLI), 전사된 음성, 인기있는 소설 및 정부 보고서(MNLI), 위키피디아 기사(QNLI), 과학 시험(SciTail) 또는 뉴스 기사(RTE)와 같은 다양한 출처에서 가져온 5개의 데이터셋에서 평가한다.

이미지 설명

표 2는 우리 모델과 이전 최고 성능 모델에 대한 다양한 NLI 작업 결과를 자세히 설명합니다.

  • 다섯 가지 데이터셋 중 네 가지에서 기존 베이스라인을 크게 능가하며, 이전 최고 성능 결과 대비 MNLI에서 최대 1.5%, SciTail에서 5%, QNLI에서 5.8%, SNLI에서 0.6%의 성능을 달성했다.
  • 이는 우리 모델이 여러 문장에 대한 추론을 더 잘하고 언어적 모호성의 측면을 처리할 수 있는 능력을 보여준다.
  • 작은 데이터셋 중 하나인 RTE에서(2490개의 예제) 우리는 56%의 정확도를 달성하며, 이는 다중 작업 biLSTM 모델이 보고한 61.7%보다 낮다.
  • 더 큰 NLI 데이터셋에서 우리 접근 방식의 강력한 성능을 고려하면 현재로서는 멀티태스크 훈련에서 이점을 얻을 것으로 보이지만 현재로서는 이를 탐색하지 않았다.

이미지 설명

질문 응답

  • 우리는 최근에 출시된 RACE 데이터셋을 사용하였는데, 이 데이터셋은 중고등학교 시험에서 가져온 영어 단원과 관련 질문으로 구성되어 있다.
  • 이 데이터셋은 CNN 또는 SQuaD와 같은 다른 데이터셋보다 추론 유형의 질문이 더 많이 포함되어 있어서 우리 모델이 장거리 문맥을 처리하는 데 적합한 평가를 제공한다.
  • 이 작업에서 이전 최고 성능 모델을 크게 능가한다. Story Cloze 작업에서는 최대 8.9%의 개선을 달성하고, RACE 전체에서는 5.7%의 개선을 달성한다.

이는 우리 모델이 장거리 문맥을 효과적으로 처리할 수 있는 능력을 보여준다.

이미지 설명

의미 유사성

  • 이 작업의 어려움은 개념의 다시 말하기, 부정의 이해, 그리고 문법적 모호성을 처리하는 데 있다.
  • 이 작업을 위해 Microsoft Paraphrase corpus (MRPC)(뉴스 소스에서 수집), Quora Question Pairs (QQP) 데이터셋, Semantic Textual Similarity benchmark (STS-B)의 세 가지 데이터셋을 사용한다.
  • 우리는 이 중 세 가지 의미 유사성 작업 중 두 가지에서 최고 성능을 달성하며, STS-B에서 1 포인트의 절대 이득을 얻었다.
  • QQP에서의 성능 차이는 상당하며, Single-task BiLSTM + ELMo + Attn 대비 4.2%의 성능 향상이 있다.

이미지 설명

분류

  • Corpus of Linguistic Acceptability (CoLA)는 문장이 문법적인지 여부에 대한 전문가 판단을 포함하고 있으며, 훈련된 모델의 기본 언어적 편견을 테스트한다.
  • 반면에 Stanford Sentiment Treebank (SST-2)는 표준 이진 분류 작업이다.
  • 우리 모델은 CoLA에서 45.4의 점수를 얻었으며, 이는 이전 최고 결과인 35.0 대비 특히 큰 개선을 나타낸다.
  • 이로써 모델이 학습한 기본 언어적 편견을 보여준다.
  • 모델은 또한 SST-2에서 91.3%의 정확도를 달성하며, 최신 기술 결과와 경쟁력 있다.
  • 또한 GLUE 벤치마크에서 전체 점수가 72.8로 나타나, 이는 이전 최고 점수인 68.9 대비 큰 향상이다.

이미지 설명

전반적으로, 이 접근 방식은 우리가 평가한 12개의 데이터셋 중 9개에서 새로운 최고 성적을 달성하며, 많은 경우 앙상블을 능가한다.
또한 우리의 결과는 다양한 크기의 데이터셋에서 잘 작동하는 것을 나타낸다.
STS-B (약 5.7천 개의 훈련 예제)와 같은 작은 데이터셋부터 가장 큰 데이터셋인 SNLI (약 55만 개의 훈련 예제)까지 모든 크기의 데이터셋에서 잘 작동한다.


Analysis

이미지 설명

Impact of number of layers transferred

  • 그림 2(왼쪽)은 MultiNLI 및 RACE에서 레이어 전달 수의 함수로 우리 방법의 성능을 보여준다.
  • 우리는 임베딩을 전달하는 것이 성능을 향상시키고, 사전 훈련된 모델의 각 레이어가 대상 작업 해결에 유용한 기능을 포함하고 있음을 보여준다.
  • MultiNLI의 전체 전송에 대한 최대 9%의 이점까지 각 Transformer 레이어가 추가적인 이점을 제공한다는 것을 나타낸다.

이미지 설명

Zero-shot Behaviors

언어 모델 사전 훈련이 왜 효과적인지에 대한 이해를 하고 싶다고 한다.

  • 가설은 기본 생성 모델이 언어 모델링 능력을 향상시키기 위해 우리가 평가하는 많은 작업을 수행하는 것을 학습하며, Transformer의 더 구조화된 어텐션 메모리가 LSTM과 비교하여 전이를 지원한다는 것이다.
  • 우리는 감독된 미세 조정 없이 기본 생성 모델을 사용하여 작업을 수행하는 휴리스틱 솔루션의 시리즈를 설계했다.
  • 우리는 그림 2(오른쪽)에서 제너레이티브 프리트레이닝 과정에서 이러한 휴리스틱 솔루션의 효과를 시각화한다.
  • 이러한 휴리스틱의 성능은 안정적이며 꾸준히 향상되므로 제너레이티브 프리트레이닝이 다양한 작업 관련 기능을 학습하는 데 도움이 된다는 것을 시사한다.
  • 또한 LSTM은 제로 샷 성능의 분산이 더 높다는 것을 관찰하여 Transformer 아키텍처의 추론 편향이 전이를 지원하는 데 도움이 된다는 것을 나타낸다.

이미지 설명

Ablation studies

인공지능에서 분야에서 Ablation studies이란 “machine learning system의 building blocks을 제거해서 전체 성능에 미치는 효과에 대한 insight를 얻기 위한 과학적 실험”으로 정리 될 수 있다고 한다. ([출처] ablation study / 작성자 웃기슈)

1

  • 미세 조정 중 보조 LM 목표 없이 우리 방법의 성능을 살펴본다.
  • 보조 목표가 NLI 작업과 QQP에서 도움이 된다는 것을 관찰한다.
  • 전반적으로 경향은 대형 데이터셋에서는 보조 목표에 이익을 보지만 작은 데이터셋에서는 그렇지 않다는 것을 시사한다.

2

  • 동일한 프레임워크를 사용하여 Transformer 대신 2048 단위 LSTM을 사용할 때 Transformer의 영향을 분석한다.
  • LSTM을 사용할 때 Transformer 대비 5.6 평균 점수 감소를 관찰한다.
  • LSTM은 MRPC 데이터셋에서만 Transformer를 능가한다.

3

  • 사전 훈련 없이 지도 대상 작업에 직접 훈련된 우리의 Transformer 아키텍처와 비교한다.
  • 사전 훈련의 부재로 인해 전체 모델과 비교하여 모든 작업에서 성능이 저하되어 14.8% 감소한다.


Conclusion

이미지 설명

단일 태스크에 대한 강력한 자연어 이해를 달성하기 위한 프레임워크를 제시했다.
생성적 사전 훈련과 판별적 미세 조정을 통해 단일 태스크에 대한 모델을 통한다. 긴 연속 텍스트의 다양한 말뭉치에서 사전 훈련함으로써 모델은 중요한 세계 지식과 장거리 종속성 처리 능력을 습득하고, 그런 다음 질문 응답, 의미 유사성 평가, 함의 결정 및 텍스트 분류와 같은 판별적 작업을 해결하는 데 성공적으로 전이된다.
우리는 연구하는 12개의 데이터셋 중 9개에서 성능 향상을 이끌어내며 기술을 제시한다.
(사전)훈련을 사용하여 판별적 작업의 성능을 향상시키는 것은 오래전부터 기계 학습 연구의 중요한 목표 중 하나였다.
저희의 연구는 실제로 중요한 성능 향상을 달성할 수 있다는 것을 시사하며, 이 방법이 가장 잘 작동하는 모델 (Transformer)과 데이터 세트 (장거리 종속성을 가진 텍스트)에 대한 힌트를 제공한다.
이것이 자연어 이해 및 다른 도메인에 대한 비지도 학습 연구로의 새로운 연구를 가능하게 하여 비지도 학습이 언제 어떻게 작동하는지에 대한 우리의 이해를 더 향상시키기를 기대한다!…


리뷰

gpt1의 중요 포인트는 라벨링을 통한 학습을 조금을 벗어나 문맥 이해가 되는 사전 학습 모델을 만드는 것이 주 포인트 같다. 그 후 특정 테스크에 맞춰진 파인튜닝을 하는 방식이다. 하지만 여전히 파인튜닝이란 방식에서 큰 소비가 있고 한 모델이 멀티테스킹을 하는 것이 어려운 점은 gpt1의 큰 문제 같다. 하지만 gpt란 자체를 이해할 때 가장 근본적으로 기술?적인 부분을 볼 수 있는 논문 같으며 생각보다 흥미롭게 읽었다. 나는 공부하는 것을 별로 좋아하진 않지만… 읽을만 했다… 끝!

author-profile
Written by 유찬영

댓글