Vocabulary size(詞彙表大小)的核心概念是「tokenizer 詞彙表中 token 的總數」。是模型訓練時就決定的 hyperparameter、後續不能改。Vocabulary size 影響 embedding layer 大小、單一文字對應的 token 數、多語言處理品質。

概念位置

主流 LLM 的 vocab size 演化:

模型Vocab size設計考量
GPT-250,257早期 byte-level BPE、英文為主
Llama 1 / 232,000緊湊、英文 + 部分多語言
Llama 3128,256大幅擴張、改善多語言(特別是非拉丁語系)
Gemma 4256,000進一步擴大、強化多語言 + code tokenization
Qwen3151,936中文 + 多語言友善
DeepSeek-V3129,280中英 + code、跟 Llama 3 同量級

Vocabulary size 的取捨:

Vocab 小(如 32K)Vocab 大(如 256K)
Embedding 矩陣小、模型參數少Embedding 矩陣大、模型參數多
罕見字 / 多語言被拆很細、token 數多高頻多語言整詞當一 token、token 數少
推論計算每步輸出 softmax 較快每步 softmax 較慢(vocab × hidden 矩陣大)
API 計費 token 數量較多API 計費 token 數量較少

範例:同段中文「你好、世界」、Llama 1 (vocab 32K) 約 6 token、Gemma 4 (vocab 256K) 約 2-3 token、差距不小。

設計責任

讀 model card 看到 vocab_size 就是這個值。寫 code 場景的判讀:跑同個 prompt、不同模型實際處理的 token 數差很多、影響 context window 利用率跟雲端 API 計費;換 tokenizer = 換 vocab = 整個 embedding layer 失效、所以 fine-tune 通常不動 tokenizer、想增加新語言的最簡單方式是 extend embedding(加新 row 不動既有 row、再 fine-tune)。