omlx

https://omlx.ai/#get-started

https://sam3d.org/sam-3d-object

How is oMLX different from Ollama or LM Studio?

Ollama and LM Studio cache the KV state in memory, but when the context shifts mid-session — which happens constantly with coding agents — the entire cache gets invalidated and recomputed from scratch. oMLX persists every KV cache block to SSD, so previously cached portions are always recoverable. TTFT drops from 30–90 seconds to under 5 seconds on long contexts.

What hardware do I need?

Apple Silicon (M1 or later) with macOS 15+. 16GB RAM is the minimum, but 64GB+ is recommended for comfortable use with larger models. The sweet spot for daily coding work is an M-series Pro/Max with 64GB+.


No. oMLX reuses your existing LM Studio model directory — just point it at your models folder. You can also browse and download models directly from the built-in HuggingFace downloader in the admin dashboard.

Any MLX-format model from HuggingFace. This includes Qwen, LLaMA, Mistral, Gemma, DeepSeek, MiniMax, GLM, and more. Reasoning models (DeepSeek, MiniMax, Qwen) get automatic <think> tag handling. Vision-Language Models are supported since v0.2.0 with the same paged SSD caching.

junkim.dot@gmail.com · https://omlx.ai/me

安装 · 快速开始 · 功能 · 模型 · CLI 配置 · 基准测试 · oMLX.ai

English · 中文 · 한국어 · 日本語


oMLX 管理后台

我试过的每个 LLM 服务器都让我在便利性和可控性之间做选择。我想把常用模型固定在内存中,按需自动切换较重的模型,设置上下文限制,并从菜单栏管理这一切。

oMLX 将 KV 缓存持久化在热内存层和冷 SSD 层之间。即使对话中途上下文发生变化,所有历史上下文仍然保留在缓存中,可跨请求复用,让本地 LLM 在配合 Claude Code 等工具做实际编码时真正变得可用。这就是我做 oMLX 的原因。

安装

macOS 应用

从 Releases 下载 .dmg,拖到 Applications 即可。应用支持自动更新,后续升级只需一键完成。

Homebrew

brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx

# 升级到最新版本
brew update && brew upgrade omlx

# 作为后台服务运行(崩溃时自动重启)
brew services start omlx

# 可选:MCP(Model Context Protocol)支持
/opt/homebrew/opt/omlx/libexec/bin/pip install mcp

从源码安装

git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e .          # 仅核心
pip install -e ".[mcp]"   # 含 MCP(Model Context Protocol)支持

需要 macOS 15.0+ (Sequoia), Python 3.10+ 和 Apple Silicon(M1/M2/M3/M4)。

快速开始

macOS 应用

从 Applications 文件夹启动 oMLX。欢迎界面会引导你完成三个步骤 — 模型目录设置、服务器启动、首个模型下载。就是这样。要连接 OpenClaw、OpenCode 或 Codex,请参阅集成

oMLX 欢迎界面
oMLX 菜单栏

CLI

omlx serve --model-dir ~/models

服务器会自动从子目录中发现 LLM、VLM、嵌入模型和重排序模型。任何 OpenAI 兼容客户端都可以连接到 http://localhost:8000/v1。内置聊天 UI 也可在 http://localhost:8000/admin/chat 使用。

Homebrew 服务

如果通过 Homebrew 安装,可以将 oMLX 作为托管后台服务运行:

brew services start omlx    # 启动(崩溃时自动重启)
brew services stop omlx     # 停止
brew services restart omlx  # 重启
brew services info omlx     # 查看状态

服务使用默认配置运行 omlx serve~/.omlx/models,端口 8000)。要自定义,可以设置环境变量(OMLX_MODEL_DIROMLX_PORT 等),或运行一次 omlx serve --model-dir /your/path 将设置保存到 ~/.omlx/settings.json

日志写入两个位置:

  • 服务日志$(brew --prefix)/var/log/omlx.log(stdout/stderr)
  • 服务器日志~/.omlx/logs/server.log(结构化应用日志)

功能

在 Apple Silicon 上支持文本 LLM、视觉语言模型(VLM)、OCR 模型、嵌入模型和重排序模型。

管理后台

在 /admin 提供实时监控、模型管理、聊天、基准测试和模型级设置的 Web UI。支持英语、韩语、日语和中文。所有 CDN 依赖已内置,完全支持离线运行。

