모든 것은 어텐션이다 — Transformer 논문 다시 읽기
2017년의 짧은 논문이 어떻게 ChatGPT 시대를 열었는가
2017년 6월, 구글 소속의 연구자들을 중심으로 한 여덟 명이 짧은 논문 한 편을 공개했습니다. 제목은 「Attention Is All You Need」, 우리말로 옮기면 "필요한 건 어텐션뿐"입니다. 당시 이 논문을 읽은 사람들은 기계 번역의 성능이 조금 좋아진 정도로 받아들였습니다. 그러나 5년 뒤, 같은 구조에서 ChatGPT가 태어났고, Claude·Gemini·Llama 같은 오늘날의 거대 언어 모델이 모두 이 논문의 직계 자손이 되었습니다. 이 글은 인공지능을 전공하지 않은 독자가 이 논문이 왜 그렇게 중요했는지를 처음부터 따라가 볼 수 있도록 정리한 해설입니다.
1. 이 논문 이전의 세계
먼저 무대를 정리해 보겠습니다. 2017년의 인공지능은 이미 사진을 알아보고, 음성을 받아쓰고, 영어를 독일어로 번역하는 일을 어느 정도 해내고 있었습니다. 다만 문장을 다루는 일, 그러니까 "단어가 줄지어 들어오는" 데이터를 처리하는 데에는 한 가지 굳어진 방식이 있었습니다. RNN(Recurrent Neural Network, 순환 신경망)이라는 구조입니다.
이름이 어렵지만 동작 방식은 단순합니다. 단어를 하나씩 차례대로 읽고, 직전 단어까지 읽으면서 머릿속에 만들어 둔 "요약 메모"를 다음 단어와 합쳐 새로운 요약을 만드는 식입니다. 첫 단어부터 마지막 단어까지 한 줄로 이어 가며 처리하는 셈입니다.
RNN은 통역사가 이어폰을 끼고 연사의 말을 실시간으로 듣는 상황과 비슷합니다. 통역사는 한 단어씩 들어오는 발화를 머릿속에서 차근차근 누적해 가며 의미를 구성합니다. 그런데 연설이 길어지면 앞부분에서 들었던 중요한 단어가 슬슬 흐릿해집니다. 50문장 뒤의 결론을 통역하려고 할 때 첫 문장의 주어가 기억나지 않는 식입니다.
이 방식에는 두 가지 큰 문제가 있었습니다. 첫째, 멀리 떨어진 단어 사이의 관계를 잘 잡지 못합니다. 한국어로 "어제 광화문 근처 카페에서 만난 친구가 알려준 그 책을 오늘 도서관에서 빌렸다"라는 문장을 보면, "빌렸다"의 목적어는 "책"이고 그 책은 "친구가 알려준" 책입니다. 단어 사이의 거리가 멀수록 RNN이 이 연결을 학습하기가 어려웠습니다.
둘째, 본질적으로 한 단어씩 차례로만 처리할 수 있어서 GPU(Graphics Processing Unit, 그래픽 처리 장치)의 병렬 연산 능력을 살리지 못합니다. GPU는 수천 개의 계산을 동시에 돌릴 수 있는 장치인데, RNN은 "1번 단어가 끝나야 2번 단어를 시작할 수 있는" 구조라서 이 장점을 쓸 수가 없었습니다. 결과적으로 학습이 느렸고, 모델을 키우기 어려웠습니다.
2. "어텐션"이라는 보조 장치
같은 시기에 보조 장치로 등장한 개념이 어텐션(Attention, 주의 집중) 메커니즘이었습니다. 처음에는 RNN의 약점을 보완하는 부속품 정도였습니다. 통역 예시로 돌아가 보겠습니다. 통역사가 머릿속 요약 메모 하나만 들고 있으면 정보가 손실되니, 차라리 연설 전체를 받아 적어 둔 종이를 옆에 두자는 발상입니다. 통역사는 한 문장을 통역할 때마다 그 종이에서 "지금 이 순간 어디를 봐야 하는지" 골라서 참고합니다.
이것이 어텐션의 출발점입니다. "모든 단어를 똑같이 기억하는 대신, 매 순간 가장 관련 있는 단어를 골라서 본다." 2017년 이전까지 어텐션은 RNN 위에 얹는 보조 메커니즘에 머물러 있었습니다. 본체는 여전히 RNN이었고, 어텐션은 곁다리였습니다.
이 논문이 한 일은 단순하지만 과감합니다. "RNN을 빼버리고 어텐션만 남기자." 제목 그대로입니다. 보조 장치였던 것을 본체로 끌어올리고, 본체였던 것을 통째로 빼버렸습니다. 이 결정으로 만들어진 새 구조에 저자들은 "Transformer(트랜스포머)"라는 이름을 붙였습니다.
3. 어텐션은 어떻게 동작하는가
이제 어텐션의 작동 방식을 들여다봅니다. 수식 없이 설명할 수 있도록 도서관 비유로 풀어 보겠습니다.
당신이 "고양이가 왜 야행성인가?"라는 질문을 가지고 도서관에 갔다고 합시다. 도서관 책장에는 책이 가득합니다. 책마다 등에 색인표(label)가 붙어 있고, 그 안에는 본문이 들어 있습니다. 질문을 색인표들과 일일이 비교해서 "이 질문과 얼마나 관련 있는가"를 점수로 매기고, 점수가 높은 책의 본문을 그 점수만큼 비중을 두어 섞어 읽으면, 그것이 바로 어텐션이 답을 만드는 방식입니다.
논문은 이 세 가지 요소에 정식 이름을 붙였습니다. 질문은 Query(쿼리, 질의), 색인표는 Key(키, 열쇠), 본문은 Value(밸류, 값)입니다. 어텐션은 쿼리와 모든 키를 짝지어 점수를 계산하고, 그 점수를 가중치로 써서 모든 밸류를 가중 평균합니다. 점수가 높은 키에 대응하는 밸류일수록 결과에 많이 반영됩니다.
여기서 핵심 수식이 등장합니다. 논문에서는 이를 "Scaled Dot-Product Attention(스케일드 닷-프로덕트 어텐션)"이라 부릅니다.
겁먹을 필요는 없습니다. 풀어 보면 다음 네 단계입니다. ① 쿼리 Q와 키 K를 내적해서 유사도 점수를 계산합니다. ② 그 점수를 √dk로 나눕니다. 이는 점수의 크기가 너무 커지면 다음 단계가 불안정해지기 때문에 적절히 줄여 주는 작업입니다. ③ softmax(소프트맥스)를 통과시켜 점수들을 "합이 1이 되는 가중치"로 변환합니다. ④ 그 가중치로 밸류 V를 가중 평균합니다.
softmax 한 줄 설명. 여러 점수를 받아 모두 양수로 만들고 합이 1이 되도록 비율로 다듬는 함수입니다. "각 후보의 가능성을 백분율로 환산한다"고 생각하면 거의 맞습니다.
4. Self-Attention: 문장이 스스로를 본다
여기까지는 "질문은 어디서 오고 책장은 어디에 있나"가 분리되어 있는 일반적인 어텐션입니다. 논문이 한 결정적인 선택은 쿼리·키·밸류를 모두 같은 문장에서 만들어 내는 것입니다. 이를 Self-Attention(셀프 어텐션, 자기 주의)이라 부릅니다.
구체적으로, 문장의 각 단어가 동시에 세 가지 역할을 합니다. 자기 자신은 "내가 무엇을 알고 싶은가"(Query)이고, 동시에 다른 단어들에게 "내 정체는 이렇다"(Key)를 알리며, "나는 이런 정보를 갖고 있다"(Value)를 제공합니다. 모든 단어가 모든 단어를 동시에 쳐다보면서, 자기 자신의 표현을 다시 계산합니다.
RNN이 발언자가 차례로 한 사람씩 말하는 회의라면, Self-Attention은 모든 참석자가 동시에 다른 모든 참석자를 둘러보며 "지금 내 의견을 정리하는 데 누구의 발언이 가장 중요한가"를 각자 판단하는 회의입니다. n명이 모여 있으면 n×n 쌍의 시선이 한꺼번에 오갑니다. 시간은 한 단계 만에 끝나고, 누구도 누군가가 말을 마치기를 기다리지 않습니다.
이 차이는 단순한 비유가 아니라 계산 비용에도 그대로 반영됩니다. 논문 4절의 표를 단순화하면 다음과 같습니다.
| 구조 | 한 층당 계산량 | 순차 처리 단계 | 두 단어 사이 거리 |
|---|---|---|---|
| Self-Attention | n²·d | 1 | 1 |
| RNN(순환) | n·d² | n | n |
| CNN(합성곱) | k·n·d² | 1 | logk(n) |
n은 문장 길이, d는 표현의 차원입니다. Self-Attention은 단어 두 개가 아무리 멀리 떨어져 있어도 "거리"가 1입니다. 한 번의 어텐션 계산으로 첫 단어와 마지막 단어가 직접 연결됩니다. RNN처럼 n번을 거쳐 갈 필요가 없습니다. 동시에 모든 시선이 병렬로 처리되므로 GPU 친화적입니다.
대가는 분명합니다. n²이라는 항이 보여 주듯, 문장이 길어질수록 계산량이 제곱으로 늘어납니다. 이 점은 오늘날 거대 언어 모델이 긴 문서를 다룰 때 여전히 골치 아픈 문제로 남아 있습니다.
5. Multi-Head Attention: 여러 시선을 동시에
저자들은 한 걸음 더 나아갑니다. "한 번의 어텐션으로는 한 종류의 관계만 잡힐 수 있다. 여러 가지 종류의 관계를 동시에 잡고 싶다." 그래서 어텐션을 여러 개 병렬로 쌓고, 각 어텐션이 서로 다른 부분 공간에서 다른 관점으로 문장을 보도록 합니다. 이것이 Multi-Head Attention(멀티 헤드 어텐션, 다중 머리 어텐션)입니다. 논문에서는 머리(head)를 8개 사용했습니다.
한 변호사에게 계약서를 보여 주면 그 사람의 관점으로만 검토합니다. 같은 계약서를 변호사·세무사·기술자·번역가에게 동시에 보여 주고 각자의 메모를 모으면, 한 사람이 본 것보다 훨씬 입체적인 그림이 나옵니다. Multi-Head Attention은 각 머리가 "문법", "주어-동사 일치", "지시 대명사", "긴 거리 의존성"처럼 서로 다른 종류의 관계에 특화되도록 학습되는 구조입니다.
실제로 논문 부록의 시각화를 보면, 학습이 끝난 모델에서 어떤 머리는 문장의 구조(주어-동사-목적어 같은 통사적 패턴)에 집중하고, 어떤 머리는 대명사가 가리키는 명사를 추적하는 식으로 서로 다른 일을 하고 있음이 관찰됩니다. 누가 시킨 일이 아니라 학습 과정에서 자발적으로 분화한 것입니다.
6. 순서 정보를 어떻게 주는가
여기서 한 가지 문제가 생깁니다. Self-Attention은 모든 단어를 동시에 본다고 했습니다. 그 말은 단어의 순서를 무시한다는 뜻이기도 합니다. "개가 사람을 물었다"와 "사람이 개를 물었다"는 단어 집합으로 보면 같습니다. RNN은 단어를 차례로 처리하므로 순서가 자동으로 들어가지만, Self-Attention은 그렇지 않습니다.
저자들은 이 문제를 우아하게 풉니다. 각 단어가 문장의 몇 번째 자리에 있는지를 사인(sine)·코사인(cosine) 함수로 만든 고유한 "위치 신호"로 인코딩해서 단어 표현에 더해 줍니다. 이를 Positional Encoding(위치 인코딩)이라 합니다.
회의실에 같은 옷을 입은 사람들이 앉아 있다고 합시다. 누가 어디 앉아 있는지 헷갈리지 않으려면 좌석마다 다른 향수를 뿌려 두는 방법이 있습니다. 1번 자리는 라벤더, 2번은 오렌지, 3번은 박하 같은 식입니다. 사람들이 모두 동시에 시선을 교환하더라도, 향수 냄새로 "지금 내가 보고 있는 사람이 몇 번 자리의 사람인지"를 인식할 수 있습니다. Positional Encoding은 단어 표현에 "자리 향수"를 더해 주는 작업입니다.
왜 하필 사인과 코사인 함수일까요? 두 좌석 사이의 상대적 거리가 일정하면 그 두 위치 인코딩 사이의 관계도 일정한 패턴을 가지도록 수학적으로 설계되었기 때문입니다. 덕분에 모델이 "두 단어가 몇 자리 떨어져 있는가"를 비교적 쉽게 학습할 수 있습니다.
7. Transformer 전체 구조
지금까지 등장한 부품들을 조립할 차례입니다. Transformer는 크게 두 덩어리로 이루어져 있습니다. 입력 문장을 이해하는 Encoder(인코더, 부호화기)와, 그 이해를 바탕으로 출력 문장을 한 단어씩 만들어 내는 Decoder(디코더, 복호화기)입니다. 번역기를 떠올리면 됩니다. 인코더가 영어 문장을 읽고, 디코더가 한국어 문장을 씁니다.
인코더와 디코더가 똑같이 6개 층으로 쌓여 있고, 각 층 안에는 앞서 설명한 부품들이 들어 있습니다. 디코더 쪽에는 한 가지 추가 장치가 있습니다. 출력을 만들 때는 "지금까지 만든 단어"만 봐야 하고, "앞으로 만들 단어"를 미리 엿보면 안 됩니다. 그래서 디코더의 Self-Attention에는 Masking(마스킹, 가리기)이 들어가서 미래 위치를 보지 못하게 막습니다.
또 디코더 중간에는 인코더의 출력을 참조하는 별도의 어텐션 층이 있습니다. 번역으로 치면 "한국어 단어를 다음에 무엇으로 쓸지" 고를 때 영어 원문의 어느 부분에 주의를 둘지를 결정하는 단계입니다. 이것이 원래 어텐션이 보조 장치로 들어왔을 때의 자리이기도 합니다.
그 외에 두 가지 보조 장치가 일관되게 들어갑니다. Residual Connection(잔차 연결)은 어떤 층의 입력을 그 층의 출력에 더해 주는 단순한 우회로입니다. 층을 깊이 쌓아도 학습이 잘 진행되도록 도와줍니다. Layer Normalization(층 정규화)은 각 층을 통과한 값들이 너무 들쭉날쭉하지 않도록 평균과 분산을 조정해 줍니다. 둘 다 학습을 안정시키는 보조 장치라고 보면 됩니다.
8. 결과: 더 나은 성능을 더 적은 비용으로
논문은 이 새 구조를 검증하기 위해 두 가지 표준 번역 과제에 적용합니다. WMT 2014라는 공식 데이터셋의 영어→독일어, 영어→프랑스어 번역입니다. 평가 척도는 BLEU(Bilingual Evaluation Understudy, 이중언어 평가 대용물)입니다. 기계 번역 결과가 사람이 쓴 정답 번역과 얼마나 겹치는지를 0~100 사이 점수로 나타내는 지표로, 높을수록 좋습니다.
| 모델 | 영→독 BLEU | 영→프 BLEU | 학습 비용 |
|---|---|---|---|
| GNMT + 강화학습 (Google) | 24.6 | 39.92 | 높음 |
| ConvS2S (Facebook) | 25.16 | 40.46 | 높음 |
| Transformer (base) | 27.3 | 38.1 | 1/4 수준 |
| Transformer (big) | 28.4 | 41.8 | 1/4 수준 |
숫자가 의미하는 바는 명확합니다. 영어→독일어 과제에서 직전까지의 최고 성능 모델들(여러 모델을 묶은 앙상블 포함)을 2 BLEU 이상 차이로 앞섰습니다. 영어→프랑스어 과제에서도 단일 모델 기준 최고 점수를 갱신했습니다. 그러면서 학습 시간은 기존 모델의 1/4 이하였습니다. 큰 모델 기준 8장의 NVIDIA P100 GPU로 3.5일 만에 학습이 끝났습니다. 같은 시기 다른 최고 성능 모델들이 수 주에서 수 개월씩 잡아먹던 것과 비교하면 큰 폭의 단축입니다.
이 시점에서 "성능이 조금 좋고 학습이 빠른 번역 모델 하나가 나왔다"고 받아들인 사람이 많았습니다. 이 구조가 텍스트뿐 아니라 이미지·음성·코드·단백질 구조까지 모두 처리하게 될 거라고 예측한 사람은 저자들조차 그렇게 단언하지 못했습니다. 논문의 마지막 문단은 "텍스트가 아닌 다른 형식, 즉 이미지·오디오·비디오에 적용해 볼 계획"이라는 조심스러운 다짐 정도였습니다.
9. 그 다음에 일어난 일
2018년, 구글이 BERT(Bidirectional Encoder Representations from Transformers)를 발표합니다. Transformer의 인코더 부분만 떼어 와서 대량의 텍스트로 미리 학습시켜 둔 모델이었습니다. 같은 해 OpenAI가 GPT(Generative Pre-trained Transformer)를 발표합니다. 이번에는 디코더 부분만 떼어 와서 같은 방식으로 학습시킨 모델이었습니다.
이후 5년은 그 두 갈래의 직선적 확장이었다고 봐도 큰 무리가 없습니다. GPT-2(2019), GPT-3(2020), ChatGPT(2022), GPT-4(2023), 그리고 Claude·Gemini·Llama 같은 모델들이 모두 Transformer 디코더 기반입니다. 머리(head) 수와 층(layer) 수를 늘리고, 학습 데이터와 파라미터 규모를 천 배·만 배로 키운 것이 거의 전부입니다. 어떤 의미에서 오늘날의 LLM(Large Language Model, 거대 언어 모델)은 2017년 논문 한 편의 거대한 스케일업 실험입니다.
적용 범위도 텍스트를 넘어섰습니다. Vision Transformer(ViT)는 같은 구조를 이미지에 적용해 합성곱 신경망을 위협했고, AlphaFold 2는 단백질 아미노산 서열에 어텐션을 적용해 단백질 3차원 구조 예측에서 수십 년 묵은 난제를 풀었습니다. 음성 인식, 음악 생성, 수학 문제 풀이, 로봇 제어까지 어텐션은 거의 모든 분야로 퍼졌습니다.
10. 정리: 왜 이 논문이 특별한가
이 논문의 진정한 기여는 새로운 알고리즘이 아닙니다. 어텐션은 이미 있었고, 인코더-디코더 구조도 있었으며, 잔차 연결과 층 정규화도 다른 분야에서 빌려 온 도구였습니다. 저자들이 한 일은 "기존 방식의 본체였던 RNN을 빼고도 작동하는 구조를 찾아낸 것"입니다. 본체로 여겨졌던 것을 제거하는 결정, 그리고 그 빈자리를 어텐션만으로 채워도 충분하다는 검증, 두 가지가 핵심입니다.
그 결과 두 가지 자유가 열렸습니다. 첫째, 단어 사이 거리가 더 이상 정보 흐름의 병목이 아니게 되었습니다. 어떤 두 단어든 한 단계로 직접 연결됩니다. 둘째, 모든 계산이 동시에 일어나므로 GPU의 병렬성을 끝까지 활용할 수 있게 되었습니다. 모델을 더 크게, 학습을 더 빠르게, 데이터를 더 많이 쓰는 길이 동시에 열린 것입니다. 그 길을 따라간 결과가 오늘날의 생성형 인공지능입니다.
"필요한 건 어텐션뿐이다"라는 제목은 처음 봤을 때는 광고 문구처럼 들립니다. 그러나 9년이 지난 지금, 이 한 문장은 그 사이 일어난 변화의 가장 정직한 요약이기도 합니다.