edge0 Python API 完全手册3 行代码完成本地 MoE 推理采样参数逐一讲透【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0edge0 是一个面向 Apple Silicon 的 Python 本地 MoE 推理框架通过 MLX 后端 SSD 专家按需卸载让你用 3 行代码就能在自己的 Mac 上跑起 35B 稀疏 MoE 大模型edge0-35b / edge0-8b内存占用只由激活专家集合决定而非参数量。本篇手把手带你完成安装、写出第一行推理代码并把 temperature、top_p、top_k 等采样参数逐一讲透。环境准备2 步搭好本地 MoE 推理环境 组件要求系统macOS Apple SiliconM1/M2/M3/M4MLX 后端仅支持 Apple 芯片Python3.10推荐 3.12内存edge0-35b 峰值约 2.9 GBedge0-8b 约 1.0 GB短上下文磁盘edge0-35b 约 23 GBedge0-8b 约 4.2 GB先克隆仓库再安装以下命令均在python/目录执行git clone https://gitcode.com/gh_mirrors/ed/Edge0 cd Edge0/python python3.12 -m venv .venv .venv/bin/pip install -e .[dev,fetch]然后用官方脚本拉取模型一个目录里同时包含基座权重和 LoRA / prerouter 适配器下载即可用.venv/bin/python scripts/fetch_models.py --tier edge0-8b --target-dir models .venv/bin/python scripts/fetch_models.py --tier edge0-35b --target-dir models export EDGE0_8B_MODEL$PWD/models/edge0-8b 小提示如果看到乱码、混杂多种语言的输出说明mlx版本过旧执行pip install mlx0.30.6 mlx-metal0.30.6即可。3 行代码完成第一次本地 MoE 推理edge0 采用 transformers 风格 APIAutoEngine.from_pretrained会根据模型目录下的config.json自动识别档位并自动装配 prerouter 路由预测、Recover-LoRA 适配器和 SSD 专家卸载你不需要逐层搭建。from edge0 import AutoEngine from edge0.server.chat import ChatMessage, ChatRequest, ChatSession engine AutoEngine.from_pretrained(/path/to/model) # ① 构建引擎自动装配 req ChatRequest(modelengine.name, messages[ChatMessage(roleuser, contentHello!)], max_tokens64) # ② 组装请求 tokens, meta ChatSession(engine, req).run() # ③ 生成 print(engine._tok.decode(tokens)) engine.close() # 释放 mmap / 专家缓存就这么简单。仓库里的 examples/demo.py 走的正是这条路径——edge0 demo命令执行的也是同样代码可以直接对照阅读。ChatSession会自动完成分词、chat 模板渲染含思考模式开关与生成返回(tokens, meta)其中meta附带 token 用量统计与耗时。想不想看看它背后发生了什么核心机制共三个详见 docs/architecture.mdSSD 专家卸载专家权重从存储按需流式读入峰值内存被激活专家集合限制Prerouter训练好的小头提前一步预测专家路由让专家加载与正向传播重叠解码吞吐最高可提升 59%Recover-LoRAint4 基座冻结用 FP 教师蒸馏训练的 LoRA 适配器找回量化损失且保持不合并。采样参数逐一讲透 所有采样行为集中在两个文件config.py 定义GenerationConfig数据类sampling.py 实现采样器sample()。每个请求可通过ChatRequest覆盖默认值见 chat.py 的gen_config()请求级参数优先级高于档位默认值。temperature温度旋钮0 即贪心默认0.7。logits 会先除以 temperature 再 softmax调大1→ 分布更平输出更随机、更有创意调小→0→ 分布更尖输出更保守、确定性更强设为 0或负数 贪心解码无论种子如何永远取 argmax这是与 HuggingFace / llama.cpp 一致的生产语义见 sampling.py。top_p核采样nucleus默认0.95小于 1.0 才生效。算法把 logits 从高到低排序做累积 softmax截断到累积概率首次 ≤ top_p 的候选集合其余置为-inf。top_p 越大候选越多0.9 更聚焦、0.98 更发散。top_k硬性候选上限默认64。只保留概率最高的 k 个 token其余全部屏蔽。与 top_p 可叠加使用——实现顺序是temperature → top_k → top_p见 sampling.py即先按 k 截断再做核采样。repetition_penalty抑制复读机默认1.0关闭。采用 HF 风格的带符号惩罚对已生成历史 token 的 logit正值除以惩罚系数、负值乘以惩罚系数sampling.py且用向量化方式批量处理避免逐 token 的 host 同步。长对话里建议设1.1~1.2能有效减少车轱辘话。max_tokens 与 eos_idsmax_tokens本次请求生成上限默认档位值为512eos_ids命中即提前停止生成的 token 集合。seed可复现的随机数sample()支持传入seed固定随机状态sampling.py——同样的 logits 同样的 seed 必得同样的 token方便对比实验与回归测试。first_token_greedy生产级小开关默认True。首 token 强制贪心思考块开头若随机采样到坏 token整段回复会跑偏甚至进入!!!循环强制首 token 取 argmax 是经过生产验证的防翻车模式见 config.py 的注释。参数速查表参数默认值一句话说明调优建议temperature0.7随机性总旋钮摘要类任务 0.3~0.5创意写作 0.8~1.0top_p0.95核采样截断概率与 temperature 二选一调即可top_k64候选 token 数上限保持默认小模型可降到 20~40repetition_penalty1.0历史 token 惩罚长对话 1.1~1.2max_new_tokens512生成长度上限按任务设seedNone随机种子调试复现必设first_token_greedyTrue首 token 贪心保持默认采样器行为均有单元测试覆盖可参考 tests/test_sampling.py 中的用例如temperature0恒取 argmax、seed确定性、top-k 截断等。实测性能参考Mac mini M4 Pro, 24 GB档位解码速度Prefill冷 / 热峰值活动内存edge0-35b14.9–17.7 tok/s113 / 140 tok/s2.9 GiBedge0-8b23.9–25.3 tok/s500 / 1428 tok/s1.0 GiB冷指进程启动后首个请求专家权重从 SSD 换入热指后续请求页缓存命中。你可以用 examples/bench.py 在自己机器上复测。不想写代码CLI 一键启动与 OpenAI 兼容接口edge0 demo edge0-8b # 一条命令出结果 edge0 chat edge0-8b --prompt 用一句话解释流式推理 edge0 serve edge0-8b # 启动 OpenAI 兼容服务 :8000serve启动后任何 OpenAI SDK 都能直接对接单模型单进程队列生成逐 token SSE 流式返回curl http://127.0.0.1:8000/v1/chat/completions \ -H Content-Type: application/json \ -d {model:edge0-8b,messages:[{role:user,content:Hello!}],max_tokens:32}核心源码与文档速查 模块路径公共 API 入口python/src/edge0/init.py模型注册表AutoEngine 解析逻辑python/src/edge0/registry.py采样参数定义python/src/edge0/config.py采样器实现python/src/edge0/sampling.py会话与生成python/src/edge0/server/chat.py最小示例python/examples/demo.pyPython 框架文档python/README.md架构 / MoE / 流式 / prerouter 原理docs/architecture.md、docs/moe.md、docs/streaming.md、docs/prerouter.md总结edge0 Python API 把MoE 大模型上端侧的复杂工程收敛成了 3 行代码——AutoEngine自动装配一切你要调的只有采样参数。装好环境、from_pretrained一把梭剩下的就是按上表微调 temperature / top_p / top_k让输出既快又稳。【免费下载链接】Edge0项目地址: https://gitcode.com/gh_mirrors/ed/Edge0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?