2017년 구글 브레인이 발표한 논문 "Attention Is All You Need" 에서 소개된 모델.
📄 논문 원문 링크
트랜스포머란?
트랜스포머는 RNN을 전혀 사용하지 않고, 오직 어텐션(Attention) 메커니즘만으로 인코더와 디코더를 설계한 모델이다.
처음에는 자연어 처리(NLP) 분야에서만 사용되었지만, 이후 컴퓨터 비전 을 비롯한 다양한 분야로 확장되어 현재는 AI의 핵심 아키텍처로 자리잡았다.
트랜스포머를 기반으로 만들어진 대표적인 모델들:
- BERT — 구글의 양방향 언어 표현 모델
- GPT 시리즈 — OpenAI의 생성형 언어 모델
- AlphaFold 2 — DeepMind의 단백질 구조 예측 모델
기존 Seq2Seq 모델의 한계
트랜스포머가 등장하기 전, 시퀀스-투-시퀀스(Seq2Seq) 모델이 자연어 처리의 주류였다.
Seq2Seq 구조
Seq2Seq는 인코더-디코더 구조로 구성된다.
- 인코더(Encoder): 입력 시퀀스 전체를 읽어 하나의 고정된 벡터로 압축
- 디코더(Decoder): 인코더가 만든 벡터를 바탕으로 출력 시퀀스를 생성
핵심 문제점
문제 설명
| 정보 손실 | 입력 시퀀스가 길수록 하나의 벡터에 모든 정보를 담기 어렵다 |
| Vanishing Gradient | 시퀀스가 길어질수록 앞부분의 정보가 사라지는 기울기 소실 문제 발생 |
이를 보완하기 위해 어텐션(Attention) 이 도입되었지만, 기존에는 어텐션을 RNN의 보조 수단으로만 활용했다.
트랜스포머의 핵심 아이디어
"어텐션을 RNN 보정용으로만 쓸 게 아니라, 어텐션만으로 인코더와 디코더를 통째로 만들면 어떨까?"
이것이 트랜스포머의 출발점이다.
트랜스포머의 주요 하이퍼파라미터
트랜스포머 논문에서 제시한 기본 하이퍼파라미터 값들. 모델 설계 시 목적에 맞게 변경 가능하다.
d_model = 512
- 인코더와 디코더의 입력·출력 차원 크기
- 임베딩 벡터의 차원도 동일하게 d_model을 따름
- 인코더와 디코더 사이에서 값을 주고받을 때도 이 차원을 유지
num_layers = 6
- 인코더와 디코더를 각각 몇 개의 층(Layer)으로 쌓는지 를 의미
- 논문에서는 인코더 6개 + 디코더 6개 사용
num_heads = 8
- 어텐션을 여러 개로 분할해 병렬로 수행하는 멀티-헤드 어텐션의 헤드 수
- 병렬 어텐션 결과를 다시 하나로 합쳐서 사용
- 논문에서는 8개의 헤드를 병렬로 운영
d_ff = 2048
- 트랜스포머 내부 피드 포워드 신경망(Feed-Forward Network) 의 은닉층 크기
- 피드 포워드 신경망의 입력층과 출력층 크기는 d_model(=512)을 따름
트랜스포머 모델 구조
인코더-디코더 구조 유지
트랜스포머는 RNN을 사용하지 않지만, 기존 Seq2Seq처럼 인코더-디코더 구조를 그대로 유지한다.
- 인코더: 입력 시퀀스를 받아 처리
- 디코더: 인코더로부터 정보를 전달받아 출력 시퀀스를 생성
Seq2Seq와의 구조적 차이
구분 기존 Seq2Seq 트랜스포머
| 핵심 연산 단위 | RNN (시점별 순차 처리) | 어텐션 (병렬 처리) |
| 인코더/디코더 구성 | 단일 RNN (t개의 타임스텝) | N개의 레이어 스택 (논문: 각 6개) |
| 병렬 처리 | ❌ 불가 | ✅ 가능 |
디코더의 동작 방식
트랜스포머 디코더는 기존 Seq2Seq와 유사한 방식으로 동작한다.
- 시작 심볼 <sos> (Start of Sequence) 를 입력으로 받음
- 인코더로부터 전달받은 정보를 참고하여 다음 토큰을 예측
- 종료 심볼 <eos> (End of Sequence) 가 나올 때까지 반복
RNN은 사용하지 않지만, 인코더-디코더의 역할 분리와 시작/종료 심볼 기반의 생성 방식은 그대로 유지된다.
다음 포스팅: 포지셔널 인코딩(Positional Encoding)
'AI > ML' 카테고리의 다른 글
| 트랜스포머- Attention (0) | 2026.04.27 |
|---|---|
| Transformer 포지셔널 인코딩 (1) | 2026.04.21 |
| Attention Mechanism 완전 쉽게 이해하기 (Score → Output까지) (0) | 2026.04.19 |
| Attention Mechanism (0) | 2026.04.19 |
| 인코더 디코더 Seq2Seq (0) | 2026.04.18 |