Skip to main content
Back to Showcase

CoreAI Model Zoo: Running MiniCPM Natively on iPhone

Author:Daisuke Majima (MLBoy)Model:MiniCPM-V 4.6、MiniCPM5-1B、MiniCPM5-2B、VoxCPM2

Core AI builds of MiniCPM5 and MiniCPM-V 4.6 running natively on iPhone and Mac

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.

CoreAIChat running on iPhone

OpenBMB Models​

ModelNotesHugging Face repoSample
MiniCPM5-1BHybrid Think / No-Think, 128K context; GPU int8 + Neural Engine 8-bit palettized, AOT h18p, device gate 3/3mlboydaisuke/MiniCPM5-1B-CoreAIChatDemo
MiniCPM5-2B42 layers, tool calling, 128K context (released 2026-09-06); GPU int8 + ANE 4-bit palettizedmlboydaisuke/MiniCPM5-2B-CoreAI—
BitCPM-8B1.58-bit ternary, MiniCPM4-8B architecture; custom 2-bit packed-GEMM Metal kernel, ~2.1 GB on iPhone GPUmlboydaisuke/BitCPM-8B-CoreAICoreAIChat
MiniCPM-V 4.6Sub-2B, "strongest tiny VLM"mlboydaisuke/MiniCPM-V-4.6-CoreAIVLChat
MiniCPM-V 4.7-1B4.6 vision tower + in-graph derived canvas M-RoPEmlboydaisuke/MiniCPM-V-4.7-1B-CoreAIVLChat / Look
VoxCPM-0.5BMiniCPM4 LM + LocDiT flow-matching + AudioVAE, int8 LMmlboydaisuke/VoxCPM-0.5B-CoreAISpeak
VoxCPM2 2B48 kHz; MiniCPM4 28L LM + LocDiT-12L + 48kHz AudioVAEmlboydaisuke/VoxCPM2-CoreAISpeak

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.

ModeliPhone 17 Pro GPUM4 Max GPUNotes
MiniCPM5-1B61.7246.6int8 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-2B22.4127.6—
MiniCPM5-2B (ANE)55.4 / 51.5—vs. 22.8 / 20.6; half the weight bytes, different precision
BitCPM-8B1762.7—
MiniCPM-V 4.653.4224.3—
MiniCPM-V 4.7-1B98.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:

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:

Bash
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 recipes
  • zoo_verify.py mlboydaisuke/...: verify a published model
  • coreai_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​

Project info

Author
Daisuke Majima (MLBoy)