Skip to content

【Zig 日报】项目分享:mlx-serve — run any LLM on your Mac #342

Description

@jiacai2050

mlx-serve — 在您的 Mac 上运行任何 LLM

专为 Apple Silicon 打造的 OpenAI 和 Anthropic 兼容本地推理工具 —— 支持 MLX 和 GGUF —— 运行同一文件比 LM Studio 更快。无需 Python。无需云端。无需 Electron。

mlx-serve 是一个使用原生 Zig 语言编写的服务器,可在 Apple Silicon 上运行任何 LLM —— 支持 MLX 格式模型以及 HuggingFace 上的所有 GGUF 模型(包括 Qwen、Llama、Mistral、Gemma、DeepSeek V4 Flash 等数千种)。它开箱即用,提供兼容 OpenAI 和 Anthropic 的 HTTP API,因此同一个 http://localhost:11234 地址可直接用于 Claude Code、OpenAI SDK、Continue、Cursor、Open WebUI 以及任何支持这些协议的工具。它随附 MLX Core,这是一款 macOS 菜单栏应用,具备聊天、Agent 模式、MCP 工具调用和模型管理功能。

🚀 下载 MLX Core.app — 最新 macOS 版 (Apple Silicon)

通过 Homebrew 安装

brew tap ddalcu/mlx-serve https://github.com/ddalcu/mlx-serve
brew install --cask mlx-core   # GUI 菜单栏应用
brew install mlx-serve          # 仅 CLI 服务器

对比:mlx-serve vs 其他工具

如果你正在使用 LM Studio、Ollama 或 mlx-lm,并考虑是否切换,请看下表对比:

功能 mlx-serve LM Studio Ollama mlx-lm
MLX 模型 (原生 Apple)
GGUF 模型 (llama.cpp) ✅ (内置)
OpenAI 兼容 API 部分
Anthropic Messages API
Speculative Decoding (投机采样) 部分 仅 Drafter
解码速度 (对比 LM Studio) +35% (MLX) 基准 ~−15% (GGUF) +11% (MLX)
KV 缓存量化 (4/8-bit) 部分
内置 Agent 循环 + MCP 客户端
原生菜单栏应用 (非 Electron) ❌ (Electron)
运行时是否需要 Python
许可证 MIT 闭源商用 MIT MIT

性能基准测试 (Apple M4, 16 GB)

运行相同 .gguf 文件:
mlx-serve 内置的 llama.cpp 引擎在运行 gemma-4-E4B-it-Q4_K_M.gguf 时优于 LM Studio。

工作负载 LM Studio (GGUF) mlx-serve (GGUF) 提升幅度
自由解码 24.6 tok/s 28.2 tok/s +15%
预填充 (Prefill) 349 tok/s 367 tok/s +5%

运行相同 4-bit MLX 权重:
开启投机采样(Speculative Decoding)后,mlx-serve 的优势更明显:

模型 mlx-serve (原生) mlx-serve + PLD 对比 LM Studio 提升
Gemma 4 E2B 164 tok/s 269 tok/s +115%
Qwen 3.6 35B-A3B MoE 101 tok/s 140 tok/s +69%

核心功能

  • 运行任何 LLM:通过内置的 llama.cpp 支持所有 MLX 架构模型和 GGUF 生态。DeepSeek V4 Flash 通过专用的 ds4 引擎运行。
  • OpenAI 兼容 API:支持 /v1/chat/completions、嵌入 (Embeddings)、工具调用 (Tools)、JSON Schema 约束解码等。
  • Anthropic Messages API:完美支持 Claude Code (ANTHROPIC_BASE_URL=http://localhost:11234)。
  • 投机采样 (Speculative Decoding):默认开启 PLD (Prompt Lookup Decoding) 以及 Gemma 4 交叉注意力 Drafter,代码补全等场景最高提速 1.6 倍。
  • KV 缓存量化:支持 4-bit / 8-bit / TurboQuant,大幅减少显存占用,让 16G 内存的机器也能运行超大上下文。
  • 前缀缓存 (Prefix Cache):在多轮对话中复用系统提示词的 KV 缓存。
  • 视觉支持 (Vision):支持 Gemma 4 SigLIP 编码器,可发送图片。
  • 无需 Python:单二进制文件运行,无需 pip,无需虚拟环境。

MLX Core (macOS 应用)

这是一款包裹了服务器功能的菜单栏 UI 应用:

  1. 模型浏览器:直接从 HuggingFace 下载模型,支持断点续传。自动识别 LM Studio 已有的模型文件夹,无需重复下载。
  2. 聊天界面:多会话聊天,支持 Markdown 渲染。可直接拖入 PDF 或图片。
  3. Agent 模式:内置 10 种工具(Shell、文件读写、网页搜索、内存存储等),具备自动工具调用循环。
  4. MCP 客户端:连接 GitHub、Slack、Notion、Docker 等 MCP 服务器。
  5. 图像/视频生成 (可选):通过 Python 插件支持 FLUX.2 和 LTX-Video 2.3(原生 MLX 推理)。

支持的模型架构

  • Gemma 4 / 3 (gemma4, gemma3)
  • Qwen 3 / 3.5 / 3.6 (qwen3, qwen3_5)
  • Llama 3 / 3.1 / 3.2 (llama)
  • Mistral (mistral)
  • DeepSeek V4 Flash (deepseek_v4)
  • 所有 GGUF 模型 (通过内置 llama.cpp)

快速开始

1. 下载模型 (以 CLI 为例)

pip install huggingface-hub
huggingface-cli download mlx-community/gemma-4-e4b-it-4bit --local-dir ~/.mlx-serve/models/gemma-4-e4b-it-4bit

2. 运行服务器

mlx-serve --model ~/.mlx-serve/models/gemma-4-e4b-it-4bit --serve --port 11234

3. 常见 CLI 参数

  • --model PATH: 模型目录或 .gguf 文件路径。
  • --temp F: 采样温度 (0 为贪婪匹配)。
  • --kv-quant {4,8,off}: 设置 KV 缓存量化。
  • --pld / --no-pld: 开启/关闭投机采样。

常见问题 (FAQ)

Q: mlx-serve 真的比 LM Studio 快吗?
A: 是的。在我们测试过的每个模型中,mlx-serve 在相同权重下的几何平均速度快 35%。即使是运行同一个 GGUF 文件,我们的内置驱动也比 LM Studio 的封装快 12-15%。

Q: 它能取代 Ollama 吗?
A: 在 Mac 上可以。Ollama 是跨平台的,而 mlx-serve 专门针对 Mac 进行了底层优化(通过 mlx-c 使用 Metal 内核),提供更高的推理效率。

Q: 它的数据隐私如何?
A: 所有数据都在本地处理。没有任何分析、遥测或云端调用。它是完全离线的开源工具 (MIT 协议)。

Q: 支持 DeepSeek V4 Flash 吗?
A: 支持。在内存 96GB+ 的 Mac 上,你可以流畅运行本地化的 DeepSeek V4 Flash,并支持 Agent 模式和工具调用。


在 GitHub 上查看源码及更多细节

Metadata

Metadata

Assignees

No one assigned

    Labels

    日报daily report

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions