Transformer란? Attention으로 문맥을 한꺼번에 읽는 AI 구조

지난 글에서는 Attention(어텐션)이 현재 필요한 정보와 입력 전체를 비교해 중요한 부분에 더 높은 가중치를 주는 원리를 살펴봤습니다. 그렇다면 이 Attention을 보조 기능이 아니라 모델의 중심 구조로 사용하면 어떻게 될까요?

Transformer(트랜스포머)는 Self-Attention을 중심으로 문맥을 처리하는 신경망 구조입니다. 단어를 반드시 처음부터 하나씩 읽으며 기억을 넘기는 대신, 입력 안의 여러 단어 관계를 직접 비교합니다. 현재 널리 쓰이는 언어 모델의 기반을 이해하려면 먼저 알아야 할 구조입니다.



Transformer는 왜 등장했을까?

RNN과 LSTM은 순서가 있는 데이터를 처리할 때 이전 단계의 상태를 다음 단계로 전달합니다. 하지만 이런 순차 구조는 문장이 길어질수록 먼 정보를 연결하기 어렵고, 앞 단계의 계산이 끝나야 다음 단계를 처리할 수 있다는 제약이 있습니다.

2017년 발표된 Attention Is All You Need 논문은 순환 구조나 합성곱 없이 Attention을 중심으로 만든 Transformer를 제안했습니다. 핵심은 입력의 각 위치가 다른 모든 위치를 직접 참고하게 만드는 것입니다.

Transformer의 핵심은 Self-Attention

Self-Attention은 문장 안의 각 단어가 같은 문장의 다른 단어를 살펴보고, 자신을 이해하는 데 얼마나 중요한지 계산하는 방식입니다.

예를 들어 “철수가 영희에게 책을 주었고, 그녀는 웃었다”라는 문장에서 ‘그녀’의 의미를 파악하려면 ‘영희’와의 관계가 중요합니다. Self-Attention은 두 단어가 멀리 떨어져 있어도 직접 관련도를 계산할 수 있습니다.

지난 글에서 알아본 Query·Key·Value도 여기서 사용됩니다. 각 입력 표현으로부터 Query, Key, Value를 만들고, Query와 Key의 관련도에 따라 Value를 섞어 문맥이 반영된 새로운 표현을 만듭니다.

입력에는 단어 의미와 위치가 함께 들어간다

Transformer는 입력 문장을 먼저 토큰이라는 작은 단위로 나누고, 각 토큰을 숫자 벡터인 임베딩으로 바꿉니다. 다만 Self-Attention만으로는 단어의 순서를 자동으로 알 수 없으므로 각 위치를 나타내는 위치 정보도 더합니다.

  • 토큰 임베딩: 단어나 부분 단어의 의미를 담습니다.
  • 위치 정보: 문장 안에서 몇 번째에 놓였는지 알려줍니다.

따라서 같은 단어라도 놓인 위치와 주변 문맥에 따라 이후 층에서 서로 다른 표현으로 바뀔 수 있습니다.

Encoder와 Decoder는 무엇을 할까?


원래 논문에서 제안한 전체 Transformer는 크게 Encoder(인코더)Decoder(디코더)로 나뉩니다.

Encoder: 입력 문맥 이해하기

Encoder는 입력 토큰 전체를 받아 각 토큰이 주변 토큰과 어떤 관계를 맺는지 계산합니다. Self-Attention 뒤에는 각 위치의 표현을 가공하는 피드포워드 신경망이 이어지며, 이 구조를 여러 층 쌓아 더 복잡한 문맥 표현을 만듭니다.

Decoder: 다음 토큰 생성하기

Decoder는 앞에서 생성한 토큰과 Encoder가 만든 문맥 표현을 참고해 다음 토큰을 예측합니다. 정답이 될 미래 토큰을 미리 보지 못하도록 마스킹된 Self-Attention을 사용하고, 한 토큰을 만든 뒤 그 결과를 다시 입력에 포함해 다음 토큰을 생성합니다.

