跳到正文
Hugging Face Blog·· 3 天前精选AI 评分51

VocabX 如何通过专用化 SLM 词表降低实际推理成本

How Specializing the Vocabulary of SLMs Can Cut Inference Cost by 77% in Real Applications

AI 导读

文章介绍 VocabX 如何为领域专用模型重建词表,并在葡萄牙语作文评分器上将实测推理成本降低 77.0%,基础模型和训练方案保持不变。该评分器的平均响应长度从 350 个 token 降至 101 个,bench 分数从 0.703 升至 0.810;结果来自仍在审阅中的论文当前版本,发表前可能变化。

推荐理由

文章拆解了 VocabX 如何按推理成本而非词频选择词表,并用葡萄牙语作文评分器展示其成本与质量变化。

正文 · AI 翻译

通过微调 Qwen 和 Gemma 等通用开源模型来针对某个领域或任务进行专门优化的模型,继承了为多种领域和通用应用构建的词汇表。

在我们投入生产的作文评分器中,这套词汇表会把模型最常写的文本拆分成大量 token。本文将预览我们即将发表的 VocabX 论文中的一些结果:我们如何围绕每个 token 的成本而非其频率来专门优化词汇表,并在不更改基础模型的情况下,将测得的推理成本降低了 77%。

Same sentence, fewer tokens: 14 tokens with the base tokenizer, 4 with VocabX

分词器通常被视为基础模型的一项固定属性,会随模型继承下来,并保持不变。对于针对单一领域进行专门优化的模型而言,它可能是影响成本的最大因素之一,而且在任何训练步骤开始之前就已确定。

我们投入生产的系统之一是一个用于葡萄牙语作文的自动评分器,基于 Qwen3-4B 构建。它接收作文、题目和参考文本,并返回一份 JSON 评估结果,其中包含成绩以及对每项能力的评语。

该模型本身已经很小,只有 40 亿个参数,而且已经针对这项任务完成训练。然而,它使用的仍是原版 Qwen3-4B 分词器,该分词器是为多种语言和多种文本类型构建的。在评分器中,它只用于一种语言——葡萄牙语,以及一种响应格式。这带来了两项成本:评分器在每次请求中生成的文本所需 token 数量超出实际需要;并且在每个生成的 token 处,模型都要为包含 151,669 个条目的词汇表计算分数,其中许多条目几乎不会用于这项任务。

我们使用一种称为 VocabX 的方法重新构建了该词汇表,同时保持基础模型、数据和训练方案不变。本文中的数字来自论文当前版本,该版本仍在评审中,发表前可能会有所变动。

为所有人构建的词汇表

领先的语言模型以 token 为单位进行读写,而分词器决定文本如何转换成 token。领先的通用模型所用的分词器,是在涵盖多个领域和语言的大型文本集合上训练的,内容从源代码、合同到中文都有。对于通用模型而言,这样的选择合情合理。

但对于用于单一领域的模型,这会同时造成两种浪费。

第一种是碎片化。分词器会把该领域最常重复的内容拆成许多片段。在评分器中,每份回复都以相同的 JSON 框架开头,包含相同的能力名称和评估用语。在合同中,这些内容是标准条款;在代码中,则是标识符。这些序列中的每一个都要用好几个 token 表示,而原本一个就够了;模型每次收到请求时,都要为这些 token 付出代价。

The span the grader writes in every response takes 12 tokens with the base tokenizer and 1 with VocabX

第二种是冗余。词汇表中有数万个该领域从未使用的条目,而模型每生成一个 token,都要为所有这些条目计算分数。一个专门用于给美国中学生物考试评分的模型几乎不会用中文写作,但它仍会在每一步计算所有中文 token 的概率。词汇表会把该领域最常重复的内容拆成许多片段,同时还包含该领域从未使用的条目。

151,669 vocabulary entries in the base tokenizer, 64,767 with VocabX

阅读成本低,写作成本高

最自然的反应是统计 token 数量并尝试减少数量。但数量并不等于成本。

