我们讨论 MoE 模型时,经常关注两个数字: 总参数量,以及每个 Token 的激活参数量。 例如,一个模型有 200B 总参数,每个 Token 只激活 … · @xqliu · TwKit
@xqliu
我们讨论 MoE 模型时,经常关注两个数字: 总参数量,以及每个 Token 的激活参数量。 例如,一个模型有 200B 总参数,每个 Token 只激活 20B。 但这里可能忽略了另一个重要问题: 不同 Transformer 层,真的需要相同数量的激活专家吗? 最近一篇论文《Spectral-MoE》研究的就是这个方向。 传统 MoE 架构通常在不同层采用相对固定的专家激活策略。 但不同 Transformer 层对计算资源的敏感程度并不相同。 有些层减少计算量后,对最终模型质量影响较小。 另一些层则可能对模型的推理能力、语言理解或知识表达更加关键。 如果所有层都采用相同的计算预算,可能并不是最优的资源分配方式。 Spectral-MoE 提出根据不同层的重要性,动态分配专家激活预算。 重要的层可以使用更多专家。 不那么敏感的层可以使用更少专家。 同时保持总体计算预算基本不变。 论文研究的是将 Dense 模型转换为稀疏 MoE 的过程。 在 Qwen2.5-7B 的实验中,当前馈网络计算利用率为 25% 时: WikiText-2 困惑度: 16.92 → 14.21 六项任务平均准确率: 57.6% → 63.3% 实验还涉及 Llama-2-7B 和 Llama-3-8B。 这组结果让我想到一个更普遍的问题。 我们经常把模型推理优化理解为减少计算量。 例如: 把 BF16 量化成 INT8 或 INT4。 压缩 KV Cache。 减少 Attention 计算。 降低 MoE 专家激活数量。 但减少计算量只是其中一个维度。 同样重要的是,剩下的计算资源究竟分配到了哪里。 假设两个模型每个 Token 都只使用相同数量的 FLOPs。 一个模型平均分配到所有层。 另一个模型根据不同层的重要性进行动态分配。 即使总计算量相同,它们的最终质量也可能不同。 这意味着模型效率优化,不一定只是不断减少参数或降低精度。 还可以通过更合理的计算资源分配,在相同预算下获得更好的能力。 不过,这项研究也有明确的适用范围。 首先,它主要研究 Dense-to-MoE 转换,并不是简单修改现有 MoE 模型的 Top-K 参数。 其次,减少激活计算量,并不意味着全部模型权重占用会同步减少。 最后,论文中的质量提升,也不能直接推导成真实推理吞吐量提升。 实际 TPS 仍然取决于专家调度、内存访问、Kernel 实现和硬件架构。 但我认为,这个方向值得持续关注。 尤其是在本地推理越来越受到显存容量和内存带宽限制的情况下。 未来我们可能不仅需要更好的量化方法,还需要更聪明的计算预算分配策略。 我的判断是: MoE 的下一阶段优化,不应该只回答“每个 Token 激活多少参数”。 还应该回答: 这些参数在哪些层被激活? 为什么这些层值得分配更多计算资源? 在相同计算预算下,怎样获得更高的模型质量? 真正高效的模型,不只是计算得更少,而是把有限的计算资源用在最有价值的地方。 论文:https://arxiv.org/search/?query=Spectral-MoE&searchtype=all
曝光 122 · 评论 0 · 点赞 0 · 书签 0
查看原帖