
MLC LLM 是一个开源的本地 LLM 推理框架,核心思路是”将模型编译为原生 GPU shader”——通过 TVM 深度学习编译器技术,把大模型直接编译成 Android(Vulkan/OpenCL)和 iOS(Metal)的原生 GPU 着色器代码,从而在移动 GPU 上获得硬件加速。
提供 Python API(服务端/桌面)、CLI、以及 Android/iOS 双平台一致的 MLC Chat 应用。预编译模型库托管在 HuggingFace 上,覆盖 Llama、Mistral、Gemma、Phi、Qwen 等主流模型。Apache 2.0 协议,免费商用。
产品概述
MLC LLM 由 MLC 团队开发,是”编译式端侧推理”路线的代表作——与 llama.cpp 的”运行时解释执行”不同,MLC LLM 在部署前通过 TVM 编译器将模型权重和计算图编译为针对目标 GPU 架构优化的原生代码。
理论上,这种”编译到 shader”的方式在 GPU decode 阶段应该比 CPU 推理快很多。2026 年的实测表明:在 Adreno 750+ 等强 GPU 上,MLC LLM 的 decode 速度确有竞争力,但 prefill 阶段在某些 workload 上反而不及 llama.cpp 的 CPU 推理。
这意味着 MLC LLM 更适合”短 prompt、长生成”的场景(如创意写作、角色扮演),而不适合”长文档 RAG”这类 prefill 重的场景。MLC Chat 是其在移动端的旗舰应用,Android 和 iOS 上提供一致的 UI,用户可从预编译模型库下载模型离线运行。技术用户也可以通过 Python API 在服务端部署,或直接调用本地 REST API 服务。
核心能力
- 原生 GPU 编译:通过 TVM 将模型编译为 Vulkan(Android)/ Metal(iOS)原生 shader
- 移动 App:MLC Chat 在 Android/iOS 双平台提供一致的聊天体验
- Python API:服务端/桌面端编程调用
- REST API 服务:可启动本地 API 服务供其他程序调用
- 预编译模型库:HuggingFace 上的 MLC 格式预编译模型,覆盖主流架构
- 多平台:Android / iOS / Linux / macOS / Windows / Web 全平台
- 量化支持:int4/int3/int2 等低比特量化
优势亮点
- GPU 原生加速:编译到原生 shader,decode 阶段在强 GPU 上有竞争力
- Apache 2.0 协议:免费商用,无 AGPL 传染风险
- 跨平台一致性:同一套代码部署到 Android/iOS/服务端
- 100% 离线:模型本地运行,无遥测、无数据上传
- MLC Chat 双平台 App:移动端一致的聊天体验
- Python API + REST API:既适合研究也适合集成
- 编译优化潜力:针对特定 GPU 架构编译,理论上限高
短板
- Prefill 性能不及 llama.cpp CPU:长 prompt 场景 MLC LLM 的 prefill 反而慢于 llama.cpp
- 设置较重:编译模型需要 TVM 工具链,比 PocketPal 的”下载即用”复杂
- GPU 门槛高:Adreno 750+ 等强 GPU 才能发挥优势,中低端手机体验一般
- 模型库不如 GGUF 丰富:预编译 MLC 模型数量少于 HuggingFace 上的 GGUF 模型
- CPU 回退性能差:无 GPU 加速时,MLC LLM 的 CPU 推理不及 llama.cpp 优化
- 社区规模小于 llama.cpp:问题排查资源相对较少
适用人群
希望在移动 GPU 上获得最佳推理性能的技术用户、需要跨平台(Android/iOS/服务端)一致部署的开发者、拥有 Adreno 750+ 或 Apple A14+ 的旗舰手机用户、”短 prompt 长生成”场景(创意写作、角色扮演)用户。
安装与快速开始
Step 1:移动端安装 MLC Chat
- iOS:App Store 搜索 “MLC Chat” 下载
- Android:从 MLC 项目 releases 页面下载 APK 安装
Step 2:下载模型并聊天
- 打开 MLC Chat
- 从模型库选择预编译模型(如 Llama 3.2 1B/3B、Phi-3 Mini、Qwen2.5 1.5B)
- 点击下载,等待下载完成
- 下载完成后点击模型开始聊天
模型与硬件匹配:
| 设备 GPU | 推荐模型 | 说明 |
|---|---|---|
| Adreno 750+(骁龙 8 Gen 2+) | Llama 3.2 3B / Qwen2.5 3B(int4) | GPU 加速下 decode 速度有竞争力 |
| Apple A14+(iPhone 12+) | Phi-3 Mini / Llama 3.2 1B(int4) | Metal 加速 |
| 中低端 GPU | 不建议用 MLC LLM | 改用 PocketPal AI(llama.cpp) |
Step 3:Python API 调用(服务端/桌面)
from mlc_llm import MLCEngine
engine = MLCEngine(model="HF://mlc-ai/Llama-3.2-1B-Instruct-q4f16_1-MLC")
response = engine.chat.completions.create(
messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)
Step 4:REST API 服务
Step 4:REST API 服务
调用方式同 OpenAI 兼容 API:
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "Llama-3.2-1B-Instruct-q4f16_1-MLC", "messages": [{"role": "user", "content": "Hello!"}]}'
硬件配置参考
- Android 最低:Adreno 650(骁龙 865)级别 GPU,Vulkan 1.1+
- Android 推荐:Adreno 750+(骁龙 8 Gen 2+),int4 量化下 3B 模型可用
- iOS 最低:A14(iPhone 12 系列),Metal 支持
- iOS 推荐:A16+(iPhone 14 Pro+)
- 服务端:Linux/macOS/Windows,需对应 GPU 的 Vulkan/Metal/CUDA 支持
*最佳实践:MLC LLM 的价值在强 GPU 的移动端,中低端手机不如用 PocketPal AI(llama.cpp);短 prompt 长生成场景(创意写作、角色扮演)MLC LLM 优势明显;长文档 RAG 场景 prefill 瓶颈下 MLC LLM 反而不如 llama.cpp;第一次使用建议从 MLC Chat 应用起步,验证设备 GPU 兼容性后再考虑 Python API 或 REST API 部署。
相关导航


LocalAI
TextGen

Ollama

Jan

llama.cpp

PocketPal AI

