LLM이 다음 단어 하나를 고르기까지
2026. 10 · AI 리터러시 스터디 · 칼리즈
개념 넷에 43분. 쉬운 설명 다음에 심화를 바로 붙인다
LLM이 하는 일을 한 문장으로 줄이면
다음에 올 토큰 하나를 맞힌다
1부 · 5분
질문은 그대로였고, 푸는 방법이 바뀌었다
1950 · 앨런 튜링
"기계는 생각할 수 있는가?"
대화로 사람과 구별이 안 되면 생각한다고 보자. 목표는 이해
1951 · 클로드 섀넌
"다음 글자는 무엇인가?"
앞 글자만 보고 다음 글자를 맞히게 했다. 멀리 볼수록 잘 맞힌다. 목표는 맞히기
이 맞히기를 기계가 직접 세서 하기 시작한 게 n-gram
Turing, Mind 1950 · Shannon, BSTJ 1951 · Claude라는 이름도 섀넌을 기리는 것으로 알려짐(뉴욕타임스 보도)
"오늘 점심은 ___"
비율은 설명용 예시
파라미터 · 2년
1,500배
GPT-1 1.17억 (2018.06) → GPT-3 1,750억 (2020.05)
컨텍스트 윈도우 · 4년
500배
GPT-3 2,048토큰 (2020) → Gemini 1.5 Pro 100만 토큰 (2024)
구조는 거의 그대로, 크기와 길이를 키웠다
| 개념 | 처음 등장 | 오늘의 질문 |
|---|---|---|
| 토큰 | 2016 BPE | 무엇을 단위로 읽나 |
| 임베딩 | 2003 · 2013 | 뜻을 숫자로 어떻게 담나 |
| Attention과 MLP | 2014 · 2017 | 컨텍스트를 어떻게 반영하고 정리하나 |
| 토큰 예측 | 1951 | 다음 토큰은 어떻게 고르나 |
2부 · 10분
AI는 글자가 아니라 토큰을 읽는다
"오늘 점심은 김치"
8글자 → 6개 토큰. 띄어쓰기(␣)도 다음 토큰에 붙는다
o200k_base (GPT-4o · GPT-5 계열) 실측
| 토큰 | 오늘 | ␣점 | 심 | 은 | ␣김 | 치 |
|---|---|---|---|---|---|---|
| 번호 | 149830 | 54788 | 25798 | 4740 | 47713 | 13426 |
모델이 받는 건 이 번호 목록. 요금 · 길이 제한 · 출력 한도도 모두 토큰 수
Byte Pair Encoding · 1994 · 가장 자주 붙는 두 글자를 새 기호 하나로 바꾼다
토크나이저는 이 방법을 토큰 사전 만들기에 빌려 왔다
Gage, A New Algorithm for Data Compression, 1994 · 예시는 Wikipedia "Byte pair encoding"
말뭉치 · low ×5 · lower ×2 · newest ×6 · widest ×3
① 붙어 나오는 쌍 세기
1등 e s를 합치고, 다시 센다
② 합친 순서 = 머지 규칙
… 정한 사전 크기가 될 때까지
이 규칙 목록이 곧 토크나이저다. GPT-2는 이걸 5만 번 반복했다
Sennrich et al., 2016 예시를 단순화 · 동점이면 먼저 나온 쌍부터
말뭉치에 없던 단어 lowest를 자르면
규칙 5~7은 맞는 쌍이 없어서 그대로 넘어간다
본 적 없는 단어도 아는 토큰으로 자른다. 끝까지 못 합치면 글자로 남는다
실제 구현은 규칙 순위가 가장 높은 쌍부터 반복해서 합친다
어떤 글자든 바이트로 쪼갤 수 있어 '모르는 단어'가 없다
단어 · 숫자 · 공백 단위로 먼저 나누고, 그 칸 안에서만 BPE 머지
| 토크나이저 | 숫자 규칙 | 1234567890 |
|---|---|---|
| GPT-2 | ?\p{N}+ (통째로) | 123 45 678 90 |
| cl100k · o200k | \p{N}{1,3} (3자리씩) | 123 456 789 0 |
GPT-2는 머지 운에 따라 제멋대로, 최신 사전은 3자리씩 규칙대로
js-tiktoken 1.0.21 사전 파일의 pat_str, 2026.10.09 확인
| 사전 | 크기 | 임베딩 테이블 (×768) | 한국어 예문 토큰 수 |
|---|---|---|---|
| gpt2 | 50,257 | 3,860만 | 59 |
| cl100k | 100,277 | 7,700만 | 31 |
| o200k | 200,019 | 1억 5,360만 | 20 |
사전이 크면 토큰 수는 줄고, 임베딩 테이블과 출력 레이어는 커진다
GPT-2 small에서 임베딩 테이블만 전체 1.24억 중 31%. 예문: "토큰 사용량을 줄이려고 에이전트 루프를 다시 짰다."
o200k 토큰 수 · 회색 영어, 파랑 한국어
js-tiktoken 실측 2026.10.08 · 평균은 FLORES-200 기준 최신 모델 8개, 디지털데일리 2026.10.09
"r이 몇 개?"를 자주 틀린다
자릿수와 경계가 어긋난다
띄어쓰기가 토큰 수를 바꾼다
글자 수 제한 · 숫자 검증은 프롬프트 말고 코드로
2020~21
형태소로 먼저 자르고 그 안에서 BPE. 대부분 과제에서 가장 좋았다
HyperCLOVA · KLUE · 카카오브레인 연구
2024~ 지금 주류
보캡에 한국어 토큰을 더 넣고, 자주 붙는 단어는 한 토큰으로(SuperBPE)
K-EXAONE 보캡 15만 · 효율 약 30%↑
Llama 3.1 + 한국어 7.2만 → 토큰 거의 절반
2026
형태소 기준으로 서브워드를 고르니 입력당 토큰 수가 크게 줄었다
EACL 2026 "Morpheme Matters"
한국어 서비스라면 모델을 고를 때 같은 문장의 토큰 수도 비교하자
FLORES-200 200문장 · AIScroll 측정, 디지털데일리 2026.10.09 · 국산 모델들도 30% 안팎 개선 발표(Kanana-2, A.X 4.0 등, 회사 발표 기준)
실행을 누르면 결과가 여기에 나옵니다
[149830, 54788, 25798, 4740, 47713, 13426] ['오늘', ' 점', '심', '은', ' 김', '치'] 6 토큰
문장을 바꿔서 다시 실행해 보세요. 영어와 한국어를 비교하면 차이가 바로 보입니다
브라우저 안에서 실제 파이썬(Pyodide 0.27) 실행 · 처음 한 번은 인터넷(cdn.jsdelivr.net)에서 불러옴
3부 · 11분
토큰 번호를 의미의 좌표로
번호로 줄을 찾아 숫자 768개를 꺼낸다. 값은 사람이 아니라 학습이 정한다
벡터 값은 설명용 예시
GPU는 이 배치를 한꺼번에 계산한다. 그래서 문장을 모아서 넣는다
토큰 나눔과 값은 설명용 예시
숫자 묶음이 아니라 뜻 공간의 좌표라서, 뜻을 계산할 수 있다
실제는 768차원, 그림은 2차원 · 여기서 좌표는 뜻의 자리이고, 몇 번째 토큰인지 나타내는 포지션 임베딩과는 다르다
실제는 수천 차원. 2차원으로 그린 설명용 배치
| 계산 결과와 가까운 순 | 단어 |
|---|---|
| 1등 | king |
| 2등 | queen |
입력한 단어를 후보에서 빼고 고르기 때문에 queen이 답이 된다. 의미 관계는 담기지만 단어 산수는 단순화된 설명
Word2Vec · University of Edinburgh 2019 · eScience Center
cos θ = a·b / (|a| |b|)
RAG는 이 값으로 질문과 가까운 문서를 찾는다 (자세히는 다음 스터디)
1 · 컨텍스트를 모른다
2 · 순서를 모른다
토큰만 보면 거의 같은 묶음. 그래서 포지션 정보를 더한다
같은 '개'라도 포지션이 다르면 다른 입력이 된다. 모델은 이 차이로 순서를 안다
값은 설명용 예시 · 포지션 번호는 0부터 세고, 실제로는 토큰 단위
사인파 · 2017
빠른 바늘과 느린 바늘의 각도 조합이 포지션마다 다르다.
그 sin·cos 값을 포지션 벡터로 써서 더한다
RoPE · 2021
값을 더하는 대신 벡터를 포지션만큼 돌린다.
두 단어의 각도 차이가 곧 서로의 거리
핵심은 하나. 포지션마다 겹치지 않는 무늬를 만들어 넣는다
실제 사인파는 수백 쌍의 바늘(주파수)을 쓴다 · RoPE는 Attention의 Q·K를 돌린다 · 각도는 설명용
| 방법 | 어떻게 | 특징 | 쓰는 모델 |
|---|---|---|---|
| 사인파 · 2017 | 시계 바늘 값을 더한다 | 학습이 필요 없다 | 원조 트랜스포머 |
| 학습형 테이블 · 2018~ | 포지션마다 한 줄씩 학습 | 최대 길이 고정 (GPT-2는 1,024) | GPT-2, BERT |
| RoPE · 2021 | 벡터를 포지션만큼 돌린다 | 상대 거리가 바로 담긴다 | Llama 등 최신 모델 다수 |
더하기에서 돌리기로. 요즘 모델은 대부분 RoPE
Vaswani 2017 · Radford 2019 · Devlin 2018 · Su et al., RoFormer 2021
같은 번호 9012는 똑같은 줄이 나온다. 아직은 포지션도 컨텍스트도 모른다
B = 2 (문장 수), T = 3 (토큰 수) · 번호와 값은 설명용 예시
이 x가 블록에 들어가는 입력. 모양은 그대로 [2, 3, 768]
값은 설명용 예시 · GPT-2의 학습형 포지션 테이블 기준
idx = torch.tensor([[2841, 9012, 13426],
[9012, 5521, 771]]) # [2, 3] B=2, T=3
tok = wte(idx) # [2, 3, 768] 테이블에서 줄 꺼내기 ①
pos = wpe(torch.arange(3)) # [3, 768] 포지션 0·1·2
x = tok + pos # [2, 3, 768] 두 문장에 똑같이 더함 ②
for block in blocks: x = block(x) # [2, 3, 768] 12번 지나도 모양 그대로
wte = 단어 테이블 [50,257 × 768], wpe = 포지션 테이블 [1,024 × 768]. 블록 안에서 일어나는 일은 Attention 파트에서
GPT-2 코드의 변수 이름 그대로 · 블록 수 12는 GPT-2 small 기준
GPT-2는 같은 테이블을 양 끝에서 쓴다. 3,860만 개를 한 번만 저장
Radford et al., GPT-2, 2019 (weight tying)
4부 · 14분
옆을 보고 뜻을 고치고, 혼자 정리한다
'시장에서'와 '먹었다'를 보고 → 배는 과일 쪽으로
| 역할 | 도서관에 비유하면 | |
|---|---|---|
| Query | 내가 찾는 것 | 검색어 |
| Key | 각 토큰이 내건 목차 | 책 목차 |
| Value | 뽑히면 건네줄 내용 | 책 내용 |
하나만 고르지 않고, 맞는 정도대로 모든 책 내용을 섞는다
softmax( Q·Kᵀ / √d ) · V
| 앞 토큰 | Q·K 스코어 | ÷ √2 | softmax | 비율 |
|---|---|---|---|---|
| 나는 | 0.25 | 0.18 | 18.7% | |
| 시장에서 | 1.60 | 1.13 | 48.5% | |
| 배를 | 1.05 | 0.74 | 32.9% |
'시장에서'의 몫이 가장 커서 '배를'이 과일 쪽으로 움직인다
2차원짜리 설명용 예시 값
스코어 [8, 4, 2] 그대로
한쪽에 몰려 학습 신호(기울기)가 거의 0
√64 = 8로 나눈 [1, 0.5, 0.25]
고르게 퍼져 여러 토큰에서 함께 배운다
차원 d가 크면 내적의 분산도 d배. √d로 나눠 1로 맞춘다
다음 토큰을 맞히는 모델이 정답(뒤 토큰)을 미리 보면 안 된다
뒤에 오는 토큰들의 스코어를 −∞로 → softmax 후 0. 덕분에 한 문장의 모든 포지션을 한 번에 학습한다
실행을 누르면 결과가 여기에 나옵니다
[[1. 0. 0. 0. ] [0.4 0.6 0. 0. ] [0.04 0.21 0.76 0. ] [0.03 0.53 0.35 0.09]] 출력 모양: (4, 8)
T나 시드를 바꿔 보세요. 위쪽 삼각형은 늘 0, 줄마다 합은 1
브라우저 안에서 실제 파이썬(Pyodide 0.27) 실행 · 처음 한 번은 인터넷(cdn.jsdelivr.net)에서 불러옴
헤드마다 무엇을 볼지 학습으로 정해진다. 라벨은 연구에서 관찰된 예
Attention · 토큰끼리
옆 토큰의 정보를 모아 와서 뜻을 고친다
MLP · 토큰마다 따로
모아 온 정보를 각자 가공한다. 토큰끼리는 섞지 않는다
회의로 치면 Attention은 의견 듣기, MLP는 자리로 돌아가 정리하기
MLP = 행렬 곱 두 번 사이에 GELU · Multi-Layer Perceptron
Attention이 모아 온 정보를 넓게 펼쳐 거른 뒤 다시 접는다
GPT-2 small 기준 · W₁ 236만 + W₂ 236만 · GELU(x) = x × Φ(x), 음수는 0 가까이, 양수는 거의 그대로
사실 지식이 여기 많이 담긴다고 본다. 약하게 담긴 걸 물으면 그럴듯한 오답(환각)이 나오기 쉽다
Geva et al., 2021 (FFN = key-value memory) · Meng et al., 2022 (ROME) · 연구에서 나온 해석이며 감지기 이름은 설명용
| GPT-2 small | GPT-3 | Llama 2 70B | |
|---|---|---|---|
| 블록 수 | 12 | 96 | 80 |
| 헤드 수 | 12 | 96 | 64 |
| 토큰당 차원 | 768 | 12,288 | 8,192 |
| 파라미터 | 1.24억 | 1,750억 | 약 700억 |
뼈대는 같고 블록 수 · 폭 · 헤드 수만 다르다. 그래서 파라미터가 1,000배 넘게 차이 난다
Radford 2019 · Brown 2020 Table 2.1 · Llama-2-70B config.json
블록 안에서는 MLP가 Attention의 2배. 지식은 MLP에 많이 담긴다는 해석이 있다
설정값(50,257 · 1,024 · 768 · 12레이어)으로 직접 계산
스코어 테이블이 [T, T]라서 길이의 제곱으로 커진다
상대 계산량, T² 기준
2 × 레이어 × KV헤드 × 헤드차원 × 토큰 × 2바이트
생성할 때 앞 토큰의 K·V를 저장해 다시 계산하지 않는다. 대신 메모리를 쓴다
fp16, 요청 1건 기준. Llama 2 70B: 80레이어, KV 헤드 8, 헤드 차원 128 (config.json)
FlashAttention (2022): 결과는 같고 GPU 메모리 왕복만 줄여 GPT-2 1K 기준 약 3배 빠름
Ainslie et al., GQA 2023 · Dao et al., FlashAttention 2022. Llama 2 70B는 Q 64 : KV 8
5부 · 8분
결국 다음 토큰 하나 고르기
입력은 한꺼번에 읽지만 출력은 하나씩. 그래서 출력이 더 느리고 비싸다
마지막 벡터와 각 토큰 임베딩의 내적이 곧 스코어. 비슷한 방향일수록 높다
"찌개"는 '찌'와 '개' 두 토큰. 확률은 설명용 예시 값
pᵢ = exp(zᵢ / T) / Σ exp(zⱼ / T)
템퍼러처 1.0
템퍼러처 0.5
T가 작으면 격차가 커져 1등으로 쏠리고, T → 0이면 항상 1등(greedy)
설명용 예시 값
top-k 상위 3개만
top-p 누적 80%까지
"오늘 점심은 김치 ___" 확률은 설명용 예시 · 파란 막대가 남는 후보, 오른쪽 작은 숫자는 남은 후보끼리 다시 나눈 확률 · Holtzman et al., 2019
실행을 누르면 결과가 여기에 나옵니다
1000번 뽑은 결과: [('찌', 719), ('전', 201), ('국', 80)]
T를 0.3이나 1.5로, top_p를 0.5로 바꿔 다시 실행해 보세요
브라우저 안에서 실제 파이썬(Pyodide 0.27) 실행 · 처음 한 번은 인터넷(cdn.jsdelivr.net)에서 불러옴
학습 초반
정답 '찌'에 10% → 벌점 2.3
벌점이 줄도록
숫자를 조금씩 고친다
역전파 · 경사하강법
수없이 반복
반복한 뒤
정답 '찌'에 54% → 벌점 0.61
정답을 낮게 볼수록 벌점이 크고, 학습은 그 벌점을 줄이는 반복이다
확률은 설명용 예시 · 벌점(로스) = −log p(정답)
GPT-3 (2020)
6 × 1,750억 × 3,000억 토큰
3.15 × 10²³
FLOPs. 논문 보고값 3.14 × 10²³와 일치
Chinchilla 법칙 (2022)
같은 예산이면 모델을 키우는 만큼 데이터도 함께 늘려야 한다
Kaplan et al. 2020 · Brown et al. 2020 · Hoffmann et al. 2022 · Epoch AI
대화형도, 추론 모델도 답을 만드는 방식은 다음 토큰 예측
Ouyang et al., InstructGPT 2022 · OpenAI o1 2024 · DeepSeek-R1 2025
| 한계 | 원리상 이유 | 대응 |
|---|---|---|
| 그럴듯한 오답 | 사실 조회 없이 확률로 고름 | 근거 문서 함께 주기 |
| 매번 다른 답 | 샘플링 | 템퍼러처 낮추기, 출력 검증 |
| 초반 오류가 번짐 | 뽑은 토큰이 다음 입력 | 출처 요구, 단계별 확인 |
| 느리고 비싼 출력 | 한 토큰씩 순서대로 | 출력 길이 제한 |
한계가 원리에서 나오니, 대응도 원리에서 나온다
시연 · 꿀팁 · 10분
익스플레이너 5분, 오늘 개념으로 뽑은 꿀팁 5분
숫자는 설명용 예시, 흐름을 보는 용도 · 원작 Polo Club (MIT)
1
비용과 길이는 토큰으로 센다
같은 뜻도 한국어가 평균 60% 더. 긴 고정 지시문은 토큰 수부터 재 보기
2
글자 세기 · 숫자 계산은 코드에 맡긴다
모델은 토큰 안의 글자를 못 본다. "몇 글자로", "합계 검산"은 코드 실행이나 도구 사용을 요청
3 중요한 건 맨 앞이나 맨 끝에
긴 컨텍스트의 가운데 정보는 덜 활용된다 (Lost in the Middle)
4 고정은 앞에, 바뀌는 건 뒤에
OpenAI · Anthropic 모두 캐시 읽기는 입력가의 0.1배
5 주제가 바뀌면 새 대화로
길이의 제곱 비용과 가운데 손실을 함께 피한다
Liu et al., Lost in the Middle, 2023 · OpenAI · Anthropic 프롬프트 캐싱 문서 (2026.10 확인)
Wei et al., Chain-of-Thought Prompting, 2022 · OpenAI API 레퍼런스(temperature · top_p)
토큰 · 임베딩 · Attention · 토큰 예측
칼리즈
Turing, Computing Machinery and Intelligence, Mind, 1950
Shannon, Prediction and Entropy of Printed English, BSTJ, 1951
Claude 이름 유래: 뉴욕타임스 보도 (Bridge Michigan 인용)
Hochreiter & Schmidhuber, LSTM, 1997 · Bengio et al., 2003
Mikolov et al., Word2Vec, 2013 · Sutskever et al., Seq2Seq, 2014
Bahdanau et al., arXiv 1409.0473, 2014
Sennrich et al., BPE, ACL 2016
Vaswani et al., Attention Is All You Need, 2017
Radford et al., GPT-2, 2019 · Brown et al., GPT-3, 2020
Kaplan et al., Scaling Laws, 2020 · Hoffmann et al., Chinchilla, 2022
Holtzman et al., Nucleus Sampling, 2019
Su et al., RoFormer (RoPE), 2021
Dao et al., FlashAttention, 2022 · Ainslie et al., GQA, 2023
Ouyang et al., InstructGPT, 2022 · Wei et al., Chain-of-Thought, 2022
Liu et al., Lost in the Middle, 2023 (TACL 2024)
Geva et al., FFN Layers Are Key-Value Memories, 2021 · Meng et al., ROME, 2022
Wikipedia: Language model, GPT-1, ChatGPT, Large language model (2026.10 확인)
hidekazu-konishi.com, LLM Context Window Growth Timeline, 2026.07
Hugging Face, Llama-2-70B config.json · Llama 2 문서
OpenAI · Anthropic 프롬프트 캐싱 문서, OpenAI API 레퍼런스 (2026.10 확인)
Epoch AI, Chinchilla scaling: a replication attempt
metehan.ai, Reverse-Engineering the GPT-5 Tokenizer
jangwook.net, The Non-English Token Tax · 디지털데일리, AI에게 한글은 왜 더 비쌀까, 2026.10.09
Park et al., Korean Tokenization Strategies, AACL 2020 · Kim et al., HyperCLOVA, 2021
LG AI연구원 K-EXAONE 블로그 · Thunder-LLM, 2025 · Lee et al., Morpheme Matters, EACL 2026
Sebastian Raschka, BPE from scratch, 2025
University of Edinburgh, King − man + woman = queen, 2019
Netherlands eScience Center, King − Man + Woman = King?
토큰 수 · 정규식: js-tiktoken 1.0.21 직접 측정, 2026.10.08~09
파라미터 · 메모리 · 계산량: 공개 설정값으로 직접 계산
"예시"라고 적은 숫자는 설명용으로 만든 값
섀넌 사진: 발표자 제공 이미지
글꼴: Pretendard (SIL OFL)