昨天下午,DeepSeek 发布了一篇新论文,提出了一种改进版的注意力机制 NSA;加上还有创始人兼 CEO 梁文锋亲自参与,一时之间吸引眼球无数,参阅报道
《 刚刚!DeepSeek团队丢出注意力新机制重磅论文》。
但其实就在同一天,月之暗面也发布了一篇主题类似的论文,并且同样巧合的是,月之暗面创始人兼 CEO 杨植麟也是该论文的署名作者之一。并且不同于 DeepSeek 只发布了一篇论文,月之暗面还发布了相关代码。且这些代码已有一年的实际部署验证,有效性和稳健性都有保证。
这篇论文提出了一种名为 MoBA 的注意力机制,即 Mixture of Block Attention,可以直译为「块注意力混合」。据介绍,MoBA 是「
一种将混合专家(MoE)原理应用于注意力机制的创新方法。
」该方法遵循「更少结构」原则,并不会引入预定义的偏见,而是让模型自主决定关注哪些位置。
img
-
论文标题:MoBA: Mixture of Block Attention for Long-Context LLMs
-
论文地址:https://github.com/MoonshotAI/MoBA/blob/master/MoBA_Tech_Report.pdf
-
项目地址:https://github.com/MoonshotAI/MoBA
与 DeepSeek 的 NSA 注意力机制新论文一样,月之暗面这篇 MoBA 论文也收获了诸多好评。
img
下面我们就来解读一下这篇论文。
最近一段时间,大语言模型(LLM)发展到了前所未有的规模,我们希望它们能够处理模拟人类认知的复杂任务。具体来说,实现 AGI 的一个关键能力是处理、理解和生成长序列的能力,这对于从历史数据分析到复杂推理和决策过程的各种应用至关重要。这种对扩展上下文处理能力的需求不仅体现在长输入提示理解的普及上,还体现在最近 Kimi k1.5、DeepSeek-R1 和 OpenAI o1/o3 中展示的,对长链思维(CoT)输出能力的探索中。
然而,由于传统注意力机制带来的计算复杂度呈二次函数增长,扩展 LLM 的序列长度并非易事。这一挑战催生了一波研究浪潮,其中一个重要方向是利用注意力分数的固有稀疏性。这种稀疏性既源于数学上的 softmax 操作,也源于生物学上的观察,即人们已在与记忆存储相关的大脑区域中观察到了稀疏连接。
现有方法通常利用预定义的结构约束(例如基于 sink 的注意力机制或滑动窗口注意力机制)来利用这种稀疏性。虽然这些方法可能有效,但它们往往高度依赖于特定任务,可能会限制模型的整体泛化能力。另一种方法是采用动态稀疏注意力机制,例如 Quest、Minference 和 RetrievalAttention,这些方法在推理时选择部分 token 进行计算。尽管这些方法可以减少长序列的计算量,但它们并未显著缓解长上下文模型的高昂训练成本。
最近,线性注意力模型作为一种有前景的替代方案出现,例如 Mamba、RWKV 和 RetNet。这些方法用线性近似替代了传统的基于 softmax 的注意力机制,从而降低了长序列处理的计算开销。然而,由于线性注意力与传统注意力机制存在显著差异,适配现有的 Transformer 模型通常需要高昂的转换成本,或者需要从头开始训练全新的模型。更重要的是,它们在复杂推理任务中的有效性证据仍然有限。
因此,一个关键的研究问题随之而来:我们如何设计一种稳健且适应性强的注意力架构,既能保留原始 Transformer 框架,又能遵循「更少结构」的原则,使模型能够在不依赖预定义偏差的情况下自主决定关注哪些部分?理想情况下,这种架构能够在完全注意力和稀疏注意力模式之间无缝切换,从而最大限度地与现有预训练模型兼容,并在不牺牲性能的前提下实现高效推理和加速训练。
为此研究人员提出了
块注意力混合机制(Mixture of Block Attention, MoBA)
,这是一种全新架构,它基于混合专家系统(MoE)的创新原理,并将其应用于 Transformer 模型的注意力机制中。MoE 此前主要应用于 Transformer 的前馈网络(FFN)层,而 MoBA 首次将其引入长上下文注意力机制中,允许动态选择与每个查询 token 相关的历史关键块和值块。这种方法不仅提高了 LLM 的效率,还使其能够处理更长、更复杂的提示,而无需按比例增加资源消耗。
相比之下,MoBA 通过将上下文划分为块并采用门控机制选择性地将查询 token 路由到最相关的块,解决了传统注意力机制的计算效率低下的问题。这种块稀疏注意力显著降低了计算成本,为更高效地处理长序列铺平了道路。模型能够动态选择最具信息量的关键块,从而提高了性能和效率,这对于涉及大量上下文信息的任务尤为有益。
在该工作中,月之暗面详细介绍了 MoBA 的架构,首先是其块划分和路由策略,其次是与传统注意力机制相比的计算效率。他们也进行了实验,证明了 MoBA 在处理长序列任务中的卓越性能。
MoBA:将 MoE 原理应用于注意力机制
MoBA 通过动态选择历史片段(块)进行注意力计算,扩展了 Transformer 模型的能力。
MoBA 的灵感来源于混合专家(Mixture of Experts,简称 MoE)技术和稀疏注意力技术。前者主要应用于 Transformer 架构中的前馈网络(Feedforward Network,简称 FFN)层,而后者已被广泛用于扩展 Transformer 以处理长文本上下文。
本文创新点在于月之暗面将 MoE 原理应用于注意力机制本身,从而实现对长序列更高效和更有效的处理。
MoBA 主要包括如下部分:
-
可训练的块稀疏注意力
:将完整上下文分割成若干块,每个查询 token 都会学习关注最相关的 KV 块,从而实现长序列的高效处理。
-
无参数门控机制
:引入了一种新颖的无参数 top-k 门控机制,为每个查询 token 选择最相关的块,确保模型只关注最具信息量的内容。
-
完全注意力与稀疏注意力的无缝切换
:MoBA 被设计为完全注意力机制的灵活替代方案,能够在完全注意力和稀疏注意力模式之间实现平滑过渡。
img
总体而言,MoBA 注意力机制使模型能够自适应且动态地关注上下文中最有信息量的块。这在处理涉及长文档或序列的任务时尤其有益,因为在这些任务中,关注整个上下文可能是不必要的,并且计算代价高昂。MoBA 选择性地关注相关块的能力,使得信息处理更加细致且高效。
月之暗面通过整合来自 FlashAttention 和 MoE 的优化技术,实现了 MoBA 的高性能版本。图 2 展示了 MoBA 的高效率。
img
MoBA 实现过程包含五个步骤:
-
根据门控网络和因果掩码,确定查询 token 对 KV 块的分配。
-
根据分配的 KV 块,安排查询 token 的顺序。
-
计算每个 KV 块的注意力输出和分配给它的查询 token,这一步可以通过不同长度的 FlashAttention 来优化。
-
-
使用在线 Softmax 合并相应的注意力输出,因为一个查询 token 可能会关注其当前块以及多个历史 KV 块。
下图为该算法的形式化描述,并在图 1b 中进行了可视化,展示了如何基于 MoE 和 FlashAttention 实现 MoBA。
img
MoBA 的实验表现
为了验证 MoBA 的实际效果,月之暗面进行了一系列 Scaling Law 和消融实验。
Full Attention 与 MoBA 对比实验
该团队训练了 5 个模型来进行比较,表 1 给出详细配置。
img
结果见图 3a,可以看到,Full Attention 与 MoBA 的 scaling 趋势非常相似。具体来说,这两种注意力机制之间的验证损失差异在 1e − 3 的范围内保持一致。这表明,尽管 MoBA 的稀疏注意力模式稀疏度高达 75%,但它实现了与完全注意力相当的扩展性能。