这项由谷歌DeepMind与香港大学联合开展的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.09630,题为《Scratchpad Patching: Decoupling Compute from Patch Size in Byte-Level Language Models》。感兴趣的读者可通过该编号在arXiv平台查阅完整原文。

现代AI语言模型——也就是GPT、Gemini这类大模型的底层机制——处理文字时,并不是像人类一样直接阅读文字本身,而是先经过一个叫做"分词器"的预处理步骤,把文章切成一块一块的词语碎片,再交给模型去学习。这个步骤就像是在给快递包裹贴标签,效率不错,但有时候会出问题:遇到不常见的词汇、外语、代码或者数学符号,分词器就可能贴出奇怪的标签,导致模型理解错误。更麻烦的是,分词方式一旦固定,就很难更换,就像一家快递公司用了多年的标签系统,突然要改,牵一发而动全身。

正因如此,研究人员开始探索另一条路:让AI模型直接从最基本的信息单位——字节——出发来理解文字,完全绕开分词器。字节是计算机存储信息的最小单位,所有文字在计算机里最终都是一串串字节。这种"字节级语言模型"就像是让AI直接读摩斯密码,而不是先等人翻译成文字再读。好处是通用性极强,所有语言、所有格式都能统一处理,不会有任何文字被"错误标签"。

然而,直接读字节有个大麻烦:字节序列太长了。一句话翻译成字节,长度大概是用常规分词方法的三到四倍,模型要处理的信息量急剧膨胀,计算成本高得难以承受。为了解决这个问题,研究人员想出了"分块"的办法:把若干个连续字节打包成一个"补丁"(patch),让模型以补丁为单位来处理,这样序列就短了很多,计算量也大幅下降。

但分块又带来了新问题,而这正是这篇论文要解决的核心矛盾。谷歌DeepMind的研究团队把这个问题命名为"补丁滞后"(patch lag),这也是整篇论文的出发点。

一、补丁滞后:被"旧消息"耽误的预测

以一本书的某一页为例,把每八个字节打成一个补丁,就像把文章每八个字母装进一个信封,交给一个中央处理室处理完再吐出来。问题在于:当模型要预测第五个字节是什么的时候,它手上能拿到的最新"信封内容",其实是上一个信封的汇总,而不是当前这个信封里已经读完的前四个字节的信息。为了保持预测的合法性(不能偷看未来的内容),模型必须依赖一个"旧版本"的理解来做判断,这就是"补丁滞后"。

打一个更生活化的比方:这就像一个工厂流水线工人,每完成八个零件才能把进度汇报给调度室,而调度室要在工人还没汇报之前就指挥他下面几个零件怎么做。调度室只能靠上一批零件完成后的汇报来发指令,对当前这批零件已经做了几个、做成什么样,完全不知道。补丁越大,这种信息滞后就越严重,模型对当前位置的判断就越依赖"过期情报"。

理论上,补丁越大,模型效率越高(处理的序列更短),但质量越差(滞后越严重);补丁越小,质量越好,但效率越低。这个两难困境长期困扰着字节级模型的研究,是一道似乎难以突破的权衡墙。

研究团队的突破思路是:既然问题的根源在于信息更新不及时,能不能在补丁内部悄悄插入一些"中途汇报"的机会,让调度室在一批零件做到一半时也能收到最新进度,从而给出更准确的指令——而又不增加最终存档的汇报数量?这个思路就催生了论文的核心方法:草稿纸分块(Scratchpad Patching,简称SP)。

二、草稿纸机制:在补丁内部偷偷做笔记

SP的核心思想可以用"边读边记草稿"来理解。在标准的补丁模型里,每个补丁只有在所有字节都读完之后,才会生成一个代表整个补丁的"总结",交给后续的主干网络(main trunk)处理。SP则允许在补丁内部的某些位置,提前把"已经读完的那部分字节"汇总成一个临时草稿,也让主干网络处理一下,得到一个"中途版本的理解",然后把这个理解提供给补丁后续字节的预测使用。

关键的设计在于:这些草稿是"一次性"的。它们只在当下使用,不会被永久保存进模型的记忆(也就是所谓的KV缓存)。主干网络最终对外暴露的,还是每个补丁结束时那一个正式的"定稿"。这就好比一个学生在考试时用草稿纸打草稿,草稿帮助他理清思路,但最终提交的答卷只有正式的答案,草稿纸在考完后就扔掉。

