포스테키안

2023 178호 / 기획특집 ➁ / ChatGPT

2023-05-09 674

ChatGPT의 핵심, Transformer

지금까지 GPT를 이해하는 데 필요한 기본적인 딥러닝 지식과 자연어 처리를 공부해 보았습니다. 그러나 자연어 처리를 연구하는 과학자들은 훨씬 더 많은 데이터까지 효과적으로 학습시키기 위한 고민을 해왔는데요. 그리고 그 문제를 해결해 준 것이 바로 GPT의 심장이라고 할 수 있는 트랜스포머입니다. 이 방법이 얼마나 효과적이길래 ChatGPT는 전 세계를 뒤흔들 수 있었던 걸까요? 이번 페이지에서 그 내용을 알아보겠습니다!

 

GPT의 개요

ChatGPT에서 GPT의 전체 이름은 Generative Pre-trained Transformer로, 한국말로 하면 ‘트랜스포머로 사전 학습된 생성 모델’이라고 할 수 있습니다. 아직 생소한 단어가 많이 보이실 텐데, 이해를 돕기 위해 GPT의 전체적인 구조를 설명해 보겠습니다. 사전에 어떤 문제(Task)를 해결하는 방법을 학습한 모델을 ‘학습된 신경망(Pretrained Model)’이라고 합니다. 즉, GPT는 우리가 사용하기 전에 이미 대량의 데이터로부터 특정 문제를 해결하는 방법을 학습하고 우리가 질문하면 질문에 맞게 답변을 생성(Generation)한 것이죠. 그렇다면, 그 학습은 어떻게 진행되었을까요? GPT가 사용하는 학습 모델은 트랜스포머(Transformer)입니다.  트랜스포머는 2017년에 개발된 자연어 처리 모델로 현재 자연어 처리 분야에서 사용되는 모델 대부분은 트랜스포머에서 파생되었을 정도로 정말 중요한 모델이죠.

 

