Transformer, 토큰, 환각, RAG
ChatGPT는 어떻게 그렇게 자연스러운 글을 쓸까? 그리고 왜 가끔 그럴듯한 거짓말을 할까? 이 장에서는 LLM의 내부 작동 원리를 본다.
4-1. 용어 정리 — AI, ML, DL, LLM은 다 뭐가 다른가
AI 관련 글을 읽다 보면 AI, ML, DL, LLM, FM, Generative AI 같은 말이 마구 섞여 나온다. 한 번에 정리하고 가자.
포함 관계 (큰 → 작은)
flowchart TB
subgraph AI["🌐 AI · 인공지능"]
direction TB
subgraph ML["📊 ML · 머신러닝"]
direction TB
subgraph DL["🧠 DL · 딥러닝"]
direction TB
subgraph FM["🏛️ FM · 파운데이션 모델"]
direction TB
LLM["💬 LLM · 대규모 언어 모델"]
end
end
end
end약어 | 전체 이름 | 한 줄 정의 |
|---|---|---|
AI | Artificial Intelligence | 사람처럼 "똑똑한" 모든 기계 (큰 우산) |
ML | Machine Learning | 데이터로 스스로 규칙을 배우는 AI 방식 |
DL | Deep Learning | 여러 층 신경망을 쓰는 ML (Part 1·2 내용) |
FM | Foundation Model | 엄청난 데이터로 사전학습된 "범용" 모델 |
LLM | Large Language Model | FM 중 "언어 처리"에 특화된 것 |
Generative AI | 생성형 AI | FM 중 "무언가를 생성"하는 모든 모델 |
비유: 자동차 비교
단계 | 비유 |
|---|---|
AI | = 탈것 (자동차·자전거·비행기 등 모든 이동수단) |
ML | = 자동차 (탈것 중에서 엔진으로 가는 것) |
DL | = 전기차 (자동차 중에서 전기로 가는 것) |
FM | = 테슬라 (전기차 중에서 대형 모델) |
LLM | = 테슬라 모델 S (특정 용도의 테슬라) |
LLM은 AI라고도, ML이라고도, DL이라고도, FM이라고도 부를 수 있다. 단지 어느 수준에서 부르느냐의 차이다.
4-2. Transformer — "GPT의 T"
GPT의 T가 무엇의 약자인지 아는가? "Generative Pre-trained Transformer"다. Transformer가 GPT의 핵심이다.
Transformer 이전 — RNN의 한계
2017년 이전에는 AI가 문장을 처리할 때 RNN, LSTM 같은 구조를 썼다. 이름은 어렵지만 핵심은 단순하다 — 단어를 한 단어씩 순서대로 처리하는 방식이다.
"오늘" → "날씨가" → "좋아서" → "산책을" → "갔다"이 방식의 문제는 두 가지:
문제 | 설명 |
|---|---|
🐌 느리다 | 앞 단어 처리가 끝나야 다음 단어를 처리할 수 있음 (병렬 불가) |
🧠💨 잊어버린다 | 100단어쯤 가면 처음 단어는 거의 기억 못함 |
한 문단도 제대로 못 다루는데 "책 한 권을 읽고 요약하라" 같은 일은 꿈도 꿀 수 없었다.
2017년 — "Attention Is All You Need"
2017년 Google 연구진 8명이 논문 한 편을 발표한다. 제목이 도발적이었다.
Transformer 논문, 2017
"Attention Is All You Need" — 우리에게 필요한 건 어텐션뿐
이 논문에서 제안한 새로운 구조가 바로 Transformer다. 그리고 "어텐션(Attention)"이 핵심 아이디어다.
가져온 3가지 변화:
변화 | 설명 |
|---|---|
⚡ 빠르다 | 병렬 처리 가능 |
📏 긴 문장도 처리 | 모든 단어가 직접 연결 |
🚀 거대 모델 등장 | 더 많은 데이터로 학습 |
Self-Attention — "누가 누구를 보는가"
사람이 문장을 이해하는 방식을 생각해보자.
"고양이가 매트 위에 앉아 있는데, 그것은 정말 부드러웠다."
여기서 "그것"이 무엇을 가리키는지 어떻게 아는가? 우리는 자동으로 "매트"를 떠올린다. "부드럽다"는 표현은 매트가 어울리지, 고양이가 어울리지 않다는 것을 알기 때문이다.
Transformer가 이걸 한다. 문장 안의 모든 단어가 다른 모든 단어를 "본다". 그리고 "이 단어는 어느 단어와 가장 관련 깊은가"를 계산한다. 이게 Self-Attention이다.
비유: 회의실의 시선
5명이 회의실에 앉아 있다. 누가 발언할 때마다 다른 사람들이 그를 어떻게 보는지 시선의 강도를 잰다고 하자.
팀장이 발언하면 → 모든 사람이 강하게 쳐다본다 (높은 어텐션)
신입사원이 발언하면 → 다들 약하게 쳐다본다 (낮은 어텐션)
Transformer는 문장 안의 모든 단어를 이렇게 처리한다.
"그것"이 발언할 때:
• "고양이" → 약하게 본다 (어텐션 0.2)
• "매트" → 강하게 본다 (어텐션 0.7) ← 가장 관련 깊음
• "부드러웠다" → 중간 (어텐션 0.5)
"누구를 얼마나 볼지"를 모든 단어 쌍에 대해 동시에 계산한다. 그래서 RNN과 달리 병렬 처리가 가능해 빠르다.
"그것"이 어느 단어를 가장 강하게 보는가
"그것은"이 발언할 때 다른 단어들에 보내는 시선의 강도 — "매트"가 가장 강하게 연결됨
4-3. AI는 글을 어떻게 "읽는가"
AI는 글을 사람처럼 읽지 않는다. AI 입장에서는 글자도, 단어도 그냥 숫자다.
1단계: 토큰화 (Tokenization) — 글을 잘게 쪼개기
AI는 글을 통째로 처리하지 않는다. 토큰(token)이라는 단위로 잘게 쪼개서 다룬다.
원본 문장:
"안녕하세요, 반갑습니다."
토큰 분할:
["안녕", "하세요", ",", " 반갑", "습니다", "."]
숫자 ID 변환:
[12453, 8821, 11, 49102, 4521, 13]AI는 이 숫자 배열을 받는다.
한국어 vs 영어 — 토큰 효율의 차이
영어: 단어가 띄어쓰기로 잘 구분되어 보통 1단어 = 1~2 토큰
한국어: 조사("가", "을", "하다" 등)가 붙어 변형이 많아 단어 하나가 2~4 토큰
→ 한국어로 ChatGPT를 쓰면 같은 비용으로 더 적은 글을 처리하는 셈이다.
같은 문장 "Hello, nice to meet you" / "안녕하세요, 반갑습니다"
2단계: 임베딩 (Embedding) — 의미의 좌표 만들기
토큰이 숫자가 됐다고 끝이 아니다. "12453"이라는 숫자 자체는 의미가 없다. AI가 이해할 수 있도록 수백~수천 차원의 "벡터(좌표)"로 변환한다. 이게 임베딩이다.
비유: 단어를 지도에 놓기
2차원 지도(가로축 = 동물 vs 사물, 세로축 = 크다 vs 작다)에 단어들을 놓는다고 상상해보자.
크다 ↑
│ ●코끼리 ●트럭
│
│ ●강아지 ●자동차
│
│ ●고양이 ●자전거
│
│ ●햄스터 ●연필
작다│
└──────────────────────────→
동물 사물이런 식으로 단어들을 좌표로 놓으면 비슷한 의미의 단어가 가까이 위치한다. 실제 AI의 임베딩은 수백~수천 차원이다.
신기한 사실
임베딩 공간에서는 다음과 같은 단어 산수가 가능하다.
"왕 - 남자 + 여자" ≈ "여왕"
단어의 의미가 "방향성"으로 표현되기 때문이다.
의미 공간 (2차원으로 단순화)
비슷한 의미의 단어는 좌표상 가까이 모인다 — 실제는 수백~수천 차원, AI가 의미 거리를 정확히 계산한다
3단계: 컨텍스트 윈도우 — AI의 "단기 기억"
AI는 한 번에 정해진 양의 토큰만 기억할 수 있다. 이 "한 번에 볼 수 있는 양"을 컨텍스트 윈도우(Context Window)라고 한다.
모델 (출시 연도) | 컨텍스트 윈도우 | 비유 |
|---|---|---|
GPT-3.5 (2022) | 4K 토큰 | 긴 이메일 몇 통 |
GPT-4 Turbo (2023) | 128K 토큰 | 단편 소설 한 권 |
Gemini 1.5 Pro (2024) | 2M 토큰 | 당시 최대 — 책 여러 권 |
Claude Haiku 4.5 (2025) | 200K 토큰 | 장편 소설 한 권 |
Llama 4 Scout (2025) | 10M 토큰 ⭐ | 책 수십 권 — 역대 최대급 (Llama는 2026년 중단) |
Grok 4.6 (2026) | 500K 토큰 | 장편 소설 몇 권 |
Claude Fable 5.1 · Opus 5.5 · Sonnet 5 (2026) | 1M 토큰 | 책 여러 권 |
GPT-6 Astra (2026) | 약 1.05M 토큰 | 책 여러 권 |
Gemini 3.1 Pro (2026) | 1M 토큰 | 책 여러 권 |
2026년 현재 주요 프런티어 모델은 대부분 1M(100만) 토큰 전후로 수렴했다. 경쟁의 초점이 "얼마나 많이 넣을 수 있나"에서 "긴 내용을 얼마나 정확히 활용하나"로 옮겨가는 중이다.
컨텍스트 윈도우 크기 비교 (로그 스케일)
AI의 '책상 크기'
AI를 "공부 중인 학생"으로 생각하면, 컨텍스트 윈도우는 책상 크기다. 책상이 좁으면 책을 펴놓을 공간이 한정되고, 넓으면 책 여러 권을 동시에 비교할 수 있다.
Claude가 "긴 문서 작업에 강하다"고 평가받는 이유가 바로 이거다.
컨텍스트가 크다고 무조건 좋을까?
컨텍스트 윈도우가 커도 모든 토큰을 똑같이 잘 기억하는 건 아니다. 길어질수록 "중간에 묻힌 정보를 놓치는" 현상(Lost in the Middle)이 알려져 있다. 실무에서는 핵심 정보를 프롬프트의 앞·뒤에 배치하는 게 안전하다.
4-4. LLM은 어떻게 학습되는가 — 3단계 훈련
ChatGPT 같은 LLM은 보통 3단계 훈련을 거친다.
flowchart LR
A["Step 1<br/>사전학습<br/>Pre-training"] --> B["Step 2<br/>Instruction Tuning<br/>명령 튜닝"]
B --> C["Step 3<br/>RLHF<br/>사람 피드백 학습"]
style A fill:#e3f2fd,stroke:#1e88e5
style B fill:#fff3e0,stroke:#fb8c00
style C fill:#f3e5f5,stroke:#8e24aaStep 1. 사전학습 — "인터넷을 통째로 읽기"
먼저 AI에게 어마어마한 양의 텍스트를 보여준다. 위키백과 전체, 수많은 책, 뉴스 기사, 블로그, 웹사이트… 수백 GB의 텍스트다.
AI는 이 텍스트들을 보며 단 하나의 일을 한다 — "이 단어 뒤에 어떤 단어가 올 확률이 높은가"를 맞히는 것.
AI에게 보여준 문장:
"오늘 점심으로 김치___를 먹었다"
AI가 맞혀야 할 다음 단어:
"찌개" (확률 0.6)
"볶음밥" (확률 0.2)
"전" (확률 0.1)사전학습의 규모
GPT-3는 약 3000억 개의 토큰을 학습했다. 사람이 평생 읽을 수 있는 글의 양보다 수천 배 많은 양이다. 이걸 수십 일에 걸쳐 GPU 수천 개로 처리했다.
Step 2. Instruction Tuning — "명령에 답하는 법" 가르치기
사전학습이 끝난 AI는 똑똑하긴 한데 이상한 답을 한다. "한국에서 가장 높은 산은?"이라고 물으면 "...라고 묻는 사람들이 많다. 인터넷에서 흔히 보이는 답은..."처럼 질문에 답하는 게 아니라 "다음 단어를 예측"만 한다.
그래서 "질문에는 답을 하라"고 추가로 가르친다. 사람이 만든 "좋은 질문-답변 쌍" 수만 개를 학습시킨다.
Step 3. RLHF — "사람의 피드백으로 다듬기"
이제 AI가 답은 한다. 그런데 어떤 답은 좋고 어떤 답은 나쁘다. 무례하거나, 위험하거나, 너무 길거나… 그래서 마지막으로 사람 평가단이 AI의 답을 여러 개 비교해 평가한다.
이게 RLHF (Reinforcement Learning from Human Feedback)다.
비유: 신입사원의 성장 과정
단계 | 비유 |
|---|---|
1단계 (사전학습) | 대학생 시절 — 책·인터넷으로 엄청난 양의 지식 흡수 |
2단계 (Instruction Tuning) | 신입사원 OJT — 선배가 "이런 메일은 이렇게 답해야 해" 가르침 |
3단계 (RLHF) | 사수의 지속적 피드백 — "이 보고서는 너무 길어" 다듬기 |
3단계를 거치면 "단어 예측 기계"가 ChatGPT 같은 "비서"로 진화한다.
4-5. LLM의 한계 — "환각"이라는 문제
여기까지 보면 LLM이 만능 같지만, 심각한 한계가 있다. AI 사용자라면 반드시 알아야 한다.
한계 1: 학습 시점 이후 정보 모름 (Knowledge Cutoff)
AI는 학습된 시점까지의 데이터만 알고 있다. 예를 들어 GPT-4의 학습이 2023년에 멈췄다면, 2024년 이후의 사건은 아예 모른다.
한계 2: 환각 (Hallucination) — 그럴듯하게 거짓말한다
가장 무서운 한계다. AI는 모르는 것을 "모른다"고 하지 않고 그럴듯하게 지어낸다.
환각의 예
질문: "한국에서 두 번째로 높은 산은?"
AI의 답: "한국에서 두 번째로 높은 산은 '금강산'으로, 해발 1,638m입니다."
→ 완전한 거짓말! AI는 "산 이름처럼 보이는 단어"를 채워넣는다.
왜 그럴까? AI의 본질은 "다음에 올 단어를 통계적으로 예측하는 것"이다. "내가 모르는 것이다"라는 자각이 없다. "...은 ___이다"의 빈칸에 어울려 보이는 단어를 채워넣을 뿐이다.
본인은 거짓말한다는 의식이 전혀 없다. 그래서 더 무섭다.
한계 3: 회사 기밀·사내 데이터 모름
AI는 인터넷에 공개된 데이터로 학습된다. 우리 회사의 사내 위키, 회의록, 매출 데이터는 절대 모른다.
4-6. RAG — "오픈북 시험"으로 한계 극복
이 한계들을 해결하기 위해 나온 기술이 RAG (Retrieval-Augmented Generation)다. 한국어로 풀면 "검색으로 보완한 생성".
비유: 오픈북 시험
시험 방식 | 특징 |
|---|---|
클로즈드북 | 모든 걸 외워서 답해야 함. 모르는 건 그냥 틀림 |
오픈북 | 시험 중 책을 열어 찾아볼 수 있음. 외울 필요 없음 |
기본 ChatGPT는 "클로즈드북 학생"이다. 학습 시점에 외운 것만 답할 수 있고, 모르면 환각을 일으킨다.
RAG는 ChatGPT를 "오픈북 학생"으로 바꾼다.
RAG의 작동 흐름
flowchart LR
Q["사용자 질문<br/>'우리 회사<br/>24년 매출?'"] --> S["1️⃣ 검색<br/>사내 DB에서<br/>관련 문서 찾기"]
S --> M["2️⃣ 합치기<br/>질문 + 문서<br/>AI에 함께 입력"]
M --> A["3️⃣ 답 생성<br/>'보고서에 따르면<br/>350억원입니다'"]
style Q fill:#e3f2fd,stroke:#1e88e5
style S fill:#fff3e0,stroke:#fb8c00
style M fill:#f3e5f5,stroke:#8e24aa
style A fill:#e8f5e9,stroke:#43a047기본 ChatGPT (클로즈드북) | ChatGPT + RAG (오픈북) |
|---|---|
✗ 외운 것만 답함 | ✓ 외부 DB에서 찾아옴 |
✗ 모르면 환각 | ✓ 환각이 줄어듦 |
✗ 최신·사내 정보 모름 | ✓ 최신·사내 정보 OK |
— | ✓ 출처를 댈 수 있음 |
정리
LLM은 거대한 텍스트를 학습해 "다음 단어를 예측"하는 모델
핵심 구조는 Transformer와 Self-Attention
AI는 글을 토큰 → 임베딩 → 컨텍스트 윈도우로 처리
가장 큰 한계는 환각 — "모르면서 모른다고 못 한다"
RAG는 외부 문서를 참조해 환각을 줄이는 핵심 기법
다음 장부터는 이런 LLM을 잘 부리는 법 — 프롬프트 엔지니어링으로 넘어간다.