这样一来,补丁的数量没有变、模型对外暴露的序列长度没有变、KV缓存的大小没有变,但每个补丁内部的"思考过程"更丰富了。信息滞后的问题被大大缓解,因为每个字节在做预测时,能依赖的最近一次"汇报"不再是上一个补丁结束时的旧消息,而是当前补丁内、距离它最近的一次草稿更新。

在工程实现上,研究团队设计了一套精巧的训练方案。训练阶段,所有的草稿状态会被展开、拼接进主干网络的输入序列里,一次性并行计算,这样不会增加训练的时间成本。为了保证草稿之间不互相"偷看",团队还设计了一种专门的注意力掩码(attention mask):每个草稿或正式补丁状态,只能看到它之前的正式补丁,而看不到其他草稿。在推理阶段,草稿状态是即用即弃的,只有正式补丁被保留在缓存里,因此不增加任何内存开销。

三、什么时候写草稿:用"不确定性"来触发

SP还有一个重要的设计决策:不是每个字节位置都需要生成草稿,而是选择性地在"关键位置"触发草稿更新。道理很简单,如果每个位置都打草稿,计算量就跟直接做字节级模型差不多了,省下的效率优势荡然无存。

研究团队采用的触发策略是基于预测熵(entropy)——也就是模型的"不确定程度"。当模型在某个字节位置觉得"下一个字节是什么我很难猜"(高熵),就触发一次草稿更新;如果觉得"下一个字节显然是什么"(低熵),就不触发。这种策略背后有一个直觉:在容易预测的地方,旧的汇报信息已经够用;在难以预测的信息密集区域,才最需要及时更新。

具体实现上,模型的编码器(encoder)上方额外配备了两层Transformer和一个辅助预测头,专门用来实时计算每个位置的预测熵,当熵值超过一个预设阈值τSP时,就触发草稿更新。这个触发机制是可调的,不需要重新训练模型就能在推理时灵活调整草稿的密度,从而在质量和速度之间随时切换。这一特性是SP相比传统补丁方法的一个独特优势:普通的补丁模型一旦训练完成,效率和质量的权衡就固定了;SP模型则可以在推理时动态决定投入多少计算,就像一个司机可以根据路况随时决定开多快。

从图3(论文原图)所展示的实际例子来看,在一段英文文本中,草稿触发点往往出现在单词边界、专有名词开头、不常见词汇等预测难度较高的位置,而在常见词汇的中间字母处则很少触发,符合直觉预期。

四、实验设置:一场公平的大比拼

研究团队搭建了一套统一的测试框架,让所有参赛模型在相同的硬件、相同的数据、相同的参数量级(约20亿参数)下接受检验。训练数据是一批来自代码、自然语言和数学领域的开源数据集,总计约4000亿字节。

参与比较的模型阵容相当丰富。一方面是两个参照基准:纯字节级模型(直接处理字节,不分块)和传统分词器模型(使用标准的子词分词器)。另一方面是四个主要的补丁方法家族,每个家族都对应一种不同的分块策略,并且每个家族都有加上SP和不加SP两个版本。

第一个家族是固定大小分块,就是最简单粗暴的方法:每p个字节切一刀,形成固定长度的补丁,p分别取2、4、8、16。第二个家族是SpaceByte分块,模仿人类阅读习惯,在空格等分隔符处切分,产生变长补丁,平均约6.3字节一个补丁。第三个家族是基于熵的分块,在预测不确定性高的位置切分,把补丁边界集中在信息密集区域。第四个家族是H-Net分块,用一个学习得到的路由器来决定切分位置,是四种方法中最复杂的一种。

评估维度包括验证集上的每字节比特数(BPB,越低越好,衡量模型对文本的压缩能力)、代码生成能力(在MBPP和HumanEval两个标准测试集上测pass@1通过率)、自然语言理解能力(在ARC-Easy、ARC-Challenge、BoolQ、HellaSwag、OpenBookQA、PIQA、WinoGrande、MMLU八个基准上测准确率),以及推理效率(KV缓存大小和每字节浮点运算量的缩减倍数)。

