简介:本文系统对比大模型两大主流架构——稀疏激活的MoE(混合专家)与全参数激活的稠密架构,从激活机制、通信模式、硬件部署约束、推理成本、工程复杂度等维度逐一拆解,并延伸分析批处理推理与单条推理之间可达千倍的成本差距,帮助开发者与技术决策者理解架构背后的物理瓶颈,在模型选型、部署规划与成本优化中做出更合理的判断。
近期,一位曾深度参与AI加速芯片架构与编译器优化的资深工程师,在一场以黑板推演为形式的技术对话中,系统拆解了前沿大模型从训练到推理的底层逻辑。其中最具启发性的结论是:今天旗舰大模型的形态——包括参数规模、部署机架数量乃至API定价——很大程度上是由底层硬件拓扑与通信带宽“倒推”出来的。
在这套分析框架里,最核心的一组对比对象就是两类主流模型架构:
围绕这组对比,本文还会延伸讨论两个紧密相关的问题:机架级互联拓扑对MoE部署上限的约束,以及批处理推理与单条推理之间可达千倍量级的成本差距。理解这些差异,会直接影响企业在模型选型、部署规划和成本测算上的实际判断。
稠密架构是最经典的Transformer形态:每一层的全部参数都会参与每个token的前向计算。模型能力随参数量、数据量与算力的增加而平滑提升,行为可预期、实现简单。代价是计算量与总参数量成正比——参数翻倍,单token推理的算力消耗也接近翻倍。
MoE将Transformer中的前馈网络层替换为多个并列的“专家”,并由一个轻量路由器为每个token挑选少数专家参与计算。以业界公开讨论过的代表性设计为例:某主流MoE模型拥有256个专家,每次推理只激活其中约32个,即约1/8的参数参与实际计算。
这带来一个关键特性:总参数量很大(模型容量高),但单次计算量很小(推理成本低)。代价则是引入了路由决策、专家负载均衡和跨设备通信等一系列工程问题。
尽管激活方式不同,两类架构在底层逻辑上高度一致:
这也解释了为什么许多开发者“感觉不到”架构差异:差异主要体现在服务方的成本结构与部署约束上,而非调用侧接口。
MoE最自然的并行方式是“专家并行”——不同专家分布在不同加速卡上。由于路由是动态的,任何一张卡都可能向任何一张卡发送token,形成典型的“全对全”(all-to-all)通信模式。
当前主流的部署形态是单机架高密度加速卡:一个机架内集成数十块GPU级别的加速器,通过机架内高速互联网络连接,任意两卡之间只需一两跳,通信带宽极高。
问题出在跨机架:跨机架网络的带宽通常比机架内低得多,在典型组网下可能慢约8倍。一旦专家被分布到两个机架,就会有相当比例的token必须走慢速网络,通信立刻成为瓶颈。
因此有一个重要结论:一个机架的规模,限制了你能部署多大的专家层。这就是为什么许多MoE模型被“卡”在单个机架的物理边界内。反观稠密架构,并行方式以张量并行、流水线并行为主,通信模式相对规整,对全对全通信的依赖低,部署约束相对宽松。
有分析认为,这也解释了市场上一个长期困惑:为什么某些拥有更大scale-up域(高带宽互联覆盖范围)算力体系的云大厂,看起来更早跑通了超大MoE模型的预训练——更大的高带宽域能支撑更高稀疏度的MoE,同时维持推理效率。
对话中给出的关键结论是:如果不批量处理用户请求,单次推理成本可能高出1000倍。原理并不复杂,推理过程包含两类开销:
用示意公式表达:
单条推理成本 ≈ 权重读取耗时 + 单请求计算耗时批量B条推理成本 ≈ 权重读取耗时 + B × 单请求计算耗时=> 批量越大,固定开销被摊得越薄,单请求成本越低
权重读取是典型的访存受限操作,批处理能让加速卡的计算单元在等待权重的同时处理更多请求,大幅提升利用率。
两种架构对批处理的依赖程度不同:MoE单token计算量小,批处理下能以更低算力达到同等吞吐,成本优势被进一步放大,但路由与专家负载均衡也需要足够大的批量才能“喂饱”所有专家;稠密模型单请求即可占用较多算力,小并发下延迟更可控,但单位成本更高。
一个值得注意的估算是:某前沿模型的预训练数据量约为“理论最优”的100倍。这背后是一种工程取舍——所谓理论最优,是给定算力预算下参数量与数据量的最优点;而头部模型往往选择用远超最优比例的数据去“过度训练”一个相对更小的模型。因为推理成本在整个模型生命周期中远高于一次性训练成本:模型小一点、训练久一点,换来的是此后数十亿次调用中每一次都更便宜。
MoE天然契合这种策略:总参数撑起容量,稀疏激活控制推理成本,再配合大规模过度训练,把推理侧成本压到更低。稠密架构则更多在“参数量”与“推理成本”之间做直接权衡。
# MoE前向过程示意(伪代码,仅表达逻辑,非任何具体实现)def moe_forward(x, experts, router, top_k=2):scores = router(x) # 为每个专家打分gate, idx = top_k(scores, k=top_k) # 每个token只激活k个专家out = 0for g, i in zip(gate, idx):out += g * experts[i](x) # 仅被选中的专家参与计算return out
| 对比维度 | 稠密架构 | MoE架构 |
|---|---|---|
| 参数激活方式 | 每个token激活全部参数 | 稀疏激活(如256个专家选32个) |
| 单token计算量 | 与总参数量成正比 | 只与激活专家数相关 |
| 主要通信模式 | 张量/流水线并行的集合通信 | 专家并行的all-to-all通信 |
| 部署约束 | 相对宽松 | 强依赖机架内高带宽互联,受机架规模限制 |
| 小并发延迟 | 更可控 | 路由与调度引入额外波动 |
| 大批量推理成本 | 较高 | 显著更低 |
| 训练数据策略 | 常规配比 | 常配合大规模“过度训练” |
| 工程复杂度 | 较低 | 较高(路由、负载均衡、通信优化) |
| 容量扩展方式 | 加深加宽参数 | 增加专家数量 |
| 典型适用场景 | 低延迟交互、中小并发、快速验证 | 高并发在线服务、大规模离线处理 |
以下为条件化判断,不存在普适的“最优解”:
回到开头的对比:MoE与稠密架构的本质区别,是“稀疏激活+全对全通信+大批处理”与“全参数激活+规整并行+简单部署”两种工程哲学的区别。MoE用更高的工程复杂度和更严苛的互联拓扑要求,换取大规模推理场景下的显著成本优势;稠密架构则用更高的单位计算成本,换取部署的简单性与延迟的可控性。
对技术决策者而言,真正的选型依据归结为三个问题:业务并发规模有多大、延迟预算有多少、运维能力有多强。把这三个答案代入上文的条件化建议,结论通常并不难得出。而理解“机架规模决定专家层上限、批处理规模决定成本下限”这两条底层逻辑,比记住任何具体型号或参数都更有长期价值。