coredot.today
Transformer 특집: 순서를 기억하는 기계에서 모든 것을 한눈에 보는 기계로
블로그로 돌아가기
TransformerAttentionGPTBERTRNNLSTMLLM딥러닝

Transformer 특집: 순서를 기억하는 기계에서 모든 것을 한눈에 보는 기계로

RNN의 순차 처리 한계에서 Attention의 탄생, 그리고 'Attention Is All You Need' 한 편의 논문이 GPT, BERT, 오늘의 LLM 시대 전부를 만들어낸 이야기를 수식과 사례로 풀어본다.

코어닷투데이2026-02-2459

들어가며

2017년 6월 12일, arXiv에 한 편의 논문이 올라왔다. 제목은 "Attention Is All You Need". 저자는 Google Brain과 Google Research 소속 연구자 8명이었다. 31페이지짜리 이 논문은 기계 번역이라는 비교적 좁은 과제를 다루고 있었고, 발표 당시 AI 커뮤니티에서 큰 화제가 되긴 했지만, 그것이 이후 10년간 AI의 모든 방향을 결정지을 전환점이 되리라고 예측한 사람은 많지 않았다.

그런데 이 논문의 8명 저자에게 일어난 일을 보면, 논문의 파급력이 어느 정도였는지 체감할 수 있다.

  • Noam Shazeer — Google을 떠나 Character.AI를 공동 창업했다가, 2024년 Google DeepMind로 복귀하며 약 27억 달러 규모의 딜을 성사시켰다.
  • Aidan Gomez — Cohere를 공동 창업해 엔터프라이즈 LLM 시장을 개척했다. 2024년 기준 기업 가치 55억 달러.
  • Llion Jones — 일본으로 건너가 Sakana AI를 공동 창업했다. "진화적 모델 병합"이라는 독자적 접근법으로 주목받았다.
  • Jakob Uszkoreit — 생명과학으로 전향해 Inceptive를 설립, RNA 약물 설계에 Transformer를 적용하고 있다.
  • Łukasz Kaiser — OpenAI로 이직해 GPT 시리즈 개발에 참여했다.
  • Illia Polosukhin — 블록체인 프로토콜 NEAR를 공동 창업했다.

8명의 저자가 6개의 회사를 만들었다. 이들이 만든 기업의 합산 가치는 수백억 달러에 달한다. 한 편의 논문에서 GPT, BERT, 그리고 2026년 현재 수천억 달러 규모의 LLM 산업 전체가 갈라져 나왔다. 이 글은 그 이야기를 처음부터 풀어보려 한다.

왜 Transformer가 필요했는가. 그 이전에는 무엇이 있었는가. 그리고 한 편의 논문이 어떻게 전체 산업의 지형을 바꿔놓았는가.


제1장: 순서의 문제 — RNN과 그 한계 (1986–2014)

언어에서 "순서"가 왜 중요한가

인간의 언어는 본질적으로 순차적이다. 같은 단어라도 순서가 바뀌면 의미가 완전히 달라진다.

"개가 사람을 물었다" vs "사람이 개를 물었다"

한국어에서는 조사가 역할을 명시하기 때문에 어순이 비교적 자유롭지만, 영어에서는 어순 자체가 문법이다.

"The dog bit the man" vs "The man bit the dog"

기계가 언어를 이해하려면, 단어의 의미뿐 아니라 단어가 나타나는 순서를 처리할 수 있어야 한다. 1980년대, 이 문제에 도전한 아키텍처가 바로 순환 신경망(Recurrent Neural Network, RNN)이다.

RNN의 핵심 아이디어: 순환 구조

1986년, David Rumelhart, Geoffrey Hinton, Ronald Williams가 역전파(backpropagation) 알고리즘을 정립하면서 RNN 학습의 토대가 마련됐다. RNN의 아이디어는 직관적이다. 이전 시점의 정보를 다음 시점으로 되먹임(recurrence)하는 것이다.

일반 신경망이 입력을 받아 출력을 내는 일회성 함수라면, RNN은 "기억"을 가진 함수다. 각 시점 tt에서 RNN은 현재 입력 xtx_t와 이전 시점의 은닉 상태 ht1h_{t-1}을 함께 받아 새로운 은닉 상태 hth_t를 만들어낸다.

ht=f(Whht1+Wxxt+b)h_t = f(W_h h_{t-1} + W_x x_t + b)

여기서 WhW_h는 은닉 상태에 대한 가중치, WxW_x는 입력에 대한 가중치, bb는 편향, ff는 활성화 함수(주로 tanh)다. 이 은닉 상태 hth_t가 일종의 "기억"으로, 지금까지 본 모든 입력의 정보를 압축해서 담고 있다.

"나는 어제 서울에서 맛있는 __을 먹었다"라는 문장에서 빈칸을 채우려면, 모델은 "먹었다"를 처리하는 시점에 "어제", "서울에서", "맛있는"이라는 앞선 맥락을 기억하고 있어야 한다. RNN의 순환 구조가 바로 이것을 가능하게 했다.

Vanishing Gradient — 전화 게임의 비극

이론적으로 RNN은 아무리 긴 시퀀스도 처리할 수 있어야 한다. 각 시점의 은닉 상태가 이전 모든 정보를 담고 있으니까. 하지만 현실은 달랐다.

