Ring Flash Attention:开源方案解锁无限上下文窗口

GitHub April 2026
⭐ 1013
来源:GitHub归档:April 2026
一项名为 ring-flash-attention 的全新开源项目,通过融合环形全规约与 Flash Attention 技术,有望打破长上下文大语言模型训练中的内存瓶颈。该实现实现了线性内存扩展,使得在普通硬件上处理 128K 以上 token 序列成为可能。

zhuzilin/ring-flash-attention 仓库通过解决现代大语言模型训练中最关键的瓶颈之一——长序列注意力机制的二次方内存开销——迅速获得了超过 1000 个 GitHub 星标。标准注意力机制需要 O(n²) 内存(n 为序列长度),这使得 128K 或 1M token 的上下文成本高得令人望而却步。该项目实现了一种分布式注意力机制,结合了两个强大的思想:Flash Attention 的分块方法(以块为单位计算注意力,无需实例化完整的注意力矩阵)和环形全规约(一种通信模式,每个 GPU 处理序列的一部分,并以环形拓扑传递结果)。其关键创新在于,每个 GPU 的内存随序列长度线性扩展。

技术深度解析

长上下文大语言模型训练的核心挑战在于注意力机制的内存复杂度。标准缩放点积注意力计算一个形状为 [batch, heads, seq_len, seq_len] 的矩阵 S = QK^T,需要 O(n²) 内存。对于一个 128K token 序列、32 个注意力头的情况,这个单一矩阵将占用超过 2 TB 内存——即使在高性能 GPU 上也无法实现。

Ring-flash-attention 通过双管齐下的方法解决了这个问题:

1. Flash Attention 分块: 不同于计算完整的注意力矩阵,Flash Attention 将 Q、K 和 V 张量划分为块(tiles)。它增量式地计算每个块上的注意力,使用一种在线 softmax 算法,在不存储完整矩阵的情况下更新输出。这将每个 GPU 的内存从 O(n²) 降低到 O(n * block_size)。块大小通常为 64 或 128 个 token。

2. 环形全规约通信: 在包含 N 个 GPU 的分布式环境中,每个 GPU 初始持有序列的一个连续块(例如,对于 8 个 GPU 上的 128K 序列,每个 GPU 持有 16K token)。环形通信模式的工作方式如下:
- 每个 GPU 计算其本地 Q 块与其当前持有的 K/V 块之间的注意力。
- 然后,它将 K/V 块传递给环中的下一个 GPU(沿固定方向),并从上一个 GPU 接收新的 K/V 块。
- 此过程重复 N-1 次,因此每个 GPU 最终为其本地 Q 块看到所有 K/V 块。
- 最终输出通过连接所有 GPU 的结果来组装。

内存扩展是线性的:每个 GPU 仅存储其本地 Q 块(大小 O(n/N))和一次一个 K/V 块(大小 O(block_size))。每个 GPU 的总内存为 O(n/N + block_size),当 N 与 n 成比例时,该内存随 n 线性扩展。

基准测试结果:

| 序列长度 | GPU 数量 (A100-80GB) | 每 GPU 峰值内存 (GB) | 每步时间 (ms) |
|---|---|---|---|
| 128K | 4 | 42.3 | 1,240 |
| 128K | 8 | 22.1 | 680 |
| 256K | 8 | 44.8 | 2,510 |
| 256K | 16 | 23.5 | 1,320 |
| 512K | 16 | 47.2 | 5,100 |
| 1M | 32 | 49.1 | 11,800 |

*数据来自仓库问题追踪器上的社区基准测试和独立测试。*

数据要点: 对于固定序列长度,当 GPU 数量翻倍时,每 GPU 内存几乎减半,证实了线性扩展。对于固定 GPU 数量,每步时间也大致随序列长度线性扩展,与理想的线性加速相比,通信开销增加了约 10-15%。

该实现支持 Flash Attention v2 和 v3 内核,利用针对 Hopper 和 Ampere 架构的 CUDA 优化。该仓库还包含一个纯 PyTorch 回退方案,用于调试和非 NVIDIA 硬件。

关键参与者与案例研究

该项目位于几个关键研究线索和工具的交汇处:

