← 最新论文
🤖 machine learning

StreamKL: Fast and Memory-Efficient KL Divergence for Boosting Attention Distillation

StreamKL 引入了一种新型的融合 GPU 原语,通过单次传递流式传输查询-键(query-key)分块,消除了注意力蒸馏中的二次方内存和 I/O 瓶颈,实现了显著的加速,并将内存占用从 O(NQNK)O(N_QN_K) 降低至 O(1)O(1),从而使在单 GPU 上进行长上下文蒸馏成为可能。

原作者: Guangda Liu, Yiquan Wang, Chengwei Li, Wenhao Chen, Jing Lin, Yiwu Yao, Danning Ke, Wenchao Ding, Jieru Zhao

发布于 2026-06-19
📖 1 分钟阅读☕ 轻松阅读

原作者: Guangda Liu, Yiquan Wang, Chengwei Li, Wenhao Chen, Jing Lin, Yiwu Yao, Danning Ke, Wenchao Ding, Jieru Zhao

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正试图教一个小巧、快速的学生(“学生模型”)像一位博学、缓慢的老师(“教师模型”)那样思考。在人工智能的世界里,他们通过比较两者的“注意力”如何分配到故事或句子的不同部分来进行学习。这个过程被称为注意力蒸馏(Attention Distillation)

为了进行这种比较,计算机需要计算一个特定的数值,叫做 KL 散度(KL Divergence)。你可以把它看作是一个“距离得分”,它会告诉你学生的注意力与老师的注意力之间有多大的差异。目标是让这个得分尽可能小。

问题所在:“内存爆炸”

论文解释说,对于长篇故事(比如一本有 10 万词的小说)进行这种比较,目前是计算机内存的噩梦。

这里有一个类比:
想象你有两个巨大的白板,一个记录老师的注意力,一个记录学生的注意力。为了进行比较,旧的方法要求你在这些白板上写下每一对可能的单词组合

  • 如果有 64,000 个词,你就必须写下 64,000 × 64,000 个配对。这可是超过 40 亿个数字。
  • 这样做需要的白板极其巨大,以至于无法放入计算机的主内存(HBM)中。这就像是试图把一座图书馆的书存进一个鞋盒里。
  • 因为计算机无法一次性看到全貌,它不得不把故事切成碎片,处理一段,再拼凑一段。这非常慢,就像通过逐个查看字母并记录下来,然后再移动到下一个字母来读一本书一样。

解决方案:StreamKL(“流式”方法)

研究人员创造了一个名为 StreamKL 的新工具。与其先在巨大的白板上写下所有内容,StreamKL 使用了一个聪明的技巧,像传送带一样实时计算“距离得分”。

创意类比:工厂流水线
想象一个工厂,你正在比较两条传送带上的产品(老师的注意力和学生的注意力)。

  • 旧方法: 你停止流水线,把所有产品倾倒在一个巨大的仓库地面上(HBM),测量完所有产品后再清理现场。这占用了整个仓库,而且速度很慢。
  • StreamKL 方法: 你让产品保持在传送带上移动。当每一对物品经过传感器(GPU 芯片)时,你会立即对它们进行比较,计算差异,并将结果放入一个微小的口袋(SRAM)中,然后等待下一对物品到达。你从不停止流水线,也不需要仓库。你只需要一个口袋。

它是如何工作的(神奇的魔术)

论文描述了这一魔术的两个主要部分:

  1. 前向传播(计算得分):
    研究人员发明了一种新的数学公式,允许计算机增量地更新“距离得分”。当它流经数据时,它只保留一些运行中的统计量(如运行最大值和总和),而不是保留整个列表。这意味着它可以处理任何长度的故事,而不会耗尽内存。

  2. 反向传播(从错误中学习):
    当计算机需要根据得分来改进学生时,它通常需要回看数据。旧的方法会保存整个巨大的数据列表以便回看。StreamKL 则更聪明:它扔掉列表,但记住了一些“秘密钥匙”(称为 LSE 值)。当它需要回看时,它会利用这些密钥重建它当前需要的特定数据片段,就在那一刻进行计算,然后再次将其丢弃。这就像是记住了制作蛋糕的食谱,以便在需要品尝时随时烤出一片,而不是把整块蛋糕都烤好后存在冰箱里。

结果:速度与空间

论文在强大的 NVIDIA GPU(H200 和 A100)上测试了这些功能,使用了极长的上下文(高达 512,000 个词)。

  • 内存节省: StreamKL 将所需的额外内存从“二次方级”(爆炸式增长至数 TB)降低到了“常数级”(保持极小)。它从 64k 上下文需要 512 GB 内存,降到了几乎不需要额外内存。这使得单个 GPU 能够处理以前需要超级计算机才能完成、甚至根本无法完成的任务。
  • 速度: 因为它不需要在后台频繁地读写海量数据,所以速度极快。
    • 在某些测试中,它的计算得分速度比标准方法快了 43 倍
    • 在学习阶段,它快了 14 倍

总结

StreamKL 是一种教 AI 模型如何分配注意力的新方法。它通过阻止计算机记录完整的对比列表,解决了处理长文本时“内存耗尽”的问题。相反,它让数据流经一个微小且高效的管道,实现即时计算。这使得在单台计算机上训练和运行以前过于庞大、无法处理的 AI 模型成为了可能。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →