通过微调 Qwen 和 Gemma 等通用开源模型而专门针对某一领域或任务定制的模型,会继承一个为多领域和通用应用构建的词表。
在我们生产环境中运行的作文评分器中,该词表把模型最常写的文本切分成了许多 token。本文预览了 VocabX 论文的部分结果,该论文我们即将发布:我们如何围绕每个 token 的成本而非其出现频率来定制词表,并在不改变基础模型的情况下将实测推理成本降低了 77%。
分词器通常被视为基础模型的一项固定属性,被继承下来且不作改动。对于专精于单一领域的模型,它可能是最大的成本杠杆之一,而且它在任何训练步骤之前就已确定。
我们生产环境中运行的系统之一是一个基于 Qwen3-4B 构建的葡萄牙语作文自动评分器。它接收作文、题目和支持文本,并返回一个 JSON 评估结果,其中包含总分以及每项能力的评分和评语。
该模型本身已经很小,只有 40 亿参数,并且已经针对该任务进行过训练。然而,它的分词器仍然是原始的 Qwen3-4B 分词器,是为多种语言和多种文本构建的。在评分器中,它只用于单一语言(葡萄牙语)和单一响应格式。这带来了两项成本:评分器在每次请求时写出的文本占用了超出所需的 token 数,并且在生成每个 token 时,模型都要在一个包含 151,669 个条目的词表上打分,其中许多条目该任务几乎从不使用。
我们用一种称为 VocabX 的方法重建了该词表,同时保持相同的基础模型、相同的数据和相同的训练配方。本文中的数字来自论文的当前版本,该论文仍在评审中,在正式发表前可能发生变化。
为所有人构建的词表
主流语言模型以 token 为单位读写,而分词器决定文本如何变成 token。主流通用模型的分词器是在来自众多领域和语言的大量文本集合上训练的,从源代码到合同再到中文。对于通用模型而言,这一选择是合理的。
对于在单一领域使用的模型,它会同时造成两种浪费。
第一种是碎片化。分词器把该领域重复最多的内容切分成许多片段。在评分器中,每个响应都以相同的 JSON 外层结构、相同的能力名称、相同的评估短语开头。在合同中,是样板条款。在代码中,是标识符。这些序列每一个都要花费多个 token,而本来一个就够,模型在每次请求中都要为每一个付出代价。
第二种是冗余。词表携带了数万个该领域从不使用的条目,而模型在生成的每个 token 处都要为所有这些条目计算分数。一个针对美国学校生物考试评分微调的模型几乎不会用中文写作,但它在每一步都会计算每个中文 token 的概率。词表把该领域重复最多的内容切分成许多片段,并携带该领域从不使用的条目。
读取便宜,写入昂贵
自然的反应是数 token 并试图减少数量。但数量不是账单。
要理解为什么生成的 token 成本更高,有必要看看推理是如何工作的。它有两个阶段。在预填充中,模型通过一次网络前向传播处理整个输入:从 GPU 内存读取的每个权重都会为每个输入 token 复用,限制因素是计算。在解码中,模型一次生成一个 token 的响应,每个 token 都需要一次完整的前向传播。每次权重读取只被使用几次,GPU 大部分时间都在等待数据从内存到达:限制因素变成了内存带宽。
这种效应恰好在我们所处的场景中最强:用中等批次服务的小模型。将请求分批可以把权重读取分摊到各请求上,缓解这个问题,但并不能解决它。在每个解码步骤中,模型还要读取 KV 缓存,即保存已处理上下文并随上下文增长的注意力内存。在我们测量的案例中,评分器生成一个 token 的成本是读取一个 token 的 7.4 倍,但这一比例会随硬件、问题、批次大小、上下文长度等因素变化,而且可能更大。总体而言,方向是成立的:生成比读取更贵。
想象一家按箱子收费的航运公司,但寄出箱子的收费是收到箱子的七倍。减少箱子总数有帮助。减少寄出箱子带来的帮助是前者的七倍。一种对输入和输出同等压缩的方法会错过大部分可能的节省。
账单的第三个组成部分是词表本身。模型的最后一层,即 LM head,把内部状态转换为每个可能 token 的分数。为此,它为每个词表条目保留一行参数。在 Qwen3-4B 这个规模的模型中,该矩阵几乎占参数的 10%。大模型可以毫无察觉地吸收这一占比,但它会给小模型带来负担。
而且这笔成本并非只付一次。输入层只查找正在读取的 token 所在的那一行,但 LM head 会为每个生成的 token 读取并乘以整个矩阵。由于解码本就受内存带宽限制,每一行额外数据都意味着每一步要搬运更多数据。一个领域从不使用的条目,其成本与一个高频条目完全相同。这就是为什么增加 token 可能同时降低数量并抬高账单。VocabX 并未将这一项纳入其选择标准,但它分两步控制词表大小:子词合并用更小的、领域特定的词表替换基础词表,而宏则在固定预算下加入。在评分器中,输出层从约 152,000 行降至约 65,000 行。
为什么现有解决方案不够
调整模型的词表并不是新想法。文献中的参考方法,例如快速词表迁移(FVT)、多词分词(MWT)以及 Liquid AI 的原地分词器扩展(原地 BPE),即从原始词表继续 BPE 训练,已经减少了碎片化。当我们在自己的问题上测试它们时,发现了两个局限。
它们按频率而非成本来选择 token。一个在输入中频繁出现的表达,对它们来说比一个在响应中出现频率较低的表达更有价值,即使后者在服务时的成本更高。
它们只在单一层面上工作。它们要么调整单词被切分成片段的方式,要么将整个短语合并为一个 token。这三种方法没有一个能在同一标准下同时做到这两点。而评分器最大的浪费恰恰在于长而重复的片段,例如 JSON 信封,子词方法只能通过逐个合并各部分才能触及。
我们如何解决
VocabX 解决了这两个局限,以及解决第一个问题时显而易见的路径上出现的第三个问题。
首先,我们改变了问题。我们不再问一个候选能节省多少 token,而是问它能节省多少成本和时间。每个被消除的 token 都乘以它所在字段的价格:系统提示、用户消息或模型响应。在我们测量的案例中,评分器在响应中节省的一个 token 价值是输入中节省的一个 token 的 7.4 倍,词表也据此构建。
其次,我们同时在这两个层面上工作。回到货运公司的例子:你可以通过更好地打包每件物品来切割箱子,或者通过认识到同样的十二件套每周都发货、将整套装在一个箱子里发出来。VocabX 两者都做。在子词层面,它重建领域词被切分成片段的方式。在多词层面,它寻找重复的整个片段,从短表达直到整行和 JSON 信封,并将每个转换为单个 token,我们称之为宏 token。两个层面都在同一成本标准下选择,各自有自己的预算。
为了找到这些片段,我们使用了五个挖掘器,自动搜索在语料库中重复出现的片段,每个挖掘器专门针对一种重复类型:长词、整行、表达式、完整句子,以及带有标点符号的结构(如 JSON 和标签)。在八个语料库上取平均,最后一个贡献最大,在代码上仅它一项就贡献了 17.5 分。如果没有全部五个,评分器上的 token 缩减量会下降 55.6 分。
第三,我们估计样本看不到的部分。按成本选择 token 需要知道每个候选在已选中的 token 之后还能节省多少。要精确测量这一点,需要在每次选择后重新处理整个语料库,次数达数万次。在大规模场景下,一种常见做法是在文档样本上进行测量,但这样样本中未出现的候选就会得到零增益。
一个在 50,000 篇文档中出现 37 次的表达式,在 400 篇文档的样本中只有约 26% 的概率出现。在合同语料库中,只有 16.6% 的候选出现在 400 篇文档的样本中;其余的从未被评估。
一个候选的增益有两部分。一部分是它在整个语料库上能节省多少,这可以精确计算,无需样本。另一部分是这部分节省中有多少尚未被已选中的 token 覆盖,只有这部分需要估计。对于样本看不到的候选,我们基于样本中可见候选的行为进行统计估计,而不是取零。一个在样本中罕见但在语料库中频繁的候选重新回到了候选之列。
仅这一项改动,在相同样本和相同预算下,将合同语料库上的 token 缩减量从 44.7% 提升到了 52.8%。
评分器的变化
为了衡量真实效果,我们用相同的基础模型、相同的数据、相同的流程和相同的随机种子训练了七个版本的评分器。它们之间唯一的区别是分词器。所有版本都在同一台测试机器上运行相同的 500 个请求,机器配备 RTX 5090 GPU 和 vLLM 推理服务器,成本根据实测运行时间计算。
模型的回复平均从 350 个 token 降至 101 个 token。成本下降了 77.0%。质量(以基准测试分数衡量,该分数综合了评分准确率以及筛除跑题或违规作文的准确率)从 0.703 升至 0.810。
实现这一目标需要一次方向修正。词表的第一版将每项能力的评分与周围的 JSON 融合成一个宏 token。这是最紧凑的方案,但质量下降了:其基准测试分数为 0.689,低于生产评分器的 0.703。当评分被包含在宏 token 内时,评分与结构的每种组合都成为同一 token 的不同变体,模型在一步之内同时选择两者。让评分拥有自己的 token,使每次回复多花 2 个 token,将基准测试分数提升至 0.810,并且在测量中甚至更便宜:降幅为 77.0%,而融合版本为 73.3%。
这一教训适用于评分器之外。当被压缩的片段承载的正是模型存在的意义所在的那个决策时,压缩是有代价的。目标不是尽可能最便宜的词汇表,而是能保留关键 token 的最便宜的那一个。
超越评分器
为了弄清这一收益是否只适用于我们的场景,我们在五个公开领域(合同、医学论文、科学论文、新闻和 Python 代码)和三个模型系列(Qwen3、Llama-3.1 和 Gemma-3)上,将 VocabX 与三种参考方法进行了比较。所有方法都使用相同的挖掘文档和测试文档,以及相同的词汇表上限。
在全部十五种组合中,VocabX 的压缩率都高于最强的参考方法,高出 1.2 到 9.3 个百分点。在估算推理成本方面,VocabX 的剪枝版本也在全部十五种组合中领先,在 Qwen3 上平均领先 10.2 个百分点,在 Llama-3.1 上领先 7.5 个百分点,在 Gemma-3 上领先 13.6 个百分点。在合同领域,剪枝版本以 113,426 个词表条目实现了 62.6% 的 token 缩减,而最佳的就地 BPE 配置为 61.8%,其使用了 207,803 个条目。
只为重要的 token 付费
VocabX 并不会让模型变得更聪明。它让模型不再为那些它无需逐字写出的文本付出代价,也不再为一个它永远不会用到的词表打分。在我们的评分器中,在相同的基础模型和相同的训练配方下,这一改动将推理成本降低了 77%。
专业化通常从数据和权重开始。它也可以更早一层开始,即在词表层面。
完整方法、每个实验的表格以及被弃用的干预措施都将收录在 VocabX 论文中,我们很快就会发布。
来源
- Dharma-AI。“VocabX: Cost-Weighted Vocabulary Adaptation for Domain-Specific Language Models。” 准备中(2026)。
- Gee, Leonidas, et al. "Fast vocabulary transfer for language model compression。" EMNLP Industry Track (2022)。
- Gee, Leonidas, et al. "Multi-word tokenization for sequence compression." EMNLP Industry Track (2023)。
- Smith, Jimmy T.H., et al. "In-Place Tokenizer Expansion for Pre-trained LLMs。" arXiv:2607.15232 (2026)。
延伸阅读
- 同一集群,利用率高出 33 个百分点:改变的是顺序
- GPU 管理:为什么闲置的 GPU 是新的停飞飞机
- 为什么专业化不可避免
- 专业化胜过规模:大多数 AI 采购决策忽视的一个战略变量
- 文本退化:大多数基准测试都未追踪的一种生产故障模式
探索Dharma AI 在 Hugging Face 上试用我们的演示、下载我们的开源模型,并了解专业化 AI 系统如何在真实企业应用中胜过通用模型。









