面向字节级BPE的书写系统级分词器适配
摘要
本文介绍了BPE引导插入,用于对字节级BPE模型进行事后分词器适配,在保持词汇表大小固定的同时保留大多数token-ID分配。该方法将乌克兰语的token数量减少约33-36%,同时将对英语和其他欧洲语言的影响降至最低。
查看缓存全文
缓存时间: 2026/08/04 07:43
# 面向字节级BPE的书写系统级分词器适配 ###### 摘要 预训练的字节级BPE分词器在对资源不足的语言进行切分时可能效率低下。更换分词器会改变几乎所有token ID的含义,而词汇表扩展则会增大模型的嵌入矩阵和输出矩阵。本文研究一种事后适配方法,它在构建时保持模型词汇表大小固定,并将大多数现有token到ID的映射保留为一种构造期兼容性属性。直接从语言特定分词器迁移token并不能保证其能通过目标BPE合并图派生:插入的词条可能与目标的贪心合并排名冲突。我们将这种失败形式化为**合并排序问题**,并提出**BPE引导插入**,该方法通过目标可达的分解来构建每个迁移token。我们的流水线使用脚本感知的行选择来限制附带碎片化,重建目标脚本的字节级前置条件,并应用引导插入来维持合并图可达性。在对Nemotron和GPT-OSS的乌克兰语适配中,该方法将token数量分别降低了33.5%和36.6%,英语及所评估的四语言欧洲聚合指标的变动保持在0.05%以内,并保留了原始模型词汇表78.5%/77.3%的行及相同ID。约束匹配的全局删除和基于频率的删除实现了类似的乌克兰语压缩效果,但使英语/欧洲token数量增加了0.7–2.2%;全新相同大小的重新训练对乌克兰语的压缩略好,但几乎没有保留同ID行,且使英语token数量增加了7.6–8.6%。这种重新分配使所评估的三语言西里尔微聚合的token数量增加了6.7%/10.1%。结构审计发现,全部28,134/45,398个插入的BPE节点在普通按排序合并下均可达,且没有保留的同ID模型词汇表条目被新破坏。我们发布所有分词器和代码。1https://github.com/BogdanDidenko/tokenizer-transfer-framework;可复现发布版tokshop-colm2026-repro-v1。 ## 1 引言 面向资源不足语言和专门领域的词汇表适配,其根本差异取决于分词器架构。对于基于SentencePiece的模型,Kiulian等人 (2025) (https://arxiv.org/html/2608.00582#bib.bib9) 展示了通过分数重新分配的合并对乌克兰语、阿拉伯语和格鲁吉亚语进行固定词汇表重新分配的方法。对于字节级BPE (Radford et al.,2019 (https://arxiv.org/html/2608.00582#bib.bib23))——用于GPT-OSS-20B (OpenAI,2025 (https://arxiv.org/html/2608.00582#bib.bib18))、Nemotron-3 (NVIDIA,2024 (https://arxiv.org/html/2608.00582#bib.bib16))、Qwen (Yang et al.,2025 (https://arxiv.org/html/2608.00582#bib.bib29)) 和 Aya (Aryabumi et al.,2024 (https://arxiv.org/html/2608.00582#bib.bib2))——据我们所知,尚无事后固定词汇表方法能解决这一设定,尽管在资源不足语言中普遍存在高fertility(每词token数):未修改的Nemotron/GPT-OSS分词器对乌克兰语每词需要2.71/2.60个token,而对英语仅需1.32/1.26个 (Table6 (https://arxiv.org/html/2608.00582#A5.T6)),这增加了推理成本并压缩了有效上下文窗口 (Rust et al.,2021 (https://arxiv.org/html/2608.00582#bib.bib25); Petrov et al.,2024 (https://arxiv.org/html/2608.00582#bib.bib21))。 现有关于字节级BPE的工作要么扩展词汇表、替换分词器,要么在预训练期间改变分配方式;没有一项在固定词汇表预算下解决事后适配问题(§2)。我们直接评估廉价的相同大小重新训练;手术式方法则保留每个未选中的词汇表索引及其关联的输入/输出嵌入行。这是一种构造期兼容性优势,而非下游质量声明;衡量继续预训练的收益需要模型级实验。结构性障碍是**合并排序问题**:在字节级BPE中,合并规则按排序贪心应用;当以启发式切分插入新token时,较早排序的合并可能先触发,使插入的token严格不可达——这种失败模式被称为**ill-tokenization** (Balde et al.,2024 (https://arxiv.org/html/2608.00582#bib.bib3))。Balde等人 (2024 (https://arxiv.org/html/2608.00582#bib.bib3)) 报告了领域词汇表适配中的相同失败模式,而我们在§3.4 (https://arxiv.org/html/2608.00582#S3.SS4) 中的乌克兰语实例展示了相应的目标排序冲突。因此,我们的构造目标比词汇表成员资格更严格:每个插入节点必须仍能通过普通排序BPE派生,且没有保留的同ID条目会失去该属性。 我们提出**分词器手术**,以**BPE引导插入**为核心。我们从*字符级*BPE供体——其合并操作针对Unicode字符而非目标的原始UTF-8字节——转换token,并注册一个在目标合并排序下可达的分解,且不改变BPE推理。为保持词汇表固定 (Kiulian et al.,2025 (https://arxiv.org/html/2608.00582#bib.bib9); Downey et al.,2023 (https://arxiv.org/html/2608.00582#bib.bib6)),**脚本感知删除**在可配置保留过滤器下释放槽位;随后在插入供体token之前,从干净的基础清单重建目标脚本。当适配可以被框架为书写系统级重新分配时(如乌克兰语),该实例化方法立即可用。当目标语言与其必须同时保留的语言共享同一脚本时,当前流水线缺乏可靠的方法在不删除本身要保留的清单的情况下释放槽位;我们将这种同脚本重新分配留给未来工作。 我们的贡献: 1. 1. 我们形式化了合并排序问题,并提出目标引导插入,使每个插入节点在目标合并排序下均可派生(§3.4 (https://arxiv.org/html/2608.00582#S3.SS4)–3.5 (https://arxiv.org/html/2608.00582#S3.SS5))。 2. 2. 我们将依赖安全的脚本感知删除、目标脚本基础重建和目标引导插入组合到一个固定词汇表的书写系统级流水线中(§3 (https://arxiv.org/html/2608.00582#S3))。 3. 3. 我们在固定测试套件下评估真实删除、继续BPE、运行时补丁和重新训练基线,并对插入、保留和全词汇表合并可达性进行审计(§4 (https://arxiv.org/html/2608.00582#S4))。 ## 2 背景与相关工作 #### 词汇表适配。 不同方法在扩展、替换还是重新分配词汇表方面存在根本差异。**扩展**会向现有词汇表添加token,从而增大嵌入矩阵规模:Chau等人 (2020 (https://arxiv.org/html/2608.00582#bib.bib4)) 扩展多语言BERT;Kim等人 (2024 (https://arxiv.org/html/2608.00582#bib.bib8)) 通过渐进式解冻向SOLAR-10.7B添加8,960个韩语token;Wang等人 (2020 (https://arxiv.org/html/2608.00582#bib.bib27)) 扩展到低资源语言。**完全替换**会训练新分词器并重新初始化所有嵌入 (Dobler & de Melo,2023 (https://arxiv.org/html/2608.00582#bib.bib5); Remy et al.,2023 (https://arxiv.org/html/2608.00582#bib.bib24); Downey et al.,2023 (https://arxiv.org/html/2608.00582#bib.bib6))。**预训练时**方法修改BPE训练本身:OBPE (Patil et al.,2022 (https://arxiv.org/html/2608.00582#bib.bib20)) 使合并选择偏向跨语言重叠;XLM-V (Liang et al.,2023 (https://arxiv.org/html/2608.00582#bib.bib14)) 训练更大的共享词汇表。**继续BPE训练** (Purason et al.,2025 (https://arxiv.org/html/2608.00582#bib.bib22)) 通过在目标领域数据上恢复合并学习来扩展现有分词器,并配合基于叶子的剪枝,在不依赖辅助供体分词器的情况下减少不可达或未使用的添加token;我们直接使用作者实现的代码。2https://github.com/taidopurason/tokenizer-extension, commit15e9ed7f。对于SentencePiece分词器,Kiulian等人 (2025 (https://arxiv.org/html/2608.00582#bib.bib9)) 通过合并分数重新分配的词汇表来保持固定词汇表大小,用于乌克兰语、阿拉伯语和格鲁吉亚语,但没有修复本文研究的显式字节级BPE合并表。SentencePiece同时提供Unigram和BPE模型;前者的合并谱系可以恢复,而分数重新分配是后者的原生特性。在同脚本设定中,Ociepa等人 (2025 (https://arxiv.org/html/2608.00582#bib.bib17)) 报告,直接将波兰语分词器与Mistral结合会产生歧义,因为重叠词汇表并未产生兼容的token对合并。我们的设定更窄且更具结构性:在固定词汇表预算下事后修改现有字节级BPE合并表。Land & Bartolo (2024 (https://arxiv.org/html/2608.00582#bib.bib11)) 独立地记录了部署多语言分词器中的许多token训练不足,这支持了针对训练稀少清单进行基于删除的重新分配的实际必要性。据我们所知,先前没有工作通过显式结构修正存储的合并表来解决固定词汇表字节级BPE中的事后token插入问题。 #### Ill-Tokenization问题。 Balde等人 (2024 (https://arxiv.org/html/2608.00582#bib.bib3)) 指出,天真追加的领域token获得的合并优先级低于现有词汇表,导致BPE忽略它们——他们将这种失败称为**ill-tokenization**。他们的解决方案AdaptBPE在运行时通过最长子串匹配补丁BPE初始化,而不修改存储的合并表;其公布的协议扩展而非重新分配词汇表。该研究评估了BART/RoBERTa(补丁前64.13%的ill-tokenization);一个单独的局限性诊断发现标准LLaMA-2-7B分词下为27.76%,但未将AdaptBPE应用于该模型。Sharthak等人 (2025 (https://arxiv.org/html/2608.00582#bib.bib26)) 观察到相同的根本原因,并通过整体分词器移植来绕开它,使用局部子词和全局语义启发式初始化目标分词器的嵌入矩阵。3https://github.com/Tinycompany-AI/TokenAdapt, commit3f7ff1de。因此TokenAdapt是一种嵌入迁移方法,而非替代性的分词器构造:其token数量恰好等于所选目标分词器的token数量。Purason等人 (2025 (https://arxiv.org/html/2608.00582#bib.bib22)) 同样报告,传统的分词器扩展可能添加不可达或从未使用的token,并提供了用于检测不可达词汇表条目的开源诊断工具。我们的BPE引导插入在当前书写系统级流水线中通过修正存储的合并表从结构上解决这一失败,而不是修补运行时行为。 #### 乌克兰语分词。 相邻的乌克兰语NLP工作针对栈的不同层次:基于规则的词/句切分 (lang-uk,2016 (https://arxiv.org/html/2608.00582#bib.bib12))、分词器效率评估 (Korablyov et al.,2025 (https://arxiv.org/html/2608.00582#bib.bib10)),以及结合分词器重新分配、数据整理和模型训练的多语言LLM适配 (Paniv et al.,2026 (https://arxiv.org/html/2608.00582#bib.bib19))。没有一项涉及事后固定词汇表字节级BPE合并表修改,而这正是本文的贡献。 #### 嵌入初始化。 为新token初始化嵌入与我们的结构贡献正交,但对下游性能至关重要。方法范围从子token平均 (Kim et al.,2024 (https://arxiv.org/html/2608.00582#bib.bib8)) 和基于重叠的迁移 (Dobler & de Melo,2023 (https://arxiv.org/html/2608.00582#bib.bib5); Remy et al.,2023 (https://arxiv.org/html/2608.00582#bib.bib24); Kiulian et al.,2025 (https://arxiv.org/html/2608.00582#bib.bib9)) 到模型感知方法如MATT (Haltiuk & Smywinski-Pohl,2025 (https://arxiv.org/html/2608.00582#bib.bib7))。我们的分词器手术与手术后应用的任何初始化方法兼容。 ## 3 方法 ### 3.1 流水线概述 分词器手术在三个阶段中维持固定词汇表大小\|V\|:脚本感知删除释放槽位,目标脚本基础重建恢复受控的目标脚本*基础token*清单,BPE引导插入将供体token添加到重建后的字节级词汇表中。这三个阶段分别处理:在声明的删除清单之外发生的附带删除、目标脚本重置后缺失的部分字节依赖,以及可能使简单供体合并追加不可达的目标排序冲突(§3.4 (https://arxiv.org/html/2608.00582#S3.SS4))。 ### 3.2 脚本感知的Token删除 我们使用通过unicodedataplus进行的Unicode脚本检测,按书写系统对每个token进行分类,并从一组可配置的删除候选脚本中选择删除候选,同时排除声明的*保留清单*。没有选中删除脚本的token(包括仅含Common字符的表面)不会被此规则选中;单独的目标脚本重置优先于排除规则,因为它有意重建西里尔区域。这与Alabi等人 (2022 (https://arxiv.org/html/2608.00582#bib.bib1)) 的语料频率词汇表缩减不同:他们保留适配语料中的高频子词(加上原始分词器中的1,000个词条),而我们直接对解码后的表面进行分类并验证所得合并结构。在我们的分词器产物中,较高的词汇表ID通常对应较晚添加的合并,因此我们在每个删除脚本内使用降序ID作为实用的删除启发式。一个解码后的表面可能包含多个书写系统的字符,因此如果任何字符属于保留清单,它就会被排除在脚本选择的删除之外。这个额外的unicodedataplus检查可防止多脚本表面仅因其某个标签可删除就被选中。 在这些实验中,定量附带保留声明仅限于英语和EU聚合中的四个拉丁脚本语料库。冻结构造配置中的额外构建特定排除项是可复现性参数,而非评估的保留目标。附录D (https://arxiv.org/html/2608.00582#A4) 按主要书写系统报告每个选中的行;我们对评估套件中未出现的书写系统不作任何保留声明。 删除后,我们首先应用**三组件检查**:仅当L、R和T三者都仍留在词汇表中时,合并[L,R]→T才被保留;如果其中任何一个被删除,则删除该合并规则(此步骤不添加任何合并)。此局部检查是必要但不充分的:删除内部节点可能使保留的父节点在每条剩余合并单独结构良好的情况下仍然没有任何完整派生。因此,我们运行精确的严格后端合并图审计。对于导致保留token被破坏的可选脚本选择前置条件,我们恢复该前置条件,并用下一个符合条件且ID降序的候选项替换它;如果失败的由强制目标重置行引起,则依赖token将进入删除闭包。我们重复选择、合并清理和严格审计,直到在保持精确槽位预算的同时,没有保留的同ID条目被新破坏。这种依赖修复恢复了2个Nemotron和14个GPT-OSS候选;两种构建均不需要目标重置闭包。 ### 3.3 目标脚本基础重建 对于目标脚本本身——我们的乌克兰语设定中的西里尔字母——我们并不试图保留任意的
相似文章
Pruned BPE: Post-training Visibility Pruning and Token Reallocation for Byte Pair Encoding
This paper proposes Pruned BPE, a post-training method that prunes low-exposure tokens from a BPE vocabulary and reallocates slots to better-exposed candidates, reducing encoded length without increasing model-visible vocabulary size. Experiments on English and Chinese corpora show approximately 0.27–0.36% encoded length reduction over standard BPE.
增量BPE分词
本文介绍了一种增量式字节对编码(BPE)分词算法,该算法处理每个字节的时间复杂度为 O(log^2 t),支持流式场景下的高效部分分词,并相比现有实现实现了加速。
打破令牌边界的防线:BPE分词如何在LLM对齐中制造可被利用的漏洞
本文指出,BPE分词将关键安全词汇切分为子词片段,在LLM对齐中制造了可被利用的漏洞。字符级扰动通过破坏令牌边界来绕过安全机制,在五个模型系列上实现了对HarmBench提示的80-100%拒绝翻转,其中48%产生了有害输出。
字节级模型
讨论了字节级分词器是否在精确任务(如区分相似名称、计数字符和大小写敏感)上优于子词分词器,并询问当前推荐。
跨语言同形词的标记化
本文研究了多语言分词器如何处理跨语言同形词(不同语言中拼写相同但含义不同的词),并提出了一种轻量级的语言线索干预方法,通过引入语言特定字符来减少分词共享。实验表明,在机器翻译中,特别是在BPE分词下,该方法带来了适度的改进。