본문 바로가기

데이터/Machine Learning

Transformer 기반 모델의 3가지 아키텍처(Encoders, Decoders, Encoder-Decoders)에 대해 알아보자

최근 자연어처리 분야에서 가장 핫한 모델은 당연히 GPT일 것이다. GPT는 Generative Pretrained Transformer의 약자로, Transformer의 Decoder만 사용하여 자연어 생성에 강한 모델이다. 이 글을 통해 Transformer를 사용한 모델들의 아키텍쳐 3가지(인코더 기반, 디코더 기반, 인코더-디코더 기반)를 살펴보고자한다.

 

Transformer의 역할(출처 : Reference 참고)

 

Seq-to-Seq

Transformer를 이해하기 전에 우선 seq-to-seq 구조에 대해 알아야한다. seq-to-seq 구조란 sequence 자료구조(데이터를 순서대로 나열한 자료구조이며, 그 순서 순서가 의미가 있다)를 입력받아, sequence로 출력하는데 대표적으로 자연어가 sequence자료구조이다. seq-to-seq 구조는 두 개의 주요 구성 요소, 즉 인코더와 디코더를 사용하여 입력 시퀀스를 출력 시퀀스로 변환하는 역할을 한다. 

 

 

인코더(Encoder)

인코더는 입력 시퀀스(예: 문장, 문단, 문서 등)를 받아들여 고정된 길이의 벡터로 변환한다. 이 벡터는 입력 데이터의 모든 필수 정보를 압축적으로 담고 있으며, 이를 context vector, hidden state 등으로 부른다.. 인코더는 주로 RNN, LSTM, GRU와 같은 순환 신경망 또는 Transformer와 같은 어텐션 메커니즘을 사용하여 시퀀스 데이터의 시간적 특성과 문맥을 학습한다. 즉, 인코더의 역할은 주어진 입력 문장을 잘 이해하는 것이다. 정확히는 입력 데이터를 잘 이해할 수 있는 representation을 학습하는 것이다.

디코더(Decoder)

디코더는 인코더에서 생성된 컨텍스트 벡터를 입력으로 받아 출력 시퀀스를 생성한다. 이 과정에서 디코더는 매 Time step마다 하나의 요소(예: 단어, 토큰)를 생성하며, 이전 단계에서 생성된 출력을 참조하여 다음 단계의 출력을 예측한다. 디코더 역시 RNN, LSTM, GRU를 사용할 수 있으며, Transformer 모델에서는 어텐션 메커니즘이 활용된다. 즉, 디코더는 인코더의 상태와, 디코더가 생성한 이전 단어들을 입력으로 받아 그 다음 단어(토큰)을 생성하는 역할을 한다. 정확히는 매 time step마다, vocabulary에 있는 모든 token 들의 확률 분포를 계산하고, 가장 높은 확률을 가진 단어를 출력하는 classification 문제라고 볼 수 있다. (Text Generation은 자연스러운 발화 또한 중요시 하므로, 가장 높은 확률을 가진 단어만 출력하는 것보다, Top-p sampling, Top-k sampling, Beam search 등의 디코딩 알고리즘을 사용하는 게 일반적이다. 관심있는 독자는 찾아보길 바란다)

 

 

3가지 타입의 아키텍쳐

NLP에는 다양한 문제가 있는데 내가 풀고자하는 문제에 맞는 적절한 아키텍쳐를 찾는 것이 중요하다. 또한 사전학습된 모델을 이용하면, 적은 데이터로도 SFT(Supervised Fine Tuning)을 통해 좋은 성능을 발휘할 수 있다.

Decoders 

- Transformer의 디코더만 사용하는 아키텍쳐

- 단어를 생성하기 위한 Language Model로 사용된다.

- 미래의 단어는 참조할 수 없다.

- 자연어 생성에 강하다.

- 대표적 모델 : GPT-2, GPT-3, GPT-4 등

GPT의 추론 과정

Encoders

- Transformer의 인코더만 사용하는 아키텍쳐

- 미래 단어도 참조하여 양방향으로 학습한다.

- 양방향의 단어를 참조하기에 이전까지의 단어만 보고 다음 단어를 생성하는 Language Model로는 사용이 어렵다.

- 자연어 이해 강하다.

- 대표적 모델 : BERT, RoBERTa

BERT의 학습 과정

 

Encoder-Decoders

- Transformer의 인코더와 디코더를 사용한 아키텍쳐

- 번역 등 이해와 생성 둘 다 중요한 경우에 좋은 성능을 발휘한다.

- 대표적 모델 : Transformers, T5

Transformer

 

---

Reference

https://jalammar.github.io/illustrated-transformer/

 

The Illustrated Transformer

Discussions: Hacker News (65 points, 4 comments), Reddit r/MachineLearning (29 points, 3 comments) Translations: Arabic, Chinese (Simplified) 1, Chinese (Simplified) 2, French 1, French 2, Italian, Japanese, Korean, Persian, Russian, Spanish 1, Spanish 2,

jalammar.github.io

https://jalammar.github.io/illustrated-bert/

 

The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning)

Discussions: Hacker News (98 points, 19 comments), Reddit r/MachineLearning (164 points, 20 comments) Translations: Chinese (Simplified), French 1, French 2, Japanese, Korean, Persian, Russian, Spanish 2021 Update: I created this brief and highly accessibl

jalammar.github.io

https://jalammar.github.io/illustrated-gpt2/

 

The Illustrated GPT-2 (Visualizing Transformer Language Models)

Discussions: Hacker News (64 points, 3 comments), Reddit r/MachineLearning (219 points, 18 comments) Translations: Simplified Chinese, French, Korean, Russian, Turkish This year, we saw a dazzling application of machine learning. The OpenAI GPT-2 exhibited

jalammar.github.io