"All You Need Is Love" 비틀즈의 노래가 AI의 역사가 되기까지

2017년, 구글 브레인(Google Brain) 팀이 발표한 단 15페이지 분량의 논문 하나가 인공지능 세상을 뒤흔들었습니다. "Attention Is All You Need"는 당시 자연어 처리(NLP)의 상식이었던 RNN과 CNN을 과감히 버리고 오직 Attention이라는 매커니즘만으로 모델을 구축할 수 있음을 증명했습니다.
오늘날 우리가 감탄하며 사용하는 ChatGPT, Claude, Gemini와 같은 대규모 언어 모델(LLM)의 뿌리를 타고 올라가면 결국 이 '트랜스포머(Transformer)'라는 거대한 기둥을 만나게 됩니다. 이 논문은 단순히 성능 좋은 번역기를 만든 것이 아니라 컴퓨터가 인간의 언어를 이해하고 생성하는 '방식' 자체를 통째로 바꾼 AI 역사의 분기점입니다.
RNN과 CNN의 대체 필요성 대두
트랜스포머가 등장하기 전, 문장과 같은 시계열 데이터를 처리하는 왕좌는 RNN(순환 신경망)의 차지였습니다. 하지만 RNN에는 치명적인 두 가지 약점이 있었습니다.
- 순차적 처리의 한계 (Sequential Bottleneck): RNN은 단어를 하나씩 순서대로 읽어야 합니다. 첫 번째 단어를 처리해야 두 번째 단어로 넘어갈 수 있죠. 이는 최신 GPU의 장점인 '병렬 계산'을 활용하지 못하게 만들어 학습 속도를 매우 느리게 만들었습니다.
- 장기 의존성 문제 (Long-Term Dependency): 문장이 길어지면 앞부분에 나온 단어의 정보를 뒷부분까지 전달하지 못하고 잊어버립니다. "어제 본 영화는 정말..."로 시작해서 문장이 길어지면 마지막에 가서 "그것은 재밌었다"라고 할 때, '그것'이 무엇인지 잊어버리는 식입니다.
트랜스포머는 "단어를 순서대로 읽을 필요가 없다. 문장 전체를 한꺼번에 넣고, 단어들끼리의 관계(Attention)만 계산하면 된다"는 파격적인 발상으로 이 문제를 해결했습니다.
트랜스포머의 뼈대: 인코더와 디코더
트랜스포머는 인코더(Encoder)와 디코더(Decoder) 두 부분으로 나눈 수 있습니다.
- 인코더 : 입력된 문장(예: 한국어 "나는 학생이다")을 받아 각 단어가 문장 내에서 어떤 의미와 맥락을 갖는지 수치로 변환하여 '압축된 정보'를 만듭니다.
- 디코더 : 인코더가 만든 정보와 지금까지 생성한 단어들을 바탕으로, 다음에 올 가장 적절한 단어(예: 영어 "I am a student")를 하나씩 생성해냅니다.
이 구조의 핵심은 인코더와 디코더가 서로 Attention을 주고받으며 출력할 단어가 입력 문장의 어느 부분에 집중해야 하는지 실시간으로 소통한다는 점에 있습니다.
핵심 메커니즘 1: Scaled Dot-Product Attention
트랜스포머의 핵심 중 하나는 바로 셀프 어텐션(Self-Attention)입니다. 셀프 어텐션이란 문장 속의 각 단어가 서로를 얼마나 주목해야(Attention) 하는지를 계산하는 과정입니다. 논문은 이를 위해 Query, Key, Value라는 세 가지 도구를 제안합니다.
1) Q, K, V: 도서관에서 원하는 정보 찾기
도서관에서 책을 찾는 과정을 생각해 봅시다. 우리는 검색어(Q)와 가장 유사한 제목(K)을 찾아, 그 책의 내용(V)을 읽습니다. 셀프 어텐션도 마찬가지입니다. 특정 단어(Q)가 문장 내 모든 단어(K)들과 대조하여 얼마나 관련이 있는지 점수를 매기고 그 점수만큼 각 단어의 의미(V)를 가져와 섞는 것입니다.
- Query (Q): 내가 검색창에 입력한 검색어 (현재 분석 중인 단어)
- Key (K): 서가에 꽂힌 책들의 제목 (문장 내 모든 단어들의 인덱스)
- Value (V): 책 안에 담긴 실제 내용 (그 단어가 가진 의미 정보)
2) 수학적 메커니즘: 단계별 분석
논문에서 제시한 공식은 다음과 같습니다.

