‘트랜스포머를 활용한 자연어 처리’를 참고하였습니다.
현재 많은 사람에게 유명해진 Chat-GPT는 GPT 언어모델을 사용하고 있다. 그렇다면 GPT는 과연 무엇의 약자일까? 바로 Generative Pretrained Transformer로, 말 그대로 번역하면 생성하는 사전학습된 트랜스포머라는 뜻이다. 그렇다면 트랜스포머는 무엇일까? 빠르고 간단하게 알아보자.
2017 구글 연구원들은 시퀀스 모델링(sequence modeling)을 위한 새로운 신경망 아키텍처를 제안하였다. 이 아키텍처가 바로 트랜스포머(Transformer)로, ‘Attention Is All You Need’ 라는 유명한 이름의 논문을 통해 소개되었다.
트랜스포머는 기존에 사용되던 RNN에 비해 기계 번역 작업의 품질과 훈련 비용 면에서 압도적인 성능을 보여주었다. 여기에 더해 효율적 전이학습 방법인 ULMFiT가 적용되기 시작하면서 매우 적은 양의 레이블 된 데이터로도 최고 수준의 텍스트 분류 모델을 만들어낼 수 있게 되었다.
이렇게 해서 탄생한 것이 바로 GPT(Generative Pretrained Transformer)와 BERT(Bidirectional Encoder Representations from Transformers)이다. 이러한 트랜스포머 기반 모델들의 특징은 특정 작업에 특화된 훈련이 불필요하다는 것이다.
트랜스포머 이전 NLP에서 최고 성능을 달성했던 방법은 순환 신경망 구조였다. 이러한 구조는 피드백 루프를 통해 정보를 한 스텝에서 다음 스텝으로 전파하도록 설계되었고, 출력된 정보를 다시 입력에 사용하는 것이 특징이었다. 이러한 순환 방식은 텍스트와 같은 순차 데이터 모델링에 이상적이었다.
RNN은 단어 시퀀스를 한 언어에서 다른 언어로 매핑하는 기계 번역의 발전에 중요한 역할을 해왔다. 인코더-디코더 또는 시퀀스-투-시퀀스(seq2seq) 구조로 처리되어 입력과 출력이 임의의 길이를 가진 시퀀스일 때 잘 작동하는 것이 특징으로, RNN의 뛰어난 성능은 안드레이 카패시(Andrej Karpathy)의 블로그를 통해 확인할 수 있다.
하지만 RNN은 정보 병목(information bottleneck)이라는 치명적인 문제점을 가지고 있었다. 디코더는 인코더의 마지막 은닉 상태만을 참조해 출력을 만들기 때문에 시작 부분의 정보 손실이 발생하는 것이었다. 이를 해결하기 위해 디코더가 인코더의 모든 은닉 상태에 접근하는 메커니즘인 어텐션이 고안되었다.
모든 상태를 동시에 사용하려면 어떤 상태를 먼저 사용할지 우선순위를 정하는 메커니즘이 필요하다. 이를 해결하기 위해 어텐션에선 디코더가 모든 디코딩 타임스텝(timestep)마다 인코더의 각 상태에 다른 가중치(어텐션)를 할당한다. 이렇게 하면 가장 관련이 있는 입력 토큰에 초점을 맞출 수 있어서 복잡한 단어 정렬 문제 등의 학습이 가능해진다.
어텐션을 통해 번역 성능이 좋아졌지만, 인코더-디코더 순환 모델의 단점은 여전히 존재했다. 위 방식들은 태생적으로 계산이 순차적으로 수행되기 때문에 입력 시퀀스 전체에 걸쳐 병렬화가 불가능했다. 이러한 문제 해결을 위해 순환을 모두 없앤 셀프 어텐션(self-attention)이 고안되었다.
셀프 어텐션은 기본적으로 신경망의 같은 층에 있는 모든 상태에 대해 어텐션을 작동시킨다. 어텐션의 출력은 피드포워드 신경망(Feed-Foward Neural Network, FF NN)에 주입되며 순환 모델에 비해 훨씬 빠르게 훈련이 가능해 NLP의 혁신을 일으키게 된다.
트랜스포머 원논문에선 처음부터 다양한 언어의 문장 쌍으로 구성된 대규모 말뭉치에서 번역 모델을 훈련하였다. 그러나 실무에서 모델 훈련에 사용할 레이블링 된 대규모 텍스트 데이터의 확보가 쉽지 않았다. 이는 마지막으로 전이 학습을 통해 해결하게 된다.
컴퓨터 비전(Computer Vision) 분야에선 전통적으로 전이 학습을 통해 한 작업에서 훈련한 지식을 새로운 작업에 적용하는 경우가 많았다. 전통적인 지도 학습(supervised learning)과 비교하면 전이 학습은 적은 양의 레이블 데이터로 훨씬 효과적으로 훈련하는 높은 품질의 모델을 만들 수 있다는 장점을 가진다.
전이 학습은 먼저 대규모 데이터셋을 이용한 모델 훈련인 사전 훈련(pretraining)을 진행한 후, 미세 튜닝(fine-tuning)을 진행한다. 컴퓨터 비전에선 전이 학습이 표준이 되었지만, NLP에선 전이 학습과 유사한 사전 훈련 과정이 무엇인지 수년간 특정하지 못하였다.
그러나 ULMFiT 프레임워크를 통해 이러한 부분을 해결하게 된다. 2018년 셀프 어텐션과 전이 학습을 결합한 두 개의 트랜스포머 모델이 릴리즈 된다.