01-개념
01 · LLM은 무엇을 계산하는가
섹션 제목: “01 · LLM은 무엇을 계산하는가”한 문장 정의
섹션 제목: “한 문장 정의”거대 언어 모델(Large Language Model, LLM)은 “지금까지의 토큰 열을 입력으로 받아 다음 토큰의 확률 분포를 출력하는 함수” 다. 그 이상도 그 이하도 아니다. ChatGPT·Claude·Gemini가 화려해 보여도, 안쪽에서는 이 한 가지 연산이 수십~수백 번 반복될 뿐이다.
Hugging Face NLP 코스의 디코딩 가이드는 이 사실을 수식 한 줄로 정리한다. 자기회귀(auto-regressive) 생성은 단어 시퀀스의 결합 확률을 다음과 같이 분해한다.
원문: “Auto-regressive language generation is based on decomposing the probability distribution of a word sequence into the product of conditional next word distributions: P(w₁:T | W₀) = ∏ₜ₌₁ᵀ P(wₜ | w₁:ₜ₋₁, W₀).”
의역: “자기회귀 생성은 문장 전체 확률을, ‘앞에 나온 단어들이 주어졌을 때 다음 단어 확률’들의 곱으로 쪼개는 작업이다.”
— Hugging Face, How to Generate Text (sources/05-ai-fundamentals/llm-basics/how-to-generate-decoding-methods-hf.md)
곱셈에 특별한 마법은 없다. 모델은 단지 매 단계 “지금까지 본 것을 보고 다음에 무엇이 올 확률이 가장 높은가”를 계산하고, 그 확률에서 한 토큰을 골라 자기 입력 끝에 붙인다.
왜 “단어”가 아니라 “토큰”인가
섹션 제목: “왜 “단어”가 아니라 “토큰”인가”사람이 보기에 “Hello”는 한 단어지만, 모델이 보기에는 학습 시 정해 둔 사전(vocabulary)의 ID 한 개 혹은 여러 개로 이루어진 토큰열이다. GPT 계열을 비롯한 대부분의 현대 LLM은 바이트쌍 부호화(Byte-Pair Encoding, BPE) 라는 알고리즘으로 사전을 만든다.
원문: “BPE training starts by computing the unique set of words used in the corpus … then building the vocabulary by taking all the symbols used to write those words.”
의역: “BPE 학습은 말뭉치에 등장한 고유 단어들을 모은 다음, 그 단어들을 적는 데 쓰인 기호 전부로 사전의 바닥을 깐다.”
— Hugging Face NLP Course, Byte-Pair Encoding tokenization
BPE는 빈도가 높은 글자쌍을 반복적으로 합쳐 점점 더 긴 조각을 만든다. 예컨대 학습 코퍼스에서 "u" "g"가 자주 붙어 있으면 "ug"라는 새 토큰이 사전에 추가된다. 이 결과 영어에서 흔한 단어는 토큰 1개, 드문 단어나 한국어처럼 학습 분포에서 비중이 작은 언어는 한 단어가 토큰 여러 개로 쪼개질 수 있다. 사용자가 체감하는 “한국어가 영어보다 토큰을 더 많이 잡아먹는다” 는 현상은 여기서 비롯된다.
이 사실이 협업에 주는 함의는 단순하다. 요금·컨텍스트 윈도우·응답 속도는 모두 “토큰” 단위로 측정된다. 단어 수가 아니라 토큰 수다. 04장(컨텍스트 윈도우)에서 다시 다룬다.
확률 분포에서 한 토큰을 “어떻게” 뽑는가
섹션 제목: “확률 분포에서 한 토큰을 “어떻게” 뽑는가”모델이 다음 토큰의 확률 분포를 내놓고 나면, 그중 하나를 선택해야 한다. 이 선택 규칙을 디코딩(Decoding) 이라고 부른다. Hugging Face의 정리를 빌리면 주요 전략은 다음과 같다.
| 전략 | 핵심 아이디어 | 협업에서의 인상 |
|---|---|---|
| 탐욕 탐색(Greedy Search) | 매 단계 가장 확률이 높은 토큰을 고른다. | 답이 짧고 반복되기 쉽다. |
| 빔 탐색(Beam Search) | 상위 N개 후보 가설을 동시에 유지한다. | 번역·요약처럼 정답에 가까운 출력 1개가 필요한 작업에 강함. |
| Top-K 샘플링 | 상위 K개 토큰만 남기고 그 안에서 무작위 추출. | 다양성과 일관성의 균형. |
| Top-p(Nucleus) 샘플링 | 누적 확률이 p가 될 때까지의 토큰 집합 안에서 추출. | 분포 모양에 따라 후보 수가 동적으로 변해 자연스러움. |
| 온도(Temperature) | 분포를 날카롭게/평탄하게 다시 스케일. | 낮을수록 결정적, 높을수록 창의적. |
원문: “Top-p and Top-K sampling produce more fluent text than greedy and beam search for open-ended generation … There is no one-size-fits-all solution; the best method depends on the specific use case.”
의역: “열린 결말 생성에서는 Top-p·Top-K가 탐욕·빔보다 자연스러운 글을 낸다. 다만 만능은 없고, 용도에 맞춰 골라야 한다.” — How to Generate Text
협업 관점에서 알아야 할 한 가지 — Claude의 API에는 temperature·top_p 같은 손잡이가 노출된다. 같은 프롬프트라도 이 손잡이를 조이면 답이 결정적이 되고, 풀면 답이 매번 달라진다. “AI가 답을 외워서 알려준다”가 아니라 “확률에서 매번 다시 뽑는다”라는 사실을 받아들이면, “왜 어제 됐던 게 오늘 안 되지?” 같은 의문의 절반은 자동으로 풀린다.
임베딩 — 의미를 좌표로 바꾸기
섹션 제목: “임베딩 — 의미를 좌표로 바꾸기”토큰이 사전 ID라면, 그 ID 자체로는 의미가 없다. 모델은 각 토큰을 고차원 벡터(임베딩, Embedding)로 바꿔서 다룬다. Timothy B. Lee와 Sean Trott는 Understanding AI 글에서 이렇게 설명한다.
원문: “Words with more similar meanings are placed closer together [in vector space].”
의역: “의미가 비슷한 단어일수록 벡터 공간에서 더 가까이 놓인다.”
— Large Language Models, Explained with a Minimum of Math and Jargon
같은 글은 LLM이 문맥에 따라 같은 단어의 벡터를 다르게 조정한다고도 짚는다. “은행”이 “강 옆 은행”인지 “돈을 맡기는 은행”인지는 주변 토큰을 보고 결정된다. 이 “주변을 보고 의미를 갱신하는” 작업이 바로 다음 챕터에서 다룰 어텐션(Attention)이다.
- LLM은 “다음 토큰 확률 분포 함수”다.
- 입력은 토큰열, 출력도 토큰열. 단위는 단어가 아니라 토큰.
- 디코딩 전략과 온도가 같은 모델에서도 답의 결정성과 다양성을 바꾼다.
- 토큰은 임베딩이라는 벡터로 바뀌어 모델 안에서 처리된다.
- “AI가 답을 안다”가 아니라 “AI가 다음을 추측한다”가 정확한 멘탈 모델이다.