본문 바로가기
AI/Deep Learning

[Transformer 정리] 02. 트랜스포머 기본 구조

by je0nsye0n 2025. 1. 13.

트랜스포머는 인코더와 디코더 두 부분으로 구성되어 있으며, 각각 N개의 트랜스포머 블록(Transformer Block)으로 구성된다. 이 블록은 멀티 헤드 어텐션(Multi-Head Attention)과 순방향 신경망(Feed Forward)으로 이루어져있다.

이제 각각을 간단하게 살펴보자.

출처 : Attention is All You Need

Multi-Head Attention

입력 시퀀스에서 쿼리(Query), 키(Key), rkqt(Value) 벡터를 정의하여 입력 시퀀스들의 관계를 셀프 어텐션(Self Attention)하는 벡터 표현 방법이다. 이 과정에서 쿼리와 각 키의 유사도를 계산하고, 해당 유사도를 가중치로 사용하여 값 벡터를 합산한다.

→ 해당 과정에서 생산된 어텐션 행렬은 각 단어의 임베딩 벡터를 대체하는 것이다.

 

# Q, K, V란?
  • Query : 이 단어(토큰)가 다른 단어들과 상호작용할 때 어떤 기준을 갖고 정보를 검색하는지
  • Key : 각 단어(토큰)에 대한 고유한 “특징”을 의미
  • Value : 실제로 쿼리가 해당 키와의 관계를 통해 검색해낸 결과
# Q, K, V의 관계
   
    Value = 어텐션 가중치(Query와 Key의 유사도)를 사용하여 계산

 

Feed Forward

앞서 산출된 임베딩 벡터를 더욱 고도화하기 위해 사용된다.

이 신경망은 여러 개의 선형 계층으로 구성되어 있으며, 순방향 신경망의 구조와 동일하게 입력 벡터에 가중치를 곱하고 편향을 더하며 활성화 함수를 적용한다. 이 과정에서 가중치들은 입력 시퀀스의 각 단어의 의미를 잘 파악할 수 있는 방식으로 갱신된다.

 

 

인코더와 디코더

  • 트랜스포머는 입력 시퀀스 데이터를 소스(Source)와 타깃(Target) 데이터로 나누어 처리한다.

(예) 영 → 한 번역의 경우 : 참조하는 언어인 영어는 소스 데이터, 생성하는 언어인 한글은 타깃 데이터

인코더 소스 데이터를 위치 인코딩(Positional Encoding)된 입력 임베딩으로 표현하여 트랜스포머 블록의 출력 벡터를 생성한다. 이 출력 벡터는 입력 시퀀스 데이터의 관계를 잘 표현할 수 있게 구성된다.

Encoder 소스 데이터를 위치 인코딩(Positional Encoding)된 입력 임베딩으로 표현하여 트랜스포머 블록의 출력 벡터를 생성한다. 이 출력 벡터는 입력 시퀀스 데이터의 관계를 잘 표현할 수 있게 구성된다.
Decoder 인코더와 유사하게 트랜스포머 블록으로 구성되어 있지만, 마스크 멀티 헤드 어텐션(Masked Multi-Head Attention)을 사용하여 타깃 시퀀스 데이터를 순차적으로 생성한다. 이 때 디코더의 입력 시퀀스들의 관계를 고도화하기 위해 인코더의 출력 벡터 정보를 참조한다.

 

 

[Ref] 자연어 처리와 컴퓨터비전 심층학습(위키북스)