← 返回 PaperDaily
视觉与图像
腾讯+中山大学新方法:视频生成提速2.11倍
视频生成最怕的不是“算不动”,而是“算力明明省下来了,GPU却在等别人”。FVAttn抓住的正是这个系统级痛点:自适应稀疏注意力一边提质量,一边制造负载不均。论文把运行时修负载、空闲算力再利用和计算通信重叠串起来,思路很工程,也很实用。
龙哥读论文
阅读 3
查看原文
原论文信息如下:
视频生成“慢”在注意力?自适应稀疏是解药也是“毒药”
视频生成模型最让人头疼的地方,不是“不会画”,而是“太能算”。尤其是 Video Diffusion Transformer,画面越清晰、帧数越多、时长越长,注意力层就像一台吞电怪兽,算力先被它吃掉一大半。论文里给出的例子很直接:生成一个 5 秒 720p 视频,单卡上甚至要接近两个小时,其中注意力就占了 74.1% 的总推理时间。也就是说,真正拖慢视频生成的,往往不是扩散步数本身,而是每一步里面那坨又大又贵的注意力计算。这个比例在长视频生成中还会进一步攀升,因为序列长度增加时,注意力的计算复杂度是平方级增长的,而其他模块(如 MLP、卷积)的复杂度基本是线性的。所以,当视频从几秒扩展到几十秒,注意力占比甚至可能超过 90%,成为绝对的瓶颈。因此,优化注意力计算,尤其是减少不必要的计算,就成了加速视频生成推理的核心方向。
这几年业界常用的办法是step distillation(步骤蒸馏):把原来很多步的去噪压缩成少数几步,推理速度立刻起飞。但问题也很现实,步数少了,单步序列长度并不会变短,注意力的平方级成本还是在那里站岗。例如,一个 4-step 蒸馏模型,虽然去噪步数从 50 步降到了 4 步,但每一步仍然需要处理数千甚至上万个 token 的注意力计算。于是就轮到稀疏注意力登场了。它的核心想法不复杂:一个查询 token 真正关心的 key block 往往没那么多,没必要把所有块都算一遍。通过跳过那些不重要的交互,可以大幅降低计算量,理论上能实现数倍的加速。然而,稀疏注意力在带来计算节省的同时,也引入了新的系统级挑战,尤其是在多 GPU 并行推理的场景下。
FVAttn 走的是训练无关稀疏注意力路线,也就是不重新训练模型,推理时直接构造稀疏 mask,跳过低价值的 query-key 交互。这种方法的优势在于通用性强,可以直接应用于已有的预训练模型,无需额外的训练成本。这里最有意思的是它选了 Top-p routing 作为路由方式。Top-p 的英文全称是 Top-p routing,中文可以理解为“累计重要性达到阈值就保留”。和固定保留 k 个块的 Top-k 不同,Top-p 会根据注意力分布的“集中程度”动态决定保留多少块:分布越尖锐,保留越少;分布越平,保留越多。听起来很聪明,像是“该省就省,该花就花”。这种动态特性使得 Top-p 能够更好地适应不同层、不同 head 的注意力模式,理论上比固定预算的 Top-k 更高效。
但稀疏注意力有个老毛病:它一旦变“聪明”,就可能开始“偏心”。Top-p 会让不同 head、不同 query 区域保留的块数不一样,结果就是有的 GPU 很忙,有的 GPU 在旁边发呆。论文把这个问题说得很直白:在多 GPU 的 sequence parallelism 场景下,自适应稀疏会把原本的算法问题,升级成一个rank 级别的拖尾问题。算得快的卡只能等最慢的卡,理论上省下来的算力,最后被同步等待吃回去一部分。这种负载不均的现象在 Ulysses-style 并行中尤为突出,因为每个 rank 负责处理一部分序列和一部分 head,而不同 head 的稀疏度差异巨大,导致各 rank 的计算量严重失衡。
这就是 FVAttn 的切入点:不是简单地“再稀疏一点”,而是要解决一个更工程的问题——稀疏带来的负载不均,怎么在运行时修回来。论文的判断很准:自适应稀疏本身没错,错的是它只顾着省计算,没顾上多 GPU 里谁在等谁。FVAttn 的核心贡献在于,它首次将“稀疏注意力”和“运行时负载均衡”这两个问题联合起来考虑,并提出了一个完整的解决方案,包括 RLB(运行时负载均衡)和 SASA(感知空闲时间的稀疏增强)两个关键机制。
洞察负载不均:只有少数“重量级”头在拖后腿
论文先做了一件很关键的事:不是拍脑袋优化,而是先看真实负载到底长什么样。结果很有意思,few-step 视频生成里,注意力负载在相邻 step 之间波动非常大,head 级别的变化甚至能到 97%,rank 级别也能到 44%。这意味着,用上一轮的经验去猜下一轮的负载,基本像拿昨天的天气预报去决定今天穿羽绒服还是短袖,参考价值有限。这种剧烈的波动源于视频生成中注意力模式的动态变化:不同去噪步数、不同空间位置、不同时间帧的注意力分布差异巨大,导致稀疏 mask 的密度也随之剧烈变化。
更重要的是,论文发现这种不均衡不是“平均撒在所有头上”,而是集中在少数重量级 head 上。这就很关键了,因为它意味着没必要大动干戈把整个并行布局推倒重来。只要把那几个最重的头从拥堵的 rank 挪走,很多拖尾就能被直接削掉。换句话说,问题不是“所有人都累”,而是“少数人扛了太多,其他人站着等”。论文通过实验统计了各 head 的计算量分布,发现大约 20% 的 head 贡献了超过 50% 的总计算量,而最重的几个 head 往往是负载不均的根源。
这也是 FVAttn 和一些“预先排队”的方法不同的地方。很多系统会根据历史稀疏度、离线 profile 或近似信号提前分配 head,但 few-step 视频生成里,当前步的真实 mask 只有在这一层 attention 真正 materialize 之后才知道。提前猜,容易猜错;等全部算完再重排,又太贵。FVAttn 的态度很务实:既然真实负载已经看见了,那就别猜,直接修。🤨 这种“事后修正”的策略虽然看起来不如“事前预测”优雅,但在负载波动剧烈的场景下,反而更加可靠和高效。
方法揭秘:FVAttn如何“边算边修”,实现负载与精度的双赢?
FVAttn 的整体流程可以概括成一句人话:先用自适应稀疏找出该省的地方,再在运行时把卡住的地方修平,最后把空闲出来的算力重新花在更值钱的块上。它不是单纯的稀疏注意力,也不是单纯的负载均衡,而是把两件事串成了一个运行时闭环。这个闭环的核心在于,它不是在稀疏计算之前就做好所有决策,而是在稀疏 mask 生成之后,根据实际的负载情况动态调整,从而在保证计算效率的同时,最大化地利用硬件资源。
先看前端路由。FVAttn 仍然保留 Top-p 作为主路由策略,并加了一个 Top-k safety floor,也就是 Top-k 安全下限。这里的 Top-k 指的是英文全称 Top-k selection,中文可理解为“至少保底保留 k 个最重要的块”。这么做是为了避免 Top-p 在某些分布过于尖锐时把预算压得太狠,导致误删重要信息。Top-p 负责自适应,Top-k 负责兜底,属于“让算法大胆省,但别省过头”。这种组合策略在实验中表现出了很好的鲁棒性,即使在注意力分布极端的情况下,也能保证关键信息的传递。
为了让路由更稳定,论文还用了 Hilbert 曲线来组织 block。这个技巧的直觉很简单:空间上相邻的 token 尽量被排进相邻的 block,这样跨尺度的局部结构更容易被保留下来。Hilbert 曲线是一种空间填充曲线,它能够将高维空间中的点映射到一维,同时保持空间局部性。在注意力计算中,这意味着相邻的 token 更有可能被分配到同一个 block 中,从而使得稀疏 mask 能够更有效地捕捉局部依赖关系。然后路由模块会基于 pooled Q/K 估计 block 重要性,生成 mask 和每个 head 的密度信息。这个密度信息后面会被 RLB 拿去做负载均衡,重要性排序则会被 SASA 拿去做“加餐”。
然后是核心的运行时修复模块:RLB。它的全称是 Runtime Load Balancing,中文就是“运行时负载均衡”。名字听起来像老生常谈,但 FVAttn 的做法不一样:它不是在算之前瞎分,而是等 sparse mask 真正 materialize 之后,再根据当前 head 的真实工作量做修正。这个时机很重要,因为前面的负载预测在 few-step 场景里太容易失真。RLB 的输入是每个 head 的密度信息,输出是一个 head 迁移方案,决定哪些 head 需要从当前 rank 迁移到其他 rank。
RLB 的策略也不贪心。论文观察到,负载不均主要集中在少数重 head,所以它只迁移少量 head,通过 P2P communication,也就是点对点通信,把这些重头挪到更空闲的 GPU 上。这样做的好处是通信代价小,且不会像全局重排那样把稀疏注意力省出来的时间又一次性花掉。默认 8 卡设置下,每个 rank 最多迁移 1 个 local head,大约只占本地 head 的 20%。这不是“把问题彻底重做”,而是“先把最堵的那条车道疏通”。RLB 的具体算法是:首先计算每个 rank 的总负载,然后找出负载最高的 rank 和负载最低的 rank,接着从高负载 rank 中选择一个最重的 head 迁移到低负载 rank,重复这个过程直到负载不均衡因子低于某个阈值或达到迁移预算上限。
论文里给了一个很有说服力的数字:在 Wan2.2 I2V 上,只迁移 20% 的 local heads,平均负载不均衡因子就从 1.34 降到 1.08。这说明真正拖后腿的不是“所有头都差一点”,而是“几个头差很多”。如果把这些最重的头移走,整体 makespan 立刻缩短,其他 rank 的空转时间也跟着下降。负载不均衡因子定义为最慢 rank 的计算时间除以最快 rank 的计算时间,1.0 表示完全均衡,1.34 意味着最慢的 rank 比最快的 rank 慢了 34%,而 1.08 则只慢了 8%,改善非常显著。
但 FVAttn 没停在“修平负载”这一步。它进一步提出了 SASA,全称是 Slack-Aware Sparse Augmentation,中文叫“感知空闲时间的稀疏增强”。这个名字很长,意思很朴素:如果某些 rank 在 RLB 之后还有剩余空闲时间,那别让它们干等着,直接把这段 slack 拿来多算一些高价值 block。注意,这不是粗暴地把所有 rank 的 Top-p 阈值一起抬高,而是只在有空闲的 rank 上做局部加餐,所以不会把全局关键路径拉长。SASA 的核心思想是“变废为宝”,将原本浪费的空闲时间转化为质量提升。
SASA 的触发逻辑也挺讲究。负载不均太轻时,直接不启用;中等不均时,只启用 SASA;不均很重时,先 RLB 再 SASA。这个分层策略很像现实里的拥堵治理:路还不堵,就别折腾;开始堵了,先疏导;疏导完还有空车道,再把车道利用率榨一榨。论文给出的超参数也比较克制,既要保证新增块不会反超原来的慢速 rank,又要把调度开销压到很低。具体来说,SASA 会计算每个 rank 的空闲时间预算,然后从被稀疏 mask 跳过的 block 中,按照重要性排序选择一部分进行补充计算,确保补充计算的时间不超过空闲时间预算。
最后是实现层面的“隐身术”。论文把调度、P2P 迁移和 augmentation 都做成了异步,并尽量和 GPU 的其他计算重叠。CPU 一边算 RLB 方案,一边顺手算 SASA 的预算;GPU 则在做量化或本地计算;通信和计算互相遮挡,尽量不让管理开销裸奔在关键路径上。说白了,FVAttn 不只是提出了两个机制,还认真想了“这些机制怎么不把自己变成新瓶颈”。这点很工程,也很难得。👍 例如,在 GPU 执行 block-sparse attention 的同时,CPU 可以并行计算 RLB 的迁移方案和 SASA 的补充 block 列表,然后将结果通过异步通信发送给其他 GPU,从而将调度开销完全隐藏在计算背后。
性能实测:在3大模型上验证,同样速度精度更高,同样精度速度更快
实验部分的重点,不只是“快了多少”,而是“快了以后质量有没有塌”。这类工作最怕的就是速度表看着漂亮,视频一出来像被压缩成了马赛克幻灯片。FVAttn 在这一点上做得比较稳:它在多个视频 DiT 工作负载上测试,包括 Wan2.2 I2V、Wan2.2 Animate 和 Wan2.1 T2V,并且都在 4-step 蒸馏设置下做对比。也就是说,实验场景本身就很接近真实部署,而不是实验室里单独挑一个好看的 toy setting。这些模型涵盖了图像到视频、文本到视频和动画生成等多种任务,能够全面评估 FVAttn 的泛化能力。
评价指标也比较全面:一方面看 VBench 这种整体视频质量指标,另一方面还拿 PSNR、SSIM、LPIPS、CLIP-Sim 去对齐 FlashAttention 的输出,看看稀疏后和 dense 结果差多少。效率则看 DiT latency 和 speedup。这个设计的好处是,既能看“最终视频好不好”,也能看“稀疏近似有没有把原始输出搞歪”。VBench 是一个综合性的视频质量评估基准,包含多个维度,如动态程度、颜色丰富度、主体一致性等。PSNR 和 SSIM 衡量像素级相似度,LPIPS 衡量感知相似度,CLIP-Sim 衡量语义相似度,这些指标共同构成了一个全面的质量评估体系。
先看主结果。Wan2.2 I2V 上,FVAttn 在 Top-p=0.90 时把 DiT latency 压到 18.30s,相对 FlashAttention 达到 2.11× 加速,而且 VBench 还从 88.7% 提到 88.8%。这就很难得了:不是单纯拿质量换速度,而是速度更快、质量还没掉,甚至略有上升。对视频生成这种“又慢又贵又怕糊”的任务来说,这种结果比单纯的 paper 数字更有意义。值得注意的是,在更激进的 Top-p=0.85 设置下,FVAttn 甚至能达到 2.32× 的加速,同时 VBench 分数仍然保持在 88.5% 以上,显示出良好的速度-质量权衡。
在 Wan2.1 T2V 上,FVAttn 也给出了 2.32× 的加速,VBench 从 81.3% 到 81.6%。Wan2.2 Animate 上,Top-p=0.95 时速度达到 2.43×,同时 PSNR、SSIM、LPIPS、CLIP-Sim 都优于或接近 dense 基线。这个趋势说明 FVAttn 的收益不是只在某一个模型上“碰巧有效”,而是跨 I2V、T2V、Animate 都能稳定工作。尤其是在 Animate 任务上,由于动画视频通常具有更清晰的边缘和更少的纹理细节,稀疏注意力更容易保留关键信息,因此加速效果更为显著。
更值得看的是和其他稀疏方法的比较。SpargeAttention、SVG2、Jenga 这些方法都很努力,但 FVAttn 的优势在于它不是只盯着“少算了多少”,而是把“少算”和“少等”一起做了。比如在 I2V 上,SpargeAttention+db-SP 已经把速度拉到 2.02× 左右,但 FVAttn 在同级别甚至更快的速度下,质量指标更稳。换句话说,FVAttn 不是单点优化,而是把系统里最容易被忽略的空转时间也榨出来了。db-SP 是一种分布式稀疏注意力负载均衡方法,它通过动态调整序列切分来均衡负载,但无法处理 head 级别的负载不均,而 FVAttn 的 RLB 正好弥补了这一缺陷。
消融实验把这件事讲得更清楚。只用自适应稀疏前端时,速度已经不错,但质量和负载均衡还不够理想;加上 RLB 后,负载不均衡明显下降;再加上 SASA 后,质量指标进一步回升,而且并没有把 latency 拉长。这个组合关系说明 FVAttn 的两个机制不是重复建设,而是前后接力:RLB 先把“最慢的那个人”拉回来,SASA 再把“剩下的空闲时间”变成额外收益。具体数据显示,仅使用 RLB 时,负载不均衡因子从 1.34 降至 1.08,latency 从 19.50s 降至 18.50s,VBench 从 88.7% 略降至 88.6%;而同时使用 RLB 和 SASA 后,latency 进一步降至 18.30s,VBench 回升至 88.8%,完美实现了速度和质量的“双赢”。
再看运行时开销。论文专门统计了 FVAttn 新增组件的代价,结论是:单独看这些组件会有一点成本,但经过 overlap 之后,可见开销被压得很低,最终只剩下很小的一部分。这个结果很重要,因为很多系统论文的问题不是“想法不对”,而是“优化完后自己变成最大瓶颈”。FVAttn 至少在这件事上没有翻车。具体数据显示,RLB 的调度开销约为 0.1ms,SASA 的调度开销约为 0.05ms,P2P 通信开销约为 0.3ms,但这些开销通过异步重叠后,对关键路径的影响几乎可以忽略不计。
关键结论与未来展望:一个更高效的视频生成新范式
FVAttn 真正值得记住的,不只是“快了 2 倍多”,而是它把视频生成里一个很现实的问题讲透了:稀疏注意力不只是算法问题,也是系统问题。如果只做稀疏而不管并行执行,GPU 还是会在同步点上发呆;如果只做并行调度而不管 mask 质量,速度上去了,视频可能也糊了。FVAttn 的价值就在于,它把“省算力”和“分算力”放到同一张图里一起处理。这种“算法-系统协同设计”的思路,为未来视频生成推理优化提供了一个新的范式。
从工程角度看,这个方案有三个现实启发。第一,few-step 场景下不能太依赖历史 profile,因为负载波动太大。第二,真正的瓶颈往往集中在少数重头上,局部修复比全局重排更划算。第三,很多“额外优化”只有在能被重叠隐藏的时候才值得做,否则优化本身会反过来吃掉收益。FVAttn 在这三点上都给了比较扎实的答案。这些启发不仅适用于视频生成,对于其他需要大规模分布式推理的场景,如大语言模型的长文本生成,也具有重要的参考价值。
当然,它也不是万能钥匙。FVAttn 目前主要验证在 8 卡 Ulysses-style sequence parallelism 和特定几款 Wan 系列视频 DiT 上,跨硬件、跨模型、跨并行策略的泛化还需要更多验证。SASA 的收益也依赖于“确实存在可利用 slack”,如果模型已经非常均衡,额外机制就会变得不那么划算。换句话说,这更像一个适合高分辨率、长序列、少步数视频生成的系统级优化框架,而不是所有注意力场景都能直接套用的万能模板。未来工作可以探索将 FVAttn 的思路扩展到其他并行策略(如 Tensor Parallelism、Pipeline Parallelism)和其他模型架构(如 LLaMA、Stable Diffusion 3),以及研究更智能的 head 迁移策略和更高效的调度算法。
龙迷三问
这篇论文到底解决了什么问题?它解决的是“自适应稀疏注意力在多 GPU 视频生成里会造成负载不均、GPU 空转”的问题。FVAttn 不是只让 attention 更稀疏,而是让稀疏之后的分布式执行也更均衡。具体来说,它通过 RLB 将重 head 迁移到空闲 GPU,通过 SASA 将空闲时间用于补充计算高价值 block,从而在保持甚至提升视频质量的同时,实现显著的推理加速。
RLB 和 SASA 分别是什么意思?RLB 是 Runtime Load Balancing,中文是运行时负载均衡,负责把少数重 head 挪走,缩短关键路径。SASA 是 Slack-Aware Sparse Augmentation,中文是感知空闲时间的稀疏增强,负责把剩余空闲时间再拿来多算一些高价值 block。两者协同工作:RLB 先“治堵”,SASA 再“补强”,共同实现速度和质量的平衡。
Top-p、Top-k、Ulysses 这些词怎么理解?Top-p 是按累计重要性保留到阈值为止;Top-k 是固定保留前 k 个;Ulysses-style sequence parallelism 则是一种把序列切分后再按 head 分发到多卡上的并行方式。FVAttn 正是在这个并行框架下,把稀疏注意力的负载问题修掉的。简单来说,Top-p 和 Top-k 是稀疏策略,Ulysses 是并行策略,而 FVAttn 是在 Ulysses 并行框架下,对 Top-p 稀疏策略导致的负载不均进行运行时修复。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~
龙哥点评
论文创新性分数:★★★★☆
创新点不在“新算子”,而在“把稀疏注意力的运行时负载问题真正系统化处理”,这在视频生成场景里很实用。将 RLB 和 SASA 两个机制有机结合,形成了一个完整的运行时闭环,这种“算法-系统协同设计”的思路具有较高的原创性。
实验合理度:★★★★☆
模型、任务、指标和并行环境都比较贴近真实部署,消融也能对应到 RLB 和 SASA 的作用链条。实验设计全面,涵盖了多个模型、多个指标和多种对比方法,结果可信度高。
学术研究价值:★★★★☆
它把“算法稀疏”与“系统调度”绑在一起讨论,对长序列生成和分布式推理都有启发。为后续研究提供了一个新的视角,即稀疏注意力的优化不能脱离系统层面的负载均衡问题。
稳定性:★★★☆☆
在论文设定里表现稳定,但依赖特定并行布局与可观测 slack,换环境后还要重新验证。例如,在 Tensor Parallelism 或 Pipeline Parallelism 下,RLB 和 SASA 的收益可能需要重新评估。
适应性以及泛化能力:★★★☆☆
对视频 DiT 和 few-step 推理很合适,但并不是所有注意力场景都天然适配这套 runtime repair 思路。例如,在自回归文本生成中,由于序列长度通常较短且负载波动较小,FVAttn 的收益可能不如在视频生成中显著。
硬件需求及成本:★★★☆☆
训练无关,推理端收益明显,但仍面向多 GPU 场景;单卡用户看不到完整收益。对于拥有多 GPU 集群的团队来说,FVAttn 是一个低成本、高收益的优化方案。
复现难度:★★★☆☆
思路清楚,但涉及并行通信、调度和 kernel 重叠,工程复现不会太轻松。需要一定的分布式系统和 CUDA 编程经验,但论文提供了足够的细节和伪代码,使得复现成为可能。
产品化成熟度:★★★☆☆
在高分辨率视频生成推理里已经很有落地味道,但要真正进产品,还得看跨模型、跨硬件的鲁棒性。目前已在腾讯微信的某些业务场景中进行了初步验证,显示出良好的应用前景。
可能的问题:思路扎实,但验证范围仍偏集中;如果并行方式或负载分布变化较大,RLB/SASA 的收益和参数需要重新校准。此外,SASA 的收益依赖于空闲时间的存在,如果模型已经通过其他手段(如更优的并行策略)实现了高度均衡,SASA 的增益可能会变小。
主要参考文献
[1] FVAttn: Adaptive Sparse Attention with Runtime Load Balancing for Video Generation. arXiv 2026.
[2] db-SP: 论文中引用的分布式稀疏注意力负载均衡方法。
[3] LightX2V 4-step distilled LoRA configuration: 论文实验使用的少步蒸馏配置。
[4] FlashAttention: dense attention baseline.
*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!

欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手