Blaizzy/mlx-vlm

MLX-VLM is a package for inference and fine-tuning of Vision Language Models (VLMs) on your Mac using MLX.

概述

MLX-VLM 是一个 Python 包,可让你直接在 Mac 上运行(推理)和微调视觉语言模型(VLM)——能够理解图像、视频和音频的 AI 模型。它基于 Apple 的 MLX 机器学习框架,该框架针对 Apple Silicon(M1/M2/M3 芯片)进行了优化。

README 描述了一个功能丰富的工具:命令行界面、Web 聊天 UI(Gradio)、支持连续批处理和前缀缓存的本地服务器(FastAPI)、用于加速的推测解码、多图像聊天、微调,以及数十种特定模型架构(Qwen、Gemma、MiniCPM、Phi、DeepSeek‑OCR 等)的支持。

有趣之处

  • 在 Mac 上本地运行重型多模态模型 —— 无需云端,无需 GPU 服务器。
  • 推理与微调 集成于一个包中,并提供将 Hugging Face 模型转换为 MLX 格式的实用工具。
  • 推测解码加速:使用一个小型"起草者"模型预测下一个 token,然后用大模型进行验证,通常快 2–3 倍。支持多种起草者系列(DFlash、EAGLE‑3、MTP)。
  • 全能模型 —— 不仅处理图像,还能处理音频和视频,包括语音生成。
  • 生产级服务器 —— 具有连续批处理(高效处理多个请求)、自动前缀缓存和 KV 缓存量化以节省内存。
  • 广泛的模型特定文档 —— 每个支持的架构都有独立的 README,包含提示格式和最佳实践。

工作原理

  • 安装:pip install -U mlx-vlm(UI 需要 mlx-vlm[ui])。
  • 通过 CLI 使用:例如,mlx_vlm.generate --model mlx-community/Qwen2-VL-2B-4bit --image http://... --prompt "描述这张图片"。
  • 编程方式:加载模型和处理器,然后调用 generate();支持图像、音频和文本。
  • 服务器:mlx_vlm.server --model ... 暴露 REST API(FastAPI),提供生成、聊天、音频、缓存和指标端点。
  • 量化:使用 mlx_vlm.convert 将 Hugging Face 模型转换为 MLX,选择位宽(例如,4 位)以减少内存。
  • 微调:该包包含微调功能(目录中提到,但此 README 摘录中未提供详细信息)。

值得注意的细节

  • 思考预算:对于推理模型,你可以限制它们在回答前思考所用的 token 数量。
  • 多图像聊天:多个模型支持,允许在对话中传递多个图像。
  • 分布式推理和 1 位仿射推理 也被涵盖。
  • 该项目附带代理技能 —— 为编码助手(Claude Code、Codex、Gemini)准备的现成提示,帮助它们遵循项目的约定。

总结

MLX‑VLM 是一个实用、文档完善的工具包,适合任何希望在 Mac 上 运行和定制现代视觉语言和全能模型的人,具备推测解码、本地服务器和微调等实际功能。这是一个真正的软件项目,积极维护,并拥有庞大的支持模型矩阵。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目