이 식 안에는 네 가지 중요한 단계가 들어 있습니다.
- 유사도 계산 (Q*K^T): Query 벡터와 모든 Key 벡터를 내적(Dot-product)합니다. 두 벡터가 비슷한 방향을 향할수록 값이 커집니다. 즉, "이 단어와 저 단어는 관련이 깊다"는 것을 숫자로 뽑아내는 과정입니다.
- 스케일링 (루트d_k로 나누기): 벡터의 차원(d_k)이 커질수록 내적 값은 기하급수적으로 커질 수 있습니다. 값이 너무 커지면 다음 단계인 Softmax에서 기울기 소실(Gradient Vanishing) 문제가 발생해 학습이 안 됩니다. 이를 방지하기 위해 차원의 제곱근으로 나누어 값을 적당히 조절해 줍니다.
- 확률 분포화 (Softmax): 스케일링 된 점수들에 Softmax를 적용합니다. 이렇게 하면 모든 점수의 합이 1(100%)이 되며, 어떤 단어에 몇 %의 비중을 두어야 할지가 명확해집니다.
- 정보 추출 (V와의 곱): 마지막으로 이 확률값을 Value(V)에 곱합니다. 관련이 높은 단어의 정보는 크게 가져오고, 관련 없는 단어의 정보는 희미하게 가져와서 최종적인 맥락이 포함된 단어 벡터를 완성합니다.
3) 왜 이 방식이 혁신적인가?
기존 RNN은 바로 옆에 있는 단어는 잘 기억하지만 멀리 떨어져 있는 단어는 잘 잊어버렸습니다. 하지만 이 수식은 단어 사이의 거리와 상관없이 오직 수치적인 연관성만으로 정보를 가져옵니다. 문장 끝에 있는 단어가 문장 처음에 있는 단어와 밀접하다면 한 번의 계산으로 그 정보를 완벽하게 연결할 수 있게 된 것입니다.
Multi-Head Attention: 한 번에 여러 관점으로 문장 읽기
단일 어텐션(Single-head)이 하나의 돋보기로 문장을 들여다보는 것이라면 멀티 헤드 어텐션(Multi-Head Attention)은 여러 명의 전문가가 각기 다른 관점에서 문장을 동시에 분석하는 것과 같습니다.
1) 왜 '여러 개의 머리(Head)'가 필요할까?
문장 내 단어들은 중의적인 관계를 가집니다. 예를 들어 "사과"라는 단어가 있을 때:
- Head 1: 이 단어의 문법적 역할은 무엇인가? (주어인가, 목적어인가?)
- Head 2: 이 단어의 의미적 관계는 무엇인가? (먹는 것인가, 입는 것인가?)
- Head 3: 이 단어가 가리키는 대명사는 무엇인가?
만약 어텐션 헤드가 하나뿐이라면 이 모든 복잡한 관계를 하나의 값에 구겨 넣어야 하므로 정보의 손실이 발생합니다. 하지만 트랜스포머는 보통 8개 이상의 헤드를 사용하여 각기 다른 맥락을 병렬로 추출합니다.
2) 작동 원리: 쪼개고, 계산하고, 합치기
- Linear Projection (사영): 입력된 Q, K, V를 그대로 쓰는 것이 아니라, 헤드의 개수(h)만큼 작은 차원으로 쪼개어 여러 개의 작은 Q, K, V 세트를 만듭니다.
- Parallel Attention: 쪼개진 각 세트에 대해 독립적으로 Scaled Dot-Product Attention을 수행합니다.
- Concat (연결): 각 헤드가 계산한 결과물들을 다시 하나로 길게 이어 붙입니다.
- Linear (최종 변환): 합쳐진 결과를 다시 한번 선형 변환하여 최종적인 출력값을 얻습니다.
3) 분석 포인트: "병렬성의 극대화"
멀티 헤드 어텐션의 진정한 강점은 학습 효율성에 있습니다. d_{model}차원의 어텐션을 한 번 계산하는 것보다, 이를 h개로 쪼개어 계산하는 것이 계산 복잡도 면에서 거의 차이가 없으면서도(총 차원은 같으므로), 훨씬 더 풍부한 표현력을 가질 수 있기 때문입니다.
데이터에 순서 부여하기: Positional Encoding
트랜스포머는 문장 속 단어들을 한꺼번에 병렬로 입력받습니다. 이는 속도 면에서는 엄청난 이득이지만 치명적인 단점이 하나 있습니다. 바로 모델이 단어의 '순서'를 모른다는 점입니다. 예를 들어, "I ate an apple"과 "An apple ate I"는 단어 구성이 같기 때문에, 별도의 처리가 없다면 트랜스포머는 두 문장을 똑같이 처리해 버립니다. RNN은 단어를 하나씩 넣으니 자연스럽게 순서가 파악됐지만 트랜스포머에게는 "누가 첫 번째고 누가 두 번째인지" 알려줄 별도의 장치가 필요했습니다.
1) 위치 정보의 수학적 주입
논문 저자들은 단어 벡터에 '위치 정보'를 담은 벡터를 더해주는(Addition) 방식을 선택했습니다. 이를 포지셔널 인코딩(Positional Encoding)이라고 부릅니다. 단어의 의미를 담은 임베딩 벡터에 그 단어의 위치(첫 번째, 두 번째...)에 따라 달라지는 특정한 값을 더해서 모델이 "이 값은 첫 번째 단어구나"라고 인식하게 만듭니다.
2) 삼각함수
논문에서는 위치 정보를 만들기 위해 삼각함수를 사용합니다. 사인과 코사인 함수는 주기적으로 반복되므로, 문장이 아무리 길어져도 상대적인 위치 관계를 표현할 수 있습니다. 저자들은 이 함수를 쓰면 모델이 특정 거리만큼 떨어진 단어들 사이의 관계를 더 쉽게 학습할 수 있다고 설명합니다. 즉, 1번 단어와 3번 단어의 거리가 5번 단어와 7번 단어의 거리와 같다는 것을 모델이 수치적으로 이해하게 됩니다.
3) 분석 포인트: "학습하지 않고 계산한다"
이 방식의 흥미로운 점은 위치 정보를 따로 학습시키는 것이 아니라, 미리 정해진 공식으로 계산해서 넣어준다는 것입니다. 덕분에 모델은 파라미터를 아끼면서도, 학습 때 보지 못한 아주 긴 문장이 들어와도 위치 정보를 유연하게 파악할 수 있는 확장성을 얻게 되었습니다.
실험 결과가 증명한 혁신: 학습 효율성과 성능의 상관관계
트랜스포머는 단순히 이론적으로 좋다는 것을 넘어, 실제 결과로 기존 모델들을 압살했습니다. 논문에서는 크게 두 가지 지표에 주목합니다.
1) 번역 성능의 신기록 (BLEU Score)
논문은 영어-독일어(WMT 2014 En-De)와 영어-프랑스어(WMT 2014 En-Fr) 번역 작업에서 당시 최고 성능(SOTA, State-of-the-Art)을 기록했습니다. 특히 En-De 작업에서는 기존 최고의 모델보다 2.0 BLEU 이상 높은 점수를 기록하며 앙상블 모델들조차 가볍게 뛰어넘었습니다.
2) 압도적인 가성비: Training Cost의 혁명
사실 성능보다 더 놀라운 것은 학습에 걸린 시간이었습니다. RNN 계열 모델은 문장을 하나하나 읽어야 하기에 학습에 며칠, 몇 주가 걸렸습니다. 반면 트랜스포머는 병렬 처리 덕분에 기존 모델들이 사용한 자원의 극히 일부(약 1/10~1/100 수준)만 사용하고도 훨씬 더 짧은 시간 안에 학습을 끝냈습니다. 더 적은 자원으로 더 똑똑한 모델을 만들 수 있다는 이 결과는 인공지능 연구의 흐름을 데이터와 하드웨어를 쏟아부어 모델 크기를 키우는 방향으로 전환하는 신호탄이 되었습니다.
트랜스포머가 남긴 유산과 향후 전망
논문의 제목처럼, 정말 'Attention' 하나면 충분했습니다. "Attention Is All You Need"는 발표된 지 몇 년 만에 자연어 처리(NLP)를 넘어 컴퓨터 비전(ViT), 음성 인식, 단백질 구조 예측(AlphaFold) 등 모든 AI 분야의 표준이 되었습니다. 우리가 매일 사용하는 GPT( Generative Pre-trained Transformer )의 'T'가 바로 이 논문에서 탄생한 Transformer의 약자라는 것이 이 논문이 제시한 기술의 가치를 증명하기도 합니다.
글을 마치며
이 논문이 위대한 이유는 복잡한 구조를 덕지덕지 붙이는 대신 본질적인 관계(Attention)에 집중하여 군더더기를 덜어냈기 때문입니다. AI 역사는 트랜스포머 이전과 이후로 나뉜다고 해도 과언이 아닙니다. 지금 이 순간에도 트랜스포머는 수십억 개의 파라미터를 가진 거대 모델로 진화하며 인류의 지능을 확장하고 있습니다.