用 AI 做 BPE 合并练习:词表学完以后,新句子不会再现场造规则

前天 3阅读

AI服务按token计算输入量时,一个词不一定只占一个token。与其让模型猜“这段大约几个”,可以先让它制作一份很小的BPE训练记录,亲手看一次字符怎样合成片段,再回到实际工具查询真实数量。

用 AI 做 BPE 合并练习:词表学完以后,新句子不会再现场造规则

AI模型生成的概念插图:小块组合成较长单元;不是软件截图、照片或正文合并顺序的精确图解。

先训练两条规则

准备三个虚构词:pana出现4次,pano出现3次,mana出现2次。约定起点是单字符,不跨词合并,不加词尾标记,只做两轮。Hugging Face的BPE课程说明,每轮寻找当前最常见的相邻token对,并在语料中应用这条合并;频次应按词出现多少次加权。

第一轮的相邻对计数为:p与a共7次,a与n共9次,n与a共6次,n与o共3次,m与a共2次。因此先把a、n合成an。三种词分别变成p/an/a、p/an/o、m/an/a。

现在重新计数,不能沿用第一轮的旧表。p与an共7次,an与a共6次,an与o共3次,m与an共2次。第二条规则于是把p、an合成pan。最终分别得到pan/a、pan/o、m/an/a。

把训练记录拿去处理新词

盖住训练语料,只保留两条有序规则。新词manana先拆成m/a/n/a/n/a;应用a+n→an后是m/an/an/a,第二条p+an→pan没有匹配,结果就停在四个token。即使新词内部出现了重复片段,也不能临时再学一条合并规则。

这个练习可做成两面卡:正面写待分词文本,背面写每轮结果。请AI先交规则,再交新词结果,方便发现它是否偷换了规则顺序。训练时改变语料频次可能改变词表;使用已经训练好的分词器时,输入一篇文章通常不会替它重新训练词表。

数量减少了,原文仍须完整

训练语料共有9个词,每个4字符,起初是36个字符单元。第一轮合并9对后剩27个,第二轮再合并7对后剩20个。也可直接算4×2+3×2+2×3=20。把每个结果内部去掉分隔线,应逐字还原原词。

这些计数已用独立脚本复算,但20只是本教学语料的token单元数,不能说真实文件压缩到了20字节,也不能套用为任何商用模型的计费结果。本例没有同频并列;若出现并列,还须先约定稳定的取舍顺序。

可以直接交给AI的任务

“为pana×4、pano×3、mana×2制作两轮BPE训练记录。初始单元为字符,不跨词,无词尾标记。每轮列完整相邻对及加权次数,只合并最高频的一对,应用后重新计数。冻结规则,再分词manana;不得在新词上继续学习。检查每轮单元总数和逐字回读,指出真实byte-level BPE、预分词及特殊token会带来哪些差别。”

实际核算提示词长度时,应使用与目标模型对应的分词器。中文字符、空格和特殊标记怎样计入,取决于那套真实规则;这份小卡教的是过程,不是通用换算比例。

资料核对日期:2026年10月2日。文中为原创教学设定,计算核验不代表真实模型测试。

参考资料

Hugging Face:Byte-Pair Encoding tokenization

Sennrich等:Neural Machine Translation of Rare Words with Subword Units

文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。