1. 트랜스포머란?
트랜스포머(Transformer)는 셀프 어텐션(self-attention) 기법을 사용하여 학습 속도를 빠르게 하고 메모리 문제를 해결한 인코더-디코더(encoder-decoder) 모델로서 2017년 구글 브레인(Google Brain) 팀의 연구원들이 공개한 논문 <Attention Is All You Need>에서 제안되었습니다.
트랜스포머(Transformer)는 인공지능 분야에서 사용되는 딥러닝 모델로 자연어 처리(NLP, Natural Language Processing) 분야에서 혁신적인 성과를 이루었습니다. 이 모델은 RNN(순환 신경망)을 사용하지 않고 인코더-디코더 구조를 설계했음에도 성능이 RNN보다 우수하다고 평가됩니다.
OpenAI사의 ChatGPT(Generative Pre-trained Transformer)라는 이름이 보여주듯이, GPT3.5의 기반 Architecture로 활용되어 자연어 처리 과정에 핵심적인 역할을 하고 있습니다. 자연어 처리에 사용되는 여러 딥러닝 모델 중 가장 놀라운 진전을 보여준 것이 트랜스포머 모델입니다.
2. 트랜스포머(Transformer)의 핵심 원리
앞서 나온 딥러닝 모델 RNN(Recurrent Neural Network, 순환 신경망)은 시퀀스 단위로 문장을 처리하기 때문에 시퀀스가 길어질수록 메모리 소비가 많이 되고 디코딩이 어려워진다는 단점이 있었고, 따라서 어텐션을 통해 디코더(decoder)의 모든 은닉 상태(hidden-state) 단계가 인코더(encoder)의 어떤 은닉 상태와 가장 가까운지 정렬 점수(alignment score)를 계산하는 기법이 고안되었습니다. 그런데 이러한 어텐션은 단순히 정렬만 고려하므로 멀리 떨어진 문장 내 단어들의 관계를 파악할 수 없었습니다. 이에 트랜스포머에서는 셀프 어텐션(Self attention)을 사용하여 디코더뿐만 아니라 인코더의 입력으로 들어오는 문장의 단어들이 어떤 단어와 가장 관계가 있는지를 계산하였습니다.
셀프 어텐션은 트랜스포머의 주요한 작동 원리이며 인코더와 디코더에서 모두 사용됩니다. 그리고 이를 적용한 트랜스포머의 아키텍처는 아래의 그림과 같습니다.
왼쪽 박스는 인코더이며 오른쪽 박스는 디코더입니다. 인코더 내 블록과 디코더 내 블록이 여러 개로 구성되어 있다는 것을 나타내기 위해 Nx로 표시하였습니다.
1) 트랜스포머는 인코더에 들어가기 전 먼저 입력 문장에 positional encoding을 사용하여 단어들의 위치 정보를 반영하는 작업을 합니다. 입력 문장에 바로 셀프 어텐션만 한다면 문장 내 단어와 다른 단어들 사이의 관계가 똑같이 처리되기 때문에 순서 정보가 중요한 문장의 의미를 파악할 수 없습니다. 따라서 기존의 임베딩 벡터에 좌표로 할당된 positional encoding만큼 값을 더해서 인코더에 넣어 이러한 문제에 대처할 수 있도록 하였습니다.
2) Positional encoding을 거친 벡터는 인코더에서 문장 내 정보들을 학습하는데, 멀티 헤드 어텐션(Multi-head attention)을 통해 여러 개의 헤드(h)에서 셀프 어텐션을 수행하고 각각 나온 어텐션 점수를 합산하여 최종 어텐션 점수를 산정합니다. 트랜스포머 모델에서는 8개의 헤드로 구성하였는데, 이는 하나의 헤드에서 64차원으로 8번을 각각 다른 가중치로 계산해서 합친 것입니다. 멀티 헤드 어텐션의 결과, 헤드의 차원 수가 감소되어 셀프 어텐션의 헤드 하나로만 연산한 비용과 비슷한 효과를 낼 수 있고, 여러 개의 헤드에서 병렬적으로 연산이 이루어지면서 연산 속도가 빠르며, 각 헤드에서는 단어들 사이의 관계 정보를 다양한 측면에서 학습함으로써 새로운 정보를 얻을 기회가 더 많아지게 되는 것입니다. (아래 도표 참조)
3) 디코더에서도 인코더와 비슷한 작업을 수행하는데, 다만 인코더와 달리 masking을 통해 다음에 나오는 단어들을 가리는 Masked Multi-head attention 방식을 사용하여 진행합니다. 셀프 어텐션은 문장 전체를 보는 구조로서 다음에 등장하게 될 단어를 미리 학습하기 때문에 예측 모델의 의미가 없어진다는 문제가 있습니다. 그런데 인코더에서는 학습만 수행하면 되므로 문제가 되지 않지만, 출력을 해야 하는 디코더에서는 문제가 되는 것입니다. 따라서 Masked Multi-head attention으로 다음에 등장할 단어들에 마스킹을 해서 그 단어들을 보지 못하게 한다. 위그림의 좌측 Scaled dot-product attention에 나타난 Mask 단계의 (opt.) 표기는 디코더에서만 적용되는 기능임을 보여주는 것입니다.
그리고 디코더를 통과한 벡터는 Linear layer와 softmax layer로 들어간 후 다음 등장할 단어에 대해 가장 확률이 높은 값을 출력합니다. 트랜스포머 아키텍처는 이러한 단계를 거쳐 학습 시간을 줄이고 메모리 문제를 해결하였습니다.
3. 트랜스포머(Transformer)의 응용 분야
트랜스포머 모델은 자연어 처리(NLP) 분야뿐만이 아니라, 인공지능의 여러 분야에서 활용되고 있습니다. 이 모델이 활용되는 분야를 간략하게 알아봅니다.
1) 트랜스포머는 텍스트와 음성을 거의 실시간으로 옮겨 청각 장애인 등 다양한 청중의 회의와 강의 참여를 지원합니다.
2) DNA의 유전자 사슬과 단백질의 아미노산에 대한 이해를 도와 신약 디자인을 가속하기도 하는 등 의약 분야에서도 활용됩니다.
3) 트랜스포머는 트렌드와 이상 징후를 감지해 부정 방지, 제조 간소화, 온라인 추천, 헬스케어 개선 등에 기여합니다.
4) 우리가 구글이나 마이크로소프트 빙(Microsoft Bing)에서 검색할 때에도 트랜스포머를 사용합니다.
순차적 텍스트나 이미지, 비디오 데이터를 사용하는 애플리케이션은 무엇이든 트랜스포머 모델이 될 수 있습니다. 이는 트랜스포머 AI의 선순환으로 이어집니다. 대규모 데이터세트로 구축된 트랜스포머들은 정확한 예측을 통해 자신들의 보다 효과적인 쓰임새를 찾아내고, 이에 힘입어 더 많이 생성한 데이터로 더 나은 모델을 구축할 수 있게 됩니다.
스탠퍼드대학교 연구진은 2021년에 발표한 논문에서 트랜스포머를 “파운데이션 모델(foundation model)”로 일컬은 바 있습니다. 이 모델이 AI의 패러다임 변화를 견인하고 있다고 봤기 때문인데요. “지난 몇 년 사이 등장한 파운데이션 모델의 놀라운 규모와 범위는 우리가 가능하다고 상상하는 것들의 범주를 넓혀왔다”라고 평가했습니다.
2023.07.03 - [생성형 AI(Generative AI; GAI)] - ChatGPT 자세히 알아보기
'생성형 인공지능(Generative AI; GAI) > 생성형 AI의 주요 기술 및 알고리즘' 카테고리의 다른 글
ChatGPT의 자연어 처리(NLP) - 인코딩 프로세스(Encoding Process)와 토큰화(Tokenization) 과정 (0) | 2023.07.10 |
---|---|
자연어처리(NLP) 알고리즘 - Word2Vec vs Transformer 모델 (0) | 2023.07.06 |
생성형 AI의 주요 기술(2) - VAE(Variational Autoencoder) (0) | 2023.06.29 |
생성형 AI의 주요 기술 (1) - GAN(Generative Adversarial Network, 생성적 대립 신경망) (0) | 2023.06.26 |
댓글