전화 게임(Chinese whispers)을 생각해보자. 첫 번째 사람이 "내일 오후 3시에 강남역 2번 출구 앞 카페에서 만나자"라고 말한다. 두세 명을 거치면 대체로 원래 메시지가 유지된다. 하지만 20명, 30명을 거치면? "내일 어디선가 만나자" 정도로 핵심이 희석되거나, 아예 다른 메시지가 된다.

RNN에서도 정확히 같은 일이 일어난다. 역전파 과정에서 기울기(gradient)가 시점을 거슬러 올라갈 때마다 반복적으로 곱해지면서, 기울기가 기하급수적으로 작아진다. 이것이 기울기 소실 문제(Vanishing Gradient Problem)다. 1994년 Yoshua Bengio 등이 이 문제를 수학적으로 분석해 발표했다.

실질적인 의미는 이렇다. 100단어짜리 문장에서 첫 번째 단어의 정보가 마지막 단어를 처리할 때까지 살아남지 못한다. 모델은 가까운 과거는 잘 기억하지만, 먼 과거는 점점 잊어버린다. 이것은 단순한 성능 저하가 아니라 구조적 한계였다.

LSTM — 기억을 선별하는 게이트 (1997)

1997년, Sepp HochreiterJürgen Schmidhuber가 이 문제에 대한 우아한 해법을 제시했다. LSTM(Long Short-Term Memory)이다.

LSTM의 핵심 아이디어는 "전부 기억하려 하지 말고, 무엇을 기억하고 무엇을 잊을지 선택하자"는 것이다. 이를 위해 세 개의 게이트(gate)를 도입했다.

  • Forget Gate (망각 게이트) — 이전 기억 중 무엇을 버릴지 결정한다. "어제 점심에 뭘 먹었는지"는 오늘 업무에 불필요하니 잊는다.
  • Input Gate (입력 게이트) — 새 입력 중 무엇을 기억에 추가할지 결정한다. "오늘 회의 시간이 변경됐다"는 중요하니 기억한다.
  • Output Gate (출력 게이트) — 현재 기억 중 무엇을 출력에 반영할지 결정한다. 질문이 날씨에 관한 것이면 회의 정보는 출력하지 않는다.

LSTM은 이 게이트들 덕분에 RNN보다 훨씬 긴 시퀀스를 처리할 수 있었다. 기계 번역, 음성 인식, 텍스트 생성 등에서 획기적인 성능 향상을 이끌었고, 2010년대 초반까지 시퀀스 모델링의 표준이 되었다.

RNN (1986) LSTM (1997) GRU (2014) Seq2Seq (2014)

하지만 LSTM도 넘지 못한 벽

LSTM은 기울기 소실 문제를 크게 완화했지만, 근본적인 한계가 남아 있었다. 두 가지다.

첫째, 순차 처리의 속도 문제. RNN 계열은 tt 시점의 출력을 계산하려면 반드시 t1t-1 시점의 계산이 끝나야 한다. 토큰을 하나씩, 순서대로 처리해야 한다는 뜻이다. GPU가 수천 개의 코어로 병렬 처리를 할 수 있는 시대에, 이 순차적 병목은 치명적이었다. 문장이 길어질수록 학습 시간이 선형으로 증가했다.

둘째, 장거리 의존성의 한계. LSTM의 게이트가 아무리 정교해도, 수백 토큰 이상의 거리에서 정보를 정확하게 전달하는 것은 여전히 어려웠다.

2014년, Kyunghyun Cho 등이 발표한 논문에서 이 한계가 수치로 드러났다. 문장 길이가 증가할수록 번역 품질(BLEU 점수)이 급격히 떨어지는 현상이 명확하게 관찰된 것이다.

문장 길이별 번역 성능 (BLEU) — Cho et al., 2014
10토큰
~33
20토큰
~27
30토큰
~20
40토큰
~13
50토큰+
~7

10토큰 문장에서 BLEU 33점이던 성능이, 50토큰 이상에서는 7점 수준으로 추락했다. 기계 번역의 실용성을 확보하려면, 이 "긴 문장 문제"를 반드시 해결해야 했다. 해답은 의외의 방향에서 왔다.


제2장: 돌파구 — Seq2Seq와 Attention의 탄생 (2014–2015)

Seq2Seq — 인코더-디코더의 등장 (2014)

2014년, Google의 Ilya Sutskever, Oriol Vinyals, Quoc V. Le가 발표한 "Sequence to Sequence Learning with Neural Networks"는 기계 번역의 패러다임을 바꿨다. 핵심 아이디어는 두 개의 RNN(정확히는 LSTM)을 연결하는 것이었다.

  • 인코더(Encoder) — 입력 문장을 읽어서 하나의 고정 길이 벡터로 압축한다.
  • 디코더(Decoder) — 그 벡터를 받아 출력 문장을 한 토큰씩 생성한다.
Seq2Seq (Encoder-Decoder) 구조
Encoder (LSTM) 입력 문장을 읽고 고정 길이 벡터로 압축
Context Vector 전체 입력 문장의 의미를 담은 고정 길이 벡터
Decoder (LSTM) Context Vector를 받아 출력 문장을 한 토큰씩 생성

Seq2Seq는 획기적이었다. 입력과 출력의 길이가 달라도 처리할 수 있었고, 기계 번역에서 기존 통계 기반 방법을 앞서기 시작했다. 하지만 치명적인 병목이 있었다.

