- 人工智能
- 大模型
- 模型量化
- LoRA
- 本地部署
【免费下载链接】Edge0-35B-A3B-preview
本文以 Edge0-35B-A3B Preview(Edge0-35b-a3b,下称 Edge0-35B)模型仓库为对象,系统讲解其"SSD 专家卸载(SSD expert offload)+ 前置路由预测(Prerouter)+ Recover-LoRA 蒸馏恢复"三大机制如何协同工作,并给出从仓库结构、量化细节到快速部署运行的完整实操指南。读完本文,你将理解 edge0 流式推理框架在这份模型仓库中的落点、4-bit 模型各分片与适配器的组织方式,以及如何在 Apple Silicon 上把该模型跑起来或通过 OpenAI 兼容 API 对外服务。
项目定位:为"内存受限"场景设计的 35B 稀疏 MoE
Edge0-35B 是一个基于 Qwen3.6-35B-A3B 的 35B 级稀疏 MoE(Mixture-of-Experts)大语言模型,其核心卖点非常明确:在低于 3 GiB 的活跃内存(active memory)内,以可交互的速度运行完整模型。它由 edge0 流式推理框架驱动,采用 MLX 后端。
需要强调的是,这一仓库当前处于Preview(早期预览)状态:checkpoint 以 int4 量化 + LoRA 适配器 + Prerouter 适配器的形式发布,均为该框架专门训练。模型的主要特征(来自 README.md)包括:
- 手机级内存运行:完整的 4-bit checkpoint 常驻存储(storage),专家权重按需流式加载,只有活跃权重进入 RAM——低于 3 GiB,无需分片(sharding),也无需将权重预先整体载入内存;
- 可交互的推理速度:解码约 15 tok/s,长提示词的 prefill 填充速度约 140 tok/s;
- 量化后质量保持:Recover-LoRA 蒸馏使 int4 模型与 fp16 基座的平均差距控制在3.9 分以内;
- 开箱即用:基础权重、LoRA 与 Prerouter 适配器随仓库一起发布,由
edge0自动加载。
三大核心机制:Edge0 的"三板斧"
README 明确指出,这一切由三个机制共同支撑。理解这三者是理解整个仓库的前提。
1. SSD 专家卸载(SSD expert offload):内存有界而非参数有界
MoE 模型的特点是参数量巨大但每次前向只激活一小部分专家。Edge0-35B 共 40 层、256 个专家(详见 config.json 中num_experts: 256),而每 token 只路由少量专家。SSD 专家卸载正是利用这一点:
- 专家权重从存储(NVMe SSD、内置闪存等)按需流式读取,只有被路由到的专家才会被取出;
- RAM 中仅保留活跃权重(active weights);
- 因此峰值内存由"活跃集合"决定,而不是由"参数量"决定——这是"3 GiB 跑 35B"的根本原因。
从 model.safetensors.index.json 可以看到,权重被组织为switch_mlp.gate_proj / up_proj / down_proj的专家三投影结构,并附带biases与scales字段(量化仿射参数),这些正是按层、按专家可独立流式取用的最小单元。
2. Prerouter:用"提前一步的路由预测"掩盖存储延迟
如果专家是实时从 SSD 拉的,那么等待 I/O 就会卡住前向计算。Prerouter 解决的是这个问题:
- 它是一个经过训练的前置路由头(trained head),负责提前一步预测下一时刻(下一个 token / 下一层)的专家路由结果;
- 预测结果使专家加载与前向传播**重叠(overlap)**进行——在计算当前步的同时预取下一步所需的专家,而不是让前向传播干等存储;
- 官方给出的收益为解码吞吐最高 +59%,且增益随存储延迟、模型规模与路由宽度 K 的增大而增大。
仓库中的 prerouter_edge0_35b.safetensors 正是这份预训练路由头的权重文件,与基础 checkpoint 同仓发布、自动加载。
3. Recover-LoRA:蒸馏恢复 4-bit 量化损失
量化到 4-bit 必然带来精度损失,Recover-LoRA 用于补偿:
- int4 基础模型被冻结(frozen);
- LoRA 适配器通过从 FP 教师(fp16 基座)蒸馏的方式训练,目标是把量化损失"找回来";
- 适配器**保持未合并(unmerged)**状态:一个只读的基础模型可以同时服务多套适配器,这正是"批量多租户服务"的关键。
仓库中的 lora_edge0_35b.safetensors 就是这套 LoRA 适配器权重。
模型规格与仓库构成
网络结构与关键超参数(依据 config.json)
config.json中记录了完整的模型结构(text_config),关键项如下:
| 配置项 | 值 | 说明 |
|---|---|---|
model_type | qwen3_5_moe | 架构Qwen3_5MoeForConditionalGeneration |
num_hidden_layers | 40 | 40 层 |
hidden_size | 2048 | 隐藏维度 |
num_attention_heads/num_key_value_heads | 16 / 2 | 多头注意力(GQA) |
head_dim | 256 | 注意力头维度 |
num_experts | 256 | 专家总数 |
num_experts_per_tok | 8 | transformers 侧每 token 路由数(见下文说明) |
moe_intermediate_size | 512 | 单个专家中间维度 |
shared_expert_intermediate_size | 512 | 共享专家中间维度 |
max_position_embeddings | 262144 | 最大上下文长度 |
vocab_size | 248320 | 词表大小 |
router_aux_loss_coef | 0.001 | 路由辅助损失系数 |
mtp_num_hidden_layers | 1 | 多 token 预测(MTP)层数 |
值得注意的架构特征(可从配置文件直接确认):
- 混合注意力结构:
layer_types显示 40 层中每 4 层插入一层full_attention,其余为linear_attention(线性注意力,携带conv1d、A_log、dt_bias等参数,从 model.safetensors.index.json 的linear_attn权重命名可印证其包含 in_proj_a/b/qkv/z、out_proj、SSM 式状态参数)。这种"稀疏全注意力 + 线性注意力"的组合显著降低长上下文下的 KV 开销。 - 共享专家:每层除 256 路 switch MLP 外,还有
shared_expert与shared_expert_gate(路由门),保证每个 token 都有稳定的共享计算底座。 - 关于 K 值的口径说明:README 声称"每 token 激活 4 个专家(K=4)",而
config.json的text_config.num_experts_per_tok记录为 8。两者差异可能与 edge0 框架与 transformers 配置字段的口径不同有关(例如是否计入共享专家或是否由 Prerouter 缩减实际激活数)。此处以 README 官方口径(K=4、256/4)为准,配置字段值如实引用,供读者交叉核对。 - 量化实现:仓库权重为仿射(affine)4-bit 量化,group_size = 64,且所有路由门(
mlp.gate与mlp.shared_expert_gate)单独提升到8-bit精度——路由头对数值精度更敏感,这是合理的工程取舍。
仓库文件清单与权重组织
仓库根目录直接是一个"完整可运行的 edge0 模型目录"(依据 README.md 与文件列表):
| 文件 | 作用 |
|---|---|
model-00001-of-00004.safetensors~model-00004-of-00004.safetensors | 4 个基础 checkpoint 分片(含biases/scales量化参数) |
model.safetensors.index.json | 权重分片索引(total_size约 20.4 GB,含视觉编码器与语言模型全部权重) |
lora_edge0_35b.safetensors | Recover-LoRA 适配器(蒸馏恢复量化损失) |
prerouter_edge0_35b.safetensors | Prerouter 前置路由预测头 |
config.json | 模型结构 + 量化配置 |
generation_config.json | 生成采样参数 |
tokenizer.json/vocab.json/tokenizer_config.json | 分词器 |
chat_template.jinja | 对话模板(含 thinking 模式、工具调用、多模态占位) |
preprocessor_config.json/processor_config.json | 图像/视频预处理配置 |
值得留意的是,config.json中还包含vision_config(27 层视觉编码器、hidden_size 1152、patch_size 16、temporal_patch_size 2)与image_token_id/video_token_id,说明该模型基于 Qwen3 的多模态底座,但本次 preview 发布的核心焦点是语言侧推理。processor_config.json与preprocessor_config.json配置了Qwen3VLProcessor的图像/视频处理管线,tokenizer_config.json中model_max_length为 262144,与max_position_embeddings一致。
生成参数(依据 generation_config.json)
仓库内置的默认生成配置为:do_sample: true、temperature: 1.0、top_k: 20、top_p: 0.95,eos_token_id为[248046, 248044](含思考结束标记),pad_token_id为 248044。这意味着不额外传参时模型即按采样方式输出。
对话模板与 thinking 模式(依据 chat_template.jinja)
仓库自带的 jinja 对话模板支持:
- thinking 模式:生成时默认以
<think>开头,支持enable_thinking=false关闭思考、preserve_thinking保留历史思考内容; - 工具调用(function calling):以
<tool_call>/<function>/<parameter>XML 格式输出,支持多步工具链(multi-step tool)与<tool_response>回传; - 多模态占位:支持
<|vision_start|><|image_pad|><|vision_end|>与视频占位符。
该模板是 edge0 推理时自动应用的,无需手动拼 prompt。
质量评估:量化 + 适配器后的精度损失
README 声明所有基准由作者使用 OpenCompass 在相同设置与参数下对两个模型(edge0 int4 管线 vs Qwen3.6-35B-A3B fp16 基座)进行评测,结果如下:
| 基准 | edge0-35b(int4) | Qwen3.6-35B-A3B(fp16) |
|---|---|---|
| AIME 2026 | 86.6 | 92.7 |
| HumanEval | 90.9 | 95.1 |
| GPQA-Diamond | 79.8 | 81.8 |
| MMLU-Pro | 81.0 | 84.6 |
| IFBench | 57.9 | 61.7 |
| 平均 | 79.2 | 83.2 |
即 edge0 管线相对 fp16 基座平均损失3.9 分。这是"Recover-LoRA 把 4-bit 量化损失压到很小"的直接证据——尤其在数学推理(AIME 2026 仅差 6.1)、代码(HumanEval 差 4.2)与知识类任务上表现接近基座。
性能实测数据
README 给出的官方性能数据由examples/bench.py在Mac mini M4 Pro(24 GB)上测得:
| 解码速度 | Prefill 吞吐(冷 / 热) | 峰值活跃内存* |
|---|---|---|
| 14.9–17.7 tok/s | 113 / 140 tok/s | 2.9 GiB |
注:*短上下文下的测量值;长上下文会增加 KV cache 占用。专家权重从 SSD 按需流式加载、不常驻内存。需要强调的是,以上数据仅为该项目自测结果,适用前提是 Apple Silicon + MLX 后端 + 快速存储(NVMe/内置闪存),不同硬件与上下文长度下会有明显差异。
快速开始:安装、下载与运行
以下命令来自 README.md 的 Quick start 部分,为完整可复现流程:
# 1. 安装 edge0 框架(含 fetch 下载依赖) pip install -e 'git+https://github.com/Edge0-AI/edge0.git#egg=edge0[fetch]' # 2. 将本模型仓库下载到本地目录 huggingface-cli download Edge0/Edge0-35b-a3b-preview --local-dir ./Edge0-35b-a3b-preview # 3. 指定模型目录并启动命令行聊天 export EDGE0_35B_MODEL=$PWD/Edge0-35b-a3b-preview edge0 chat --name edge0-35b --prompt "Introduce yourself" # 4. 或启动 OpenAI 兼容的 HTTP API 服务 edge0 serve --name edge0-35b --port 8085关键点解读:
--name edge0-35b是 edge0 侧注册的模型名;EDGE0_35B_MODEL环境变量用于指向本地模型目录;- 由于本仓库本身就是一个完整的模型目录(基础权重 + LoRA + Prerouter 同仓发布),下载完成后无需任何额外拼接即可直接运行——这正是 README 强调的"开箱即用";
edge0 serve --port 8085提供 OpenAI 兼容接口,方便接入既有应用;- 环境前提:edge0 的 MLX 后端目前面向Apple Silicon(见下文局限),且建议使用快速存储以获得 Prerouter 的理想收益。
更完整的用法(Python API、流式选项、Prerouter 细节)请参考 edge0 框架文档(README 中已给出指引)。
使用场景
依据 README 的 Use cases 部分,该模型面向三类典型场景:
- 边缘 / 端侧推理:GPU VRAM 稀缺但存储很快(NVMe、内置闪存)的设备上运行 35B 级模型;
- 单机批量服务:一个只读基础模型同时服务多套 LoRA 适配器,无需重新量化即可切换不同适配;
- 多语言聊天与推理:通过内置 chat template 启用 thinking 模式获得推理增强。
局限性说明
README 明确列出的限制,使用时需注意:
- 预览版本:覆盖度与质量仍在扩展中,主要针对基础模型的语言进行调优;
- Agent 能力未优化:工具使用、多步规划、长周期自主性目前较弱,完整版将显著强化;
- 后端平台限制:MLX 后端当前仅面向 Apple Silicon,其他后端在 edge0 路线图中;
- 长上下文代价:长上下文会显著增长 KV cache,想保持 3 GiB 峰值内存请使用较短的上下文。
相关文件索引
以下仓库文件可作为进一步深入研究的入口:
- README.md:官方文档,包含全部机制说明、基准与命令;
- config.json:模型结构、混合注意力层序、4-bit/8-bit 混合量化配置;
- generation_config.json:默认采样参数;
- chat_template.jinja:thinking 与工具调用模板;
- model.safetensors.index.json:权重分片与总量索引;
- lora_edge0_35b.safetensors:Recover-LoRA 适配器;
- prerouter_edge0_35b.safetensors:Prerouter 路由预测头;
- tokenizer_config.json 与 processor_config.json:分词与多模态预处理配置。
如果需要在研究中引用该工作,README 提供如下 BibTeX 条目(论文主题为"从 SSD 服务 35B MoE 的受训路由预测"):
@misc{lin2026halfmemorywallserving, title={The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction}, author={Yu Lin and Yiming Wang and Runyuan Cai and Hanze Liu and Xiaodong Zeng}, year={2026}, eprint={2609.18063}, archivePrefix={arXiv}, primaryClass={cs.AI}, }许可证为 Apache 2.0。总体而言,Edge0-35B Preview 以"SSD 卸载换内存、Prerouter 换吞吐、LoRA 蒸馏换精度"的组合,为内存受限的端侧与单机推理提供了一条可复现的工程路径,本仓库即是这套管线完整、可直接运行的模型载体。
- 人工智能
- 大模型
- 模型量化
- LoRA
- 本地部署
【免费下载链接】Edge0-35B-A3B-preview
相关推荐
Recover-LoRA原理揭秘:Edge0-35B-A3B如何用蒸馏找回4-bit量化损失
Recover LoRA原理揭秘:Edge0 35B A3B如何用蒸馏找回4 bit量化损失 Edge0 35B A3B 是一个能在 3 GiB 内存里跑起来的
人工智能大模型模型量化LoRA本地部署如何读懂量化配置:Edge0-35B-A3B 4-bit加8-bit混合精度的质量与速度秘诀
如何读懂量化配置:Edge0 35B A3B 4 bit加8 bit混合精度的质量与速度秘诀 想在 3 GiB 内存里跑一个 35B 的 MoE 大模型?本文带
人工智能大模型模型量化LoRA本地部署Edge0-35B-A3B是什么:35B MoE大模型跑进3GB手机内存,边缘推理完整指南
Edge0 35B A3B是什么:35B MoE大模型跑进3GB手机内存,边缘推理完整指南 Edge0 35B A3B 是一款 35B 级稀疏 MoE(混合专家
人工智能大模型模型量化LoRA本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考