oMLX 管理后台

视觉语言模型

使用与文本 LLM 相同的连续批处理和分层 KV 缓存堆栈运行 VLM。支持多图聊天、base64/URL/文件图像输入,以及带视觉上下文的工具调用。OCR 模型(DeepSeek-OCR、DOTS-OCR、GLM-OCR)会被自动识别,并使用优化的提示词。

分层 KV 缓存(热缓存 + 冷缓存)

借鉴 vLLM 的基于块的 KV 缓存管理,支持前缀共享和写时复制(Copy-on-Write)。缓存分为两个层级:

  • 热缓存(RAM): 频繁访问的块保留在内存中,实现快速读取。
  • 冷缓存(SSD): 热缓存满时,块会以 safetensors 格式转存到 SSD。下次请求命中相同前缀时,直接从磁盘恢复,无需重新计算 — 即使服务器重启也不会丢失。
oMLX 热缓存与冷缓存

连续批处理

通过 mlx-lm 的 BatchGenerator 处理并发请求。预填充和补全批大小可配置。

Claude Code 优化

支持在 Claude Code 中使用较小上下文模型的上下文缩放。通过缩放上报的 Token 数量,让自动压缩在合适的时机触发,同时提供 SSE keep-alive 防止长时间预填充导致的读取超时。

多模型服务

在同一服务器中加载 LLM、VLM、嵌入模型和重排序模型。通过自动和手动控制的组合管理模型:

  • LRU 驱逐: 内存不足时,最近最少使用的模型会被自动卸载。
  • 手动加载/卸载: 在管理后台通过状态标识按需加载或卸载模型。
  • 模型固定: 固定常用模型使其始终保持加载状态。
  • 模型级 TTL: 为每个模型设置空闲超时,在一段时间不活动后自动卸载。
  • 进程内存限制: 总内存限制(默认:系统 RAM – 8GB)防止系统级 OOM。

模型级设置

在管理后台直接配置每个模型的采样参数、聊天模板参数、TTL、模型别名、模型类型覆盖等。修改即时生效,无需重启服务器。

  • 模型别名: 设置自定义 API 显示名称。/v1/models 返回别名,请求时别名和目录名均可使用。
  • 模型类型覆盖: 无论自动检测结果如何,手动设置为 LLM 或 VLM。
oMLX 聊天模板参数

内置聊天

从管理后台直接与已加载的模型聊天。支持对话历史、模型切换、深色模式、推理模型输出,以及 VLM/OCR 模型的图片上传。

oMLX 聊天

模型下载器

在管理后台中直接搜索和下载 HuggingFace 上的 MLX 模型。浏览模型卡片、查看文件大小,一键下载。

oMLX 模型下载器

集成

在管理后台中一键设置 OpenClaw、OpenCode 和 Codex。无需手动编辑配置文件。

oMLX 集成

性能基准测试

从管理后台一键运行基准测试。测量预填充(PP)和 Token 生成(TG)的每秒 Token 数,包含部分前缀缓存命中测试以获得真实的性能数据。

oMLX 基准测试工具

macOS 菜单栏应用

原生 PyObjC 菜单栏应用(非 Electron)。无需打开终端即可启动、停止和监控服务器。包含持久化服务统计(重启后保留)、崩溃自动重启和应用内自动更新。

oMLX 菜单栏统计

API 兼容性

OpenAI 和 Anthropic API 的直接替代品。支持流式使用统计(stream_options.include_usage)、Anthropic adaptive thinking 和视觉输入(base64、URL)。

端点说明
POST /v1/chat/completions聊天补全(流式)
POST /v1/completions文本补全(流式)
POST /v1/messagesAnthropic Messages API
POST /v1/embeddings文本嵌入
POST /v1/rerank文档重排序
GET /v1/models列出可用模型

工具调用与结构化输出

支持 mlx-lm 中所有可用的函数调用格式、JSON Schema 验证和 MCP 工具集成。工具调用需要模型的聊天模板支持 tools 参数。以下模型系列通过 mlx-lm 的内置工具解析器自动检测:

模型系列格式
Llama、Qwen、DeepSeek 等JSON <tool_call>
Qwen3.5 系列XML <function=...>
Gemma<start_function_call>
GLM (4.7, 5)<arg_key>/<arg_value> XML
MiniMaxNamespaced <minimax:tool_call>
Mistral[TOOL_CALLS]
Kimi K2<|tool_calls_section_begin|>
Longcat<longcat_tool_call>