五、实验结果:SP几乎在所有场景下都赢了

实验结果相当清晰。在所有四个补丁方法家族中,加上SP之后,质量都有显著提升,而推理时的KV缓存开销保持不变。这验证了SP"不花内存,只花算力,还能改善质量"的核心主张。

最引人注目的结果来自大补丁场景。以固定大小分块p=16为例,不加SP时,这个模型在八个自然语言理解任务上的平均准确率只有48.0,远低于纯字节级模型的54.1。加上SP之后,平均准确率跃升至54.2,几乎完全弥合了与字节级基准的差距,同时KV缓存仍然比字节级模型小16倍,推理计算量也减少了约3到4倍。换句话说,SP让一个用很大补丁、效率极高的模型,在质量上接近了一个完全不用补丁的基准模型,而且效率优势几乎没有损失。

在代码生成任务上,SP的收益更加明显。固定大小p=8的模型不加SP时,MBPP pass@1为24.1,加上SP后提升到32.1,提升幅度超过33%;HumanEval则从13.0提升到15.9。p=16的模型效果提升更大,MBPP从18.2提升到27.5,HumanEval从10.5提升到14.8。与此同时,推理时的KV缓存缩减倍数保持不变(8倍和16倍),浮点运算量的缩减倍数虽然略有下降(因为草稿运算有额外开销),但仍然显著高于纯字节级模型。

自然语言理解任务中,SP同样全面提升了各家族的表现。SpaceByte加SP后平均准确率从54.5提升到56.2,熵分块加SP从53.2提升到55.3,H-Net加SP从55.4提升到55.5。尤其值得关注的是,加上SP之后,一些简单的分块策略(如固定大小分块、SpaceByte)在性能上开始追平甚至超过更复杂的策略(如H-Net),不同方法之间的差距大幅缩小。这暗示着一个有趣的推论:传统上被认为"分块策略很重要"的观点,在SP出现之后可能需要修正——或许真正的瓶颈在于计算怎么分配,而不是边界怎么划。

六、为什么SP有效:是多花了算力,还是花对了地方?

一个自然的质疑是:SP不就是多做了一些运算吗?如果把同样多的额外算力直接用于训练一个更小补丁的模型,是不是能取得一样的效果?

研究团队为此专门做了"等算力对比"实验:把SP模型和非SP模型在相同的总训练浮点运算量下进行比较,看谁的验证集BPB更低。结果显示,在固定大小分块、SpaceByte、熵分块三个家族中,SP版本在相同算力下的BPB都达到或超过了非SP基准,说明SP的提升不只是来自"多算了一些",而是来自"算在了更关键的地方"。SP用熵触发机制把额外的计算集中在了信息最密集、最难预测的字节附近,这种有针对性的计算分配,比无差别地缩小补丁大小更高效。

唯一的例外是H-Net,SP在等算力比较中有时反而会轻微拖累BPB。研究团队的分析指出,这可能源于H-Net的学习型补丁边界和SP的熵触发机制之间存在"位置偏移耦合"——草稿更新的位置往往恰好紧邻补丁边界的前一个字节,产生了对相邻字节的重复计算,反而浪费了算力。这一发现也说明SP不是万能药,与不同类型的分块策略搭配时需要注意兼容性。

七、多语言表现:SP缩小了对非英语语言的歧视

研究团队还在FLORES-200数据集上评估了所有模型对200种语言的BPB排名。纯字节级模型在多语言场景中表现最稳定,排名最靠前,因为它对所有语言一视同仁,不依赖任何语言特定的分词规则。传统分词器模型由于训练语料以英语和代码为主,在很多小语种上表现很差,排名垫底。补丁方法在加上SP之后,整体多语言排名都有所提升,与纯字节级模型的差距明显缩小。这说明SP不只是在英语或代码上有效,它的增益是跨语言的。

八、推理时的灵活性:一个模型,多种速度

SP的另一个实用优势是推理时的灵活性。在传统补丁模型中,补丁大小和推理效率是在训练阶段固定下来的,部署后无法更改。SP提供了两个维度的运行时调节能力,均无需重新训练。

