‑大模型 LLM 核心前置步骤)
Tokenization分词令牌化‑大模型 LLM 核心前置步骤一、一句话概括Tokenization 就是把原始人类文本中文、英文、符号、空格、换行拆分成模型看得懂的最小单元token之后每个 token 映射成一个整数 ID 送入模型LLM 并不认识单词或汉字只处理 token‑id。重点区分 3 个层级Character字符单个字、字母h、e、我、7Word单词完整词语apple、数据TokenLLM 自定义的拆分单元介于字符和完整单词之间。传统思路英文按空格切单词中文逐个汉字拆分效率很差现代 LLM 普遍采用BPEByte‑Pair‑Encoding字节对编码GPT‑3.5/4、Llama、Qwen 全部基于 BPE。二、BPE 工作原理分步通俗讲解阶段 1底层基础单元是 UTF‑8 字节所有文字先转为 UTF‑8 字节英文字母 1 字节一个汉字占 3 字节。 比如dog→ 3 个字节中→ 3 个字节。 初始状态训练开始时最小单元就是单个字节。阶段 2高频字节组合不断合并核心逻辑统计全部文本里相邻字节配对出现的频次把出现频率最高的两个字节合并为一个新 token重复迭代成千上万次生成固定的词表vocab 最后词表里包含高频单词the、and、词根un‑、‑ing、常用汉字组合、单个字节。举例英文单词unhappiness高频后被拆成unhappiness两个 token而不是拆成 u‑n‑h‑a‑p‑p‑y 逐个字母。中文例子“人工智能” 经过 BPE 训练后大概率整体划分为 1‑2 个 token而非 4 个汉字单独拆分 生僻字、冷门词汇依然会拆成基础字节。关键点词表是固定的GPT‑4 词表大约 100kLlama‑2 词表 32000Qwen 词表 151 643模型训练完成后拆分规则就固定推理阶段严格沿用这套拆分逻辑不会动态更改。三、Token 和字符换算关系非常实用英文大致比例4 个字母≈1 个 tokenHello world大约 2 token中文比例1 个汉字≈2 个 token这就是为什么中文消耗 token 更快例如100 个汉字≈200 tokens。标点、空格、换行、数字都会占用 token生僻字、罕见词、网络新词会被切分得更碎token 消耗更多。反常识重点Token 不等于单词也不等于汉字常见长单词是 1 个 token生僻单词拆成多个 token模型看不到原文文本输入只是一串 token‑id 数字模型输出内容也是先输出 token‑id再还原成文字。四、其他常见分词算法对比BPEGPT‑4、Llama先字节再不断合并工业界主流优点兼顾压缩率对未知词适应性极强SentencePieceLLaMA‑中文版本、Baichuan把空格当成普通字符专门优化东亚语言中日韩中文适配比原版 BPE 更好WordPieceBERT谷歌提出优先把高频词根拆分前缀##适合理解类任务生成式大模型很少用UnigramT5 采用从大量候选 token 里删减低频单元。现在生成式大模型几乎只有 BPE / SentencePiece 两种方案。五、Tokenization 对 LLM 带来的实际影响工程层面1. 上下文窗口由 token 数量决定比如 GPT‑3.5‑128K 代表最多接收 128000 个 token不是 128000 汉字中文实际可容纳文字只有 6 万字左右。2. 计费按照 token 数量收费API 调用输入 token 输出 token 一起扣费中文成本天然高于英文。3. 分词好坏直接影响模型效果中文分词做得差同一个词语被胡乱拆分模型理解能力下降词根被合理合并模型更容易学到语义翻译、续写效果更好域外新词从未见过的网络用语、冷门专有名词只能拆成基础字节模型性能下降。4. 一个坑编码一致性问题训练阶段用一套分词推理阶段必须完全一致如果自己随便修改 tokenizer模型会完全错乱。六、极简示例Python 视角以 GPT‑2 分词器演示from transformers import GPT2Tokenizer tokenizer GPT2Tokenizer.from_pretrained(gpt2) text artificial intelligence 人工智能 tokens tokenizer.tokenize(text) ids tokenizer.encode(text) print(tokens) print(ids)英文单词大概率完整成为单个 token中文每个汉字拆成多个子 token。七、总结浓缩版Tokenization 将文本拆分为模型预设的子词单元主流算法BPE从 UTF‑8 字节出发合并高频片段英文4 字母≈1token中文1 汉字≈2token词表固定决定上下文上限、API 费用、模型理解能力最后 token 转为整数 ID作为 LLM 神经网络的输入。翻译与深度解析原句The rarer the word, the more pieces it gets broken into.直译单词越生僻它被拆分出来的片段token数量就越多。结合 LLM‑Tokenization 原理详细解读1. 语法结构The 比较级, the 比较级越…… 就越……rarerrare稀少的、低频的的比较级pieces这里指sub‑word token子词单元gets broken into被分词器切分。2. 对应 BPE 核心逻辑和刚才讲的 BPE 原理匹配分词器BPE / SentencePiece的词汇表里面优先收录高频片段高频词汇people、today、常用汉字整体作为 1 个 token生僻词、专有名词、冷门缩写、自创词汇不在词表内分词器只能退回到更小的基础单元字母、UTF‑8 字节进行拆分拆成一大堆 token例非常偏僻的古英语单词、生僻汉字、小众化学名词会被切为 3‑6 个 tokens。实例高频information→ 1 token极度罕见自创词xylophilologist爱木者会被拆分为xylophilologist多个 token 片段。中文场景日常汉字大多 2 个 token极其生僻字常会拆成 3 个甚至更多字节级 token。3. 现实后果工程层面稀有词汇消耗更多 token更快耗尽上下文长度单词被切分得越碎模型理解效果大概率变差 LLM 是依据完整 token 片段学习语义如果一个词被拆成一堆零散字节模型很难识别整体含义。4. 反例对比高频词Common‑used words stay as single‑piece tokens.常用词汇会保留为单个 token。精简版英文笔记适合记知识点In BPE tokenization rule: High‑frequency words become one single token. Rare words are split into many small‑size sub‑word tokens.一句话浓缩版英文释义Since rare terms seldom appear during tokenizer‑training, they are not added to vocab and split into basic byte‑level units.生僻词汇在分词器训练期间出现太少没有被收录进词表于是被拆成基础字节单元。