35B MoE 在 iPhone 上以 20.5 tok/s 的速度运行,且不跳过任何专家

Reddit r/LocalLLaMA 新闻

摘要

OpenBMB 的工程实践展示了如何通过前瞻性专家调度(LES)在 iPhone 上以每秒 20.51 个 token 的速度运行 35B-A3B 混合专家(MoE)模型,无需跳过专家或改变路由,相关实现已在 llama.cpp-omni 开源。

我读到了 OpenBMB 关于在本地运行大型 MoE 模型的工程技术文章,其背后的系统工程工作值得关注。他们没有缩小模型或跳过专家,而是着手解决真正的瓶颈:如何以足够快的速度将专家权重从闪存送入计算环节。OpenBMB 的 MiniCPM-V 4.7 使用了一种名为前瞻专家调度(Lookahead Expert Scheduling,LES)的技术,在不改变实际路由或舍弃专家的情况下,在本地运行一个 35B-A3B MoE 模型。核心思路是:预测下一层可能需要哪些专家,在当前计算进行的同时从闪存预加载这些专家的权重,并优先执行已就绪的专家。结合优化的权重布局、混合精度量化和 DSpark 推测解码,LES 实现了:在 iPhone 18 Pro Max 上达到 20.51 tok/s,相比 3.38 tok/s 的基线提速 6.07 倍;专家权重体积缩小 26.7%,五项基准测试的综合表现仅下降 0.16 分;在低内存配置下,峰值内存占用约为 3 GB。包括专家调度和 DSpark 集成在内的实现已在 llama.cpp-omni 中开源。有意思的是,LES 在不改变模型实际执行哪些专家的前提下,掩蔽了内存瓶颈。这种方法也有望适用于其他 MoE 模型。
查看原文

相似文章