고정 길이 병목 — "1시간 강의를 트윗 1개로 요약하라"

인코더가 아무리 긴 입력 문장을 받아도, 디코더에 전달하는 것은 단 하나의 고정 길이 벡터였다. 보통 256차원이나 512차원의 벡터 하나에 문장의 모든 의미를 압축해야 했다.

이것은 마치 1시간짜리 강의를 280자 트윗 1개로 요약하라는 것과 같다. 짧은 문장이라면 핵심을 충분히 담을 수 있지만, 강의가 길어질수록 중요한 내용이 빠지고, 압축 과정에서 정보가 손실된다. 앞서 Cho et al.이 보여준 "긴 문장에서의 성능 급락"이 바로 이 병목 때문이었다.

문제를 다시 정리하면 이렇다: 디코더가 "오늘"이라는 단어를 번역할 때와 "날씨"라는 단어를 번역할 때, 참고해야 할 입력 부분이 다르다. 그런데 디코더에게 주어진 것은 모든 정보가 뒤섞인 하나의 벡터뿐이다. "지금 이 순간, 입력의 어디를 봐야 하는지"를 알 방법이 없는 것이다.

Bahdanau Attention — "출력할 때마다 입력의 어디를 볼지 선택하라" (2014)

2014년 9월, Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio가 이 문제에 대한 혁신적 해법을 발표했다. 논문 제목은 "Neural Machine Translation by Jointly Learning to Align and Translate".

핵심 아이디어는 놀라울 정도로 직관적이다.

"디코더가 각 출력 토큰을 생성할 때마다, 인코더의 모든 은닉 상태를 다시 살펴보고, 지금 가장 관련 있는 부분에 더 많은 가중치(attention)를 부여하자."

고정 길이 벡터 하나에 모든 것을 우겨넣는 대신, 매 출력 시점마다 입력 전체를 "다시 보는" 것이다.

비유하자면 이렇다. 기존 Seq2Seq가 "강의를 듣고 → 필기 한 장 받고 → 그 필기만 보고 시험 치기"였다면, Attention은 "시험 문제마다 강의 녹화 영상을 다시 돌려보며, 관련 부분을 찾아서 답 쓰기"다. 당연히 후자가 정확할 수밖에 없다.

Bahdanau의 실험 결과는 극적이었다. 기존 Seq2Seq에서 문장이 길어질수록 급락하던 BLEU 점수가, Attention을 적용하자 문장 길이에 거의 무관하게 안정적인 성능을 유지했다. "긴 문장 문제"가 해결된 것이다.

Luong Attention — 단순화와 확장 (2015)

2015년, Stanford의 Minh-Thang Luong 등이 Bahdanau Attention을 단순화하고 체계화한 논문을 발표했다. 특히 Luong은 어텐션 점수를 계산하는 여러 방법을 비교했는데, 그중 내적(dot-product) 방식이 가장 단순하면서도 효과적이라는 것을 보여줬다.

이 내적 기반 어텐션은 이후 Transformer의 핵심 메커니즘으로 직접 이어진다.

Query, Key, Value — 도서관 비유

Attention 메커니즘을 가장 직관적으로 이해하는 방법은 도서관 검색 비유다.

도서관에서 "한국 전쟁의 원인"에 대한 정보를 찾는다고 하자.

  1. 당신이 가진 것은 질문(Query) — "한국 전쟁의 원인이 뭐지?"
  2. 서가의 각 책에는 색인(Key) — "한국 역사", "20세기 국제 정치", "요리 레시피" 등
  3. 각 책 안에는 실제 내용(Value) — 정보 그 자체

당신은 Query를 가지고 각 책의 Key를 비교한다. "한국 역사" 책의 Key는 Query와 매우 관련이 높고(높은 점수), "요리 레시피" 책의 Key는 거의 관련이 없다(낮은 점수). 그래서 한국 역사 책의 Value는 많이 참고하고, 요리 책의 Value는 거의 무시한다.

이것이 Attention의 본질이다. Query와 Key의 유사도를 계산하고, 그 유사도에 따라 Value에 가중치를 부여하여 가중합을 구하는 것.

Scaled Dot-Product Attention

이 과정을 수식으로 표현한 것이 Scaled Dot-Product Attention이다.

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

각 요소를 풀어보면:

  • QKTQK^T — Query와 Key의 내적. 두 벡터가 유사할수록 값이 크다.
  • dk\sqrt{d_k} — Key 벡터의 차원 수의 제곱근으로 나누는 스케일링.
  • softmax\text{softmax} — 점수를 0~1 사이의 확률 분포로 변환한다. 모든 가중치의 합이 1이 된다.
  • 최종적으로 이 가중치를 VV에 곱해 가중합을 구한다.

dk\sqrt{d_k}로 나누는 이유가 흥미롭다. dkd_k가 커지면 QKTQK^T의 값도 커지는 경향이 있다. 값이 너무 크면 softmax의 출력이 극단적으로 0 또는 1에 가까워져서 — 하나의 Key에만 모든 주의를 집중하고 나머지는 완전히 무시하게 된다. 이러면 기울기가 거의 0이 되어 학습이 안 된다. dk\sqrt{d_k}로 나눠주면 값의 분산이 1에 가까워져서 softmax가 부드럽게 작동하고, 학습이 안정적으로 진행된다. Vaswani 등은 원 논문에서 이를 "additive attention과 dot-product attention의 성능 차이는 dkd_k가 클 때 스케일링을 안 하면 생기는 것"이라고 설명했다.


