Tokenization:模型如何看见文字
直觉版:文字先被切成积木
Section titled “直觉版:文字先被切成积木”LLM 不是直接“读汉字”或“读英文单词”,而是先把输入文本切成 token。token 可以是一个汉字、一个英文子词、一个标点,甚至是空格加单词的一部分。模型的任务可以理解为:看见前面的 token 序列,预测下一个 token 的概率分布。
这种切分很重要:同一句话如果被切得太碎,序列会变长,注意力计算更贵;如果词表太大,嵌入矩阵和输出层会变大,低频词还容易学不好。BPE 一类子词算法的直觉是反复合并常见片段,在“字符级通用性”和“词级效率”之间折中。
字符:30Token:14
大语言模型把文本切成 token,再预测下一个 token。
工程版:tokenizer 是模型接口契约
Section titled “工程版:tokenizer 是模型接口契约”工程上,tokenizer 决定了上下文窗口、计费、截断和缓存命中。常见流程包括规范化文本、按规则预切分、把片段映射到词表 ID,再把 ID 输入嵌入表。生产系统要固定 tokenizer 版本:换一个词表会改变所有 token ID,旧 prompt、微调数据和缓存都可能失效。
多语言场景尤其要关注公平性。英文常见词往往由少量 token 表示,中文、代码、emoji 或冷门语言可能更碎,导致同样语义占用更多上下文。做 RAG 或长文摘要时,应按 token 而不是字符估算长度,并给系统提示、引用片段和回答预留预算。
本文引用论文
- Efficient Estimation of Word Representations in Vector Space
Word2Vec 提出了词向量(词嵌入)的概念:通过在大规模文本上训练神经网络,让语义相近的词 在向量空间中距离相近。"king - man + woman ≈ queen"的类比关系让世人看到了词嵌入的威力, 为后来所有语言模型的嵌入层奠定了基础。