"ChatGPT는 어떻게 말을 이해할까?"
ChatGPT에게 질문을 던지면 마치 사람처럼 대화합니다. 코드를 짜고, 글을 요약하고, 번역까지 합니다. 그런데 이 모델은 실제로 '이해'를 하는 걸까요, 아니면 그냥 외워서 내뱉는 걸까요?
둘 다 아닙니다. 정답은 훨씬 더 흥미롭습니다.
LLM이란?
LLM(Large Language Model, 대형 언어 모델) 은 방대한 텍스트 데이터로 훈련된 AI 모델입니다.
- Large: 수천억 개의 파라미터(가중치)를 가진 거대한 모델
- Language: 텍스트를 입력받아 텍스트를 출력
- Model: 데이터에서 패턴을 학습한 수학적 함수
대표적인 LLM:
| 모델 | 개발사 | 특징 |
|---|---|---|
| GPT-4o | OpenAI | ChatGPT의 핵심 모델 |
| Claude | Anthropic | 긴 문맥, 안전성 중심 |
| Gemini | 멀티모달(텍스트+이미지) | |
| Llama | Meta | 오픈소스, 무료 사용 가능 |
| Mistral | Mistral AI | 경량·고성능 유럽산 모델 |
핵심 원리: 다음 단어 예측
LLM의 본질은 단순합니다. "다음에 올 단어(토큰)가 무엇일지 예측" 합니다.
flowchart LR
A["오늘 점심으로\n김치찌개를"] -->|입력| B(["LLM"])
B --> C["먹었다 42%"]
B --> D["시켰다 31%"]
B --> E["주문했다 18%"]
B --> F["..."]
C -->|최고 확률 선택| G["오늘 점심으로\n김치찌개를 먹었다"]
이걸 토큰 하나씩 반복하면 문장 전체가 완성됩니다. 단순해 보이지만, 이 예측을 엄청나게 잘 하려면 언어 문법·문맥·세계 지식을 모두 내재화해야 합니다. 그게 바로 수조 개의 텍스트를 학습하는 이유입니다.
토큰(Token): LLM이 다루는 최소 단위
LLM은 문자 단위가 아니라 토큰 단위로 텍스트를 처리합니다.
"ChatGPT는 정말 똑똑하다"
→ ["Chat", "G", "PT", "는", " 정말", " 똑똑", "하다"] (7토큰)
영어는 단어와 거의 1:1이지만, 한국어는 형태소 분리 방식 때문에 같은 내용이 더 많은 토큰을 씁니다. 토큰 수는 비용·속도와 직결되므로 중요한 개념입니다.
트랜스포머: LLM의 엔진
현대 LLM은 2017년 구글이 발표한 트랜스포머(Transformer) 아키텍처를 기반으로 합니다.
트랜스포머의 핵심은 어텐션(Attention) 메커니즘입니다. 단어를 해석할 때 문장 내 다른 모든 단어와의 관계를 동시에 계산합니다.
flowchart TD
subgraph 문장["문장: '그 은행은 강 옆에 있다'"]
W1["그"]
W2["은행"]
W3["강"]
W4["옆에"]
W5["있다"]
end
W2 -->|"관계 강도 0.8"| W3
W2 -->|"관계 강도 0.6"| W4
W2 -->|"관계 강도 0.1"| W1
W3 -->|"'강'이 있으므로\n은행 = 강변"| RESULT["✅ 강변(riverbank)으로 해석"]
'은행'이 금융기관인지 강변인지를 '강'이라는 단어와의 연관 강도를 계산해 판단합니다. 이 능력 덕분에 LLM은 긴 문맥에서도 맥락을 유지할 수 있습니다.
학습 과정: 어떻게 '똑똑해지나'
LLM은 크게 두 단계로 학습합니다.
flowchart LR
subgraph PRE["① 사전 학습 (Pre-training)"]
direction TB
D1["위키백과\n책 수백만 권\nGitHub 코드\n뉴스·논문..."]
D1 -->|"수천 GPU\n수개월 학습"| M1["기반 모델\n(Base Model)"]
end
subgraph FINE["② 파인튜닝 (Fine-tuning)"]
direction TB
M1 --> RLHF["RLHF\n인간 피드백\n강화학습"]
RLHF --> M2["ChatGPT / Claude\n(Assistant Model)"]
end
PRE --> FINE
사전 학습: 인터넷·책 등 수조 개 토큰으로 언어 구조, 세계 지식, 추론 능력을 습득합니다. 비용은 수십억 원 ~ 수천억 원에 달합니다.
RLHF(인간 피드백 강화학습): 사람이 모델 응답을 평가하고, 더 유용한 응답을 많이 생성하도록 추가 학습합니다. 단순한 '텍스트 예측기'를 '유용한 어시스턴트'로 바꾸는 핵심 기술입니다.
컨텍스트 윈도우: 기억의 한계
LLM은 한 번에 처리할 수 있는 토큰 수에 제한이 있습니다.
flowchart LR
subgraph CTX["컨텍스트 윈도우 (128K 토큰 예시)"]
direction LR
OLD["🌫️ 잊혀진 대화\n(범위 초과)"]:::faded
C1["대화 1"]
C2["대화 2"]
C3["..."]
C4["현재 질문"]
end
OLD -.->|"범위 밖 → 기억 못 함"| C1
C4 -->|"이 범위만 처리"| ANS["응답 생성"]
classDef faded fill:#e0e0e0,color:#999,stroke:#ccc
| 모델 | 컨텍스트 윈도우 |
|---|---|
| GPT-3.5 | 16K 토큰 |
| GPT-4o | 128K 토큰 |
| Claude 3.5 Sonnet | 200K 토큰 |
| Gemini 1.5 Pro | 1M 토큰 |
대화가 길어질수록 앞부분을 잃어버리는 이유입니다. 이 한계를 극복하는 것이 RAG, 메모리 시스템 등 응용 기술의 핵심 과제입니다.
LLM이 할 수 있는 것과 없는 것
잘 하는 것 ✅
- 텍스트 요약·번역·분류
- 코드 작성·디버깅·설명
- 아이디어 브레인스토밍
- 패턴 인식과 추론
- 지식 기반 질의응답
주의해야 할 것 ⚠️
- 환각(Hallucination): 없는 사실을 그럴듯하게 만들어냄
- 지식 컷오프: 학습 데이터 이후의 사건은 모름
- 맥락 의존성: 잘못된 전제가 포함된 질문엔 틀린 방향으로 답변
- 수학·논리: 복잡한 계산 오류 발생 가능 (도구 없이 사용 시)
할루시네이션을 줄이는 프롬프트 전략
flowchart TD
A["❌ 나쁜 질문\n'세종대왕이 훈민정음을\n만든 이유가 뭐야?'"]
B["LLM이 사실+창작\n혼합하여 답변"]
C["✅ 더 나은 질문\n'훈민정음 해례본에 기술된\n창제 동기를 인용해서 설명해줘.\n불확실한 내용은 확인 필요 표시'"]
D["근거 기반 응답\n+ 불확실 부분 명시"]
A -->|"할루시네이션 위험"| B
C -->|"범위 제한 + 불확실성 요청"| D
LLM 활용 생태계
LLM은 단독으로 쓰이기보다 다양한 방식으로 확장됩니다.
flowchart TB
LLM(["🧠 LLM"])
subgraph L1["기본 활용"]
A["텍스트 입력 → 텍스트 출력\n요약·번역·작성"]
end
subgraph L2["RAG (검색 증강 생성)"]
B["외부 문서 검색"] --> C["검색 결과를\n컨텍스트로 전달"]
end
subgraph L3["Tool Use (도구 사용)"]
D["웹 검색"]
E["코드 실행"]
F["API 호출"]
end
subgraph L4["Agent (에이전트)"]
G["목표 수립"] --> H["계획"]
H --> I["도구 실행"]
I --> J["결과 확인"]
J -->|"미완성"| H
J -->|"완료"| K["최종 답변"]
end
LLM --> L1
LLM --> L2
LLM --> L3
LLM --> L4
이 시리즈에서는 LLM 기초부터 시작해 RAG, 프롬프트 엔지니어링, 에이전트 구축까지 단계별로 다룹니다.
정리
| 개념 | 내용 |
|---|---|
| LLM | 방대한 텍스트로 학습한 언어 예측 모델 |
| 토큰 | LLM이 다루는 텍스트 최소 단위 |
| 트랜스포머 | 어텐션 기반의 현대 LLM 아키텍처 |
| 사전 학습 | 수조 토큰으로 언어·지식 습득 |
| 파인튜닝 | 특정 목적에 맞게 추가 학습 |
| 컨텍스트 윈도우 | 한 번에 처리 가능한 최대 토큰 수 |
| 할루시네이션 | 없는 사실을 그럴듯하게 생성하는 오류 |
다음 편에서는 프롬프트 엔지니어링 — 같은 모델에서 더 좋은 결과를 이끌어내는 기술을 배웁니다.