当 BPE 和 UnigramLM 被拆开重组:一个 2×2 实验颠覆了目标函数决定一切的常识
原文标题: Objective vs. Search: Decomposing What Makes a Good Tokeniser 作者: Ahmet Can Yüce, et al. arXiv: 2609.19145
原文标题: Objective vs. Search: Decomposing What Makes a Good Tokeniser 作者: Ahmet Can Yüce, et al. arXiv: 2609.19145
一个被忽视的问题
2026 年了,大模型架构已经演化出 MoE、线性注意力、状态空间模型等十几种变体,但有一件事几乎没变过——分词。几乎所有 LLM 都用 BPE(Byte Pair Encoding)或 UnigramLM 来把文本切成子词单元。这两个算法从 2015 年 Sennrich 等人提出以来,基本被当作"已经解决好的问题"。
但论文作者问了一个看似简单的问题:BPE 和 UnigramLM 到底差在哪?
这个"差在哪"比想象中复杂。因为这两个算法其实同时在两件事上不一样:
- 目标函数:BPE 优化压缩率(贪心地合并最频繁的字节对),UnigramLM 优化语料的对数似然(期望最大化)
- 搜索过程:BPE 是 bottom-up(自底向上,从小词表开始合并),UnigramLM 是 top-down(自顶向下,从大词表开始剪枝)
2×2 因子设计:一个被错过十年的实验
论文的核心贡献是用一个极简的实验设计拆开了这两个维度。2×2 因子设计:
| Bottom-up 搜索 | Top-down 搜索 | |
|---|---|---|
| 压缩目标 | BPE(经典) | TopDownComp(新) |
| 似然目标 | BottomUpLL(新) | UnigramLM(经典) |
- BottomUpLL:bottom-up 搜索 + 似然目标。像 BPE 一样从字符级开始合并,但每次合并的选择标准是"哪个合并能让语料对数似然提升最大",而不是"哪个字节对最频繁"。
- TopDownComp:top-down 搜索 + 压缩目标。像 UnigramLM 一样从大词表开始剪枝,但剪枝标准是"去掉哪个 token 对压缩率影响最小",而不是"去掉哪个 token 对似然影响最小"。
结果:搜索过程碾压目标函数
实验在 4 个语料、4 个词表大小上跑了全部 4 种组合,测了两个指标:bits-per-byte(BPB,越低越好)和 BLiMP(语法判断任务,越高越好)。
BPB 上的发现:
bottom-up 搜索(BPE、BottomUpLL)一致地比 top-down 搜索(TopDownComp、UnigramLM)BPB 更低。这个效应在所有 4 个语料、所有 4 个词表大小上都成立。
而目标函数的效应不一致——在大词表下,似然目标比压缩目标 BPB 更低;在小词表下,反过来。
BLiMP 上的发现:
没有任何一致的模式。无论是搜索过程还是目标函数,对 BLiMP 的影响都是语料依赖的,没有统计显著的主效应。
这个结果有两层含义:
1. "BPE vs UnigramLM"的旧争论问错了问题。真正的差异不在目标函数,在搜索过程。过去十年所有"BPE 的压缩率更好是因为贪心合并"的归因,可能都归错了——bottom-up 搜索本身才是关键。 2. 语法能力与分词器选择解耦。BLiMP 测的是模型对语法的敏感度,分词器选择对它没系统影响。这意味着"选哪个分词器"对下游语法任务的影响可能被夸大了。
为什么 bottom-up 更好?
论文给了一个直觉解释:bottom-up 搜索有"信息记忆"。
bottom-up 从字符级开始,每次合并都把一个高频字节对"固化"成一个 token。这个过程像在"积累词汇"——每一步都在为语料里实际出现的模式建立专用 token。
top-down 从大词表开始剪枝,每一步都丢掉一些 token。这个过程像在"遗忘"——你不知道丢掉的 token 在语料里有多重要,直到它已经没了。
这个差异在 BPB 上体现得很清楚:bottom-up 的词表是"数据驱动"的(只保留实际出现的高频模式),top-down 的词表是"假设驱动"的(先假设所有可能的 token 都有用,再逐一证伪)。数据驱动在压缩上更高效。
但这个优势在 BLiMP 上消失了——语法判断可能不需要"最优压缩",只要词表能覆盖语法现象就行。这说明分词器的"质量"是多维的——BPB 上的"好"不等于语法上的"好"。
一个被错过的设计空间
这个 2×2 设计揭示了一个被错过了十年的设计空间。过去所有分词器改进都在"目标函数"维度上做文章——更好的压缩目标、更好的似然近似、更好的正则化。但搜索过程维度几乎没人碰过。
论文暗示了一个可能性:bottom-up 搜索 + 似然目标(BottomUpLL)可能是被忽视的"第三条路"。它有 bottom-up 的压缩优势,又有似然目标的概率语义。在论文的实验里,BottomUpLL 在大词表下 BPB 最低,在小词表下也不差。
但作者也诚实地说:这个结论是探索性的,不是最终的。4 个语料、4 个词表大小不足以支撑强结论。真正的验证需要在更多语言、更多下游任务上跑——尤其是机器翻译、代码生成这种对分词敏感的任务。
这意味着什么
1. "因子分析"思维的力量
这篇论文最值得记住的可能不是结论本身,而是方法论——把一个看似单一的变量拆成两个正交维度,然后用 2×2 设计分离贡献。这种因子分析思维在 AI 研究里被严重低估了。
很多"X 比 Y 好"的结论其实混了多个维度:
- "MoE 比 dense 好"——是稀疏性还是专家数量?
- "RLHF 比 SFT 好"——是 RL 算法的功劳还是偏好数据的功劳?
- "chain-of-thought 比直答好"——是推理步骤的功劳还是"多花算力"的功劳?
2. "搜索过程"作为被忽视的维度
这篇论文指向一个更普遍的洞察:算法的"搜索过程"和"目标函数"是两个独立的维度,但通常被混为一谈。
这个洞察在其他领域也有回响:
- RL 算法:actor-critic 和 PPO 的差异,多少来自目标函数(clipped surrogate vs full surrogate),多少来自搜索过程(on-policy vs off-policy)?
- 优化器:Adam 和 SGD 的差异,多少来自动量估计,多少来自学习率调度?
- 神经网络架构:Transformer 和 Mamba 的差异,多少来自注意力机制,多少来自序列建模方式?
3. "已经解决好的问题"通常没解决好
分词被当作"已解决问题"十年了。这篇论文用一个 2×2 实验证明,这个"已解决"的问题里藏着一个被忽视的维度,而且这个维度比之前以为的主维度更重要。
这和近期一系列"重新审视基础假设"的论文同构——TwinKV 发现注意力权重不等于因果贡献、MIST 发现必要性和充分性几乎不相关、omission blindness 发现 LLM 法官检测不到缺失。"已经解决好的问题"通常没解决好,只是被遗忘了。
诚实的局限
论文有几个明显的局限:
- 下游任务太少:只测了 BPB 和 BLiMP,没测机器翻译、代码生成、长文本理解等对分词敏感的任务
- 语料覆盖有限:4 个语料不足以支撑跨语言结论
- 没测 BPE-dropout 等变体:BPE-dropout 通过随机合并引入噪声,可能改变两个维度的权衡
- 没分析 token 分布:不同算法产生的 token 频率分布差异没被分析,这可能解释 BLiMP 上的不一致
一个类比:菜刀与磨刀
把分词器想成"菜刀",把模型训练想成"切菜"。
过去十年大家都在争论"哪把菜刀切菜更好"——BPE 牌菜刀和 UnigramLM 牌菜刀。但这篇论文发现,菜刀的差异其实来自两个独立维度:刀刃的形状(目标函数)和磨刀的方向(搜索过程)。
而且,"磨刀的方向"比"刀刃的形状"更重要。一把磨得好的钝刀,可能比一把磨得差的利刀更好用。
这个类比的深层含义是:工具的"质量"是多维的,而通常我们只在一个维度上比较。下次你说"X 工具比 Y 工具好"时,先问一句:好在哪个维度上?
结语
这篇论文做了一件少见的事:用一个极简的 2×2 实验设计,颠覆了一个十年未被质疑的常识。它没有提出什么新算法,没有刷什么 SOTA,但它揭示了一个被忽视的维度——搜索过程——而且发现这个维度比之前以为的主维度更重要。
在 AI 研究越来越追求"更大、更强、更快"的今天,这种"停下来拆开看看"的研究值得被记住。不是所有进步都来自向前冲——有时来自向后看,把被混为一谈的变量拆开,重新审视那些"已经解决好的问题"。
而那个被补齐的 2×2 设计空间,可能会激发一系列新的分词器研究——bottom-up 搜索 + 新目标函数、top-down 搜索 + 新剪枝策略、甚至完全不同的搜索范式。一个十年的"已解决问题",可能才刚刚开始被真正理解。
论文链接: arxiv.org/abs/2609.19145