제3장: "Attention Is All You Need" — Transformer의 탄생 (2017)

RNN을 완전히 제거하다

2017년, Ashish Vaswani 등 Google의 8명의 연구자들이 전례 없는 주장을 했다. 순환 구조(recurrence)와 합성곱(convolution)을 완전히 제거하고, Attention만으로 시퀀스를 처리할 수 있다는 것이었다.

이것은 당시 기준으로 대담한 주장이었다. RNN은 20년 넘게 시퀀스 모델링의 근본 원리로 여겨졌다. "순서가 있는 데이터를 처리하려면 순환 구조가 필수"라는 것은 거의 공리에 가까웠다. Vaswani 등은 이 공리를 정면으로 부정했다.

그들이 제안한 아키텍처의 이름이 Transformer다. Transformer는 여전히 인코더-디코더 구조를 사용하지만, 내부 작동 방식이 RNN과는 근본적으로 다르다. 하나씩 뜯어보자.

Transformer 아키텍처 상세

Transformer 아키텍처 (Vaswani et al., 2017)
Input Embedding 토큰을 벡터로 변환
Positional Encoding 위치 정보 주입
Encoder (×6) Multi-Head Self-Attention → Feed-Forward (+ Residual & LayerNorm)
Decoder (×6) Masked Self-Attention → Cross-Attention → Feed-Forward (+ Residual & LayerNorm)
Linear + Softmax 출력 확률 분포 생성

1. Input Embedding + Positional Encoding

Transformer는 RNN처럼 토큰을 순서대로 처리하지 않는다. 모든 토큰을 동시에 입력받는다. 이것이 병렬 처리의 핵심이지만, 문제가 있다 — 순서 정보가 사라진다는 것이다.

"고양이가 쥐를 쫓았다"와 "쥐가 고양이를 쫓았다"가 Transformer에게는 같은 단어 집합으로 보일 수 있다. 이 문제를 해결하기 위해 Vaswani 등은 Positional Encoding을 도입했다. 각 위치에 고유한 벡터를 만들어 입력 임베딩에 더해주는 것이다.

위치 인코딩에는 사인과 코사인 함수를 사용했다:

PE(pos,2i)=sin(pos100002i/dmodel)PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)

PE(pos,2i+1)=cos(pos100002i/dmodel)PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right)

여기서 pospos는 토큰의 위치, ii는 차원의 인덱스, dmodeld_{\text{model}}은 모델의 차원이다. 이 수식의 영리한 점은 두 가지다.

첫째, 각 위치가 고유한 패턴을 가진다. 서로 다른 주파수의 사인·코사인 파동을 조합하면, 각 위치마다 "지문"처럼 고유한 벡터가 만들어진다.

둘째, 상대적 위치 관계가 선형 변환으로 표현된다. 위치 pospos와 위치 pos+kpos + k 사이의 관계가 kk에만 의존하는 선형 변환으로 표현되므로, 모델이 "3칸 뒤의 토큰"같은 상대적 관계를 학습하기 쉽다.

2. Self-Attention — "문장 속 모든 단어가 서로를 바라보다"

Attention이 원래 인코더-디코더 사이의 연결이었다면, Transformer는 이것을 한 단계 더 발전시켰다. 문장 내부에서 모든 단어가 다른 모든 단어와의 관계를 계산하는 것이다. 이것이 Self-Attention이다.

영어 문장 하나를 보자:

"The animal didn't cross the street because it was too tired."

여기서 "it"은 무엇을 가리키는가? "animal"이다. 인간은 직관적으로 알지만, 기계에게 이것은 어려운 문제다. "it"은 "street"을 가리킬 수도 있으니까. 맥락에서 "tired"라는 단서를 찾아야 "it = animal"이라는 결론에 도달할 수 있다.

Self-Attention에서 "it"을 처리할 때, 모델은 문장의 모든 단어와의 관계를 계산한다. "animal"과의 어텐션 점수가 높고, "street"과의 점수는 낮게 나온다. 이렇게 Self-Attention은 RNN 없이도 문장 내 먼 거리의 의존성을 단 한 번의 연산으로 포착한다.

Self-Attention: "it"이 참조하는 대상 찾기
The animal didn't cross the street
↑ 높은 어텐션
because it was too tired

RNN에서 "it"이 "animal"의 정보를 얻으려면, 중간의 모든 단어를 순서대로 거쳐야 했다 — O(n)O(n)의 거리. Self-Attention에서는 "it"이 "animal"을 직접 참조한다 — O(1)O(1)의 거리. 이것이 Transformer가 장거리 의존성을 압도적으로 잘 처리하는 이유다.

3. Multi-Head Attention — 영화를 여러 관점에서 동시에 보기

Self-Attention 하나만으로도 강력하지만, Vaswani 등은 여기서 한 걸음 더 나아갔다. 어텐션을 여러 개의 "헤드(head)"로 분할해서 동시에 수행하는 Multi-Head Attention을 도입한 것이다.

영화를 볼 때를 생각해보자. 같은 장면이라도 관점에 따라 다른 것을 포착한다.

  • 1번 관객 — 배우들의 감정 연기에 집중한다.
  • 2번 관객 — 카메라 워크와 색감에 집중한다.
  • 3번 관객 — 대사의 복선과 서사 구조에 집중한다.

