oMLX: 让 Mac 也成为本地 LLM 推理利器
如果你是一名 macOS 用户,同时又对本地运行大语言模型(LLM)有需求,那么 oMLX 值得你关注。这是一个专为 Apple Silicon 打造的 LLM 推理服务器,最大的亮点在于通过分层 KV 缓存和连续批处理技术,让你在 Mac 上高效运行各种大模型,并且通过菜单栏就能管理一切。
为什么需要 oMLX?
在 Mac 上跑 LLM 并不是什么新鲜事,mlx-lm 已经做得很好了。但当你真正把它用进日常工作流时,往往会遇到几个头疼的问题:
- 内存不够用:模型稍大一点,内存直接爆表
- 上下文无法复用:每次请求都要重新计算前面的 token,浪费时间
- 管理不方便:要么命令行,要么得自己写脚本
oMLX 正是为了解决这些问题而来。它基于 Apple 的 MLX 框架构建,在此之上增加了分层缓存、多模型服务、以及一个开箱即用的管理界面。
核心特性一览
分层 KV 缓存(Hot + Cold)
这是 oMLX 最核心的技术创新。它将 KV 缓存分为两层:
- 热层(Hot Cache):放在内存中,频繁访问的缓存块保持在 RAM 里
- 冷层(Cold Cache):放到 SSD 上,当热层满了自动卸载到磁盘
关键在于,即使模型重启或上下文发生变化,历史缓存仍然可以被复用。这意味着当你和模型进行多轮对话时,前面的上下文不需要重新计算,直接从缓存中恢复。
连续批处理(Continuous Batching)
oMLX 使用 mlx-lm 的 BatchGenerator 实现连续批处理,能够同时处理多个并发请求,自动调配 prefill 和 completion 的批次大小。这意味着你在运行一个模型时,还能同时响应其他请求。
多模型服务
一台 Mac 上可以同时运行多种类型的模型:
| 模型类型 | 说明 |
|---|---|
| LLM | 文本大语言模型 |
| VLM | 视觉语言模型(支持多图对话) |
| Embedding | 文本向量化模型 |
| Reranker | 文档重排序模型 |
模型管理支持 LRU 自动淘汰、模型固定空闲时长、以及手动加载/卸载。
Claude Code 优化
oMLX 针对 Claude Code 做了专门优化,包括上下文缩放支持、SSE 保活防止读取超时,以及适配 auto-compact 触发时机。
管理界面
oMLX 提供了一个功能完整的管理后台,你可以通过浏览器访问 /admin 来:
- 实时监控服务器状态
- 管理(下载/加载/卸载)模型
- 内置聊天界面
- 一键性能基准测试
- 配置 OpenClaw / OpenCode / Codex 集成
界面支持中文、韩文、日文和英文。
安装方式
macOS 应用(最简单)
直接下载 DMG 文件,拖到应用程序文件夹即可。内置自动更新功能。
Homebrew
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx
brew services start omlx源码安装
git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e .环境要求:macOS 15.0+(Sequoia),Python 3.10+,Apple Silicon(M1/M2/M3/M4)
快速上手
安装完成后,启动服务只需要一行命令:
omlx serve --model-dir ~/models服务启动后,OpenAI 兼容的客户端(如 OpenCode、Claude Code)可以直接连接 http://localhost:8000/v1。同时你可以在浏览器打开 http://localhost:8000/admin 进入管理界面。
API 兼容性
oMLX 是 OpenAI API 的替代方案,支持以下端点:
POST /v1/chat/completions— Chat Completions(支持流式)POST /v1/completions— Text Completions(支持流式)POST /v1/messages— Anthropic Messages APIPOST /v1/embeddings— 文本向量化POST /v1/rerank— 文档重排序GET /v1/models— 列出可用模型
此外还支持 Tool Calling、结构化输出,以及 MCP(Model Context Protocol)工具集成。
技术架构
整体架构分为几层:
FastAPI Server(OpenAI / Anthropic API)
│
├── EnginePool(多模型、LRU 淘汰、TTL、手动加载)
│ ├── BatchedEngine(LLM,连续批处理)
│ ├── VLMEngine(视觉语言模型)
│ ├── EmbeddingEngine
│ └── RerankerEngine
│
├── ProcessMemoryEnforcer(总内存限制)
│
├── Scheduler(FCFS 调度,可配置批次大小)
│ └── mlx-lm BatchGenerator
│
└── Cache Stack
├── PagedCacheManager(GPU 块管理,CoW,前缀共享)
├── Hot Cache(内存热层)
└── PagedSSDCacheManager(SSD 冷层)核心依赖包括 Apple 的 MLX、mlx-lm、mlx-vlm,以及 vllm-mlx 的部分设计思路。
支持的模型
oMLX 能自动识别模型类型,只要模型放在指定目录下即可。支持的模型包括:
- LLM:mlx-lm 支持的所有模型
- VLM:Qwen3.5 系列、GLM-4V、Pixtral 等
- OCR:DeepSeek-OCR、DOTS-OCR、GLM-OCR
- Embedding:BERT、BGE-M3、ModernBERT
- Reranker:ModernBERT、XLM-RoBERTa
你也可以直接在管理界面中搜索并从 HuggingFace 下载模型。
结语
oMLX 为 Apple Silicon 用户提供了一个开箱即用的本地 LLM 推理方案。它的分层缓存设计、多模型支持、以及友好的管理界面,让在 Mac 上运行大模型变得简单高效。如果你正在寻找一个不需要折腾的本地推理工具,不妨试试 oMLX。
项目地址:https://github.com/jundot/omlx