그림1. ChatGPT의 전체적인 구조(출처: https://fourweekmba.com/how-does-chatgpt-work/)

이렇게 완성된 GPT의 사전 학습된 모델은 더 좋은 성능을 위해 비슷하거나 전혀 다른 새로운 분야에서 테스트를 진행하기도 합니다. 이를 전이학습(Transfer Learning)이라고 하는데요. 전이학습을 통해 특정 데이터에 대답을 더 잘하는 가중치를 찾을 수 있습니다. 새로운 가중치와 이전에 찾았던 가중치 사이를 미세하게 조정해서 학습을 수정하는 것을 파인튜닝(Fine-tuning)이라고 합니다. 음악에 맞게 기타를 미세하게 조율하는 것처럼 데이터에 맞게 가중치를 조정하는 것이죠.

이렇게 GPT의 대략적인 구조를 다뤄보았는데요. 이해하기 어려운 부분이 있더라도, 우선은 GPT를 ‘트랜스포머 구조를 사용해 사전 학습된 생성 모델’이라는 하나의 작품으로 생각할 수 있다면 뒤에서 다룰 내용을 이해하는데 충분합니다. 그럼 이제 본격적으로 GPT의 심장인 트랜스포머를 알아보겠습니다.

 

Transformer: Attention Is All You Need

2017년 구글은 앞으로의 자연어 처리 모델을 뒤흔들 혁신적인 논문을 발표했습니다. 「Attention Is All You Need」라는 제목의 논문은 자연어 처리를 위한 새로운 모델인 트랜스포머(Transformer)를 제안했습니다. 트랜스포머는 자연어 처리 작업에서 뛰어난 성능과 높은 병렬 처리 능력을 제공할 수 있었기 때문에, 기존에 사용되는 RNN과 LSTM 기반의 시퀀스 모델링 기법을 대체할 수 있었죠. 트랜스포머 모델이 뛰어난 성능을 보일 수 있었던 이유는 특유의 어텐션 메커니즘(Attention Mechanism) 때문이었습니다. 간단히 설명하면, 어떤 문장이 입력됐을 때, 특정 부분에 더 집중(Attention)하여 정보를 처리하는 것인데요. 왜 자연어 처리 모델은 어텐션을 필요로 하게 되었을까요?

어텐션을 이해하기 위해서는 인코더(Encoder)-디코더(Decoder) 구조를 먼저 이해해야 합니다. 인코더에서는 입력 문장의 모든 단어들이 순차적으로 들어가는데요. 이는 컨텍스트 벡터(Context Vector)로 압축되어 디코더로 전달된 뒤, 상응하는 문장으로 출력됩니다.

 

그림2. 인코더-디코더 구조(출처: https://wikidocs.net/24996)

그런데 하나의 벡터에 모든 정보를 압축하려다 보니, 문장이 길어질수록 품질이 떨어졌습니다. 그래서 어텐션이 필요한 것이죠. 어텐션에서는 출력 단어를 예측하는 매 순간마다 인코더에 입력된 전체 문장과 그 순간 출력하는 단어와 관련된 입력 단어를 집중해서 봅니다.

그림3. 어텐션 메커니즘의 구조(출처: https://wikidocs.net/22893)

 

트랜스포머의 구조

지금까지 어텐션 메커니즘을 알아보았으니 드디어 트랜스포머를 완전히 이해하기 위한 준비가 끝났다고 할 수 있겠습니다. 어텐션은 인코더와 디코더 사이에서 쓰였는데, 생각해보면 입력되는 문장들과 출력되는 문장들 사이사이에도 관계가 존재하지 않나요? 즉, 인코더는 인코더끼리, 디코더는 디코더끼리 셀프어텐션(Self-attention)이 필요합니다. 셀프어텐션을 사용하면, 아래 문장에서 it이 animal과 연관되어 있다는 것을 더 정확하게 파악할 수 있습니다.

 

그림4. 셀프어텐션의 예시(출처: https://wikidocs.net/3137)

트랜스포머의 전체적인 구조는 다음 장의 그림5와 같습니다. 그리고 GPT는 트랜스포머 모델에서 디코더 부분만 사용해서 만든 모델입니다. 이는 GPT가 자연어를 처리할 때 이전 값을 바탕으로 다음 값을 예측하는 언어 생성 모델이기 때문입니다. 셀프어텐션이 사용되기 때문에, 디코더 부분만 있어도 이전 값을 바탕으로 다음 값을 예측할 수 있어 언어를 생성하는 최적의 모델이 탄생했습니다.

 

그림5. 트랜스포머의 구조

(출처: https://ratsgo.github.io/nlpbook/docs/language_model/bert_gpt/)

위 그림의 디코더에서 확인할 수 있는 Masked Multi-Head Attention의 Mask는 가려진다는 것을 의미합니다. 예를 들어 ‘어제 카페 갔었어. 거기 사람 많더라.’라는 문장에서 ‘카페’라는 단어를 예측해야 한다면 그 앞에 있는 ‘어제’라는 단어만 참고할 수 있도록 해줍니다. 다음으로는 ‘어제 카페’라는 부분을 제외한 문장이 가려지고 ‘갔었어’를 예측해야 하죠.

그림6. GPT의 구조

(출처: https://ratsgo.github.io/nlpbook/docs/language_model/bert_gpt/)

GPT가 디코더만을 사용한 모델이라면 인코더만을 사용한 모델도 있습니다. 이 모델은 BERT라고 하는데, GPT가 언어 생성에 강점이 있는 반면 BERT는 문장의 의미를 추측하고 추출하는 데 큰 장점이 있다고 합니다. 두 모델 모두 트랜스포머로부터 파생된 모델로서 현재 자연어 처리 분야의 대부분에 활용되고 있죠. 이렇게 생각해보면 트랜스포머는 정말 어텐션으로부터 자연어 처리에 필요한 모든 것을 제공해 준 셈입니다.

그림7. GPT와 BERT

(출처: https://ratsgo.github.io/nlpbook/docs/language_model/bert_gpt/)

이번 페이지에서는 세계가 그토록 열광한 GPT가 무엇인지 그 원리를 알아보았습니다. 이를 알고 나니, 어텐션은 자연어 처리에서 우리가 필요한 모든 것을 의미한다는 논문의 제목에서 남다른 센스가 느껴지네요! 구글이 개발한 트랜스포머 덕분에 OpenAI가 GPT를 만들 수 있었지만, 마이크로소프트가 OpenAI에 투자해 Bing을 만들어서 구글을 위협하는 경쟁자가 되었다는 게 아이러니하면서도 재미있지 않나요? 다음 페이지에서는 GPT의 미래를 다뤄보겠습니다.

 

(글) 컴퓨터공학과 21학번  27기 알리미 하태혁

 

[참고자료]
1. Ashish Vaswani, 「Attention Is All You Need」, 2017.03.06, 
chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://arxiv.org/pdf/1706.03762.pdf
2. 안상준, 유원준, 「딥 러닝을 이용한 자연어 처리 입문」, 『WikiDocs』, 
   https://wikidocs.net/book/2155