CoreAI Model Zoo 是一个面向 Apple Core AI 的预转换模型库。MiniCPM5、MiniCPM-V 4.6、BitCPM、VoxCPM 这些 OpenBMB 模型都被转成 .aimodel,可以直接在 iPhone 和 Mac 上原生运行;仓库里还带了 Swift 示例应用和能复现的转换配方。
什么是 Core AI
Core AI 是 iOS 27 / macOS 27 上的端侧机器学习运行时,接替 Core ML。模型用 coreai-torch 从 PyTorch 导出成 .aimodel,可以跑在 GPU 或 Neural Engine 上。做个参考:Qwen3-8B 4-bit 在 M4 Max 上能跑到 94 tok/s,MLX 是 90 tok/s。
仓库里每个模型发布前都要拿原始模型做 gate 验证,models/<model>/recipe.toml 里放着转换配方,谁都能照着复现。
OpenBMB 模型一览
| 模型 | 说明 | Hugging Face 仓库 | 示例 |
|---|---|---|---|
| MiniCPM5-1B | 混合 Think / No-Think,128K 上下文;GPU int8 + Neural Engine 8-bit palettized,AOT h18p,设备端 gate 3/3 | mlboydaisuke/MiniCPM5-1B-CoreAI | ChatDemo |
| MiniCPM5-2B | 42 层,支持工具调用,128K 上下文(2026-09-06 发布);GPU int8 + ANE 4-bit palettized | mlboydaisuke/MiniCPM5-2B-CoreAI | — |
| BitCPM-8B | 1.58-bit 三值权重,MiniCPM4-8B 架构;自定义 2-bit packed-GEMM Metal kernel,在 iPhone GPU 上约占 2.1 GB | mlboydaisuke/BitCPM-8B-CoreAI | CoreAIChat |
| MiniCPM-V 4.6 | sub-2B,“strongest tiny VLM” | mlboydaisuke/MiniCPM-V-4.6-CoreAI | VLChat |
| MiniCPM-V 4.7-1B | 沿用 4.6 的视觉塔,加上图内推导的 canvas M-RoPE | mlboydaisuke/MiniCPM-V-4.7-1B-CoreAI | VLChat / Look |
| VoxCPM-0.5B | MiniCPM4 LM + LocDiT flow-matching + AudioVAE,int8 LM | mlboydaisuke/VoxCPM-0.5B-CoreAI | Speak |
| VoxCPM2 2B | 48 kHz;MiniCPM4 28 层 LM + LocDiT-12L + 48kHz AudioVAE | mlboydaisuke/VoxCPM2-CoreAI | Speak |
以上模型均为 Apache-2.0 许可。
解码速度
测试环境是 iOS 27 / macOS 27 developer beta,Apple coreai-pipelined GPU 引擎,单位 tok/s。
| 模型 | iPhone 17 Pro GPU | M4 Max GPU | 备 注 |
|---|---|---|---|
| MiniCPM5-1B | 61.7 | 246.6 | int8 per-block-32(2026-09-09 起);设备端 gate 24/24 + 6/6 |
| MiniCPM5-1B(ANE) | 76.8 / 76.8 | — | 权重字节宽度相同,int8 GPU 为 67.1 / 64.4 |
| MiniCPM5-2B | 22.4 | 127.6 | — |
| MiniCPM5-2B(ANE) | 55.4 / 51.5 | — | 对比 22.8 / 20.6;权重字节数减半,精度不同 |
| BitCPM-8B | 17 | 62.7 | — |
| MiniCPM-V 4.6 | 53.4 | 224.3 | — |
| MiniCPM-V 4.7-1B | 98.0(iPhone 18 Pro) | 134.4(Python runtime) | — |
社区也提交了 MiniCPM5 的实测数据,覆盖 iPhone 18 Pro Max、M4 Pro、iPhone 17、iPhone 17 Pro 等设备。
使用 CoreAIKit
用 CoreAIKit(0.4.1),几行 Swift 就能加载模型、开始对话:
import CoreAIKit
guard let modelID = ModelCatalog.builtin.entry(id: "qwen3-0.6b")?.modelID else {
throw CoreAIKitError.modelNotAvailableOnPlatform(id: "qwen3-0.6b")
}
let chat = try await ChatSession(model: modelID)
let reply = try await chat.respond(to: "What is the capital of Japan?")
print(reply)
也可以直接跑 ChatDemo 命令行工具:
git clone --branch 0.4.1 --depth 1 https://github.com/john-rocky/coreai-kit
cd coreai-kit/Examples/ChatDemo
export DEVELOPER_DIR=/Applications/Xcode-27.0.0-Beta.5.app/Contents/Developer
swift run -c release chat-cli --model qwen3-0.6b --prompt "What is the capital of Japan?"
Speak 示例配 VoxCPM 0.5B 做语音合成,在 Mac 上大约占 1.37 GB。
转换配方与 gate 验证
每个模型的转换流程写在 models/<model>/recipe.toml 里,用脚本列出、查看、执行:
zoo_convert.py list/show/run:列出、查看、运行转换配方zoo_verify.py mlboydaisuke/...:校验已发布的模型coreai_gate.py:以 fp32 参考模型为基准,逐 token 比对 greedy 解码结果
转换结果不是字节级确定的,所以正确性以 gate 验证为准。
获取应用
- iOS:CoreAI Zoo(App Store)
- Mac:仓库 Releases 里有 dmg(2.0 build 9)
写在最后
- GitHub:john-rocky/coreai-model-zoo
- Hugging Face:mlboydaisuke
- 作者:Daisuke Majima (MLBoy)