上表未列出的模型,只要聊天模板支持 tools 参数且输出采用可识别的 <tool_call> XML 格式,也有可能正常工作。针对支持工具调用的流式请求,系统会增量发射助手文本,同时隐藏已知的工具调用控制标记;结构化工具调用将在完成整个回合解析后发射。

模型

将 --model-dir 指向包含 MLX 格式模型子目录的目录。支持两级目录结构(如 mlx-community/model-name/)。

~/models/
├── Step-3.5-Flash-8bit/
├── Qwen3-Coder-Next-8bit/
├── gpt-oss-120b-MXFP4-Q8/
├── Qwen3.5-122B-A10B-4bit/
└── bge-m3/

模型会按类型自动识别。也可以直接在管理后台下载模型。

类型模型
LLMmlx-lm 支持的所有模型
VLMQwen3.5 系列、GLM-4V、Pixtral 及其他 mlx-vlm 模型
OCRDeepSeek-OCR、DOTS-OCR、GLM-OCR
嵌入BERT、BGE-M3、ModernBERT
重排序ModernBERT、XLM-RoBERTa

CLI 配置

# 已加载模型的内存限制
omlx serve --model-dir ~/models --max-model-memory 32GB

# 进程级内存限制(默认:auto = RAM - 8GB)
omlx serve --model-dir ~/models --max-process-memory 80%

# 启用 KV 块的 SSD 缓存
omlx serve --model-dir ~/models --paged-ssd-cache-dir ~/.omlx/cache

# 设置内存热缓存大小
omlx serve --model-dir ~/models --hot-cache-max-size 20%

# 调整批大小
omlx serve --model-dir ~/models --prefill-batch-size 8 --completion-batch-size 32

# 使用 MCP 工具
omlx serve --model-dir ~/models --mcp-config mcp.json

# HuggingFace 镜像端点(适用于受限地区)
omlx serve --model-dir ~/models --hf-endpoint https://hf-mirror.com

# API 密钥认证
omlx serve --model-dir ~/models --api-key your-secret-key
# 仅限 Localhost:在管理后台全局设置中跳过验证

以上所有设置也可以在 /admin 的 Web 管理后台中配置。设置保存在 ~/.omlx/settings.json,CLI 参数优先级更高。架构

FastAPI Server (OpenAI / Anthropic API)
    │
    ├── EnginePool (多模型、LRU 驱逐、TTL、手动加载/卸载)
    │   ├── BatchedEngine (LLM,连续批处理)
    │   ├── VLMEngine (视觉语言模型)
    │   ├── EmbeddingEngine
    │   └── RerankerEngine
    │
    ├── ProcessMemoryEnforcer (总内存限制、TTL 检查)
    │
    ├── Scheduler (FCFS,可配置批大小)
    │   └── mlx-lm BatchGenerator
    │
    └── Cache Stack
        ├── PagedCacheManager (GPU,基于块,CoW,前缀共享)
        ├── Hot Cache (内存缓存,write-back)
        └── PagedSSDCacheManager (SSD 冷缓存,safetensors 格式)

开发

CLI 服务器

git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e ".[dev]"
pytest -m "not slow"

macOS 应用

需要 Python 3.11+ 和 venvstackspip install venvstacks)。

cd packaging

# 完整构建(venvstacks + 应用包 + DMG)
python build.py

# 跳过 venvstacks(仅代码更改)
python build.py --skip-venv

# 仅 DMG
python build.py --dmg-only

应用包结构和层配置的详细说明请参阅 packaging/README.md

贡献

欢迎贡献!详情请参阅贡献指南

  • Bug 修复和改进
  • 性能优化
  • 文档改进

许可证

Apache 2.0

致谢

  • MLX 和 mlx-lm by Apple
  • mlx-vlm – Apple Silicon 上的视觉语言模型推理
  • vllm-mlx – oMLX 从 vllm-mlx v0.1.0 起步,经过大幅演进,增加了多模型服务、分层 KV 缓存、完整分页缓存支持的 VLM、管理后台和 macOS 菜单栏应用
  • venvstacks – macOS 应用包的便携 Python 环境分层
  • mlx-embeddings – Apple Silicon 嵌入模型支持