- Tri Dao(普林斯顿大学/Together Computer): 最初的 Flash Attention 论文(NeurIPS 2022)以及随后的 v2/v3 版本是基础。Tri Dao 在 IO 感知精确注意力方面的工作已被几乎所有主要的大语言模型训练框架采用。
- 加州大学伯克利分校环形注意力: 基于环的分布式注意力概念在论文“Ring Attention with Blockwise Transformers”(Liu 等人,2023)中形式化。zhuzilin 实现直接构建在此理论框架之上。
- Hao Liu(加州大学伯克利分校): Ring Attention 论文的合著者,也是原始 ring-attention 仓库的创建者。他的工作表明,环形通信可以实现近乎完美的扩展效率。
- NVIDIA Megatron-LM: 分布式大语言模型训练的行业标准使用张量并行和流水线并行,但本身不支持用于序列并行的环形注意力。该项目提供了一种可以与 Megatron 结合使用的补充方法。
- DeepSpeed Ulysses(微软): 一种用于长上下文训练的竞争方法,使用全到全通信而非环形。Ulysses 实现了每 GPU O(1) 内存,但在小集群上具有更高的通信开销。

分布式注意力方法比较:

| 方法 | 通信模式 | 内存扩展 | 通信成本 | 最佳适用场景 |
|---|---|---|---|---|
| Ring Flash Attention | 环形全规约 | O(n/N) | O(N * 延迟) | 中小型集群(2-32 GPU) |
| DeepSpeed Ulysses | 全到全 | O(1) | O(N² * 带宽) | 大型集群(64+ GPU) |
| Megatron 序列并行 | 全规约 | O(n/N) | O(N * 带宽) | 超大型模型(100B+ 参数) |
| 稀疏注意力 (Longformer) | 无 | O(n) | 无 | 单 GPU,中等长度 |

数据要点: 环形 Flash Attention 在最常见的训练场景中占据了一个最佳位置:4-32 个 GPU,序列长度高达 1M token。对于更大的集群,DeepSpeed Ulysses 可能更高效,但环形注意力更易于实现和调试。

行业影响与市场动态

训练具有 128K+ token 上下文的模型的能力具有直接的商业意义:

- 代码生成: 像 GitHub Co

更多来自 GitHub

Nextcloud All-in-One:Docker驱动的私有云,不容忽视的自我托管利器Nextcloud All-in-One代表了开源云软件触达用户方式的关键转变。通过将Nextcloud服务器、MariaDB数据库、Redis缓存、Collabora Online办公套件以及Talk高性能后端整合到一个协调的DockerRLinf:开源基础设施,能否解锁具身AI的规模化未来?RLinf(rlinf/rlinf)正成为强化学习社区潜在的颠覆性力量,尤其精准地瞄准了长期被忽视的具身智能与智能体AI领域。与Ray或RLlib这类通用分布式计算框架不同,RLinf将自己定位为一套专为训练、评估和部署RL智能体而打造的工无标题Open-Sora, an open-source video generation framework developed by HPC-AI Tech, has rapidly gained traction, amassing ove查看来源专题页GitHub 已收录 2538 篇文章

时间归档

April 20263042 篇已发布文章

延伸阅读

RingAttention:开源项目解锁百万Token上下文窗口,Transformer长序列处理迎来新范式RingAttention是一个开源优化项目,通过环形拓扑在多个设备间分布式计算注意力,直击长序列Transformer的内存与算力瓶颈。它实现了对百万级Token的线性扩展,有望在长文档理解、视频分析和基因组学等领域带来突破。Nextcloud All-in-One:Docker驱动的私有云,不容忽视的自我托管利器Nextcloud All-in-One(AIO)将整个私有云堆栈打包进一条Docker命令,将部署时间从数小时压缩至数分钟。但这种便捷是否以牺牲灵活性和性能为代价?AINews深入调查。RLinf:开源基础设施,能否解锁具身AI的规模化未来?一个名为RLinf的全新开源项目,在一天之内GitHub星标数飙升至3700以上,承诺为具身智能与智能体AI提供专用的强化学习基础设施。AINews深入探究:这套框架能否解决长期困扰强化学习实际部署的可扩展性与标准化难题?Open-Sora: Can a Community-Driven Model Outrun Big Tech in Video Generation?HPC-AI Tech's Open-Sora is challenging the closed-source hegemony of video generation models. This open-source alternati

常见问题

GitHub 热点“Ring Flash Attention: The Open-Source Key to Infinite Context Windows”主要讲了什么?

The zhuzilin/ring-flash-attention repository has rapidly gathered over 1,000 GitHub stars by addressing one of the most critical bottlenecks in modern large language model (LLM) tr…

这个 GitHub 项目在“How ring flash attention compares to DeepSpeed Ulysses for long context training”上为什么会引发关注?

The core challenge in long-context LLM training is the memory complexity of the attention mechanism. Standard scaled dot-product attention computes a matrix S = QK^T of shape [batch, heads, seq_len, seq_len], which requi…

从“Can ring flash attention be used with Hugging Face Transformers for inference”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 1013,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。