要理解为什么生成一个 token 的成本更高,不妨看看推理的工作方式。它分为两个阶段。在 prefill 阶段,模型通过网络单次处理整个输入:从 GPU 内存中读取的每个权重都会被每个输入 token 重复使用,瓶颈在于计算能力。在 decode 阶段,模型一次生成一个 token 来构建响应,每个 token 都需要完整运行一遍。每次读取权重只会被使用少数几次,而 GPU 大部分时间都在等待数据从内存传来:瓶颈转而变成内存带宽。

这种影响在我们所处的场景中最为明显:以中等批量提供的小模型。对请求进行批处理,可以让它们分摊权重读取,从而缓解问题,但无法彻底解决。每个 decode 步骤中,模型还会读取 KV cache,也就是存放已处理上下文的注意力内存,而且它会随上下文增长。在我们测量的案例中,评分器生成一个 token 的成本是读取一个 token 的 7.4 倍;不过,这一比例会随硬件、问题、批量大小、上下文长度及其他因素而变化,也可能更高。总体而言,方向是一致的:生成的成本高于读取。

In the case we measured, writing a token cost 7.4 times reading one

可以把它想象成一家按箱收费的货运公司,但寄出一个箱子的收费是寄入一个箱子的七倍。减少箱子总数会有帮助。减少寄出的箱子,效果则会好七倍。对输入和输出一视同仁地压缩的方法,会错失大部分潜在节省。

账单的第三项是词汇表本身。模型的最后一层 LM head 会将内部状态转换为每个可能 token 的分数。为此,它会为词汇表中的每个条目保存一行参数。在 Qwen3-4B 这种规模的模型中,这个矩阵占参数总量的近 10%。大型模型可以轻松承受如此高的占比,但它会给小模型带来负担。

而且,这笔成本并非只支付一次。输入层只会查找正在读取的 token 对应的那一行,但 LM head 会在每个生成的 token 上读取并计算整个矩阵。由于 decode 阶段本就受内存带宽限制,每多一行数据,就意味着每一步都要搬运更多数据。领域中从未使用过的条目,与常用条目的成本完全相同。这就是为什么增加 token 数量的同时,既能减少计数,也能提高账单。VocabX 的选择标准并未纳入这一项,但它通过两个步骤控制词汇表大小:子词合并用更小、针对特定领域的词汇表替换基础词汇表,而宏则在固定预算内加入。在评分器中,输出层的行数从约 152,000 减少到约 65,000。

现有方案为何效果不佳

调整模型词汇表并非新思路。文献中的基准方法,例如快速词汇迁移(FVT)、多词元分词(MWT)以及 Liquid AI 的 原位分词器扩展(原位 BPE)——即从原始词汇表继续进行 BPE 训练——已经能够减少碎片化。在针对我们的问题进行测试时,我们发现了两项局限。

它们根据频率而非成本来选择 token。 对它们而言,在输入中频繁出现的表达比在响应中较少出现的表达更有价值,即使后者的服务成本更高。

它们只作用于单一层面。它们要么调整词语切分成片段的方式,要么将完整短语合并为一个 token。这三种方法都不会在同一标准下同时处理这两者。而评测器中最大的浪费恰恰出现在 JSON 外层结构等冗长且重复的片段上,子词方法只有在逐一合并其中各个部分后才能处理这些片段。

\n\t\n\t\n\t\t我们如何解决这个问题\n\t\n

VocabX 解决了这两项局限,还解决了沿着显而易见的路径解决第一个问题时会出现的第三个问题。

首先,我们换了个问题来思考。我们不再问某个候选词能节省多少 token,而是问它能节省多少成本和时间。每个被消除的 token 都会乘以它所在字段的价格:系统提示、用户消息或模型响应。在我们测量的案例中,对于评测器,响应中节省的一个 token 的价值是输入中节省一个 token 的 7.4 倍,因此词表也据此构建。

其次,我们同时处理两个层面。回到航运公司这个例子:你可以通过更好地包装每件物品来减少箱子数量,也可以发现同一套包含十二件物品的套装每周都会发货,然后将整套物品装进一个箱子寄出。VocabX 两种方式都采用。在子词层面,它会重新构建领域词语的切分方式。在多词层面,它会寻找重复出现的完整片段,从短语到整行内容,再到 JSON 外层结构,并将每个片段转为单个 token,我们称之为宏 token。两个层面的选择都遵循同一成本标准,各自拥有独立的预算。

