Scratchpad Patching: Decoupling Compute from Patch Size in Byte-Level Language Models
本文介绍了 Scratchpad Patching(SP),这是一种通过在字节级语言模型中动态插入临时 Scratchpad 以缓解补丁延迟,从而将计算与补丁大小解耦的技术,进而能够在不牺牲建模质量的前提下采用更大的补丁,以降低 KV 缓存和计算成本。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在尝试阅读一本非常长的书,但有一条严格的规定:你只能大段地查看文本,就像一次抓一把页面那样。现代“基于块(patch)”的 AI 模型就是这样工作的。它们不是逐字(token)阅读,而是以称为**块(patches)**的组为单位,逐字节(即字母的原始计算机代码)进行阅读。
这种“抓一把”方法的问题在于作者所称的**块滞后(Patch Lag)**现象。
问题:那一把“陈旧”的文本
想象你在阅读一段落。你抓取了一大块文本(一个块)进行处理。
- 最后一页: 当你读到该块的最后一页时,你掌握了刚刚阅读内容的完整图景。你可以完美地预测接下来会出现什么。
- 第一页: 但是,当你处于同一块的第一页时,你实际上还没有看到该块的其余部分!你被迫基于之前读过的上一个块来进行猜测。
如果你的块很大(比如 16 字节长),那么前 15 个字节都是基于过去的“陈旧”信息进行猜测的。块越大,这种“滞后”持续的时间就越长,AI 预测下一个字母的能力也就越差。
通常,你必须做出选择:
- 小块: 准确性高,但 AI 需要做大量工作(速度慢且成本高)。
- 大块: 速度快且成本低,但由于 AI 预测得太远,会犯更多错误。
解决方案:“草稿纸”
作者介绍了一种巧妙的技巧,称为草稿纸块处理(Scratchpad Patching, SP)。
可以这样理解:你仍然抓取那些大块的页面(块)以保持效率。但是,在你的手中,你有一个临时的草稿纸。
当你查看块中的前几页时,你会迅速在草稿纸上记下笔记。
- 神奇之处: 这些笔记是暂时的。你利用它们立即更新你的理解,以便为接下来的几页做出更好的猜测。
- 限制: 一旦你完成该块并移动到下一个块,你就扔掉草稿纸。你不会将其保留在长期记忆(即"KV 缓存”)中。
这使得 AI 能够拥有大块的速度(因为它只保存块的最终结果),同时具备小块的智能(因为它在块处理过程中刷新了知识)。
AI 如何知道何时使用草稿纸?
AI 不会为每个字母都使用草稿纸;那样太慢了。相反,它使用一种基于熵(Entropy)(一个表示“惊喜”或“不确定性”的 fancy 词汇)的“交通灯”系统。
- 低惊喜: 如果文本枯燥且可预测(例如“猫坐在……"),AI 会跳过草稿纸。它知道接下来会发生什么。
- 高惊喜: 如果文本变得复杂或不可预测(例如突然出现的代码变量名或奇怪的符号),AI 就会触发草稿纸。它会说:“等等,这很重要!让我在猜测下一个字母之前,暂停并重新评估我在该块中到目前为止看到的所有内容。”
结果:鱼与熊掌兼得
论文表明,这种方法就像一个魔法开关:
- 无成本的高质量: 即使使用非常大的块(16 字节),带有草稿纸的 AI 的表现几乎与逐字节阅读一样好。
- 内存节省: 由于草稿纸被立即丢弃,AI 不需要存储额外的内存。它将"KV 缓存”(AI 的短期记忆)保持得比标准的逐字节模型小 16 倍。
- 灵活的速度: 你可以在模型训练之后调整“草稿纸开关”。如果你需要它超快,就关闭草稿纸;如果你需要它更智能,就打开它们。你无需为此重新训练模型。
总结类比
想象你是一位正在烹饪一大锅炖菜的厨师。
- 旧方法(标准块处理): 你每 10 分钟才尝一次炖菜。如果你在 1 分钟时加入了一种辛辣的食材,你要等到 10 分钟才会再次尝到它。到那时,味道可能已经不对了。
- 新方法(草稿纸块处理): 你仍然每 10 分钟只进行一次正式的“官方”品尝以记录食谱。但在其间,每当气味发生剧烈变化(高熵)时,你就用勺子蘸一下,立即调整调味。尝完后你把勺子扔掉,所以你不需要清洗一百万把勺子(内存),但你的炖菜味道完美。
论文证明,通过添加这些临时的“品尝测试”(草稿纸),你可以快速、廉价地烹饪一大锅炖菜(处理长文本),并拥有完美的味道。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。