이 세 관객의 분석을 종합하면, 한 관객이 혼자 본 것보다 훨씬 풍부한 이해가 가능하다.

Multi-Head Attention도 마찬가지다. 원래의 Query, Key, Value를 여러 개의 낮은 차원으로 분할(projection)하고, 각각 독립적으로 어텐션을 수행한 뒤, 결과를 합친다(concatenate). 원 논문에서는 dmodel=512d_{\text{model}} = 512를 8개의 헤드로 나눠 각각 dk=dv=64d_k = d_v = 64로 처리했다.

MultiHead(Q,K,V)=Concat(head1,,headh)WO\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h) W^O

headi=Attention(QWiQ,KWiK,VWiV)\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)

각 헤드가 서로 다른 관계 패턴을 학습한다는 것이 실험으로 확인됐다. 어떤 헤드는 문법적 관계(주어-동사)를, 어떤 헤드는 의미적 관계(대명사-선행사)를, 어떤 헤드는 인접 단어 관계를 포착했다.

4. Feed-Forward Network

각 어텐션 레이어 뒤에는 Position-wise Feed-Forward Network가 온다. 두 개의 선형 변환과 ReLU 활성화 함수로 구성된 단순한 구조다.

FFN(x)=max(0,xW1+b1)W2+b2\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2

어텐션이 "토큰 간의 관계"를 포착하는 것이라면, FFN은 각 토큰의 표현을 비선형적으로 변환하는 역할을 한다. 후속 연구에서 FFN이 일종의 "지식 저장소"로 기능한다는 분석이 나오기도 했다 — 학습 데이터에서 습득한 사실적 지식이 FFN의 가중치에 저장된다는 것이다.

5. Residual Connection + Layer Normalization

Transformer의 각 하위 레이어(어텐션, FFN)에는 잔차 연결(Residual Connection)레이어 정규화(Layer Normalization)가 적용된다.

LayerNorm(x+Sublayer(x))\text{LayerNorm}(x + \text{Sublayer}(x))

잔차 연결은 2015년 Kaiming He 등이 ResNet에서 제안한 기법이다. 입력을 하위 레이어의 출력에 더해주는 것인데, 이것이 있으면 기울기가 레이어를 건너뛰는 "고속도로"를 따라 흐를 수 있어서 깊은 네트워크의 학습이 안정적이 된다. 레이어 정규화는 각 레이어의 출력을 정규화해서 학습을 가속한다.

이 두 기법 덕분에 Transformer는 인코더와 디코더 각각 6개 레이어(총 12개 레이어)를 안정적으로 쌓을 수 있었다. 이후 GPT-3은 96개 레이어, GPT-4는 그 이상으로 확장된다.

6. Encoder (N=6) / Decoder (N=6) 스택

원 논문의 Transformer는 인코더 6개와 디코더 6개를 쌓은 구조다.

인코더의 각 레이어는 Self-Attention + FFN으로 구성된다. 입력 문장의 모든 토큰이 서로를 바라보며, 점점 더 풍부한 표현을 만들어간다.

디코더의 각 레이어는 세 개의 하위 레이어로 구성된다:

  1. Masked Self-Attention — 미래 토큰을 볼 수 없도록 마스킹. 번역할 때 아직 생성하지 않은 단어를 미리 볼 수 없어야 하기 때문이다.
  2. Cross-Attention — 인코더의 출력을 Key/Value로 사용. "지금 생성하려는 단어와 가장 관련 있는 입력 부분은 어디인가?"를 묻는 것이다. 이것이 2장에서 설명한 Bahdanau Attention의 역할을 대체한다.
  3. FFN — 비선형 변환.

Transformer의 세 가지 혁신

Transformer가 가져온 구조적 혁신을 세 가지로 요약할 수 있다.

첫째, 병렬 처리. RNN은 tt 시점의 계산이 끝나야 t+1t+1을 시작할 수 있었다. Transformer는 모든 위치를 동시에 처리한다. 학습 속도가 극적으로 빨라졌다. 같은 데이터를 학습하는 데 RNN 기반 모델 대비 훈련 시간이 수십 분의 1로 줄었다.

둘째, 장거리 의존성 O(1). RNN에서 거리 nn만큼 떨어진 두 토큰 사이의 정보 전달 경로 길이는 O(n)O(n)이었다. Transformer에서는 Self-Attention을 통해 어떤 두 토큰이든 직접 연결되므로 O(1)O(1)이다. 1000토큰 떨어진 단어도 1토큰 옆의 단어와 동등하게 참조할 수 있다.

셋째, 확장성(Scalability). 병렬 처리가 가능하다는 것은 GPU를 더 많이 투입하면 더 큰 모델을, 더 많은 데이터로, 더 빠르게 학습할 수 있다는 뜻이다. 이 확장성이 이후 GPT-3, GPT-4 같은 초대형 모델을 가능하게 한 핵심 요인이다.

WMT 2014 벤치마크 — 숫자로 증명하다

Vaswani 등은 WMT 2014 영어-독일어 및 영어-프랑스어 번역 벤치마크에서 Transformer의 성능을 검증했다.

WMT 2014 영어→독일어 BLEU 점수
Transformer (big)
28.4
이전 SOTA 앙상블
26.4
ConvS2S
25.2
GNMT+RL
24.6

