趋近智
量化和剪枝等其他技术可以降低现有模型参数的计算或内存成本。相比之下,条件计算则从根本上改变了给定输入使用哪些参数。其目的是仅激活模型参数的一个子集,使其适应特定输入,从而减少每次推理步骤所需的浮点运算(FLOPs),即使总参数数量保持庞大甚至增加也是如此。这种方法与标准密集模型形成鲜明对比,在标准密集模型中,几乎所有参数都参与处理每个输入标记。
专家混合(MoE)是体现条件计算的最突出和成功的架构,尤其是在Transformer模型的馈线网络(FFN)层中。
MoE层用以下几个组成部分取代了标准的密集FFN层:
MoE层的一个视图。门控网络将输入标记表示路由到专家子集(例如,专家1和专家M)。它们的输出根据门控分数进行组合,以生成最终输出表示。
最常见的路由策略是Top-k路由,门控网络为每个专家输出一个分数,并选择分数最高的k个专家来处理标记。通常,k很小(例如,Switch Transformers中的k=1,或k=2)。最终输出是这些Top-k专家输出的加权和,权重从归一化的门控分数中得出。
MoE通过稀疏激活实现计算效率。虽然所有专家的总参数数量可能很多(导致高模型容量),但对于任何给定标记,只有所选的k个专家和门控网络中的参数被激活。
考虑一个维度为dmodel、隐藏维度为dff的FFN层。其FLOPs大约是2×dmodel×dff。在一个具有M个专家和top-k路由(k≪M)的MoE层中,每个标记的FLOPs大约是:
FLOPsMoE≈FLOPs路由器+k×(2×dmodel×dff)由于路由器很小,k通常也小,因此每个标记的计算成本显著低于具有等效总参数数量(M×(2×dmodel×dff))的密集模型。MoE有效地将参数数量与每个标记的计算成本分离。
比较密集模型和MoE模型中,每个标记的推理FLOPs如何随总模型参数的数量而变化。MoE允许更大的参数数量,而每个标记的FLOPs增长较慢。(数值为示例)。
训练MoE模型面临独特的挑战:
MoE从根本上说是一种提高效率的架构方法。它可以与其他技术结合使用:
然而,MoE主要通过增加参数数量同时稀疏激活来解决每个标记的FLOPs问题。这使其与减少现有密集计算成本的方法有所区别。
虽然FFN的top-k路由是最常见形式,但条件计算的思路进一步拓展。Switch Transformers推广了k=1的极端情况,将每个标记只路由到一个专家。研究也关注Transformer其他部分的条件计算,例如注意力机制,尽管FFN层的MoE仍然是最广泛应用的技术。
选择MoE涉及权衡:
总之,MoE代表了向LLM高效扩展的重要架构转变。通过每个输入标记仅激活一小部分参数,它允许模型在参数数量上大幅增长,而每个标记的计算成本不会按比例增加,为在受限推理预算下获得更强大的模型提供了途径,尽管面临大量的系统级和训练挑战。MoE是几个最先进大型语言模型的支柱,理解它变得越来越重要。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造