딥러닝/NLP

[논문] GPT-1 리뷰

eunsour 2022. 12. 12.
반응형

BERT와 GPT는 각각 Google과 OpenAI에서 만든 자연어 모델이다. BERT는 트랜스포머의 인코더를, GPT는 트랜스포머의 디코더를 분리해 각각 독자적인 모델로 발전시켰고, 이 둘은 현재까지도 자연어 처리 분야를 양분하고 있으며 그 파생 모델들이 뛰어난 활약을 하고 있다. 

 

따라서 LLM 시대의 서막을 연 GPT-1에 대해 알아보고자 한다.

 

Abstract

자연어 이해는 자연어 추론, 질의 응답, 문서 분류 등 광범위한 다양한 작업으로 구성된다.

 

그러나 레이블이 없는 텍스트 말뭉치는 풍부하지만 특정 작업(target task)을 학습하기 위한 레이블이 지정된 데이터는 부족하여 각각의 태스크에 파인 튜닝을 적절하게 수행하기 어려웠다. 따라서 레이블이 없는 텍스트의 다양한 말뭉치에서 언어 모델을 프리 트레인한 후 튜닝을 하고자 하는 레이블이 존재하는 태스크에 파인 튜닝을 하게 되면 조금 더 좋은 차별적인 파인 튜닝을 할 수 있었다.

 

 

Introduction 

NLP에서 지도 학습에 대한 의존도를 낮추려면 원시 텍스트로부터 학습할 수 있는 능력이 중요하다.

 

대부분의 딥러닝 학습에는 상당한 양의 라벨링된 데이터가 필요한데 레이블이 없는 데이터의 언어 정보들을 활용할 수 있으면 시간과 비용을 상당히 절약할 수 있다. 그리고 좋은 표현을 학습하면서 성능을 크게 향상시킬 수 있다.

 

하지만 단어 수준 이상의 정보를 활용하는 것은 두 가지 주요 이유로 인해 어렵다.

 

  1. 어떤 종류의 optimiazation objective가 전이 학습에 유용한 텍스트 표현을 학습하는지 불분명하다.
  2. 학습된 표현을 target task에 가장 효과적으로 전달하는 방법에 대한 합의가 이루어지지 않았다.

 

그래서 본 논문에서는, unsupervised pre-training과 supervised fine-tuning을 조합하여 NLP 태스크를 위한 semi-supervised 방식을 살펴본다. 우리의 목표는 광범위한 태스크에 최소한의 adaptation으로 전달할 수 있는 보편적인 표현을 학습하는 것이다.

 

그래서 우리는 2단계 훈련 절차를 사용한다.

 

  1. 레이블이 없는 데이터에 언어 모델링 objective를 사용하여 신경망 모델의 초기 매개 변수를 학습한다.
  2. 이후 supervised objective를 사용하여 이러한 매개변수를 target task에 맞게 조정한다.

 

모델 아키텍처의 경우 기계 번역, 문서 생성 및 구문 분석과 같은 다양한 작업에서 강력한 성능을 보이는 트랜스포머를 사용하였다.

 

또한 RNN과 같은 대안과 비교하여 텍스트의 장기 의존성(long-term dependencies)을 처리하기 위한 보다 구조화된 메모리를 제공하여 다양한 작업에서 좋은 성능을 나타내었다. transfer를 하는 동안 태스크 별로 다른 입력 방식을 위해 입력 값을 단일 연속 토큰 시퀀스로 처리한다.

 

우리는 네 가지 유형의 NLP 태스크(자연어 추론, 질의 응답, 의미론적 유사성 및 텍스트 분류)에 대한 접근 방식을 평가하였고, 12개의 태스크 중 9개의 태스크에서 그 작업에 특화하여 훈련된 모델보다 뛰어난 성능을 나타내었다.

 

 

Related Work

Semi-supervised learning for NLP

지난 몇 년 동안, 레이블이 없는 말뭉치에 대한 학습으로 단어 임베딩의 성능을 개선했지만, 우리는 더 높은 수준의 의미를 포착하기 위해 노력하고 있다. 최근의 연구 방법은 단어 수준 이상의 의미를 학습하고 활용하는 방법을 연구하여, 다양한 태스크에 적합한 벡터 표현으로 텍스트를 인코딩하는 데 사용되고 있다.

 

Unsupervised pre-training