단일 모델로 이전의 앙상블(여러 모델을 합친 것) 성능을 넘어섰다. 영어-프랑스어에서는 BLEU 41.0을 기록해 역대 최고를 경신했다. 그리고 학습에 필요한 계산 비용은 이전 최고 모델의 수분의 1 수준이었다. 더 좋은 성능을, 더 적은 비용으로 달성한 것이다.

하지만 기계 번역 성능 자체보다 더 중요한 것이 있었다. Transformer 아키텍처가 번역뿐 아니라 언어 처리의 거의 모든 과제에 적용될 수 있다는 사실이 곧이어 증명되었다. 그 증명을 해낸 것이 GPT와 BERT다.


제4장: 두 갈래 길 — GPT와 BERT (2018)

2017년의 Transformer 논문은 인코더-디코더 전체 구조를 사용했다. 하지만 2018년, 두 팀이 각각 Transformer의 절반만을 떼어내 완전히 다른 방향으로 발전시키면서, AI의 두 갈래 길이 열렸다.

Transformer (2017)
GPT — Decoder-only BERT — Encoder-only
생성 (Generation) 이해 (Understanding)

GPT — Decoder만으로 충분하다 (2018, OpenAI)

2018년 6월, OpenAI의 Alec Radford 등이 "Improving Language Understanding by Generative Pre-Training"을 발표했다. 이것이 GPT(Generative Pre-trained Transformer)의 시작이다.

GPT의 핵심 설계 결정은 Transformer의 디코더만 사용한다는 것이었다. 인코더 없이 디코더만으로 언어 모델을 만든다. 학습 방식은 단순하다 — 이전 토큰들이 주어졌을 때 다음 토큰을 예측하는 자기 회귀(autoregressive) 방식이다.

"오늘 날씨가" → "좋다" "오늘 날씨가 좋다" → "."

왼쪽에서 오른쪽으로, 한 토큰씩, 끊임없이 "다음에 뭐가 올까?"를 예측한다. 이 방식의 장점은 텍스트 생성에 자연스럽다는 것이다. 글을 쓰는 행위 자체가 "이전에 쓴 내용을 바탕으로 다음 단어를 선택하는" 과정이니까.

GPT-1은 117M(1억 1700만) 파라미터로, 당시 기준으로 큰 모델이었지만 이후 벌어질 일에 비하면 겸손한 시작이었다.

GPT의 진화 — 스케일링의 승리

GPT의 진화는 "모델을 키우면 능력이 창발한다"는 원리의 가장 극적인 증거다.

GPT 시리즈 파라미터 수 진화
GPT-1 (2018)
117M
GPT-2 (2019)
1.5B
GPT-3 (2020)
175B
GPT-4 (2023)
비공개 (추정 1T+)

GPT-2 (2019, 1.5B 파라미터) — OpenAI는 GPT-2를 발표하면서 "너무 위험해서 전체 모델을 공개할 수 없다(too dangerous to release)"고 선언했다. 당시 많은 비판을 받았지만, GPT-2가 생성한 텍스트의 품질은 실제로 충격적이었다.

유명한 "유니콘 기사" 사례를 보자. 연구자들이 GPT-2에게 "남미 안데스 산맥에서 유니콘 무리가 발견되었다"는 가짜 뉴스 도입부를 주자, GPT-2는 과학자 이름을 만들어내고, 발견 경위를 서술하고, 학술적 함의까지 논하는 완전한 뉴스 기사를 생성했다. 인간이 쓴 것과 구분하기 어려울 정도였다.

GPT-3 (2020, 175B 파라미터) — GPT-2 대비 파라미터를 100배 이상 키운 GPT-3에서 놀라운 현상이 관찰됐다. Few-shot Learning — 몇 개의 예시만 보여주면, 별도의 학습 없이도 새로운 과제를 수행할 수 있었다. 번역, 요약, 질의응답, 심지어 코드 작성까지. 이것은 명시적으로 프로그래밍하지 않은 능력이 모델 규모가 커지면서 "창발(emergence)"한 것이었다.

BERT — 양방향으로 읽어야 진짜 이해다 (2018, Google)

GPT 발표 4개월 뒤인 2018년 10월, Google의 Jacob Devlin 등이 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"을 발표했다. BERT는 Transformer의 인코더만 사용한다.

GPT와의 결정적 차이는 양방향(bidirectional) 이해에 있다. GPT는 왼쪽에서 오른쪽으로만 텍스트를 읽는다. 하지만 BERT는 문장의 양쪽 방향 모두에서 맥락을 파악한다.

왜 양방향이 중요한가? 영어 단어 "bank"를 생각해보자.

"I went to the bank to deposit money." → bank = 은행 "I sat on the bank of the river." → bank = 강둑

"bank"의 의미를 결정하려면, 앞에 오는 단어("went to the")뿐 아니라 뒤에 오는 단어("to deposit money" 또는 "of the river")도 봐야 한다. GPT처럼 왼쪽만 보면 "bank" 시점에서 오른쪽 맥락을 활용할 수 없다. BERT는 양쪽 모두를 동시에 참조하므로, 단어의 의미를 더 정확하게 파악할 수 있다.

BERT의 학습 방법 — Masked Language Model (MLM)

하지만 양방향 학습에는 기술적 문제가 있다. GPT의 "다음 토큰 예측"은 자연스러운 학습 과제다. 양방향으로 읽으면 예측할 대상이 이미 보이는 "커닝" 상태가 되어버린다.