SGLang:性能卓越的新兴之秀

SGLang 是伯克利团队开源的大模型推理引擎,最新发布的 v0.4 版本带来了多项重大性能提升。其核心技术亮点包括:

开发工具

  1. 零开销批处理调度器:通过将 CPU 调度与 GPU 计算重叠,实现了 1.1 倍的吞吐量提升。
  2. 缓存感知负载均衡器:引入智能路由机制,可实现高达 1.9 倍的吞吐量提升,并将缓存命中率提高 3.8 倍。
  3. DeepSeek 模型的数据并行注意力机制:针对特定模型优化,可实现高达 1.9 倍的解码吞吐量提升。
  4. 基于 xgrammar 的快速结构化输出:在 JSON 解码任务中比其他开源方案快达 10 倍。

这些优化使得 SGLang 在处理大规模并发请求时表现出色,特别适合需要高性能推理的企业级应用场景。例如,在处理共享前缀的批量请求时,新版本可以达到 158,596 token/s 的吞吐量,缓存命中率高达 75%。

Ollama:基于 llama.cpp 的便捷本地运行框架

Ollama 是基于 llama.cpp 开发的高层封装工具,它继承了 llama.cpp 的高效推理能力,同时大大简化了用户使用体验。它的安装过程堪称 “丝滑”,无论你是 Windows、Linux 还是 MacOS 系统的用户,只需按照官网简洁明了的指引操作,短短几分钟,就能完成安装部署。跨平台的特性,让不同系统的用户都能毫无阻碍地拥抱大模型技术。

作为 llama.cpp 的上层应用,Ollama 不仅保留了底层引擎的高效性能,还在此基础上提供了更加友好的用户界面和更丰富的功能特性。它的模型库宛如一座宝藏,收纳了诸如 Llama、Qwen 等 1700 多款大语言模型,无论你是想探索前沿的学术研究,还是进行创意写作、日常问答,都能从中找到心仪之选。操作更是简单到极致,一条命令 “ollama run < 模型名称>“,就能瞬间唤醒模型,开启智能交互之旅。

不仅如此,Ollama 还极具 “个性”,允许用户通过 Modelfile 自定义模型。你可以根据需求,灵活调整创造性参数或系统消息,让模型输出贴合特定场景。例如,在创作故事时,调高创造性参数,模型便能生成天马行空的情节;而在回答专业问题时,优化系统消息,使其给出精准严谨的答案。在日常使用中,对于个人开发者想要快速验证某个创意项目,或是学生党用于辅助学习、解答学科难题,Ollama 都能完美胜任,以其便捷性和灵活性,成为大家探索 AI 世界的得力伙伴。

VLLM:专注高效推理的强大引擎

VLLM 宛如一位超级 “算力管家”,将大模型推理的效率推向了新高度。它以创新性的 PagedAttention 技术为基石,对注意力模块中的 Key 和 Value 的 Cache 进行精细管理。这种设计灵感源自操作系统的虚拟内存分页概念,它把 KV 缓存分割成众多小块,序列的连续逻辑块通过块表巧妙映射到非连续的物理块,内存浪费被控制在极低水平,通常小于 4%。这意味着宝贵的显存资源得到了充分利用,能够同时处理更多的序列,显著提升了 BatchSize。

声卡与显卡

在多 GPU 环境下,VLLM 的表现堪称卓越。其 Continuous Batching 技术,允许新请求随时加入正在处理的批次,实现了请求的动态批处理,避免了传统批处理方式中因等待凑齐固定批次而造成的资源闲置。就如同一条高效的流水线,任务不间断地流转,大大提高了 GPU 的利用率。从数据上看,在某些场景下,它相较于原生 HF Transformers,吞吐量能提升高达 24 倍,让大模型推理的速度实现质的飞跃。

举个例子,在实时聊天机器人的场景中,面对海量用户的并发请求,VLLM 能够快速响应用户输入,流畅地生成高质量回复。而且,它还支持多种量化技术,如 GPTQ、AWQ 等,进一步压缩模型显存占用,使得在资源受限的情况下,依然能保持出色的推理性能,为大规模在线推理服务提供了坚实的技术支撑。