第一个维度是补丁大小的调节。以熵分块模型为例,训练时使用阈值τP=2.5对应某个平均补丁大小;推理时调高阈值可以让补丁变大(效率更高但质量略降),调低阈值让补丁变小(质量略升但效率略降)。SP版本在推理时调整补丁大小时,质量变化比非SP版本平滑得多——非SP模型对补丁大小的变化非常敏感,稍微偏离训练配置质量就急剧下降;SP模型则能相对平稳地适应不同的推理时补丁设置,说明SP的草稿机制对不完美或错误的补丁边界具有一定的容错能力。

第二个维度是草稿频率的调节。在推理时改变熵触发阈值τSP,可以直接控制草稿更新的密度。提高阈值(减少草稿),推理速度更快、计算量更低,质量略有损失;降低阈值(增加草稿),质量略微提升,计算量增加。这种调节呈现出一条平滑的质量-效率曲线,给工程师提供了一个简单直观的旋钮,用来在不同的部署场景下灵活取舍。这是普通补丁模型所不具备的能力,一旦训练完成,效率和质量就是绑定的,没有任何弹性空间。

九、局限与未来方向

研究团队在论文中坦诚地指出了SP目前的局限。首先,SP并不直接减少训练时的计算量,相比普通补丁基准,训练阶段引入的草稿状态会增加一定的FLOPs,未来需要探索能在训练期也节省算力的草稿设计。其次,当前的草稿机制是"遇到新字节就重新汇总当前补丁的前缀",属于比较简单的增量更新方式,未来可以探索更复杂的更新规则,比如借鉴循环神经网络的思路,用增量方式更新而不是每次从头重算,进一步提升效率和表达能力。再者,SP目前主要在单层补丁架构上验证,对于多层级补丁架构(如H-Net的多阶段分块),SP的系统性研究还是空白,留待后续工作填补。最后,SP与H-Net之间的兼容性问题也尚未完全解决,设计出对所有类型分块策略都表现稳定的草稿触发机制,是一个有价值的开放问题。

说到底,这篇论文做的事情,是给字节级语言模型找到了一条"鱼和熊掌可以兼得"的路——既要大补丁带来的高效率,又要小补丁带来的高质量,靠的是在补丁内部聪明地插入"草稿思考"来弥合两者之间的鸿沟。这不是一个靠堆算力蛮干的解法,而是通过把算力花在最该花的地方,让有限的计算发挥出更大的效用。

对于普通用户而言,这项研究的潜在价值在于:未来的AI模型或许可以更公平地对待每一种语言、每一种格式的文本,不再依赖针对特定语言设计的分词器,也不再有那些让模型困惑的"奇怪词汇";与此同时,模型的运行速度和内存占用有望进一步降低,同等算力下能处理更长的文本,服务更多场景。能实现这些目标的字节级模型,正一步步从研究论文走向实际应用,SP是其中一块重要的拼图。有兴趣深入了解技术细节的读者,可以通过arXiv编号2605.09630找到完整论文。

Q&A

Q1:字节级语言模型和普通的大语言模型有什么区别?

A:普通大语言模型处理文字时,先用分词器把文字切成词语碎片,再让模型学习这些碎片。字节级语言模型则完全跳过分词器,直接让模型处理计算机存储文字的最小单位——字节。好处是对任何语言、任何格式都能统一处理,不会出现"奇怪词汇"和分词错误;坏处是字节序列比词语序列长很多,计算量更大。

Q2:补丁滞后(patch lag)会带来什么具体影响?

A:补丁滞后会让模型在预测补丁内部字节时,只能依赖上一个补丁的"旧版理解",而看不到当前补丁里已经读完的那些字节的信息。补丁越大,这种信息过时的问题越严重,模型预测质量就越差。实验中,固定大小16字节补丁的模型,在自然语言理解任务上的平均准确率比不分块的字节级模型低约六个百分点,就是补丁滞后造成的损失。

Q3:草稿纸分块(Scratchpad Patching)会增加AI运行时的内存占用吗?

A:不会。SP的核心设计是让草稿状态只在当次计算中临时使用,计算完就丢弃,不保存进模型的记忆缓存(KV缓存)。最终存入缓存的,只有每个补丁结束时的正式状态,数量和不用SP时完全一样。因此SP不会增加推理时的内存占用,只会增加一部分临时计算量,而这部分计算量可以通过调整触发阈值灵活控制。