운동하는 공대생
[논문] Improving Language Understanding by Generative Pre-Training - GPT-1 본문
[논문] Improving Language Understanding by Generative Pre-Training - GPT-1
운동하는 공대생 2023. 8. 6. 17:32논문
https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf
1. Introduction
저자는 unsupervised 학습에 대한 어려움을 이야기를 했다. 그게 두 가지가 있는데 최적화를 어떻게 해야 하는지 문제와 데스크마다 변환하는 최적의 방식이 다르다는 문제가 있다. 그래서 이 논문에서는 semi-supervised 방식을 사용하여 이 문제를 해결했다고 말한다. 저자는 semi-supervised와 supervised fine-tuning을 결합하여 사용한다고 말했다.
두 가지의 단계로 훈련을 진행했는데 unlabeled 데이터에 대한 파라미터를 선행 학습하고 그 이후에는 이 파라미터를 가지고 추가적인 supervised 한 태스크를 학습한다.
여기서 모델의 구조는 Transformer 모델 구조를 사용했고 특정 테스크에 강점을 보였으면 학습하는 과정은 텍스트를 연속된 일련의 토큰으로 변환하여 처리하였다. 평가는 4가지 모델 이해 태스크로 구분하여 진행하였다.
2. Related Work
2.1 Semi-supervised learning for NLP
저자는 이전까지 unlabeled 했던 데이터들을 학습하기 위해서 사용한 방식은 텍스트 word-level의 정보를 습득하지만 좀더 넓은 범위의 텍스트 이해를 위해서 구, 문장 단위의 임베딩을 통해서 unlabeled 한 데이터를 학습하여 다양한 태스크에 대한 성능을 높인다고 한다.
2.2 Unsupervised pre-training
Unsupervised pre-training 방식은 semi-supervised learning방식의 한 케이스로 모델이 첫 supervised 한 데이터에 대한 학습을 진행할때 초기 지점을 찾는 것에 대한 장점이 있다. 이는 어떤 태스크에 대하여 모델이 예측을 진행할 것인가에 대한 시작점이라고 이해했다.
GPT의 구조가 Transformer를 사용함으로 전체적인 문장에 대한 longer range 한 문장에 특성을 파악하는게 가능하다.
3. Framework
2단계로 학습이 진행되는데 먼저 큰 말뭉치들을 이용한 high-capacity모델을 학습하고 이후에 fine-tuning을 진행하여 태스크에 대한 정확도를 높이는 방식으로 학습이 진행된다.
3.1 Unsupervised pre-training
공식을 보게되면 corpus 토근 u 가 존재한다. 이후에 예측하는 토큰 window를 k라고 한다면 각 corpus토큰과 비교해서 예측 토큰에 대한 likelihood를 계산하고 이것이 최대가 되도록 모델이 학습된다. 이는 예측하는 토큰이 corpus토큰과 관련이 있는지에 대한 학습이 진행된다고 볼 수 있다.
3.2 Supervised fine-tuning
3.1 에서 Unsupervised로 학습을 진행을 하고 이후에 그 파라미터를 가지고 supervised 데이터에 대한 타깃 태스크를 지정합니다.
pre-trained 된 모델을 가지고 이제는 supervised한 데스크로 fine-tuning을 진행을 하는데 여기서 labeled dataset을 활용하여서 예측하려는 값 y와 input 토큰 x를 통해서 예측되는 확률이 최대가 되도록 objective 함수가 진행이 되고 이때 label과 x의 확률은 softmax 함수를 통해서 구해지며 layer의 파라미터 w와 이전 transformer의 layer 값 h를 곱하여 얻어진다.(다른 network 구조와 비슷)
-모델 구조
3.3 Task-specific input transformations
모델의 구조 사진에서 오른쪽 부분처럼 테스크마다 각각 다른 input 형식을 가지게 하여서 훈련을 진행한다.
예를 들어, 텍스트 분류 작업은 단일 문장을 분류하는 작업이므로, 단일 문장에 대한 언어 모델의 출력만을 사용하여 예측한다. 하지만 질문 답변이나 텍스트 추론과 같은 작업은 여러 문장이나 구조적인 입력을 요구한다. 이러한 작업에 대해서는 입력 데이터를 변환하여 특정한 구조로 만든 후, 해당 구조를 사전 훈련된 언어 모델에 입력으로 제공하여 작업을 처리한다.