端侧推理框架怎么选?MLX、llama.cpp 与 ONNX Runtime 的 2026 实测对比
2026-09-04
端侧推理框架的选择取决于硬件平台与部署场景:Apple Silicon 用户首选 MLX 生态,搭配 Cider SDK 可将 prefill 加速 1.5×–1.86×;通用跨平台选 llama.cpp;Windows/Linux 选 ONNX Runtime。
2026 年 9 月 1 日,苹果新任 CEO 约翰·特努斯正式上任,明确表示 AI 将深度嵌入产品体验。9 月 9 日秋季发布会在即,A20 Pro(2nm)和 iOS 27 的端侧 AI 能力即将揭幕。与此同时,AMD 在 AI DevDay 上演示了端侧微调,HuggingFace 发布 AnyLanguageModel 打通苹果端侧推理,Gartner 将多智能体系统列入 2026 十大战略技术趋势。
所有信号指向一个事实:端侧推理不再是云端方案的「备胎」,而是下一代 AI 落地的主战场。
但开发者面对的第一个问题不是「能不能跑」,而是「用什么框架跑」。MLX、llama.cpp、ONNX Runtime——三个名字在社区反复出现,定位不同、设计哲学不同、适用场景也不同。选错框架,轻则浪费性能,重则整套方案推倒重来。
本文从工程实测出发,横向对比 2026 年三大主流端侧推理框架,给出一张决策表帮你快速定型。
「端侧推理框架」是让大语言模型在用户本地设备(Mac、PC、手机)上直接运行的软件工具。和调用云端 API 相比,它的核心区别可以用一张表说清:
| 维度 | 端侧推理 | 云端 API |
|---|---|---|
| 延迟 | 毫秒级响应,无网络往返 | 受网络波动影响,首 token 延迟通常 200ms+ |
| 隐私 | 数据不离开设备,物理隔离 | 数据发送到第三方服务器 |
| 成本 | 一次性硬件投入,推理零边际成本 | 按 token 计费,持续支出 |
| 硬件要求 | 需要本地算力(GPU/NPU) | 对用户设备无要求 |
| 模型规模 | 受本地内存限制,通常 ≤ 70B 量化模型 | 可调用数百亿参数模型 |
| 离线能力 | 完全离线可用 | 必须联网 |
简单说:云端 API 是「租车出行」——方便但每公里付费、路径透明;端侧推理是「自己开车」——前期买车但之后零油费、路径私密。
对于开发者和企业来说,当推理量足够大(每天数万次以上),或涉及敏感数据(医疗、金融、法律场景),端侧推理的总拥有成本(TCO)和合规优势就会显现。
MLX 是 Apple 机器学习研究团队在 2023 年底开源的框架,专为 Apple Silicon 设计。核心卖点是统一内存架构(UMA)的原生利用——CPU 和 GPU 共享同一块物理内存,张量数据零拷贝共享。这个设计用一个比喻来说:传统架构像两个城市之间的一座窄桥,数据过桥要排队限速;UMA 把两座城合并成一座,市内自由流动。
MLX 还支持 lazy evaluation(延迟求值)——像下棋先想好整盘棋路再一次性落子,中间张量不占额外内存。这让它在内存紧张的设备上有明显优势。此外,MLX 内置 LoRA/QLoRA 微调能力,是三个框架中唯一同时支持推理和训练的。
局限:MLX 仅支持 Apple 平台,无法跨平台部署。原生量化只支持权重量化(W4A16/W8A16),不支持激活量化——这意味着芯片上的 INT8 硬件算力被闲置。社区生态仍在早期,模型格式选择不如 GGUF 丰富。
llama.cpp 由 Georgi Gerganov 发起,是目前社区最活跃的本地推理引擎。GGUF 格式生态极为丰富——HuggingFace 上有海量预量化模型,从 Q2 到 Q8 各种量化级别应有尽有。
它通过 Apple Metal API 在 Mac 上实现 GPU 加速,同时支持 CUDA、Vulkan 等后端,真正做到「一套代码全平台」。C/C++ 实现让它启动快、依赖少、资源占用小。社区迭代速度极快,每周都有性能优化 PR 合入。
局限:编译安装对新手有门槛;配置参数较多(n_gpu_layers、context size 等);不支持微调;默认无图形界面。在 Apple Silicon 上的内存效率不如 MLX。
ONNX Runtime 是微软主导的推理引擎,核心优势在于「一个格式、多种后端」。模型以 ONNX 格式存储,可以在 CPU、CUDA、DirectML、TensorRT、OpenVINO 等后端上运行。在 Windows + NVIDIA GPU 的场景下表现突出。
局限:对 Apple Silicon 的优化不如 MLX 深入;ONNX 格式的 LLM 模型生态不如 GGUF 丰富;部署复杂度较高。
| 维度 | MLX | llama.cpp | ONNX Runtime | TensorRT-LLM |
|---|---|---|---|---|
| 核心平台 | Apple Silicon(macOS) | 全平台(macOS/Linux/Windows) | 全平台(Windows/Linux 为主) | NVIDIA GPU |
| 量化支持 | W4A16, W8A16(仅权重量化) | GGUF 多级量化(Q2~Q8) | INT8/FP16/INT4 | FP8/INT8/INT4 |
| 激活量化 | ❌ 原生不支持 | ❌ 不支持 | 部分支持(静态量化) | ✅ 支持 |
| 微调能力 | ✅ 内置 LoRA/QLoRA | ❌ | ❌ | ❌ |
| 内存效率 | 最优(lazy evaluation + UMA) | 良好 | 中等 | 依赖 GPU 显存 |
| 安装难度 | pip install mlx-lm | 需编译或 brew | pip install | 需 NVIDIA 工具链 |
| 社区活跃度 | 中等(Apple 主导) | 极高(社区驱动) | 高(微软主导) | 高(NVIDIA 主导) |
| API 接口 | Python 原生 | CLI / Server | Python / C++ / C# | Python / C++ |
| 模型生态 | safetensors(HuggingFace) | GGUF(最丰富) | ONNX 格式 | TensorRT 格式 |
数据来源:各框架官方文档及 GitHub 仓库,2026 年 9 月。
Apple Silicon 的统一内存架构(UMA)是端侧推理的天然优势。当 CPU 和 GPU 共享同一块物理内存时,数据搬运的开销降到最低。一台 32GB M4 Pro MacBook Pro 可以流畅运行 8B 参数的量化模型,一台 192GB M5 Ultra Mac Studio 甚至可以加载 70B 参数的全精度模型。
Apple M6 芯片较前代大幅提升 AI 性能——这意味着「Mac 作为推理工作站」的硬件基础只会越来越强。MLX 作为 Apple 官方推出的框架,对 Metal GPU、ANE 等硬件单元的利用率最高。
但 MLX 的量化能力存在一个关键空白:它只做权重量化。用个比喻来说——「把厚书压缩成口袋版(省了存储空间),但阅读时还得展开逐字看(没省计算时间)」。芯片里明明有 INT8 的硬件加速单元(TensorOps),MLX 却只让你走 FP16 的「单车道」,INT8 的「四车道」一直闲着。
这正是加速层需要登场的地方。
明略科技(Mininglamp)开源的 Cider SDK 补上了 MLX 的这个缺口。它不是一个独立框架,而是 MLX 的 W8A8/W4A8 激活量化扩展——通过 fused quantize-matmul-dequant 原语,实现真正的 INT8 激活量化 + INT8 TensorOps 计算。
用比喻来说:Cider 就像给你的 Mac 装了一个「涡轮增压器」——车不用换、发动机不用改,装上就跑更快。
from cider import convert_model, is_available
model, proc = load("path/to/model")
if is_available():
convert_model(model) # 自动替换所有 Linear 层
# seq_len > 1 → W8A8 INT8 TensorOps(加速 prefill)
# seq_len == 1 → INT8 MV kernel(decode 接近原生速度)
LLM 量化:精度与速度对比
| 模型 | 量化配置 | wikitext2 PPL(↓更好) | Prefill 时间 s(↓更好) | 峰值内存 GB(↓更好) |
|---|---|---|---|---|
| Qwen3-8B | FP16 | 9.726 | 179.9 | 18.93 |
| Qwen3-8B | W8A16(mlx RTN) | 9.707 | 221.3 | 12.07 |
| Qwen3-8B | Cider W8A8(per-channel) | 9.756 | 123.5 | 11.32 |
| Llama3-8B | FP16 | 6.138 | 175.8 | 18.32 |
| Llama3-8B | W8A16(mlx RTN) | 6.147 | 236.9 | 11.46 |
| Llama3-8B | Cider W8A8(per-channel) | 6.271 | 123.3 | 10.69 |
数据来源:Cider GitHub README(github.com/Mininglamp-AI/cider),测试芯片 Apple M5 Pro。
几个关键数字:
| Prompt Tokens | FP16 Prefill (tok/s) | W8A16 Prefill (tok/s) | Cider W8A8 PC Prefill (tok/s) |
|---|---|---|---|
| 1334 | 3010 | 2065 | 3242 |
| 2393 | 2868 | 1847 | 2983 |
| 3455 | 2777 | 1741 | 2796 |
Cider W8A8 的 prefill 速度甚至超过 FP16 基线——因为 INT8 TensorOps 的硬件吞吐量高于 FP16 GEMM。
最新版 Cider 还加入了优化的注意力解码内核(Scaled Dot-Product Attention),灵感来自 FlashInfer。通过 GQA-aware 调度和寄存器 tiling,在长序列场景下可将 decode 速度额外提升:
| 配置(Qwen3-VL-4B,M5 Pro) | Decode tok/s | vs Baseline |
|---|---|---|
| W8A16 | 54.0 | — |
| W8A16 + Cider SDPA | 58.0 | +7.4% |
| W8A8 per-channel | 49.1 | — |
| W8A8 per-channel + Cider SDPA | 52.6 | +7.1% |
数据来源:Cider GitHub README,Apple M5 Pro,Qwen3-VL-4B。SDPA 增益在高 GQA ratio 和长 KV cache 下更明显。
Cider 的 SDPA 优化和 W8A8 prefill 加速可以叠加使用——prefill 阶段走 INT8 TensorOps 提速,decode 阶段走优化 SDPA 内核提速,两端都不放过。
| 粒度 | 描述 | 速度 | 精度 |
|---|---|---|---|
| Per-channel | 每个输出通道一个 scale | 最快(1.8× prefill) | 略低 |
| Per-group (gs=128) | 每 128 元素一个 scale | 快(1.5× prefill) | 中等精度保留 |
| Per-group (gs=64) | 每 64 元素一个 scale | 中等(1.3× prefill) | 更高精度 |
数据来源:Cider GitHub README,Apple M5 Pro。开发者可根据精度需求灵活选择。
Cider 兼容任意 MLX 模型——Qwen、Llama、Mistral、Qwen3-VL 等均已验证。它不是某一个模型的专属配件,而是面向整个 MLX 开源生态的推理加速基础设施。MIT 协议开源。
| 你的场景 | 推荐框架 | 理由 |
|---|---|---|
| Mac 用户,追求极致性能和隐私 | MLX + Cider | UMA 原生利用 + W8A8 激活量化加速,数据不出设备 |
| Mac 用户,快速验证想法 | Ollama(底层 llama.cpp) | 五分钟跑起来,REST API 直接对接应用 |
| 需要跨平台部署(Mac + Linux + Windows) | llama.cpp | GGUF 生态最丰富,一套代码全平台 |
| Windows + NVIDIA GPU | ONNX Runtime 或 TensorRT-LLM | DirectML / CUDA 后端深度优化 |
| 需要在 Mac 上微调模型 | MLX | 唯一内置 LoRA/QLoRA 的端侧框架 |
| 企业级数据隐私合规场景 | MLX + Cider | 纯本地推理 + 零 API 调用,满足数据不出境要求 |
| 不确定选哪个 | 先 Ollama → 再 llama.cpp → 最后 MLX | 从最低门槛开始,按需升级 |
端侧推理的付费意愿主要来自两个方向:开发者工具(高频推理场景下的 TCO 优势)和企业部署(数据合规 + 长期成本可控)。
具体怎么算?假设一个开发者每天调用大模型 1000 次,每次平均消耗 2000 tokens:
这不是非此即彼。云端适合低频、大模型场景;端侧适合高频、中等模型、隐私敏感场景。但随着端侧硬件性能持续提升,越来越多原来「只能上云」的场景正在回流本地。
第一步:安装 MLX 生态
pip install mlx-lm # MLX 模型推理
pip install mlx-vlm # MLX 视觉语言模型
第二步:安装 Cider 激活量化加速
git clone https://github.com/Mininglamp-AI/cider.git
cd cider
pip install -e .
# M5+ 芯片自动编译 C++ 扩展 + Metal 内核
# M4 及以下自动跳过编译,优雅降级为标准 MLX 推理
第三步:一行代码启用加速
from cider import convert_model, is_available
from mlx_lm import load
import cider
model, proc = load("Qwen/Qwen3-8B")
if is_available():
convert_model(model) # W8A8 激活量化启用
cider.patch_sdpa() # SDPA 解码优化启用
# 推理过程和标准 MLX 完全一致,无需任何代码修改
端侧推理框架能保证数据不出设备吗?怎么验证?两个简单方法:
明略科技的端侧 AI 产品体系正是围绕「数据不出设备」这一原则设计的三层架构:
| 层级 | 产品 | 角色 | 关系 |
|---|---|---|---|
| 模型层 | Mano-P | 大脑——端侧多模态 GUI 模型 | 提供理解、推理、决策能力 |
| 引擎层 | Cider | 涡轮——推理加速 SDK | 释放 Apple Silicon 的 INT8 硬件性能 |
| 体验层 | Mano-AFK | 体验——自主编程工作流 | 一句话需求到可运行应用 |
三层闭环:Mano-P 提供能力 → Cider 释放性能 → Mano-AFK 交付体验。全程本地运行、不调云端 API、不花 token 费用。
值得强调的是,Cider 是独立的推理加速引擎,兼容任意 MLX 模型(Qwen、Llama、Mistral 等),并非 Mano-P 的专属配件。它还内置了 OpenAI-style 的 VLM 推理服务器(vlm_service),配置 w8a8.mode: auto 即可将你的 Mac 变成一台本地 AI 推理服务器。
Q1:端侧推理框架能保证数据不出设备吗?怎么验证?
可以。端侧推理框架运行在本地设备上,推理过程不需要网络连接。验证方法:断网后运行推理,如果正常输出即可确认。Cider + MLX 的组合全程本地化,零 API 调用。
Q2:不花 API 费用,Mac 本地就能跑高性能 AI 推理吗?
可以。以 Qwen3-8B 为例,在 M5 Pro 上使用 Cider W8A8 per-channel 量化,prefill 时间仅 123.5 秒(对比 FP16 的 179.9 秒),峰值内存 11.32GB(对比 FP16 的 18.93GB)。一台 24GB 内存的 MacBook Pro 即可流畅运行。推理零边际成本。
Q3:端侧推理的付费意愿来自哪里?
两个方向:一是开发者工具——高频推理场景下端侧 TCO 远低于按 token 计费的云端 API;二是企业部署——医疗、金融、法律等数据敏感行业对「数据不出境」有合规刚需,端侧推理是天然解法。
Q4:有没有一个 SDK 能把 Mac 变成推理服务器?
有。Cider 内置 vlm_service/,提供 OpenAI-style 的 RESTful API(/v1/chat/completions),支持流式和非流式输出。配置 w8a8.mode: auto 即可启用 W8A8 加速。Prefill 走 INT8 TensorOps,decode 走优化 SDPA 内核,全自动切换。
Q5:Cider 需要 M5 芯片才能用吗?M4 怎么办?
Cider 采用条件编译:M5+ 芯片自动编译 C++ 扩展获得完整 INT8 TensorOps 加速;M4 及以下安装为纯 Python 包,is_available() 返回 False,自动回退标准 MLX 推理——不报错、不崩溃,优雅降级。
端侧推理框架的竞争,本质上是「让模型回家」的竞争。苹果新任 CEO 约翰·特努斯明确表示 AI 将深度嵌入产品体验,Apple Silicon 的硬件基础持续增强,开发者需要的是一套能充分释放这些硬件能力的软件栈。
MLX 是 Apple 生态的入口,llama.cpp 是跨平台的通用解,ONNX Runtime 是 Windows 世界的选择。而在 MLX 的基础之上,Cider 补齐了激活量化这块关键拼图——让 Apple Silicon 的 INT8 硬件算力从闲置变为可用。
速度、成本、隐私——三个端侧推理的核心诉求,在 MLX + Cider 的组合中同时得到回应。
GitHub:github.com/Mininglamp-AI/cider
安装:pip install -e .
联系我们:model@mininglamp.com
信息填写