C.W.K.
Stream
Lesson 06 of 12 · published

Vocab 크기 — 32K부터 262K까지, 그리고 trade-off

~12 min · vocabulary, scaling, multilingual

Level 0Token
0 XP0/94 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

vocab 얼마나 커야 하나? 지난 5년 추세는 분명히 상승, 그리고 이유를 알아둘 가치 있어.

tokenizer / vocab크기사용 모델
BERT WordPiece30,522BERT, DistilBERT
Llama 1/2 SentencePiece32,000Llama 1, Llama 2
tiktoken p50k_base50,256GPT-2, GPT-3
tiktoken cl100k_base100,256GPT-3.5, GPT-4
Llama 3 BPE128,000Llama 3, 3.1, 3.3
tiktoken o200k_base200,019GPT-4o
tiktoken o200k_harmony201,088GPT-5
Gemma 3 SentencePiece262,144Gemma 3 (140+언어)

경제학

vocab 크면 → 문장당 토큰 수 줄어 → "유용한" 메시지당 inference 비용 싸. 비용은 큰 embedding 행렬(vocab × d_model 파라미터) + 큰 output projection. 70B 모델 d_model=8192에서 32K → 200K로 가면 약 1.4B 파라미터 추가 — 전체의 2% 미만. 모든 쿼리마다 수 % 토큰 절약하는 거에 비해 사소한 비용이지.

vocab이 커진 또 다른 이유는 다국어 커버리지. 32K짜리 영어 중심 vocab은 한국어/중국어를 영어보다 3-4배 비효율적으로 토큰화해. Gemma 3의 140+ 언어 타깃 262K vocab이 그 격차 거의 다 메워.

Code

Embedding matrix cost vs vocab size·python
def embedding_params(vocab_size, d_model):
    return vocab_size * d_model

# Llama 3 8B: d_model=4096
for v in [32_000, 100_000, 128_000, 200_000, 262_144]:
    p = embedding_params(v, 4096)
    print(f"vocab {v:>7,}  embedding {p/1e6:>6.0f}M params")

# Llama 3 70B: d_model=8192 — twice the cost per vocab entry
for v in [32_000, 128_000, 262_144]:
    p = embedding_params(v, 8192)
    print(f"70B vocab {v:>7,}  embedding {p/1e9:>5.2f}B params")

External links

Exercise

영어 1000단어당 토큰 수 / 한국어 1000음절당 토큰 수를 다음 4개 tokenizer에 대해 계산해 — BPE-50K(gpt-3.5), BPE-100K(cl100k_base), BPE-128K(llama-3), BPE-200K(gpt-4o). 모든 측정에 같은 source 단락 사용. 결과 플롯.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.