번역 모델이라면 Encoder가 원문을 문맥 표현으로 바꾸고, Decoder가 이를 참고해 번역문을 순서대로 만듭니다. Google의 Transformer 입문 설명에서도 전체 구조를 입력을 표현하는 Encoder와 결과를 생성하는 Decoder로 구분합니다.

Multi-Head Attention은 왜 필요할까?

하나의 Attention 계산만 사용하면 한 가지 관계에 치우칠 수 있습니다. Multi-Head Attention(멀티헤드 어텐션)은 여러 개의 Attention을 병렬로 수행한 뒤 결과를 합칩니다.

각 헤드에 특정 역할을 사람이 지정하는 것은 아니지만, 학습 과정에서 어떤 헤드는 주어와 동사의 관계에, 다른 헤드는 대명사가 가리키는 대상이나 멀리 떨어진 단어의 의미 관계에 반응할 수 있습니다. 여러 관점으로 문맥을 살펴보는 셈입니다.

Transformer가 RNN·LSTM과 다른 점

  • RNN·LSTM: 입력을 순서대로 처리하며 이전 상태를 다음 시점으로 넘깁니다.
  • Transformer Encoder: 입력의 여러 위치 관계를 병렬로 계산할 수 있습니다.
  • Transformer Decoder: 문맥은 Attention으로 처리하지만 결과 토큰은 일반적으로 앞에서부터 차례로 생성합니다.

따라서 “Transformer는 모든 계산을 완전히 동시에 한다”라고 이해하면 정확하지 않습니다. 학습 중 입력 문맥 처리는 병렬화하기 좋지만, 실제 문장 생성은 이전 출력에 의존하므로 순차적인 단계가 남습니다.

Transformer의 장점과 한계

장점

  • 멀리 떨어진 토큰 사이의 관계를 직접 계산할 수 있습니다.
  • 입력의 여러 위치를 병렬로 처리하기 쉬워 대규모 학습에 적합합니다.
  • 층과 헤드를 쌓아 다양한 문맥 관계를 학습할 수 있습니다.
  • 텍스트뿐 아니라 이미지, 음성 등 여러 종류의 데이터에도 응용할 수 있습니다.

한계

  • 기본 Self-Attention은 입력 길이가 늘면 비교해야 할 관계와 메모리 사용량이 크게 증가합니다.
  • 큰 모델을 학습하고 실행하려면 많은 데이터와 계산 자원이 필요할 수 있습니다.
  • 문맥 관계를 잘 계산해도 사실을 항상 정확히 이해하거나 답한다는 뜻은 아닙니다.

Encoder만 또는 Decoder만 쓰기도 한다

모든 Transformer가 두 부분을 항상 함께 사용하는 것은 아닙니다. 입력의 의미를 분석하거나 분류하는 작업에는 Encoder 중심 구조를 사용할 수 있고, 앞 문맥에 이어지는 텍스트 생성에는 Decoder 중심 구조가 적합합니다. 번역처럼 입력을 이해한 뒤 다른 출력을 만드는 작업에서는 Encoder와 Decoder를 함께 사용하는 구조가 자연스럽습니다.

한눈에 정리하기

  • Transformer는 Self-Attention을 중심으로 문맥을 처리합니다.
  • 입력 임베딩에 위치 정보를 더해 단어의 순서를 구분합니다.
  • Encoder는 입력 문맥을 표현하고 Decoder는 다음 토큰을 생성합니다.
  • Multi-Head Attention은 여러 관점에서 토큰 관계를 계산합니다.
  • 병렬 처리와 먼 관계 파악에 유리하지만 긴 입력의 계산 비용은 부담이 될 수 있습니다.

다음 글에서는 Transformer를 바탕으로 방대한 텍스트 패턴을 학습하는 LLM(Large Language Model, 대규모 언어 모델)이 무엇인지 알아보겠습니다.

댓글

이 블로그의 인기 게시물

AI의 학습 과정

AI란 무엇일까?

머신러닝 - AI는 어떻게 스스로 규칙을 찾을까?