← 最新论文
💻 computer science

Flashlight: PyTorch Compiler Extensions to Accelerate Attention Variants

本文介绍了 Flashlight,这是一个原生 PyTorch 编译器框架,能够自动生成针对任意且数据依赖的注意力模式、无需依赖静态模板的融合式 FlashAttention 风格内核,从而相较于 FlexAttention 等现有方案提供卓越的灵活性和竞争力。

原作者: Bozhi You, Irene Wang, Zelal Su Mustafaoglu, Abhinav Jangda, Angélica Moreira, Roshan Dathathri, Divya Mahajan, Keshav Pingali

发布于 2026-05-22
📖 1 分钟阅读☕ 轻松阅读

原作者: Bozhi You, Irene Wang, Zelal Su Mustafaoglu, Abhinav Jangda, Angélica Moreira, Roshan Dathathri, Divya Mahajan, Keshav Pingali

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

以下是关于FLASHLIGHT论文的解读,已用通俗易懂的语言和生动的类比进行翻译。

宏观视角:人工智能中的“交通拥堵”

想象一下,大型语言模型(就像正在与你对话的这个)是一座试图组装复杂产品(一句话或蛋白质结构)的巨型工厂。这座工厂最关键的部分是“注意力”部门。在这里,机器决定哪些信息重要,哪些需要忽略。

问题出在哪里?该部门目前的工作方式就像一场交通拥堵

  • 旧方式:工厂工人(计算机代码)必须停下来,在纸上写一张便条(将数据保存到慢速内存),走到另一个工作站,拿起便条,然后重新开始工作。这个过程周而复始。这既缓慢又浪费能源。
  • “闪速”修复:几年前,工程师发明了FlashAttention。他们想出了办法,让工人把所有便条都放在口袋里(快速内存),并一次性连续完成整个工作。这带来了巨大的速度提升,但它就像一辆特制的赛车:它只适用于一种特定的赛道(标准注意力机制)。如果你想驾驶不同类型的汽车(一种新的、实验性的注意力方法),你就必须从头开始手工打造一辆全新的赛车。

问题:太多的定制赛车

最近,科学家们发明了许多新颖、花哨的“注意力”方法,旨在让人工智能更智能或更高效(例如“微分注意力”或“门控自注意力”)。

  • 瓶颈:为了让这些新方法变快,你通常需要人类专家为每一种方法手工编写定制的“赛车”(专用计算机内核)。这耗时极长。
  • 中间方案(FlexAttention):一种名为FlexAttention的工具试图通过给构建者提供一套乐高模板来解决这个问题。如果你的新车符合模板,它就能快速运行。但如果你的车很怪异或独特(不符合模板),FlexAttention 就帮不上忙,你只能回到缓慢的手工编码状态。

解决方案:FLASHLIGHT(通用工厂升级)

FLASHLIGHT登场了。作者将其描述为一个编译器原生框架。简单来说,它是一个直接内置于 PyTorch 软件(大多数 AI 研究人员使用的语言)中的智能“自动驾驶仪”。

以下是 FLASHLIGHT 的工作原理,使用类比说明:

1. “智能厨师”与“食谱书”

  • 旧方式:你有一本食谱(代码)。如果你想做一道标准汤,食谱会告诉你切菜、煮沸然后上桌。如果你想做一道奇怪的汤,你就得聘请一位厨师发明新食谱,并编写新的食谱页面。
  • FlexAttention:食谱里有一个“特色汤专区”。如果你的汤符合“特色汤”模板,它就很快。如果不符合,你就束手无策了。
  • FLASHLIGHT:FLASHLIGHT 就像一个超级智能的厨房机器人,它在观察你烹饪。它不在乎你是在做标准汤还是奇怪、实验性的汤。它观察你的动作(代码),意识到你正在做大量的切菜和煮沸工作,然后说:“嘿,我可以把这些步骤合并成一个超级高效的动作,这样你就不用来回跑冰箱了。”

它自动重写你的代码,使其快如手工打造的赛车,而无需你懂得如何造车或符合某种模板。

2. 它是如何实现魔法的(三大技巧)

论文解释了 FLASHLIGHT 用来加速的三个主要“技巧”:

  • 技巧 A:“降级”(融合步骤)
    想象你在烤蛋糕。第一步是混合面粉。第二步是加入鸡蛋。通常,你混合好面粉,放下碗,拿起一个新碗,然后加入鸡蛋。
    FLASHLIGHT 说:“为什么要停下来?把面粉留在碗里,直接在那里加入鸡蛋。”它将独立的步骤合并为一个连续的流程,这样数据就不必来回传输了。

  • 技巧 B:“数学魔法”(代数变换)
    有时,为了安全起见,你必须进行两次计算(比如检查一次温度,然后再检查一次以确保无误)。这很慢。
    FLASHLIGHT 使用一种数学技巧(称为“同态”),意识到你可以在烹饪的同时同时完成这两次检查,而不必停下来分别去做。这就像在搅拌面糊的同时检查烤箱温度,而不是停下来看烤箱,然后再回去搅拌。

  • 技巧 C:“分块”(装箱卡车)
    想象你在搬家。如果你一次搬一把椅子,那将耗时极长。如果你把整辆卡车(一个“块”)装满家具,只跑一趟,那就很快。
    FLASHLIGHT 很擅长如何装这辆卡车。它会根据你要搬运的物品,计算出卡车的完美尺寸。如果一件家具很小,它会将它塞进角落,以免浪费空间。它确保计算机的“卡车”(内存)始终满载并高效移动。

他们证明了什么?

研究人员在强大的计算机芯片(NVIDIA H100 和 A100)上测试了 FLASHLIGHT。

  1. 对于标准任务:当他们使用 FlexAttention 已经能够处理的“标准”注意力方法时,FLASHLIGHT 的速度一样快甚至更快
  2. 对于怪异/新任务:当他们尝试 FlexAttention无法处理的注意力方法时(例如 AlphaFold 中使用的蛋白质折叠 AI 方法),FLASHLIGHT 比标准的、未优化的代码快 5 倍
  3. 现实世界测试:他们在真实的蛋白质折叠模型(AlphaFold)上进行了测试。它使模型的整体运行速度提高了6% 到 9%

结论

FLASHLIGHT是一个工具,它允许 AI 开发者以他们一直使用的正常、简单的方式编写代码,但它会自动将这些代码转化为高速、超高效的引擎。

  • 以前:你必须在“易于编写但缓慢”和“快速但难以编写”之间做出选择。
  • 有了 FLASHLIGHT:你得到了“易于编写快速”。

它消除了专家为每一个新想法手工编写特殊加速代码的需求,允许科学家尝试新型 AI 注意力模型,而无需担心代码运行过慢。它目前是开源的,意味着任何人都可以立即将其作为 PyTorch 的一个分支(fork)来使用。

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

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

试用 Digest →