vllm-mlx
Apple Silicon 原生 LLM 推理服务器,支持 OpenAI+Anthropic 双协议
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Apple Silicon 原生 LLM 推理服务器,支持 OpenAI+Anthropic 双协议
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一位独立开发者,手头只有一台 MacBook Pro M4 Max,想要跑一个 Qwen3-8B 视觉语言模型来做图片分析。曾经你需要买一台昂贵的 NVIDIA GPU 服务器,或者忍受 CPU 推理的龟速——现在,得益于 Apple Silicon 的统一内存架构和 MLX 框架,vllm-mlx 让你在本地 Mac 上就能跑出每秒 127 tokens 的推理速度。
这就是 vllm-mlx 正在做的事:把 vLLM 的核心工程能力(连续批处理、分页 KV Cache、Prefix Caching)移植到 Apple Silicon 上,让 Mac 不再只是开发机,而成为真正能跑大模型的生产级推理节点。
Apple Silicon(M系列芯片)自 2020 年推出以来,凭借其统一内存架构(Unified Memory)在 AI 推理方面展现出惊人潜力——内存带宽远超传统 GDDR GPU,且无 GPU-CPU 数据拷贝开销。然而,直接在 Mac 上跑大模型长期面临两个问题:
工具链碎片化:Ollama 操作简单但不支持连续批处理,mlx-lm 灵活但需要手工管理服务进程,没有一个统一的推理服务器能同时暴露 OpenAI 和 Anthropic 双协议。
性能天花板低:单请求串行推理在长对话或高并发场景下延迟极高,无法满足 Agent 工作流(多轮工具调用)的性能需求。
作者 waybarrios 从 2024 年开始构建 vllm-mlx,目标明确:用 vLLM 的工程思想,在 MLX 上实现企业级推理能力,同时保持"零配置"的上手体验。
vllm-mlx 在同一个进程中同时暴露 OpenAI /v1/* 和 Anthropic /v1/messages 两套 API。这意味着:
ANTHROPIC_BASE_URL=http://localhost:8000,AI 编程工具就能直接调用本地 Mac 上的模型,无需任何额外配置。这是 vLLM 的核心技术,也是 vllm-mlx 区别于 Ollama 和 mlx-lm 的关键。在高并发场景下,多个请求被合并到同一个批次中并行推理,而非排队等待——这可以将吞吐率提升 5-10 倍。实测在 M4 Max 上,Qwen3-0.6B 达到 417.9 tokens/秒 的解码速度。
vllm-mlx 支持文本、图像、视频、音频四种模态,涵盖:
内置 12 种主流模型的工具调用解析器(OpenAI、Anthropic、Gemini、Qwen、DeepSeek、Gemma 等),支持多轮 Agent 对话中的函数调用。这使得 Claude Code 等 AI 编程工具可以直接调用本地工具(如文件系统、浏览器、数据库),真正实现"本地优先"的 AI 开发工作流。
vllm-mlx 的代码结构高度模块化,核心目录:
| 目录/文件 | 职责 |
|---|---|
vllm_mlx/engine/ | 引擎抽象层(SimpleEngine / BatchedEngine),解耦 MLX 依赖 |
vllm_mlx/models/ | MLX 模型封装(MLXLanguageModel / MLXMultimodalLM) |
vllm_mlx/api/ | OpenAI + Anthropic 协议模型(Pydantic),支持工具调用解析 |
vllm_mlx/mcp/ | MCP 协议实现,多工具调用解析器 |
vllm_mlx/multimodal_processor.py | 多模态输入处理(图像/视频/音频) |
vllm_mlx/memory_cache.py | 分页 KV Cache + SSD 分层管理 |
vllm_mlx/gradio_app.py | Gradio 多模态聊天界面 |
vllm_mlx/bench_serve.py | 内置基准测试工具(Prometheus metrics) |
架构亮点:引擎层完全解耦了 MLX 依赖,使 import vllm_mlx.engine 时不会触发 MLX 的初始化,从而支持在没有 MLX 的环境下进行单元测试和 API 协议开发。
依赖栈:Python 3.10+ / mlx >= 0.29.0 / mlx-lm >= 0.31.3 / mlx-vlm >= 0.6.2 / transformers >= 5.0.0 / gradio >= 4.0.0
pip install vllm-mlx
vllm-mlx serve mlx-community/Llama-3.2-3B-Instruct-4bit --port 8000 --continuous-batching
服务启动后,通过 OpenAI SDK 调用:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
r = client.chat.completions.create(model="default", messages=[{"role": "user", "content": "分析这张图片"}])
同时内置 Gradio 聊天界面(vllm-mlx-chat),支持图片/视频上传,无需一行代码即可体验多模态对话。
| 场景 | 推荐配置 |
|---|---|
| 轻量模型(0.6B) | M1 Pro + 16GB 统一内存 |
| 中等模型(3B-4B) | M2/M3 Pro + 24GB 统一内存 |
| 大模型(8B) | M3 Pro Max / M4 Max + 36GB+ 统一内存 |
| 超大模型(30B MoE) | M4 Ultra(双芯片)或外置存储 |
vllm-mlx 代表了一个重要趋势:AI 推理基础设施的民主化。过去需要 NVIDIA GPU 才能实现的高吞吐推理,现在可以在消费级 MacBook Pro 上实现。对于隐私敏感行业(医疗、法律、金融)和边缘部署场景,这打开了全新的可能性。
同时,Claude Code、OpenCode 等 AI 编程工具对 vllm-mlx 的官方支持,标志着本地推理链路正式进入"AI 编程工具链"——开发者可以在完全不依赖云端 API 的情况下,构建完整的 AI 辅助开发环境。
项目当前处于 Alpha 阶段(版本 0.4.0-rc1),但核心功能已经相当稳定,GitHub Stars 1335+,持续有活跃贡献者参与维护。随着 MLX 生态的成熟,vllm-mlx 有望成为 Apple Silicon AI 推理的事实标准。