内存从 70GB 砍到 3GB:Edge0 的 SSD 专家卸载如何让消费者硬件跑动 35B MoE
内存从 70GB 砍到 3GBEdge0 的 SSD 专家卸载如何让消费者硬件跑动 35B MoE【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0Edge0 是一个开源的流式 MoE 推理框架核心能力是SSD 专家卸载 预路由预测prerouter Recover-LoRA。它把 35B 稀疏 MoE 模型的权重留在磁盘上、按需流式加载到内存把峰值活跃内存从 70GB 量级压缩到2.9 GiB让 24GB 内存的 Mac 甚至 iPhone 都能跑动 35B 模型。一、先搞清楚问题35B MoE 为什么装不进消费级硬件以 Edge0 的旗舰模型edge0-35b基于 Qwen3.6-35B-A3B为例项目数值总参数规模35B 级层数40 层每层路由专家256 个另加 1 个常驻共享专家每 token 激活专家数 K4单模型 fp16 权重约 70GBMoEMixture of Experts模型的特点是参数量巨大但每个 token 实际只激活其中一小部分专家。edge0-35b每 token 只跑 4 个专家98% 以上的专家权重在任意时刻都是闲置的。传统做法把全部权重一次性加载进内存——70GB 的 fp16 权重直接超过消费级设备的内存上限。Edge0 的思路相反权重常驻 SSD内存里只保留当前活跃的专家。峰值内存因此取决于活跃专家集合而不是参数总量。二、SSD 专家卸载把每步搬运几十 MB变成几乎不动SSD 专家卸载的完整设计在 docs/streaming.md 中描述核心组件都在 python/src/edge0/streaming/ 目录下模块职责mmap.py单文件按字节区间 mmap按张量名惰性读取启动时不预载任何权重cache.py跨层共享 LRU 专家缓存默认 64 个槽位layer.py每层一个状态机持有全部执行路径options.py类型化配置项它把从磁盘取权重这件事拆成了四条由快到慢的执行路径让热数据尽量留在内存里staged固定槽位双缓冲解码主力路径。预路由头预测下一 token 要用哪 4 个专家提前把权重填进固定槽位路由索引全程留在 GPU 上每层每步零主机同步。hotLRU 常驻 Top-N按衰减计数把高频专家堆成常驻栈命中即用。full-layer整层加载prefill 主力路径。由于 checkpoint 中每层 MoE 权重本身就是一个堆叠张量整层加载只是 9 次顺序读CPU 加载还和上一层的 GPU 执行重叠。exact按需加载最慢但最通用作为正确性基线。配合 4-bit 量化QuantSpec默认 4-bit / group 64 / affine定义见 python/src/edge0/moe/spec.py35B 模型落盘仅约23 GB——一块普通 SSD 就能装下而内存侧只保留 64 个专家的 LRU 缓存。三、prerouter 预路由让读权重和算模型并行SSD 方案最大的敌人是延迟MoE 解码每一步都要等上一层算完 → 路由 → 才知道该读哪些专家等于每步都在等磁盘。Edge0 的解法是一个经过训练的小型预测头prerouter详见 docs/prerouter.md双移预测第 N 层的头在 token t 时用本层输入预测第 N1 层在token t1的路由——层移一层 token 移一步解码步实际使用的专家集合就是 prerouter 的预测结果构造上零丢弃专家加载因此与 forward 完全重叠而不是卡在关键路径上。实测收益解码吞吐最高 59%且存储延迟越高、模型越大、K 越大收益越明显。edge0-35b带 33 个预测头覆盖第 6–38 层头结构见 python/src/edge0/prerouter/heads.py跨 token 的预测提交逻辑在 python/src/edge0/prerouter/stager.py。四、4-bit 量化之后Recover-LoRA 补回质量压到 4-bit 通常会掉点。Edge0 的做法是int4 底座保持冻结另训一组 LoRA 适配器r16, alpha32.0从 FP16 教师模型蒸馏补回大部分量化损失。适配器以.safetensors形式与模型放在同一目录加载时自动装配且始终不合并进底座——一份只读底座可服务多组适配器。在 OpenCompass 同配置对比下edge0-35bint4 适配器 prerouter相对 fp16 底座平均分只掉 3.9 分79.2 vs 83.2MMLU-Pro 甚至反超。模型规格与实测数据完整收录在 docs/models/edge0-35b.md。五、实测数据3GB 内存15 tok/s官方基准python/examples/bench.py3.3k token prefill → 200 token 采样解码模型解码速度Prefill 吞吐冷/热峰值活跃内存测试机edge0-35b14.9–17.7 tok/s113 / 140 tok/s2.9 GiBMac mini M4 Pro, 24 GBedge0-8b23.9–25.3 tok/s500 / 1428 tok/s1.0 GiBMac mini M4 Pro, 24 GB注意冷/热的差别冷启动时专家权重从 SSD 缺页读入第二次请求起由 page cache 承接整层加载路径因此更快warm 27-token prefill 0.24s vs 冷路径。24GB 内存的 Mac mini 跑 35B 模型、内存占用不到 3GB——这正是标题里70GB 砍到 3GB的出处70GB 是 fp16 全量驻留的成本3GB 是活跃专家集合的成本。六、从 Mac 到手机同一套配方四端落地权重在盘上、按需流入这套配方天然适合存储带宽远超内存容量的设备。目前仓库中四个平台运行时均已开源见 README 的 Platforms 一节PythonmacOS / Apple Siliconpython/ 目录edge0 serve一条命令起 OpenAI 兼容服务macOS 桌面端Rust 编写的 CLI / 守护进程 / 桌面应用见 macos/iOSSwift MLX Swift 的 iPhone 端上应用35B 权重经过 ios/tools/repack_experts.py 重打包为每层一次顺序读后直接打进 App见 ios/Android / WindowsKotlin 原生引擎、C Vulkan见 android/ 与 windows/。七、快速上手最低要求macOS Apple SiliconPython 3.1024GB 内存预留系统余量23GB 磁盘空间35B 4-bit 权重。三步跑起来cd python python3.12 -m venv .venv .venv/bin/pip install -e .[dev,fetch] .venv/bin/python scripts/fetch_models.py --tier edge0-35b --target-dir models .venv/bin/edge0 serve models/edge0-35b # OpenAI 兼容 /v1/chat/completions架构全貌可阅读 docs/architecture.md后端隔离、模块依赖方向、关键数据流MoE 路由细节见 docs/moe.md。技术报告《The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction》的 PDF 在 paper/main.pdf。一句话总结MoE 模型 98% 的权重本来就闲着Edge0 让它们继续住在 SSD 里用预路由预测把磁盘延迟藏进计算窗口于是 35B 的推理成本从70GB 显存变成了3GB 内存 一块 SSD。【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI编程助手skills全解析:从安装配置到自建开发与团队协作

