1. 从零理解大模型的Token机制
第一次接触大模型时,我被"Token"这个概念彻底搞晕了。明明输入的是中文句子,为什么模型处理的却是些看不懂的数字?直到自己动手跑了几次推理,才真正明白Token机制的精妙之处。今天我就用最直白的语言,带大家彻底搞懂这个核心概念。
Token本质上是大模型处理文本的最小单位。不同于我们熟悉的字符或词语,Token更像是一种"语义碎片"——它可能是单个汉字、英文单词、标点符号,甚至是词根词缀。比如"ChatGPT"可能被拆成"Chat"、"G"、"PT"三个Token,而中文"你好"可能就是一个完整Token。这种灵活的分词方式,让模型能高效处理各种语言。
关键认知:Token不是固定长度的字符,而是根据语义和词频动态划分的文本片段。英文通常一个Token对应3-4个字母,中文则可能是1-2个汉字。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Token化过程的底层逻辑
2.1 主流Token化算法解析
当前主流大模型主要采用三种Token化方案:
-
BPE(Byte Pair Encoding):通过统计词频合并高频字符对
- 工作流程:
- 初始将文本拆分为单个字符
- 统计所有相邻字符对的出现频率
- 将最高频的字符对合并为新Token
- 重复迭代直到达到预设词表大小
- 典型应用:GPT系列、LLaMA
- 工作流程:
-
WordPiece:基于概率合并子词单元
- 与BPE的核心区别:
- 合并时考虑概率似然而非单纯频次
- 使用##标记子词前缀
- 典型应用:BERT系列
- 与BPE的核心区别:
-
Unigram:从大词表开始逐步裁剪
- 实现路径:
- 先用其他方法初始化大词表
- 计算每个Token的损失值
- 迭代移除对整体影响最小的Token
- 典型应用:T5、mT5
- 实现路径:
算法对比表:
| 特性 | BPE | WordPiece | Unigram |
|---|---|---|---|
| 合并策略 | 高频优先 |
