简介:混合专家(MoE)架构通过将部分权重放置于内存或二级存储,确实降低了单用户解码的显存门槛,但并非整体显存需求全面下降。本文从权重分布、每 token 读取特征、显存/内存/SSD 分层策略以及性能瓶颈迁移等角度,系统解析 MoE 大模型部署时的真实显存要求与适用边界。
混合专家(Mixture of Experts,MoE)架构是一种神经网络设计方式。它不再让每一层中的所有参数都参与每一次前向计算,而是将某些层拆分为多个并行的“专家”子网络。每次推理时,路由器会根据输入 token 的特征,只激活其中少数几个专家。
因此,MoE 模型的总参数量可以非常大,但单次推理实际参与计算的参数量相对较小。这是 MoE 能在大幅提升模型容量的同时控制计算开销的核心原因。
所谓“把部分权重放到内存中部署”,是指在推理时,不把模型全部权重加载到 GPU 显存,而是将一部分权重留在 CPU 内存、甚至 NVMe SSD 中。系统根据计算需要,按 token、按层或按批次动态加载所需权重到显存。
这种做法通常被称为权重卸载(weight offloading)或分层部署。它与传统“全量权重常驻显存”的部署方式形成对比。
需要特别说明的是:MoE 架构本身并不必然要求权重外置。将权重放在内存只是 MoE 模型在显存受限环境下的一种工程实践,而不是 MoE 定义的一部分。
大语言模型的参数规模持续增长。全量加载一个数千亿参数的稠密模型,通常需要数百 GB 甚至 TB 级显存。对于多数本地部署、中小型推理服务或开发测试环境来说,这种显存要求难以满足。
MoE 架构带来了一个新的可能性:模型文件很大,但单次推理并不需要读取全部参数。于是自然产生一个想法——将暂时不用的专家权重放在更便宜、容量更大的存储层中,只把高频、关键权重保留在显存里。
这种思路的价值在于:
但这一优势并非没有代价。显存门槛的降低,不等于性能无损失,也不等于并发服务能力得到同等改善。
MoE 模型的权重并不是同质的。不同组成部分在推理时的访问频率、数据量和计算依赖关系差异很大。从部署角度,通常可以将其拆分为三类。
主要包括注意力层、共享专家、归一化层、输出头等。
这部分参数量通常只占模型文件总量的很小比例,但在每一个 token 的解码过程中都会被读取并参与计算。
因此,这部分权重对延迟极其敏感,应当优先放置在显存中。即使显存非常紧张,也应尽量保证稠密部分常驻显存。
这是 MoE 模型权重的主要组成部分。每个专家都有独立参数,但单个 token 只会激活其中一小部分。
这部分权重量大、访问稀疏,适合按热度或按需加载。可以常驻显存,也可以放在内存,甚至部分放在 SSD。
路由专家是当前“权重外置”策略中最主要的优化对象。
某些模型中还存在占用空间大但单次访问量极小的结构。
例如外部记忆表、静态检索表、稀疏索引表等。它们每次推理可能只读取几 KB 到几十 KB 数据。
这类结构对带宽不敏感,主要消耗存储容量,可以放在内存、SSD 甚至远端存储中。
从访问特征看,显存部署的基本判断原则是:每 token 读取量越大、读取越频繁的权重,越应该靠近计算单元;容量大但访问稀疏的权重,可以放在更远的存储层。
在 MoE 推理中,一个 token 的前向过程可以近似拆成以下步骤:
当专家权重位于显存内时,第 4 步的读取速度很高。
当专家权重位于内存时,必须通过 PCIe 总线传输到 GPU。即使使用 PCIe 5.0 x16 等高带宽接口,与 HBM 显存带宽相比仍有数量级差距。
当专家权重位于 SSD 时,延迟和吞吐会进一步恶化,尤其是在需要大量随机小块读取的场景中。
因此,性能提升的关键不是“把权重从显存中挪走”,而是让高频、高带宽需求的权重尽量留在显存,让低频权重通过缓存与预取机制避免阻塞计算。
一种常见的工程策略是静态热度放置:
这种策略在单用户、低并发的本地推理中效果较好。动态 LRU、按需填充等方案虽然理论上更灵活,但因频繁换入换出和 PCIe 竞争,实际延迟可能更高。
这是权重外置收益最显著的场景。
用户在单张 24 GB、32 GB 或 48 GB 显卡上运行大参数 MoE 模型时,将热门专家放入显存,其余专家留在内存,可以在可接受的解码速度下运行原本无法加载的模型。
例如一张 32 GB 显卡搭配 128 GB 内存,即使模型权重远超显存容量,通过将部分专家留在内存,也能实现每秒数十 token 的解码速度。
在模型选型、效果评估和提示词调试阶段,开发者的主要目标是验证模型输出质量,而不是追求最高并发或最短首 token 延迟。
此时使用内存外置方案可以快速启动模型,降低测试环境搭建成本。
对实时性要求较低、但需要处理大量请求的离线批处理任务,也可以考虑将部分专家权重外置。
虽然单次推理速度下降,但由于显存需求降低,可以在同样预算下承载更多模型实例或更大模型。
很多讨论将“单用户可运行”和“服务可扩展”混为一谈,需要明确区分。
因此,MoE 权重外置解决的是“能否跑起来”的问题,并不直接解决“跑得快”“跑得多”的问题。
它对单用户 decode 非常有效,对长提示词处理和并发服务则可能带来明显性能下降。
应根据每 token 读取频率和字节量来分配显存。优先级从高到低通常为:
内存带宽远高于 NVMe SSD,但容量通常小于 SSD。
将专家权重全部放在 SSD 中,在 prefill 阶段会显著增加延迟。
建议将 SSD 仅作为冷数据层,内存作为温数据层,显存作为热数据层。
静态按热度放置通常优于动态 LRU,因为推理过程中频繁换入换出会消耗大量时间。
应根据实际请求分布定期更新热度统计,而不是完全固定。
如果服务需要同时处理多个请求,外置专家权重会导致显存与内存之间频繁传输。
此时应根据并发数、平均输入长度和输出长度重新计算有效带宽需求,谨慎选择部署方案。
低比特量化可以缩小专家权重体积,使更多权重可以放入显存。
但量化后权重解码开销可能增加,需要结合硬件支持情况综合考虑。
MoE 架构使得大模型的权重可以被自然地划分成访问频率差异明显的多个部分。这种结构为“部分权重放在内存、部分放在显存”的分层部署创造了条件。
从结果看,单用户 decode 的显存门槛确实降低了,这是 MoE 权重外置最直接的价值所在。
但这并不意味着大模型部署对显存的要求全面下降。Prefill 阶段、并发推理、全量权重部署等场景下,显存和带宽仍然是核心约束。
准确的理解应该是:MoE 改变了显存需求的结构,使得模型容量、显存占用和推理速度之间的关系变得更加灵活。
部署者需要依据实际负载特征,对稠密部分、路由专家和稀疏表进行分层管理,在显存容量、内存带宽和 SSD 容量之间做出合理权衡。
只有理解了“哪些权重必须常驻显存、哪些可以外置、外置后对什么阶段影响最大”,才能真正判断 MoE 架构是否降低了你的部署门槛。