在大语言模型(Large Language Model, LLM)中,Token(令牌、词元、子词单元)是模型处理文本的最小单元。可是怎么翻译呢?今天群里一位老师就这样提问,从而引发此文。
1. 什么是 Token?
与传统的“词”或“字符”不同,Token 是一种 子词级别的抽象,它既能保留单词的语义,又能兼顾模型的记忆和计算效率。
核心要点
- Token ≠ 词(Word)
- Token ≠ 字符(Character)
- Token 是模型内部使用的“原子”单位,用来构造词向量、做注意力计算、控制上下文长度等。
2. Token 是怎么来的?
2.1 传统分词(Word‑level)
最早的 NLP 系统往往直接把句子按空格、标点拆成“词”。但这会遇到:
- 词表爆炸:不同语言、不同领域出现的词汇量巨大,导致模型需要存储海量词向量。
- 稀疏性:罕见词会导致训练样本不足,模型难以学习其语义。
- 多义词与形态变化:如“跑跑” vs “跑步”,单词级别难以捕捉细微差别。
2.2 子词分词(Sub‑word Tokenization)
为了解决上述问题,研究者提出 子词分词,把词拆成更小但语义更丰富的片段。常见算法:
| 算法 | 代表模型 | 关键思路 | 典型 Token 例子 |
|---|---|---|---|
| Byte Pair Encoding (BPE) | GPT‑2、GPT‑3 | 迭代合并最频繁的字符对 | un , ##aff, ##able |
| WordPiece | BERT、RoBERTa | 以最大似然估计合并子词 | ##ing , ##ly |
| SentencePiece | T5、GPT‑4 | 无监督的子词切分,支持多语言 | ▁the , ▁cat |
为什么要有子词?
- 减小词表:将数十万单词压缩到几千个子词。
- 处理生词 OOV(Out‑of‑Vocabulary):任何新词都能拆解为已知子词。
- 捕捉形态变化:如
running→run+##ning。
2.3 Token 的具体生成流程
-
文本预处理
-
统一编码(如 UTF‑8)
-
标点、大小写处理(有时会保留原始大小写)
-
分词器(Tokenizer)
-
读取词表
- 按 BPE/WordPiece/SentencePiece 规则逐字/逐字符扫描
-
输出 Token ID(整数索引)和 Token 字符串
-
Token Embedding
-
每个 Token ID 对应一个可训练的向量(embedding)
- 这些向量在模型训练过程中不断更新
3. Token 的主要特点
| 特点 | 说明 |
|---|---|
| 可变长度 | Token 的字符长度不固定(如 ▁the 1 字节 vs ##ing 3 字节)。 |
| 子词级别 | 能同时兼顾单词级语义与字符级细节。 |
| 上下文敏感 | 在 Transformer 的自注意力中,Token 之间的关系决定最终表示。 |
| 可扩展 | 通过增大词表或使用动态词表,可适应新领域词汇。 |
| 多语言兼容 | SentencePiece 等方法可一次性处理多种语言,无需语言特定规则。 |
3.1 Token 与句子长度的关系
- 大多数 LLM(如 GPT‑4)对 最大上下文长度 有硬性限制(例如 8,192 或 32,768 Token)。
- 这意味着 一句话的 Token 数量 直接决定了模型能否一次性看到整句。
- 对长文本,常用 滑动窗口 或 分块 技术,或通过 分块 Attention 方案来突破。
3.2 Token 与模型性能的关联
- 词表大小:过小的词表导致 OOV,过大的词表则增加参数量。
- 子词粒度:更细的粒度(如字符级)能捕捉更多细节,但会拉长序列。
- 分词器质量:优良的分词器能让模型更好地利用上下文,提升生成质量。
4. “Token” 在中文中的翻译
在中文 NLP 社区,Token 这一术语常见的译法有:
| 译法 | 适用场景 | 说明 |
|---|---|---|
| 词元 (Token) | 学术论文、技术文档 | 直接对应“token”概念,强调“单元”属性。 |
| 令牌 | 计算机安全、密码学 | 但在 NLP 中使用较少,易与安全术语混淆。 |
| 子词 | 解释分词算法 | 侧重“子词”这一粒度。 |
| 词片 | 形象化表达 | 适合面向大众的说明。 |
推荐用法
-
技术文档 / 论文:词元 或 Token(加括号)
-
例:
我们使用 GPT‑3 的词元(token)表进行分词。 -
面向读者的博客 / 讲座:子词 或 词片
-
例:
在 GPT‑4 中,一个“词片”(token)可以是“▁the”或“##ing”。
实际上,在当前的讨论中,大家基本都是保持“Token”原文不翻译,后面加上中文注释,以避免歧义。
5. 简单总结
- Token 是 LLM 处理文本的最小单元,通常采用子词分词算法生成。
- 它兼具 语义丰富性 与 计算可控性,是模型训练与推理的核心。
- 通过 BPE/WordPiece/SentencePiece 等技术,Token 能够覆盖海量词汇,支持多语言。
- 在中文文献中,词元 是最常见且准确的翻译;根据受众可选用 子词、词片 等表述。
掌握 Token 的概念与实现细节,是深入理解大语言模型内部机制的第一步。希望这篇文章能帮助读者在阅读 LLM 文献、搭建自己的模型时更得心应手。希望大家在 NLP 和 LLM 的世界里探索愉快!
预览时标签不可点
Close
更多
Name cleared
微信扫一扫赞赏作者
Like the AuthorOther Amount
赞赏后展示我的头像
作品
暂无作品
Like the Author
Other Amount
¥
最低赞赏 ¥0
OK
Back
Other Amount
更多
赞赏金额
¥
最低赞赏 ¥0
1
2
3
4
5
6
7
8
9
0
.
大语言模型 · 目录
大语言模型
上一篇Ubuntu 手动安装 Ollama 0.17.1 来运行 qwen3.5:35b-a3b 的详细指南下一篇OpenCode + Ollama:完全本地的AI编程环境搭建指南 2.0 版本
Close
更多
搜索「」网络结果
Close
调整当前正文文字大小
更多
100%