AI编程助手skills全解析:从安装配置到自建开发与团队协作

1. 从“skills”这个热词说起:它到底在解决什么问题最近半年,不管是在技术社区还是开发者群聊里,“skills”这个词出现的频率高得离谱。你随便翻翻热搜词列表就能看到:claude code skills、codex skills、agent skills测试、好用的…

2026/10/5 7:48:50 阅读更多 →
玉米SNPversity

玉米SNPversity

请问这个上面的vcf文件如何下载呢?我点击生成vcf文件就开始刷新了,也没有动,不知道什么情况

2026/10/5 7:48:50 阅读更多 →
2026网络安全实战路线:AI攻防、云安全与漏洞挖掘技能升级

2026网络安全实战路线:AI攻防、云安全与漏洞挖掘技能升级

开篇就是这个事:2026年在望,网络安全这个行业既没有凉,也没有当初吹的那么神,它只是在换血。我最近跟几个做蓝队、红队、做SRC挖洞、搞安全运营的朋友聊了一圈,大家有个共识特别一致:过去靠几本漏洞清单和一…

2026/10/5 7:48:50 阅读更多 →

最新新闻

基于SparkStreaming的实时音乐推荐系统源码解析与调优实战

基于SparkStreaming的实时音乐推荐系统源码解析与调优实战

简介:这份源码包面向具备一定Spark与大数据基础、希望动手实践实时推荐系统的开发者与学习者,围绕Apache Spark Streaming构建了一套完整的实时音乐推荐方案。资源共427个文件,压缩包约39.37MB,涵盖Java与Scala编写的Spark Stream…

2026/10/5 8:56:44 阅读更多 →
基于Python的岩石CT裂缝语义分割:源码、数据集与实战避坑指南

基于Python的岩石CT裂缝语义分割:源码、数据集与实战避坑指南

简介:这份资源面向地质、石油工程与计算机视觉方向的学习者,提供基于Python的岩石裂缝与CT岩心裂缝语义分割完整实践材料,帮助读者掌握从CT图像中自动识别与量化裂缝的深度学习流程。压缩包共10个文件,包含6张jpg示例图像、3个py脚…

2026/10/5 8:56:44 阅读更多 →
构建大模型路由中枢:ChatBox一键切换多模型的工程实践

构建大模型路由中枢:ChatBox一键切换多模型的工程实践

1. 项目概述:不是“接入”,而是“模型路由中枢”的重新定义 “让使用ChatBox的用户一键使用主流大模型?”——这个标题乍看像一句功能宣传语,实则直指当前AI应用层最普遍、最隐蔽的痛点: 用户被工具绑定,而…

2026/10/5 8:56:44 阅读更多 →
OpenRig:基于铝型材的开放式多卡GPU计算平台搭建指南

OpenRig:基于铝型材的开放式多卡GPU计算平台搭建指南

如果你自己装过两块以上的大尺寸显卡,一定对普通塔式机箱里的空间怨恨过。显卡尾部顶着硬盘笼、侧板盖上去之后风扇贴着一个令人绝望的距离、换一张卡要把整捆线先拆了——这些问题我全踩过。所以这次我干脆心一横,直接上了一个开放式框架方案&#xff0…

2026/10/5 8:56:44 阅读更多 →
Codex加了级联删除后,为什么删一条主记录,关联数据也跟着没了?

Codex加了级联删除后,为什么删一条主记录,关联数据也跟着没了?

使用 ChatGPT、Codex 修改数据库表关系时,经常会遇到一种看起来“删除成功”,实际上影响范围远超预期的问题:明明只删了一条主记录,结果关联表里的任务、附件、评论甚至历史记录也一起没了。常见表现包括:删除一个项目…

2026/10/5 8:56:44 阅读更多 →
基于深度学习的量化投资策略实战:从CSV数据到模拟回测的完整工程拆解

基于深度学习的量化投资策略实战:从CSV数据到模拟回测的完整工程拆解

简介:这是一份面向高校学生与量化投资初学者的深度学习实战项目包,可作为毕业设计、期末大作业或人工智能课程实践参考,帮助读者理解如何将神经网络应用于股票价格预测与交易策略开发。压缩包共46个文件,约216KB,以23个…

2026/10/5 8:55:44 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →