트랜스포머 (기계 학습)

Nessun (토론 | 기여)님의 2021년 1월 12일 (화) 04:00 판

트랜스포머(영어: Transformer)는 인공신경망 아키텍처의 한 종류로, 자연어 처리 분야에서 많이 쓰인다. 2017년 구글에서 나온 논문 Attention Is All You Need에서 처음 소개되었다.

배경

자연어와 같은 시퀀스 데이터를 처리하기 위해 기존에는 Recurrent Neural Network (RNN)이 많이 사용되었는데, 이 모델은 재귀적, 순차적인 구조로 되어 있어 GPU 활용이 나빠 학습 및 추론에 많은 시간이 소모되며 long-term dependency를 잘 학습하지 못한다는 단점이 있었다. 즉 RNN으로 학습한 언어 모델의 경우 문법 등의, 비교적 짧은 거리의 의존 관계는 잘 학습하지만 내용적인 일관성이 떨어지는 편이다. 이런 long-term dependency 문제를 해결하기 위해 LSTM 등의 Gated RNN이 많이 사용되었지만 결국 문제가 완전히 해결된 것은 아니었으며, 역시 순차적인 계산으로 인해 발생하는 병렬처리의 어려움은 해결할 수 없었다.

Long-term dependency 문제의 해결을 위해 attention이라는 기법이 개발되었다. 이 메커니즘은 RNN 모델이 지금 단계에서 어디를 봐야 하는지 결정하고 그 부분의 encoding을 직접 가져와 참조한다. 예를 들어 어떤 프랑스어 문장을 영어로 번역하는 모델의 경우, 영어의 주어를 생성할 때 프랑스어의 주어 부분에 높은 attention 점수가 부여되어 그 부분을 직접적으로 참조하게 된다. 기존의 sequence to sequence (seq2seq) 구조는 입력 문장을 하나의 벡터로 인코딩해 사용했지만, attention을 통해 입력 문장의 각 단어를 직접 연결하게 되면서 long-term dependency 문제가 많이 해결되었고, 상당한 성능 향상을 보였다.

Attention이 long-term dependency를 해결해주었지만, 아직 병렬 처리 문제가 남았다. 이 문제는 RNN의 순차적인 구조에서 발생하는데, 트랜스포머는 여기서 RNN을 없애고, attention만으로 시퀀스 데이터를 처리하도록 만들어 효과적인 병렬처리가 가능하도록 만들었다. 2010년대 후반 자연어처리 분야에서 놀라운 성능향상이 계속해서 보고되고 있는데, 그중 가장 큰 이유는 트랜스포머를 통해 효율적인 계산이 가능해지면서 모델의 매개변수 개수를 늘리면서도 어마어마한 양의 데이터를 때려넣어 학습할 수 있게 되었기 때문이다.