지도 학습의 목적 함수를 수정하는 대신 좋은 초기화 지점을 찾는 것이 목표인 semi-supervised learning의 특수한 경우이다. 후속 연구에서는 사전 학습이 심층 신경망에서 더 나은 정규화를 가능하게 한다는 사실이 입증되었다. 이 방법은 이미지 분류, 음성 인식, 기계 번역과 같은 다양한 태스크에서 심층 신경망을 훈련하는 데 사용되었다.

 

Auxiliary training objectives

보조 목적 함수를 추가하는 것은 semi-supervised learning의 또 다른 형태이다. 초기 연구에서는 POS 태깅, 명명된 엔티티 인식 등 다양한 NLP 보조 작업을 사용했지만, 최근에는 target task에 보조 목적 함수를 추가하여 시퀀스 라벨링 작업에서 성능 향상을 입증했다. 비지도 사전 학습은 이미 target task와 관련된 여러 언어적 측면을 학습한다.

 

 

Framework

훈련 절차는 두 단계로 구성된다.

 

  1. 대규모 텍스트 말뭉치에서 대용량 언어 모델을 학습한다.
  2. 라벨링된 데이터를 사용하여 모델을 태스크에 맞게 파인 튜닝한다.

 

 

Unsupervised pre-training

토큰의 비지도 말뭉치 U가 주어지면 표준 언어 모델링 목적 함수를 사용하여 다음 우도를 최대화한다.

 

 

  • L1(목적 함수) : 라지 세타(Large Theta)는 파라미터를 의미한다. 이때 i는 1부터 모든 시퀀스에 대해, 바로 전 단계에서부터 k 이전까지 전부 살펴본 다음, i 번째에 해당하는 토큰 또는 단어가 무엇인지에 대한 우도를 최대화하는 것이 언어 모델(LM)의 목적이다.
  • k : 컨텍스트 윈도우의 크기이다.
  • P: 신경망에 의해 모델링된 조건부 확률. SGD를 사용하여 훈련된다.

 

실험에서는 언어 모델에 멀티 레이어 트랜스포머 디코더를 사용하였다. 이 모델은 입력 컨텍스트 토큰에 마스크드 멀티 헤드 어텐션을 적용한 다음 위치별 피드포워드 레이어를 적용하여 대상 토큰에 대한 출력 분포를 생성한다.

 

 

  • U : 토큰들의 컨텍스트 벡터
  • we : 토큰 임베딩 행렬
  • wp : 위치 임베딩 행렬

 

l번째 hidden state(hl)는 hl-1번째 hidden state 벡터를 입력으로 받아 트랜스포머 디코더 블록을 통과시킨 결과이다. 그리고 softmax를 통해 다음 토큰을 예측하는게 GPT의 unsupervised pre-training 과정이다.

 

 

Supervised fine-tuning

L1 목적 함수에 따라 모델을 훈련한 후, 파라미터를 target task에 맞게 파인 튜닝한다. 각 인스턴스는 입력 토큰의 시퀀스(x1, … xm)로 이루어진 레이블이 지정된 데이터셋 C를 가정한다.

 

주어진 시퀀스는 x1, .. xm개의 토큰으로 이루어져 있으며, 레이블 y를 가지고 있다. input은 사전 학습된 모델을 통해 트랜스포머의 디코더 블록의 활성화 함수(hl)를 찾아서, linear output layer에 넣고 softmax를 해서 y값을 예측한다.

 

 

이를 통해 다음과 같은 목표 함수를 최대화하도록 한다.

 

 

 

L2뿐만 아니라 L1도 함께 업데이트하면 다음과 같은 장점이 있다.

 

  • Supervised Learning에 대한 일반화를 돕는다.
  • 학습 속도 증가

 

 

 

저자들은 L1을 먼저 학습하고 레이블이 있는 데이터셋이 주어지면 해당 데이터셋에 대한 언어 모델 파인 튜닝과 Supervised Learning에 대한 목적 함수를 함께 결합하여 극대화하는 것이 더 나은 성능을 보인다고 주장한다.

 

 

Task-specific input transformations

텍스트 분류와 일부 태스크는 모델을 직접 조정할 수 있지만, 질의 응답과 같은 태스크에는 정렬된 문장 쌍 또는 문서, 질문, 답변의 삼중항과 같은 구조화된 입력이 필요하다. 사전 학습된 모델은 연속된 텍스트 시퀀스에 대해 학습되었으므로 이러한 작업에 적용하려면 수정이 필요하다.

 

