이 글은 GPT의 문맥 이해 방식에 핵심이 되는 어텐션과 트랜스포머 구조를 실제 질문 기반 사례를 통해 쉽게 설명합니다. LLM 구조의 작동 원리를 사고 흐름 중심으로 정리했습니다.
그리고 이 글은 Token / Embedding / RAG의 개념을 알고 있으면 더 이해하기 쉽습니다.
들어가며: 이 구조가 왜 중요한가?
GPT가 놀라운 건 단어 하나만 잘 고르는 게 아니라, 앞뒤 맥락을 이어서 말한다는 점이다. 나는 이걸 처음 접했을 때 가장 궁금했다.
"이런 문장 흐름을 기계가 어떻게 이해하지?"
이 질문은 결국 트랜스포머의 핵심, 어텐션(attention) 개념으로 이어졌다. 이 글은 이 개념을 최대한 쉽게 풀어보고, 실제로 내가 GPT에게 던졌던 질문들을 기반으로 흐름을 따라가 본다.
1. 단어 사이의 연결을 숫자로 계산한다는 건 무슨 뜻일까?
단어는 모두 같은 역할을 하진 않는다. 예를 들어:
"나는 오늘 비가 와서 우산을 챙겼다."
이 문장에서 "우산"이라는 단어는 "비"와 강하게 연결되어 있다. 어텐션은 이런 의미 간의 연결 강도를 수치화해서 계산한다. 모든 단어는 다른 모든 단어를 바라보고, 어느 쪽을 더 중요하게 생각할지를 결정한다. 이걸 수학적으로 처리하기 위해 **Q (Query), K (Key), V (Value)**라는 세 가지 벡터가 사용된다.
2. 의미 없이 계산된다는 게 무슨 말이지? 내가 했던 질문들로 풀어보기
어텐션 개념을 들었을 때 나는 바로 이런 질문을 던졌다:
- "Q, K, V를 결정짓는 원리를 좀 더 봐야 할 것 같아."
- "그럼 이 토큰들을 분리할 때 해당 토큰의 언어적 의미는 이미 알고 있다는 건가?"
- "학습을 한다 해도 최초의 Q/K/V를 정한다는 건 언어적으로 해석이 되어야 가능한 거 아닌가?"
이 질문들은 어텐션이 실제로 어떤 방식으로 정보를 구성하는지를 깊게 이해하고 싶을 때 자연스럽게 나오게 된다.
실제로는, 각각의 단어는 임베딩 벡터로 변환된 후, 세 개의 다른 가중치 행렬(Wq, Wk, Wv)을 통과하면서 Q, K, V로 변환된다. 이 구조는 우리가 '의미'라고 부르는 개념 없이도 작동한다. 언어적으로 해석하는 게 아니라, 수학적으로 유사한 위치를 찾아주는 구조이기 때문이다.
나는 이걸 GPT에게 설명해달라고 했고, 결국 이렇게 이해했다:
"초기에는 아무 의미도 모른다. 하지만 수많은 문맥에서 어떤 단어가 어떤 단어를 '참조'하는지를 학습하면서, 어느 쪽이 더 중요한지를 계산할 수 있게 되는 구조다."
Dense Layer의 구조를 떠올리면서, 그제야 머릿속 퍼즐이 맞춰지듯 연결이 보이기 시작했다. 이전까지는 단순히 '벡터 변환'으로만 이해했지만, 이 연산이 전체 흐름에서 어떤 역할을 하는지를 직관적으로 느끼게 되었다. 그래서 나는 이렇게 정리했다:
- "Dense Layer의 W, b 이거 보니까 확실히 이해돼."
이처럼 어텐션은 단어 사이의 관계를 수치화한 값이고, 그 기반은 우리가 보통 생각하는 의미 해석이 아니라, 데이터 기반의 수학적 조정이다.
여기서 나는 또 하나의 질문이 떠올랐다:
- "사람은 4차원 이상의 배열은 감각적으로 이해하지 못하잖아. 그럼 이런 다차원 구조는 결국 개념적으로만 알고 있어야 하는 거네?"
GPT는 이렇게 설명했다. "네, 실제로는 고차원 배열 안에 단어들이 위치하고 있고, 이 위치들이 서로의 의미적 거리 또는 관계를 표현합니다. 하지만 이걸 직접 시각화하거나 인간처럼 직관적으로 해석하긴 어렵습니다. 대신 연산적으로 다루는 거죠."
이때 나는 이런 구조를 이렇게 정리했다:
"토큰이 ID로 표현된 뒤, 다차원 공간에 매핑되고, 각 토큰 간 거리를 학습을 통해 계산하며, 특정 위치에서 가까운 토큰들이 더 강하게 연결된다."
이 개념을 수용하자 어텐션이 '의미를 이해하는 과정'이 아니라 '구조적으로 연결을 설계하는 과정'이라는 게 명확히 보이기 시작했다.
처음엔 이 구조가 너무 추상적으로 느껴졌지만, 고차원 공간에서 의미의 유사성을 '거리'로 바꿔 계산한다는 방식은 내가 기존에 이해하던 머신러닝의 연산 방식과 닿아 있었다.
이걸 이해하고 나니 GPT를 쓸 때 내가 던지는 질문의 방식도 달라졌다. 단어의 의미를 묻기보다는 구조와 연결을 중심에 둔 질문이 더 효과적이었다. 결국 어텐션은 '이 문장에서 무엇이 중요한가'를 묻는 구조 자체였던 것이다.
3. 어텐션만으로 부족할 때, 트랜스포머는 뭘 더하나?
어텐션만으로는 문장 전체 구조를 표현하기 어렵다. 그래서 나온 구조가 트랜스포머다. 트랜스포머는 여러 개의 어텐션 레이어를 겹겹이 쌓아 더 복잡한 문맥 정보를 구성한다. 이때 나는 GPT에게 이렇게 물었다:
- "순서를 기억하지 않는데 왜 흐름이 맞는 거지?"
이 질문은 positional encoding이라는 개념으로 이어진다. 트랜스포머는 기본적으로 순서를 모르기 때문에, 각 단어의 위치 정보를 별도로 더해준다. 이걸 통해 단어들이 어디에 위치했는지를 암묵적으로 반영한다.
그리고 또 하나.
- "Dense Layer의 W, b 이거 보니깐 확실히 이해돼"
트랜스포머는 어텐션 이후에도 여러 층의 Dense Layer(완전 연결층)를 거치며 정보를 다시 조합한다. 이 과정은 결국 학습된 맥락을 더 풍부하게 만드는 작업이다.
4. 결국 이 구조가 GPT를 가능하게 했다
어텐션과 트랜스포머는 LLM의 엔진이다. 만약 이 구조가 없었다면, GPT는 지금처럼 긴 문맥을 유지하거나 앞뒤 연결을 자연스럽게 처리하지 못했을 것이다.
트랜스포머가 LSTM을 대체할 수 있었던 결정적 이유는 바로 병렬처리와 학습 효율성이다. 어텐션 덕분에 GPT는 특정 위치의 단어 하나가 전체에 어떤 영향을 주는지를 계산할 수 있고, 이걸 수천만 개의 파라미터로 확장해도 성능을 유지할 수 있다.
마무리하며
GPT가 문맥을 이해한다는 건 착각이다. 정확히 말하면, 문맥처럼 보이게 계산해 내는 것이다. 그 계산의 핵심이 어텐션이고, 그것을 여러 층으로 쌓아 확장한 구조가 트랜스포머다.
나는 GPT에게 수없이 질문을 던지면서 이 구조를 따라가 봤고, 이해 못했던 지점은 다시 설명해 가며 정리했다. 이 글은 그 흐름을 남긴 흔적이다. 복잡해 보여도 핵심은 하나다:
중요한 걸 먼저 본다 — 그게 어텐션이다.
'AI, 기술적인 이야기들' 카테고리의 다른 글
LLM 개념 입문, 질문에서 시작하기 (0) | 2025.06.05 |
---|---|
Dense Layer는 왜 필요할까 – GPT가 말처럼 말할 수 있는 구조적 이유 (0) | 2025.06.02 |
LLM에서는 청크가 단위가 아니라 구조다 (0) | 2025.05.24 |
GPT는 어떻게 의미를 판단하는가 – 벡터 공간과 거리 기반 추론 (1) | 2025.05.21 |
LLM 설계자를 위한 사고 전환: DB 검색 vs 임베딩 기반 검색 (1) | 2025.05.15 |