你请两位老师批改同一句话,一位按“词”划分,另一位按“字和词片段”划分。两人的判断也许都很有价值,但评分表的格子完全对不上,很难直接交给同一个学生学习。语言模型之间也有类似障碍:不同模型家族往往使用不同的 tokenizer——把文字切成模型处理单位的规则。切法一变,词表和输出位置也跟着变,大模型给出的“下一步该写什么”的概率,便无法逐项交给小模型。
Hao Wang 等人的新工作试图拆掉这堵墙。他们提出 Byte-Prefix Marginalization(BPM,字节前缀边缘化),先把教师和学生的输出放到共同的字节空间,再把教师的下一 token 概率重新整理成学生词表上的分布。论文报告,在三个教师模型和六项数学、编程测试中,BPM 都胜过现有的跨 tokenizer 方法。不过,目前这些结果只来自论文自身,尚无外部复现。
不对词表,先对文字的底层表示
模型蒸馏可以理解为让小模型模仿大模型老师。学生不只抄最终答案,还学习老师面对每一步时,对不同后续选项分别有多大把握。
这篇论文研究的是 on-policy distillation(OPD,在线策略蒸馏):学生先按照自己当前的能力生成内容,教师再到学生实际走过的位置上提供指导。这样教到的,正是学生训练时真正会遇到的局面。
问题在于,完整的逐 token 指导通常默认师生共用一套词表。Token 是模型处理文字的单位,可以是一个字、一个词片段或一个标点。两个 tokenizer 即使读到同一句话,也可能切出不同数量、不同边界的 token。于是,教师概率表中的第一个选项,未必对应学生概率表中的第一个选项;相同的位置编号,也未必表示相同的文字前缀。
此前的方法往往有所取舍。有的只传递两边能匹配的候选项,没对上的教师概率就丢掉;有的按概率排名配对,却可能把内容毫不相关的 token 连在一起;SeqKD 则让学生学习教师生成的整段回答,不提供完整的逐步概率分布。
BPM 换了一个对齐层级。无论一句话被怎样切分,最终都对应同一串 byte——计算机保存文字时使用的更底层单位。词表不同,字节仍可以充当共同的“底稿”。
概率怎样搬到学生词表里?
在师生边界对齐的位置,BPM 查看每个教师 token 对应的字节串,再寻找学生词表中那个“字节表示是它的前缀、并且长度最长”的 token。教师分给原 token 的概率,就搬到这个学生 token 名下。多个教师 token 如果指向同一个学生 token,其概率会合并。
可以把它想成整理两套尺寸不同的抽屉。BPM 不按抽屉编号硬配,也不按里面物品的多少排序,而是查看标签实际写了什么,再把内容开头相同的项目归到一起。
总会有暂时匹配不上的情况。例如,一个教师 token 提供的字节还不够确定完整的学生 token。BPM 不会把这部分概率扔掉,而是放进一个明确的 residual category(残余类别)。这样,变换后的全部概率仍然加起来等于 1。
作者据此把目标概括为三点:覆盖学生完整词表;按字节内容对齐;保存全部概率质量。这里的“完整”并不等于每个学生 token 都获得非零概率,而是每个 token 都在目标中有明确位置,无法匹配的质量也被显式记录。
一个学生 token 跨过多个教师 token 怎么办?
更棘手的情形是,学生用一个 token 表示的内容,教师要拆成几个 token。例如论文举出的 </think>:学生可能把它视为一个整体,教师却分成三段。只查看教师当前一步,几乎找不到一个 token 含有完整前缀,于是会错误地告诉学生“不要结束这段推理”。
BPM 此时沿教师实际的分词路径,把连续几步的条件概率按链式方式组合。它计算的是教师沿这条路径生成该字节串的概率。由于其他分词路径也可能生成同样的字节,这个结果是完整字节概率的下界,而非精确值。方法随后把这部分概率加到对应的学生 token,同时从原目标中扣除等量概率,继续保证总质量不变。
论文称,在相关前缀不跨越多个教师 token 时,BPM 可以精确恢复教师诱导出的字节前缀概率;这一条件在其实验中超过 99% 的训练位置成立。其余跨 token 位置使用保存概率质量的链式下界。这个比例只描述论文测试过的训练设置,不能推广到所有语言、数据和 tokenizer 组合。
实验支持了什么?
作者固定 Qwen3.5-2B 为学生,分别请 Qwen3-32B、GLM-Z1-9B-0414 和 MiniMax-M2.7 担任教师。三组实验覆盖了从较相近到更不相似的 tokenizer。在线方法在同一教师—学生组合内使用相同的学生、提示集、训练日程和更新预算,比较对象包括 SimCT、ULD、GOLD,以及单独训练的序列级方法 SeqKD。
评测包含三项数学和三项编程基准:MATH-500、2026 年 2 月的 AIME 与 HMMT,以及 HumanEval+、LiveCodeBench 和 TACO。按照论文报告,最佳 BPM 版本在三个教师—学生组合中都超过最强基线,六项测试的 avg@8——每道题多次采样后汇总的平均表现——提升 3.7 至 6.6 个点。不同 tokenizer 距离下都取得改善,说明它至少不只适用于同一家族中较接近的切词方式。
对得太准,也可能学到噪声
论文还发现一个很具体的反例:代码中的纯空格或制表符位置。这里没有新的词义,字节差异主要反映 tokenizer 怎样切分空白。若仍然严格模仿教师,学生可能学到教师的切词习惯,而不是正确的缩进深度。缩进误差会沿程序累积,生成的代码看起来仍符合语法,却无法通过执行测试。
作者用预先计算的 mask——训练时跳过特定位置的遮罩——排除全空白目标。论文称,这避免了实验中观察到的代码能力坍塌;随机遮掉同样数量的非空白位置则没有同样效果。这是一个重要提醒:更忠实的对齐不一定处处更好。当字节只携带排版而不携带内容时,保留教师信号反而可能传递 tokenizer 特有的噪声。
为什么值得关注
BPM 的意义不只是又改进了一项蒸馏分数。它把“师生必须共用词表”从默认前提变成了一个可以处理的映射问题。若这条路线继续成立,选择教师时就不必首先看词表是否兼容,而可以更多考虑它真正擅长什么。数学、编程或其他能力互补的开放权重模型,也更有机会汇入同一个紧凑学生,而不必同时部署和调度多个专用模型。
但它证明的仍是一个有限结论:在三位教师、一个学生以及六项数学和编程测试上,这套字节对齐方法优于论文选择的基线。它还没有证明任意不同词表的模型都能无损蒸馏。
局限与未知
- 论文的效果结论均来自作者实验,尚无第三方复现;3.7 至 6.6 个点分别对应哪些具体设置,现有供稿未完整披露。
- 跨越多个教师 token 时,BPM 使用的是沿已实现路径计算的下界,并非完整字节概率;无法到达同步边界的位置还会被排除出损失。
- 空白遮罩和被排除的位置都会丢掉一部分训练信号。更高质量数据、更广任务和更多 tokenizer 组合是否仍能保持收益,论文没有回答。