值得一提的是,VLLM 在部署方面提供了多种选择:可以作为 Python 包直接导入使用,也可以通过 OpenAI 兼容的 API 服务器方式部署,还支持通过 Docker 容器化部署。这种灵活性使其能够更好地适应不同的生产环境需求。不过需要注意的是,VLLM 目前仅支持 Linux 系统,这在跨平台兼容性方面存在一定局限。

LLaMA.cpp:轻量级的推理框架

LLaMA.cpp 作为一个高度优化的推理框架,其最新版本带来了诸多突破性的特性:

  1. 量化技术:
  • 支持 2-bit、3-bit、4-bit、5-bit、6-bit、8-bit 等多种量化精度
  • 创新的 K-quant 量化方法,在保持模型性能的同时大幅降低内存占用
  • GGUF 格式支持,提供更高效的模型存储和加载方式
  1. 硬件优化:
  • 针对 Apple Silicon (M1/M2) 的优化
  • ARM 设备的 NEON 指令集优化
  • x86 架构的 AVX/AVX2/AVX-512 指令集支持
  1. 推理优化:
  • 高效的 KV 缓存管理
  • 批处理推理支持
  • 上下文长度动态扩展

这些优化使得 LLaMA.cpp 能在资源受限的设备上实现令人惊艳的性能。例如,在搭载 M1/M2 芯片的 MacBook 上,13B 模型可以达到接近实时的推理速度,而在树莓派等嵌入式设备上,7B 模型也能实现可用的推理性能。

软件

除了已经提到的特性,LLaMA.cpp 还有一些独特的优势:

  • 支持通过 Python、Node.js、Golang 等多种编程语言的绑定进行调用
  • 提供基于 HTTP 服务器的 API 接口,支持 OpenAI 兼容格式
  • 内置金丝雀(Canary)模式,可以在运行时动态调整参数
  • 支持 Metal GPU 后端,为 macOS 用户提供更好的性能

多维度对比一览表

将这几款工具放在一起 “掰手腕”,从性能、易用性、适用场景等多个维度来一场全方位的较量,帮你找到最称手的那个 “兵器”。

工具名称性能表现易用性适用场景硬件需求模型支持部署方式系统支持
SGLang v0.4零开销批处理提升1.1倍吞吐量,缓存感知负载均衡提升1.9倍,结构化输出提速10倍需一定技术基础,但提供完整API和示例企业级推理服务、高并发场景、需要结构化输出的应用推荐A100/H100,支持多GPU部署全面支持主流大模型,特别优化DeepSeek等模型Docker、Python包Linux
Ollama继承 llama.cpp 的高效推理能力,提供便捷的模型管理和运行机制小白友好,提供图形界面安装程序一键运行和命令行,支持 REST API个人开发者创意验证、学生辅助学习、日常问答、创意写作等个人轻量级应用场景与 llama.cpp 相同,但提供更简便的资源管理模型库丰富,涵盖 1700 多款,支持一键下载安装独立应用程序、Docker、REST APIWindows、macOS、Linux
VLLM借助 PagedAttention 和 Continuous Batching 技术,多 GPU 环境下性能优异需要一定技术基础,配置相对复杂大规模在线推理服务、高并发场景要求 NVIDIA GPU,推荐 A100/H100支持主流 Hugging Face 模型Python包、OpenAI兼容API、Docker仅支持 Linux
LLaMA.cpp多级量化支持,跨平台优化,高效推理命令行界面直观,提供多语言绑定边缘设备部署、移动端应用、本地服务CPU/GPU 均可,针对各类硬件优化GGUF格式模型,广泛兼容性命令行工具、API服务器、多语言绑定全平台支持

综合来看,如果您是专业的科研团队,拥有强大的计算资源,追求极致的推理速度,那么 SGLang 无疑是首选,它能像一台超级引擎,助力前沿科研探索;要是您是普通的个人开发者、学生,或是刚踏入 AI 领域的新手,渴望在本地轻松玩转大模型,Ollama 就如同贴心伙伴,随时响应您的创意需求;对于需要搭建大规模在线服务,面对海量用户请求的开发者而言,VLLM 则是坚实后盾,以高效推理确保服务的流畅稳定;而要是您手头硬件有限,只是想在小型设备上浅尝大模型的魅力,或者快速验证一些简单想法,LLaMA.cpp 就是那把开启便捷之门的钥匙,让 AI 触手可及。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注