Devlin 등의 해법이 Masked Language Model(MLM)이다. 입력 토큰의 15%를 무작위로 가리고(mask), 모델이 주변 맥락을 양방향으로 참조해서 가려진 토큰을 맞추도록 학습시킨다.

"I went to the [MASK] to deposit money." → 정답: "bank"

이것은 사실 시험에서 빈칸 채우기 문제를 푸는 것과 같다. 빈칸 앞뒤의 맥락을 모두 활용해서 답을 추론하는 방식이다.

BERT의 성과

BERT의 결과는 압도적이었다. 발표 당시 NLP 벤치마크 11개를 동시에 갱신했다. GLUE(General Language Understanding Evaluation), SQuAD(질의응답), MNLI(자연어 추론) 등 언어 이해의 모든 영역에서 기존 최고 성능을 넘어섰다.

BERT의 더 큰 기여는 전이 학습(Transfer Learning) 패러다임을 NLP에 확립한 것이다. 대규모 데이터로 사전 학습(pre-training)한 뒤, 소량의 태스크별 데이터로 미세 조정(fine-tuning)하는 방식. 이것은 컴퓨터 비전에서 ImageNet으로 사전 학습하고 특정 과제에 미세 조정하는 패턴과 동일하며, 이후 NLP의 표준 방법론이 되었다.

GPT vs BERT — 작가와 편집자

GPT와 BERT의 차이를 가장 쉽게 이해하는 비유는 "작가 vs 편집자"다.

GPT (Decoder-only)
Transformer의 디코더만 사용
왼쪽→오른쪽 단방향 읽기
자기 회귀 (다음 토큰 예측)
텍스트 생성에 강함
비유: 작가 — 이전 문맥을 바탕으로 다음 문장을 쓴다
대표 응용: 챗봇, 글쓰기, 코드 생성
BERT (Encoder-only)
Transformer의 인코더만 사용
양방향 동시 읽기
마스크 언어 모델 (빈칸 채우기)
텍스트 이해에 강함
비유: 편집자 — 전체 원고를 보고 분석·수정한다
대표 응용: 검색, 분류, 감정 분석, QA

작가(GPT)는 백지 위에 첫 문장부터 시작해서 이야기를 만들어간다. 이미 쓴 부분만 참고하며 다음 문장을 쓴다. 편집자(BERT)는 완성된 원고를 받아 전체를 통독한 뒤, 오류를 찾고, 의미를 파악하고, 개선점을 제안한다.

2018년 시점에서는 BERT가 벤치마크를 휩쓸며 더 주목받았다. "이해"가 "생성"보다 중요한 과제(검색, 분류, QA)가 당시 산업 현장에서 더 실용적이었기 때문이다. 하지만 이후의 역사는 GPT 쪽에 손을 들어준다.


제5장: Transformer 이후 — LLM 시대의 서막 (2019–현재)

Scaling Laws — "더 크게, 더 많이, 더 오래"

2020년, OpenAI의 Jared Kaplan 등이 발표한 "Scaling Laws for Neural Language Models"는 LLM 개발의 방향을 결정지은 연구다. 핵심 발견은 이것이다:

언어 모델의 성능(loss)은 모델 크기, 데이터 크기, 학습 계산량의 멱법칙(power law)을 따른다.

쉽게 말하면, 모델을 10배 키우면 성능이 일정 비율로 향상되고, 100배 키우면 또 일정 비율로 향상된다. 이 관계가 여러 자릿수에 걸쳐 매끄럽게 유지된다. 성능 향상의 천장이 아직 보이지 않는다는 뜻이었다.

이 발견은 AI 업계에 명확한 메시지를 전달했다. "더 큰 모델을 만들어라. 더 많은 데이터를 모아라. 더 오래 학습시켜라. 그러면 성능은 올라간다." 정밀한 아키텍처 혁신보다 규모 확장(scaling)이 더 확실한 성능 개선 수단이라는 것이다.

왜 GPT(Decoder-only)가 승리했는가

2018년에는 GPT와 BERT가 대등하게 경쟁하는 것처럼 보였다. 하지만 2020년 이후, 초대형 모델의 시대가 열리면서 Decoder-only 아키텍처가 압도적 우위를 점하게 된다. 이유는 세 가지다.

첫째, 학습 목표의 보편성. "다음 토큰 예측"은 별도의 태스크 설계 없이 인터넷의 모든 텍스트를 학습 데이터로 쓸 수 있는 범용적인 목표다. BERT의 MLM은 별도의 마스킹 전략이 필요하다.

둘째, 생성 능력. Scaling Laws에 따라 모델이 커지면서, GPT 계열은 점점 더 자연스럽고 유용한 텍스트를 생성할 수 있게 되었다. "이해"만 잘하는 모델보다 "이해도 하고 생성도 하는" 모델이 더 많은 응용 분야를 커버한다.

셋째, In-Context Learning의 창발. GPT-3에서 발견된 few-shot learning 능력은 Decoder-only 아키텍처의 결정적 장점이 되었다. 별도의 미세 조정 없이 프롬프트만으로 새로운 과제를 수행할 수 있다는 것은, 하나의 모델이 무한한 종류의 과제를 처리할 수 있다는 뜻이다.

InstructGPT에서 ChatGPT로 — 정렬의 혁명

