现在的大模型不只处理文本,还能处理图片、音频、视频等多种模态。有趣的是,这些不同类型的数据最终都会转换成Token的形式。
比如图片,会经过视觉编码器处理,最终也变成一系列Token喂给模型。这就是为什么现在的多模态模型能够统一处理各种类型数据的原因——在Token这个层面,它们本质上都是数字序列。
这就为什么token是大模型的第一步,本文将会从原理介绍下分词。以及现在最普遍用的BPE的原理与优缺点
什么是分词(Tokenization)?
首先说说Token这个概念。很多人把Token简单理解为"词",但这样理解其实不够准确。Token更像是大模型处理文本的"最小语义单元"。
为什么需要Token呢?原因很简单——计算机只认识数字,不认识文字。当我们输入"你好世界"这样的文本时,模型需要把它转换成数字才能处理。这个转换过程就需要用到Tokenizer(分词器)。
Tokenizer的作用就是把人类的文本转换成模型能理解的数字ID序列。整个过程大概是这样的:
文本输入 → Tokenizer处理 → Token ID序列 → 模型处理
我们选择如何分解文本会显著影响模型理解语言的能力和计算效率。
因此下文将会展开各个分词方法的优缺点。
| 分词方法 | 说明 | 优点 | 缺点 | 示例 |
|---|---|---|---|---|
| 基于词的分词 (Word-based) | 将文本分割成完整的词,按空格和标点符号分隔 | • 保留完整语义 • 直观易懂 |
• 词汇表庞大(17万+) • 无法处理未见词 • 词形变化困难 |
“Working on NLP” → [“Working”, “on”, “NLP”] |
| 基于字符的分词 (Character-based) | 将文本分解为单个字符 | • 词汇表极小 • 无未见词问题 |
• 丢失语义信息 • 序列过长 • 计算成本高 |
“Working” → [“W”, “o”, “r”, “k”, “i”, “n”, “g”] |
| 子词分词(BPE) (Byte Pair Encoding) | 基于频率合并字符对,形成子词单元 | • 平衡词表大小 • 处理未见词 • 保留语义 • 主流选择 |
• 中文等语言效率低 | “tokenization” → [“token”, “ization”] “unusualification” → [“un”, “usual”, “ification”] |
大模型分词原理及BPE算法详解

最低0.47元/天 解锁文章
783

被折叠的 条评论
为什么被折叠?



