🤖 Data Study/ML-DL

트랜스포머(Transformer)

데이터분석가SIENNA 2024. 8. 8. 16:48

  트랜스포머(Transformer)는 주로 자연어 처리 작업에 사용되는 딥러닝 모델로 RNN이나 LSTM과 같은 순환 신경망을 사용하지 않고, 입력 시퀀스의 중요한 부분에 초점을 맞춰 문맥을 파악하는 데 사용되는 어텐션 메커니즘에 완전히 의존한다. 이로 인해 긴 시퀀스도 효율적으로 처리할 수 있으며 병렬 처리가 가능하여 학습 속도가 빠르다.

  트랜스포머 모델은 인코더(Encoder)와 디코더(Decoder)의 두 주요 구성요소로 나뉜다. 이들은 각각 N개의 트랜스포머 블록(Transformer Block)으로 구성된다. 이 블록은 멀티 헤드 어텐션(Multi-Head Attention)과 순방향 신경망(Feed-Forward Network)으로 이루어져 있다. 이러한 구성요소를 통해 입력 시퀀스의 복잡한 패턴과 의존성을 효과적으로 학습하고, 높은 성능을 낼 수 있다.

 

(1) Multi Head Attention

  멀티 헤드 어텐션(Multi Head Attention)은 입력 시퀀스들의 관계를 셀프 어텐션(Self Attention)하는 방법이다. 셀프 어텐션은 입력 시퀀스 내의 각 요소가 시퀀스 내 다른 모든 요소들과의 관계를 고려하여 자기 자신을 재조정하는 방법이다. 아래 그림과 같이 멀티 헤드 어텐션은 입력 시퀀스를 여러 개의 쿼리(Query, Q), 키(Key, K), 값(Value, V) 벡터로 정의하고, 아래 식을 사용하여 여러 개의 스케일드 닷 프로덕트 어텐션(Scaled Dot-Product Attention)을 병렬로 수행한다.

 

Scaled Dot-Product Attention과 Multi-Head Attention 구조

 

Scaled Dot-Product Attention Function

 

  먼저 Q와 K의 dot product 연산을 통해 어텐션 스코어 행렬을 얻고, 그 결과를 루트 dk로 나누어 스케일링한다. 이에 소프트맥스 함수를 적용하면 값 벡터 V에 대한 가중치를 얻을 수 있다. 그 다음 헤드별로 가중합을 계산 후 모든 헤드의 출력을 결합하여 그 출력을 선형 변환해 최종 출력을 얻는다. 어텐션 값을 한 번에 계산하지 않고 헤드 수만큼 나눠서 계산한 후 나중에 값들을 합쳐 모델이 다양한 시각에서 정보를 통합할 수 있도록 하는 구조이다. 이는 문맥 정보를 효과적으로 통합할 수 있도록 한다.

 

(2) Positional Encoding

  트랜스포머는 앞서 살펴본 바와 같이 어텐션 메커니즘을 핵심으로 한다. 다만, 어텐션 메커니즘 자체는 순서 정보를 포함하지 않아 위치 인코딩(Positional Encoding) 기법으로 시퀀스 내의 순서 정보를 모델에 제공해야 한다. 위치 인코딩은 시퀀스의 각 단어에 대해 고유한 위치 정보를 부여하는 방법이다. 일반적으로 사인 및 코사인 함수를 사용해 생성하며, 이를 통해 임베딩 벡터와 위치 정보가 결합된 최종 입력 벡터를 생성할 수 있다. 이는 모델이 시퀀스 내 위치 정보를 비교적 쉽게 학습할 수 있도록 돕는다. 아래 식을 통해 인코딩 벡터를 계산할 수 있다. 식에서 pos는 단어의 위치, i는 차원의 인덱스, dmodel은 모델의 임베딩 차원이다. 짝수 인덱스에는 sin 함수를, 홀수 인덱스에는 cos함수를 사용하여 위치 정보를 생성한다.

 

(3) Encoder-Decoder Architecture

  트랜스포머는 아래 그림과 같이 인코더와 디코더의 두 가지 주요 부분으로 구성된다.

 

Transformer 모델 구조

 

  인코더의 입력 임베딩(Input Embedding)에서는 입력 시퀀스를 받아 고차원 벡터로 변환한다. 그 다음, 위치 인코딩을 통해 입력 임베딩 벡터에 위치 정보를 더한다. N개의 각 인코더 블록은 멀티헤드 어텐션과 순방향 신경망으로 구성된다. 디코더는 인코더의 출력을 받아 목표 시퀀스를 생성한다. 디코더 역시 인코더와 마찬가지로 입력 임베딩과 위치 인코딩, N개의 디코더 블록으로 이루어져 있다. 각 블록은 마스크드 멀티헤드 어텐션(Masked Multi-Head Attention), 멀티헤드 어텐션, 순방향 신경망으로 구성된다. 마스크드 멀티헤드 어텐션은 디코더의 입력 시퀀스에 대해 셀프 어텐션을 수행하지만 미래의 시퀀스를 마스킹하여 예측에 영향을 미치지 않도록 한다. 디코더의 최종 출력은 소프트맥스 함수를 통해 다음 단어의 확률 분포로 변환되어 최종 출력 단어를 예측한다. 이러한 인코더와 디코더의 상호작용을 통해 트랜스포머 모델은 입력 시퀀스의 문맥 정보를 종합하여 자연어 처리 작업을 수행한다.

 


  • Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems, 5998-6008