여기에서는 구조화된 입력을 사전 학습된 모델이 처리할 수 있는 정렬된 시퀀스로 변환하는 traversal style 접근 방식을 사용한다. 이러한 입력 변환을 통해 작업 전반에 걸쳐 아키텍처를 광범위하게 변경하는 것을 피할 수 있다.

 

 

 

Textual entailment

전제 P와 가정 h 토큰 시퀀스를 구분 기호 토큰($)으로 연결한다.

 

Similarity

첫 번째 문장과 두 번째 문장을 각각 바꿔서 두 개의 트랜스포머 블록을 이용하여 Linear Layer에 공급한다.

 

Question Answering and Commonsense Reasoning

컨텍스트 문서 z, 질문 q, 답변 ak 가 주어진다. 문서 컨텍스트와 질문을 각각의 가능한 답변과 연결하고, 그 사이에 구분 기호 토큰을 추가하여 [z; q; $; ak]를 얻는다. 이러한 각 시퀀스는 모델에서 독립적으로 처리된 다음 소프트맥스 레이어를 통해 정규화되어 가능한 답변에 대한 출력 분포를 생성한다.

 

 

Analysis

Impact of number of layers transferred

다음 도표는 사전 학습 과정에서 전송된 레이어의 개수에 따른 성능을 보여준다. 이는 사전 학습된 모델의 각 레이어에 target task의 목적을 달성하는 데 유용한 기능이 포함되어 있음을 보여준다.

 

 

 

Zero-shot Behaviors

우리는 기본 생성 모델을 사용하여 파인 튜닝 없이 사전 학습을 수행하는 일련의 휴리스틱 솔루션을 설계했다. 다음 그림은 이러한 휴리스틱 솔루션의 효과를 시각화한 것이다.

 

휴리스틱의 성능이 안정적이며, 훈련을 반복할수록 꾸준히 증가하는 것을 관찰할 수 있다. 이는 생성적 사전 학습이 다양한 태스크 관련 기능들의 학습을 지원한다는 것을 시사한다. 또한, LSTM은 제로샷 성능에서 더 높은 편차를 보인다. 이는 트랜스포머 아키텍처의 귀납적 편향이 transfer에 도움이 된다는 것을 시사한다.

 

 

 

Ablation studies

우리는 모델의 성능에 영향을 미치는 보조 목적 함수에 대해 세 가지 연구를 수행했다.

 

  1. 보조 목적 함수가 있으면 NLI와 QQP를 개선할 수 있다는 것을 관찰했다. 데이터셋이 클수록 보조 목적 함수가 도움이 되었지만, 데이터셋이 작을 수록 도움이 되지 않는 것으로 확인했다.
  2. 트랜스포머 대신 단일 레이어 2048 유닛 LSTM을 사용했을 때 평균적으로 5.6점의 성능 저하가 관찰되었다. 유일하게 MRPC에서만 트랜스포머를 능가하는 성능을 보였다.
  3. 사전 학습 없이 직접적으로 target task를 학습하는 트랜스포머 아키텍처와 비교한다. 사전 학습이 충분하지 않으면, 모든 작업에서 성능이 저하되어 전체 모델에 비해 14.8%의 성능 저하가 발생하는 것을 관찰하였다.

 

 

 

Conclusion

우리는 생성적 사전 학습과 차별적 파인 튜닝을 통해 단일 작업에 구애받지 않는 강력한 자연어 처리 모델을 만들기 위한 프레임워크를 도입했다.

 

긴 연속 텍스트가 포함된 다양한 말뭉치를 사전 학습함으로써 모델은 중요한 지식과 장거리 의존성을 처리하는 능력을 습득하고, 12개의 데이터셋 중 9개의 데이터셋에서 SOTA를 달성하였다.

 

비지도(사전)학습을 사용해 차별적 작업의 성능을 향상시키는 것은 오랫동안 머신러닝 연구의 중요한 목표였다. 이번 연구는 이러한 성능 향상이 실제로 가능하다는 것을 시사하며, 어떤 모델(트랜스포머)과 데이터셋(장거리 종속성이 있는 텍스트)가 이 접근 방식에 가장 적합한지에 대한 힌트를 제공한다.

 

이를 통해 자연어 이해 및 기타 영역에서 비지도 학습에 대한 새로운 연구가 활성화되어 비지도 학습의 작동 방식과 시기에 대한 이해가 더욱 향상되기를 기대한다.

 

 

반응형

댓글