GPT-3는 인상적이었지만, 문제도 있었다. 유해한 내용을 생성하거나, 사용자의 지시를 무시하거나, 사실이 아닌 내용을 자신 있게 주장했다. 모델이 "다음 토큰 예측"을 잘 하는 것과 "사용자에게 도움이 되는 답변을 하는 것"은 다른 문제였다.

2022년, OpenAI는 InstructGPT 논문에서 이 간극을 메우는 방법을 제시했다. RLHF(Reinforcement Learning from Human Feedback) — 인간의 피드백을 활용한 강화학습이다.

과정은 세 단계다:

  1. 인간 라벨러가 좋은 답변의 예시를 작성하고, 이것으로 모델을 미세 조정한다(SFT).
  2. 같은 질문에 대한 여러 답변을 인간이 순위를 매기고, 이 선호 데이터로 보상 모델(Reward Model)을 학습한다.
  3. 보상 모델의 점수를 보상 신호로 사용해 강화학습(PPO)으로 모델을 추가 학습한다.

놀라운 점은, 1.3B 파라미터의 InstructGPT가 100배 이상 큰 175B 파라미터의 GPT-3보다 인간 평가에서 더 선호되었다는 것이다. "더 크게"만이 답이 아니라, "어떻게 학습시키느냐"도 중요하다는 것이 입증되었다.

2022년 11월 30일, OpenAI는 InstructGPT의 후속인 ChatGPT를 공개했다. 5일 만에 100만 사용자, 2개월 만에 1억 사용자를 돌파하며 역사상 가장 빠르게 성장한 소비자 앱이 되었다. AI가 연구자의 도구에서 일반 대중의 일상으로 넘어온 순간이었다.

2026년 현재 — 모든 것은 Transformer다

2026년 현재, 세계의 주요 LLM은 모두 Transformer 아키텍처 위에 구축되어 있다.

주요 LLM 파라미터 스케일 (추정)
GPT-4 (OpenAI)
1T+
Gemini Ultra (Google)
1T+
Claude 3.5 (Anthropic)
비공개
LLaMA 3 (Meta)
405B
Mistral Large (Mistral)
비공개
GPT-3 (2020)
175B
BERT (2018)
340M

GPT-4, Gemini, Claude, LLaMA, Mistral, DeepSeek, Qwen — 이름은 다르지만, 핵심 아키텍처는 모두 2017년 Transformer 논문에서 출발했다. 물론 각 모델은 수많은 개선과 변형을 적용했다. RoPE(Rotary Position Embedding), GQA(Grouped Query Attention), MoE(Mixture of Experts), Flash Attention 등. 하지만 Self-Attention이 핵심이라는 근본 구조는 변하지 않았다.

Transformer 이후의 아키텍처를 찾으려는 시도도 있다. Mamba 같은 State Space Model, RWKV 같은 선형 어텐션 모델 등이 연구되고 있다. 이들은 Transformer의 O(n2)O(n^2) 어텐션 복잡도를 O(n)O(n)으로 줄이려는 시도다. 하지만 2026년 현재, 이들 중 어느 것도 Transformer를 대체하지는 못했다. Transformer의 확장성과 범용성이 너무 강력하기 때문이다.


마치며: 한 편의 논문이 예언이 된 이유

"Attention Is All You Need" — 이 논문 제목은 2017년에는 기술적 주장이었다. "어텐션만으로 충분하다. RNN은 필요 없다." 하지만 2026년 지금, 이 제목은 거의 예언에 가깝게 실현되었다.

GPT-4가 코드를 쓰고, Claude가 논문을 분석하고, Gemini가 영상을 이해할 수 있는 것은 — 결국 모두 8년 전 그 31페이지짜리 논문에서 제안된 Self-Attention 메커니즘 위에 구축되어 있기 때문이다.

돌이켜보면, 이 이야기의 본질은 단순하다.

1986년, RNN이 "순서를 기억하는 기계"를 만들었다. 하지만 기억은 희미해졌다. 1997년, LSTM이 "선별적으로 기억하는 기계"를 만들었다. 하지만 여전히 한 번에 하나씩밖에 볼 수 없었다. 2014년, Attention이 "필요한 곳을 다시 보는 기계"를 만들었다. 하지만 여전히 RNN에 의존했다. 2017년, Transformer가 "모든 것을 한눈에 보는 기계"를 만들었다. 그리고 그것으로 충분했다.

RNN — 순서를 기억 LSTM — 선별적 기억 Attention — 다시 보기 Transformer — 한눈에 보기

2026년에도 Transformer가 여전히 중심인 이유는, 그것이 인간 언어의 본질 — 임의의 두 요소 사이의 관계를 파악하는 것 — 에 가장 적합한 구조이기 때문이다. 문장에서 주어와 동사의 관계, 대명사와 선행사의 관계, 원인과 결과의 관계. 이 모든 관계를 거리에 상관없이 직접 포착할 수 있는 아키텍처는 Transformer가 처음이었고, 아직까지 이를 본질적으로 넘어선 아키텍처는 나오지 않았다.

다음 글에서는 Transformer 위에 구축된 LLM들이 어떻게 에이전트 AI로 진화하고 있는지, 그리고 2026년 현재 AI 산업의 지형을 어떻게 바꾸고 있는지를 다룰 예정이다.

"Attention Is All You Need" — 이것은 논문 제목이 아니라, AI 시대의 선언문이었다.