Twelve boxes become one, and 7 tokens become one macro token

为了找到这些片段,我们使用五种挖掘器,在语料库中自动搜索重复出现的片段,每种专门识别一种重复类型:长词、整行内容、短语、完整句子,以及带标点的结构,例如 JSON 和标签。在八个语料库上的平均结果中,最后一种贡献最大;在代码语料库中,它单独贡献了 17.5 个百分点。若缺少这五种挖掘器,评测器上的 token 减少幅度将下降 55.6 个百分点。

Two layers, one cost criterion

第三,我们估算样本无法看到的内容。按成本选择 token,需要知道每个候选词在已经选出的 token 之外还能节省多少。要精确测量这一点,就需要在每次选择后重新处理整个语料库,次数高达数万。大规模处理时,常见做法是在一组文档样本上进行测量;这样一来,样本中没有出现的候选词就会被判定为收益为零。

某个短语在 50,000 份文档中出现 37 次,那么在包含 400 份文档的样本中,它出现的概率只有约 26%。在一个合同语料库中,只有 16.6% 的候选词出现在 400 份文档的样本中;其余候选词都不会被评估。

None of the 37 occurrences lands in the 400-document sample

候选词的收益分为两部分。一部分是它在整个语料库中节省的数量,这部分可以精确统计,无需使用样本。另一部分是这些节省中尚未被已选 token 覆盖的部分,只有这一部分需要估算。对于样本无法看到的候选词,我们会根据样本中可见候选词的表现进行统计估算,而不是将收益设为零。这样一来,在样本中不常见、但在整个语料库中频繁出现的候选词也能重新参与竞争。

仅这一项改变,在样本和预算不变的情况下,就将合同语料库中的 token 减少幅度从 44.7% 提高到了 52.8%。

With an estimate instead of zero: 44.7% to 52.8% token reduction

\n\t\n\t\n\t\t评测器中的变化\n\t\n

为了衡量实际效果,我们使用相同的基础模型、数据、训练方案和随机种子,训练了七个版本的评分器。它们之间唯一的区别是分词器。所有版本都在同一台测试机器上运行了相同的 500 个请求,该机器配备 RTX 5090 GPU 和 vLLM 推理服务器,成本则根据实测运行时间计算。

Grader results: 77.0% cost reduction, bench score from 0.703 to 0.810

模型的平均响应长度从 350 个 token 降至 101 个。成本下降了 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 配置使用 207,803 个词表条目,缩减率为 61.8%。

VocabX average lead: +10.2 (Qwen3), +7.5 (Llama-3.1), +13.6 (Gemma-3) points

只为关键 Token 付费

VocabX 不会让模型变得更聪明。它让模型不必为逐字生成不需要写出的文本付费,也不必为永远不会使用的词表评分。在我们的评分器中,在基础模型和训练方案不变的情况下,实测推理成本降低了 77%。

专门化通常从数据和权重入手,也可以从更早的一层——词表——入手。

完整方法、所有实验的表格以及未采用的干预方案,将收录在 VocabX 论文中,我们很快就会发布该论文。

来源

  • Dharma-AI。“VocabX:面向领域特定语言模型的成本加权词表适配。”准备中(2026)。
  • Gee, Leonidas 等。“面向语言模型压缩的快速词表迁移。”EMNLP Industry Track(2022)。
  • Gee, Leonidas 等。“用于序列压缩的多词 Token 化。”EMNLP Industry Track(2023)。
  • Smith, Jimmy T.H. 等。“预训练 LLM 的原位分词器扩展。”arXiv:2607.15232(2026)。

延伸阅读

欢迎在 Hugging Face 上探索 Dharma AI,体验我们的演示、下载我们的开放模型,并了解专业化 AI 系统如何在真实企业应用中胜过通用模型。

来源:Hugging Face Blog · huggingface.co