CoreAI Model Zoo is a collection of pre-converted models for Apple Core AI. It ships OpenBMB models such as MiniCPM5, MiniCPM-V 4.6, BitCPM and VoxCPM as .aimodel files that run natively on iPhone and Mac, together with Swift sample apps and reproducible conversion recipes.
What is Core AI
Core AI is the on-device ML runtime in iOS 27 / macOS 27 and the successor to Core ML. Models are exported from PyTorch to .aimodel with coreai-torch and run on the GPU or the Neural Engine. For reference, Qwen3-8B 4-bit runs at 94 tok/s on M4 Max, compared with 90 tok/s on MLX.
Every model in the zoo is gate-verified against the original before release and ships with its conversion recipe in models/<model>/recipe.toml, so anyone can reproduce it.
OpenBMB Models
| Model | Notes | Hugging Face repo | Sample |
|---|---|---|---|
| MiniCPM5-1B | Hybrid Think / No-Think, 128K context; GPU int8 + Neural Engine 8-bit palettized, AOT h18p, device gate 3/3 | mlboydaisuke/MiniCPM5-1B-CoreAI | ChatDemo |
| MiniCPM5-2B | 42 layers, tool calling, 128K context (released 2026-09-06); GPU int8 + ANE 4-bit palettized | mlboydaisuke/MiniCPM5-2B-CoreAI | — |
| BitCPM-8B | 1.58-bit ternary, MiniCPM4-8B architecture; custom 2-bit packed-GEMM Metal kernel, ~2.1 GB on iPhone GPU | 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 vision tower + in-graph derived 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 28L LM + LocDiT-12L + 48kHz AudioVAE | mlboydaisuke/VoxCPM2-CoreAI | Speak |
All of the above are Apache-2.0.
Decode Speed
Measured on iOS 27 / macOS 27 developer beta with Apple's coreai-pipelined GPU engine, in tok/s.
| Model | iPhone 17 Pro GPU | M4 Max GPU | Notes |
|---|---|---|---|
| MiniCPM5-1B | 61.7 | 246.6 | int8 per-block-32 (since 2026-09-09); on-device gate 24/24 + 6/6 |
| MiniCPM5-1B (ANE) | 76.8 / 76.8 | — | vs. 67.1 / 64.4 for int8 GPU at the same byte width |
| MiniCPM5-2B | 22.4 | 127.6 | — |
| MiniCPM5-2B (ANE) | 55.4 / 51.5 | — | vs. 22.8 / 20.6; half the weight bytes, different precision |
| 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) | — |
The community has also contributed MiniCPM5 benchmarks on iPhone 18 Pro Max, M4 Pro, iPhone 17 and iPhone 17 Pro.
Using CoreAIKit
With CoreAIKit (0.4.1), loading a model and chatting takes a few lines of 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)
Or use the ChatDemo CLI directly:
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?"
The Speak sample pairs with VoxCPM 0.5B for speech synthesis (~1.37 GB on Mac).
Recipes and Gate Verification
Each model's conversion is described in models/<model>/recipe.toml and driven by scripts:
zoo_convert.py list/show/run: list, inspect and run conversion recipeszoo_verify.py mlboydaisuke/...: verify a published modelcoreai_gate.py: compare greedy decoding token by token against an fp32 reference
Conversions are not byte-deterministic, so the gate is the correctness criterion.
Get the App
- iOS: CoreAI Zoo on the App Store
- Mac: dmg (2.0 build 9) in the repository Releases
Links
- GitHub: john-rocky/coreai-model-zoo
- Hugging Face: mlboydaisuke
- Author: Daisuke Majima (MLBoy)
