Skip to content

Supported Models

mlxcel detects the model architecture automatically from checkpoint metadata. The model_type field in config.json is the primary generation-family key; architectures, sentence-transformers pooling layouts, and classifier heads additionally distinguish embedding and reranker checkpoints. Run mlxcel arch to inspect the exact matrix compiled into a particular binary.

Browse mlxcel Recipes for model-specific commands and hardware guidance; each supported registry family also has a page at https://mlxcel.ai/en/recipes/families/<id>/.

Current Tensor Parallel Runtime

The current tp_size > 1 runtime is available for the following dense text families:

Family model_type Current TP Status Recipe Notes
Llama family llama Supported Recipe Dense Llama-style path
Qwen 2 / 2.5 qwen2 Supported Recipe Dense Qwen2/Qwen2.5 path; smallest tied-embedding checkpoints are validated through 24 greedy tokens
Qwen 3 qwen3 Supported Recipe Dense TP path; paged server decode is enabled by default
Qwen 3.5 qwen3_5, qwen3.5, or qwen3_5_text Supported Recipe Dense text backbone only; VLM-packaged checkpoints load through the text TP path for text generation; paged server decode is enabled by default
Gemma 3 gemma3 or gemma3_text Supported Recipe Text-only Gemma 3 path; paged server decode is enabled by default
Gemma 4 gemma4 or gemma4_text Supported Recipe Text path only; dense 31B/E4B and 26B-A4B MoE parity are covered, while E2B-style VLM checkpoints use a conservative TP fallback
ERNIE 4.5 ernie4_5 or ernie4.5 Supported Recipe Dense ERNIE 4.5 only
Hunyuan v1 Dense hunyuan_v1_dense or hunyuan_dense Supported Recipe Dense path only

Current TP constraints:

  • --tp-embedding-mode replicated
  • --tp-lm-head-mode replicated
  • No LoRA adapters with TP
  • TP server batching is enabled for dense Llama, Qwen2/2.5, Qwen3, Qwen3.5, Gemma 3 text, Gemma 4 text, ERNIE 4.5, and Hunyuan v1 Dense
  • Server decode storage defaults to automatic selection; paged decode is selected by default for Llama, Qwen 3, Qwen 3.5 text, Gemma 3 text, and Llama 4 workers, while other families stay on dense decode unless explicitly opted in
  • Gemma 4 E2B-style checkpoints (num_key_value_heads=1 with per-layer inputs + KV sharing) currently run through a conservative fallback and force sequential server execution

Real-model CUDA parity coverage currently includes:

  • tp=2: Qwen2.5 0.5B (24-token greedy parity)
  • tp=2: Llama, Qwen 3, Qwen 3.5 0.8B and 9B, Gemma 3, Gemma 4 E2B (generation smoke), ERNIE 4.5, Hunyuan v1 Dense
  • tp=4: Qwen2.5 7B
  • tp=4: Llama, Qwen 3, Qwen 3.5 4B, 9B, and 27B, Gemma 3, Gemma 4 31B / E4B / 26B-A4B, ERNIE 4.5, Hunyuan v1 Dense
  • Additional Gemma 4 TP smoke coverage: gemma-4-e2b-it-8bit, gemma-4-e4b-it-8bit, gemma-4-31b-it-4bit, gemma-4-31b-it-nvfp4 (F8_E4M3 weight scales converted to f16 at load time)

Table of Contents


Standard Transformer Models

Model Family Variant Architecture Key (model_type) Notes
Llama Llama ½/3 and Mistral ½ llama or mistral Shared dense runtime
Llama Llama 4 llama4 MoE variant; VLM auto-detected
Qwen Qwen 2 / 2.5 qwen2
Qwen Qwen 3 qwen3
Qwen Qwen 3.5 qwen3_5 Hybrid Transformer + GatedDeltaNet; VLM auto-detected. Qwen3.8-27B checkpoints declare this key and load through the same path. Vendor fine-grained FP8 checkpoints (quant_method: fp8, E4M3 weights with a bf16 inverse scale per 128x128 block) are requantized to MLX mxfp8 at load, one tensor at a time; other FP8 layouts are refused by name
Gemma Gemma 1 gemma
Gemma Gemma 2 gemma2
Gemma Gemma 3 gemma3 or gemma3_text Text-only or VLM auto-detected
Gemma Gemma 4 gemma4 or gemma4_text Text-only or VLM auto-detected
Gemma DiffusionGemma diffusion_gemma or diffusion_gemma_text Block-diffusion canvas decoder on the Gemma 4 MoE backbone; image input supported. See Block Diffusion
Gemma Gemma 3n gemma3n or gemma3n_text MatMul-Free variant; VLM auto-detected
Phi Phi ½ phi or phi-msft
Phi Phi 3 phi3
Phi Phi 3 Small phi3small
Mistral Mistral 3 mistral3 Text-only or VLM auto-detected
Mistral Mistral 4 mistral4 MLA text model
Youtu Youtu-LLM youtu or youtu_llm Text-only Multi-head Latent Attention decoder in the DeepSeek-V2 layout; the same decoder serves as the Youtu-VL text tower. rope_interleave selects the rotary pair layout, rope_scaling is accepted only as the identity YaRN block (factor: 1.0), and q_lora_rank may be absent
Ministral Ministral 3 ministral3
Nemotron Nemotron nemotron
DeepSeek DeepSeek (v1) deepseek
DeepSeek DeepSeek V2 deepseek_v2 MoE
DeepSeek DeepSeek V3 deepseek_v3 MoE
DeepSeek DeepSeek V3.2 deepseek_v32 or deepseek_v3.2 MoE
DeepSeek DeepSeek V4 deepseek_v4 Text model. HyperConnections replace the plain residual stream; attention uses one shared 512-wide KV head across 64 query heads in a 128-token rotating window with per-head softmax sinks; compress_ratios selects local, pooled, or sparse-compressed attention per layer, with a top-k indexer on the sparse layers; the first three MoE layers route by hashing the token id (tid2eid). Validated on mlx-community/DeepSeek-V4-Flash-4bit
Cohere Command-R cohere
Cohere Command-R v2 cohere2
InternLM InternLM 2 internlm2
InternLM InternLM 3 internlm3
OLMo OLMo 1 olmo
OLMo OLMo 2 olmo2
OLMo OLMo 3 olmo3
SmolLM SmolLM 3 smollm3
MiniCPM MiniCPM minicpm
MiniCPM MiniCPM 3 minicpm3
StableLM StableLM stablelm
Solar Solar Open solar_open
MiMo MiMo mimo
Step Step 3.5 step3p5
GPT GPT-2 gpt2 Learned absolute position embeddings; Conv1D-layout weights
GPT GPT-BigCode gpt_bigcode Multi-query attention code model
GPT GPT-NeoX gpt_neox Parallel attention/MLP residual
Kyutai Helium helium
Apple OpenELM openelm Layer-wise scaled attention and FFN widths
TeleAI TeleChat3 telechat3
IBM Granite granite Dense Granite text model
Swiss AI Apertus apertus Dense text model
ByteDance Seed-OSS seed_oss Dense text model
BitNet BitNet b1.58 bitnet Ternary-weight architecture
nanochat nanochat d20 / d32 nanochat GPT-2-shaped decoder with weightless RMSNorm, mirrored RoPE, a relu(x)^2 MLP, and logits soft-capped at 15. Weights stay bf16 at load (no f16 conversion). The prompt must start with <\|bos\|>: the shipped chat template adds it, and with --no-chat-template write it literally. Generation stops on <\|assistant_end\|>. Validated on madmag77/nanochat-d20-q8-mlx and dnakov/nanochat-d20-mlx. Not tensor-parallel enabled

Mixture-of-Experts (MoE) Models

Model Family Variant Architecture Key (model_type) MoE Details
Mixtral Mixtral 8x7B / 8x22B mixtral Sparse MoE
Qwen Qwen 2 MoE qwen2_moe Sparse MoE
Qwen Qwen 3 MoE qwen3_moe Sparse MoE
Qwen Qwen 3.5 MoE qwen3_5_moe Hybrid MoE + GatedDeltaNet; VLM auto-detected
GPT-OSS GPT-OSS MoE gpt_oss
MiniMax MiniMax minimax Sparse MoE
OLMoE OLMoE olmoe Sparse MoE
Phi Phi MoE phimoe
GLM GLM 4 MoE glm4_moe
GLM GLM 4 MoE Lite glm4_moe_lite GLM-4.7-Flash. Its next-token-prediction layer runs as a separate MTP drafter produced by mlxcel split-mtp; see MTP and DFlash
GLM GLM MoE DSA glm_moe_dsa Dual-sparse attention
ERNIE ERNIE 4.5 MoE ernie4_5_moe or ernie4.5_moe
Hunyuan Hunyuan MoE hunyuan (with num_experts > 1) Auto-detected from config
ExaOne ExaOne MoE exaone_moe
Mellum Mellum / Mellum 2 mellum JetBrains code model; sliding/full hybrid attention with QK-RMSNorm and a sparse softmax-routed MoE in every layer
LLaDA-2 LLaDA-2 MoE llada2_moe Masked-diffusion LLM with a DeepSeek-V3-style MoE FFN; see Block Diffusion
Cohere Command MoE cohere2_moe Sparse MoE on the Command-R v2 backbone
Databricks DBRX dbrx Sparse MoE
Dots dots.llm1 dots1 Sparse MoE
Ant Group Ling / Bailing MoE bailing_moe Sparse MoE
Arcee AFMoE afmoe Sparse MoE
Kuaishou Klear Klear Sparse MoE. The published checkpoints capitalize the key; detection lowercases model_type, so Klear and klear both load
MiniMax MiniMax-M3 minimax_m3 Hybrid dense/MoE with block-sparse attention; VLM auto-detected
Poolside Laguna XS 2.1 / XS.2 / S 2.1 laguna Code models: full-attention layers (YaRN, partial rotary) interleaved with 512-token sliding-window layers, per-head softplus attention output gate, sigmoid-routed top-k MoE with a shared expert. The published NVFP4 checkpoints keep the experts in the compressed-tensors nvfp4-pack-quantized layout, which is transcoded to MLX NVFP4 at load; pre-stacked MLX conversions and per-expert bf16 exports load through the same path. No tensor parallelism. A Laguna DFlash drafter is supported
Phi Phixtral phi-msft with num_local_experts > 1 Mixtral-style sparse MoE on the Phi-2 parallel-residual backbone. There is no phixtral key: dense Phi-2 declares the same phi-msft, so the two are told apart by num_local_experts. Attention runs in float32
Xiaomi MiMo v2 Flash mimo_v2_flash Hybrid sliding/full attention sparse decoder: 48 layers, 256 routed experts with top-8 selection, a noaux_tc sigmoid router whose correction bias applies to selection only, separate Q/K (192) and V (128) head widths, partial per-layer RoPE, and learned attention sinks on sliding layers. Validated on mlx-community/MiMo-V2-Flash-4bit (161.8 GiB resident on a 512 GB M3 Ultra)

SSM and RNN Models

Model Family Variant Architecture Key (model_type) Notes
Mamba Mamba 1 mamba or falcon_mamba State Space Model
Mamba Mamba 2 mamba2 Structured SSM
RWKV RWKV 7 rwkv7 Linear-time RNN
RecurrentGemma Griffin recurrent_gemma or griffin Recurrent + MLP layers

Hybrid Models

Hybrid models combine multiple architectural paradigms (e.g., Transformer attention layers with SSM or linear-attention layers).

Model Family Variant Architecture Key (model_type) Hybrid Type
Jamba Jamba, AI21 Jamba-Reasoning jamba Transformer + Mamba blocks. AI21-Jamba-Reasoning-3B always primes <think>, so set max_tokens to at least 1024; see the note below
Nemotron-H Nemotron-H nemotron_h Transformer + SSM
Nemotron-NAS Nemotron-NAS nemotron-nas Neural Architecture Search hybrid
Qwen 3 Next Qwen 3 Next qwen3_next or qwen3next Transformer + GatedDeltaNet
Ling / Ring Bailing linear-attention MoE bailing_moe_linear Transformer + gated linear attention, with a sparse MoE FFN. Chunked closed-form prefill is the default; see MLXCEL_BAILING_LINEAR_CHUNKED_PREFILL
Kimi-Linear Kimi-Linear kimi_linear Linear Transformer
Kimi K3 Kimi K3 kimi_k3 (with text_config.model_type: kimi_linear) Kimi Delta Attention layers with NoPE MLA at every fourth layer, a latent MoE (896 experts plus two shared experts), and Attention Residual blocks; the compressed-tensors mxfp4 experts are stacked into MLX mxfp4 at load. Single-process only: the full 93-layer checkpoint is about 1.4 TB at 4 bits, and --pp-size / --pp-layers refuse this family. Chunked prefill is disabled for it. The tokenizer is a tiktoken vocabulary, and the XTML chat format is rendered in code because the checkpoint ships no Jinja template. A checkpoint that also carries the vision tower loads as the Kimi K3 VLM
Longcat Flash Longcat Flash longcat_flash Long-context flash attention hybrid
Longcat Flash Ngram Longcat Flash Ngram longcat_flash_ngram With n-gram speculative decoding
Falcon Falcon-H1 falcon_h1 Parallel Mamba2 + attention hybrid
Liquid AI LFM2 lfm2 Short convolution + attention hybrid
Liquid AI LFM2-MoE lfm2_moe LFM2 hybrid with sigmoid-gated experts
Preferred Networks PLaMo 2 plamo2 Mamba + attention hybrid
IBM Granite 4 granitemoehybrid Mamba2 + attention interleaved hybrid

AI21-Jamba-Reasoning-3B starts every reply in reasoning_content; the answer reaches content once the model writes </think>, and a max_tokens budget that ends first returns an empty content with finish_reason: "length". Short factual answers take 150 to 450 completion tokens at temperature 0. In multi-turn chats, echo reasoning_content back with each assistant turn, or rely on the server's reasoning re-echo while the prompt cache is on; otherwise the chat template renders earlier turns differently and the prompt cache misses.


Vision-Language Models (VLM)

VLMs are automatically distinguished from their text-only counterparts by the presence of a vision_config section in config.json.

A checkpoint with a VLM model_type loads text-only when vision_config is absent, null, or {}, when language_model_only is true, or when its weights carry no vision tower (vision_tower.*, model.visual.*, and similar prefixes). Text requests run normally; an image or video request fails, on the Qwen-VL families with model <path> was loaded without a vision tower (text-only checkpoint). For Qwen 3.5, language_model_only: true wins even when vision weights ship (a notice goes to stderr), and a non-boolean value is rejected at load.

Model Family Variant Architecture Key (model_type) Vision Encoder
Gemma 3 VLM Gemma 3 Vision gemma3 with vision_config SigLIP 2
Gemma 3n VLM Gemma 3n Vision gemma3n with vision_config MobileNetV5
Gemma 4 VLM Gemma 4 Vision gemma4 with vision_config Gemma 4 ViT
Gemma 4 Unified Gemma 4 Unified gemma4_unified Encoder-free patch projection for text + vision + audio. The only family that accepts video and audio in the same prompt
Llama 4 VLM Llama 4 Scout / Maverick llama4 with vision_config Llama 4 ViT
Qwen2-VL Qwen2-VL qwen2_vl Custom ViT with MRoPE
Qwen2.5-VL Qwen2.5-VL qwen2_5_vl Windowed ViT with MRoPE
Qwen3-VL Qwen3-VL qwen3_vl ViT + DeepStack interleaved MRoPE
Qwen3-VL-MoE Qwen3-VL-MoE qwen3_vl_moe Qwen3-VL + MoE text backbone
Qwen 3.5 VLM Qwen 3.5 VLM qwen3_5 with vision_config Qwen3-VL encoder. MTP speculative decoding applies to text-only requests; a request with images or video declines MTP and decodes plainly
Qwen 3.5 MoE VLM Qwen 3.5 MoE VLM qwen3_5_moe with vision_config Qwen3-VL encoder + MoE
MiMo-V2 MiMo-V2 / V2.5 / V2.6 mimo_v2 MiMo v2 Flash text decoder plus the mimovl vision tower: fused per-shard QKV with per-shard FP8 scale grids, MXFP4 routed experts, learned per-head sinks on windowed blocks, and the shared Qwen2.5-VL image and video runtime. Audio is not supported. Real-checkpoint validation is pending because the published checkpoint does not fit the development machines; loader and fixture-parity tests cover the layouts
Qwen3.8-Flash-Next Qwen 3.8 Flash-Next (Qwen4-Exp) qwen4_exp Qwen4-Exp vision tower over a Qwen 3.5-style GatedDeltaNet hybrid text stack: 512-expert top-10 MoE with a sigmoid-gated shared expert, zero-centered RMSNorm weights, low-rank gated hyper-connections, and interleaved MRoPE. Qwen Sparse Attention runs with native Metal prefill and sparse decode. Accepts text, image, and video input. An external n-gram table (text_config.ple_storage) stays on disk behind a bounded row cache, routed experts stream from the SSD on Metal, and prompt-cache snapshots restore the whole per-sequence state. Pairs with its native MTP head as a drafter, either embedded in the target conversion or split out. FP8 checkpoints are refused at load
Cohere Compass North-Micro-Vision cohere_compass Qwen3-VL tower with DeepStack mergers + Command-style parallel decoder
Youtu-VL Youtu-VL youtu_vl SigLIP2 windowed-attention encoder + DeepSeek-V3-style MLA
InternVL InternVL Chat internvl_chat InternViT + pixel-shuffle connector + Qwen2 text
LLM-jp-VL LLM-jp-4 VL / Jagle-VL llmjpvl SigLIP2-so400m + InternVL-style dynamic tiling + pixel-shuffle connector; Llama or Qwen3 text backbone
LLaVA LLaVA / LLaVA-Next llava or llava_next CLIP or SigLIP + Llama/Qwen2
LLaVA-Bunny LLaVA-Bunny llava_bunny, bunny-llama, llava-qwen2 SigLIP + Qwen2
Aya Vision Aya Vision aya_vision SigLIP + Cohere2
PaliGemma PaliGemma ½ paligemma SigLIP + Gemma
Pixtral Pixtral pixtral ViT with 2D RoPE + Mistral
Mistral 3 VLM Mistral 3 Vision mistral3 with vision_config Pixtral ViT + PatchMerger
Phi 3.5 Vision Phi 3.5 Vision phi3_v CLIP + Phi 3
Phi 4 MM Phi 4 Multimodal phi4mm SigLIP2 NaFlex + Phi4 (image only)
Phi 4 SigLIP Phi 4 Reasoning Vision phi4-siglip SigLIP2 NaFlex + Phi3-style text
Molmo Molmo v1 molmo CLIP ViT + attention pooling + OLMo-style text
Molmo2 Molmo2 molmo2 Custom ViT + attention pooling
Molmo-Point Molmo-Point molmo_point Molmo2-style vision stack with point-prediction head
MiniCPM-o MiniCPM-o minicpmo Dynamic SigLIP + resampler + Qwen3-VL text
MiniCPM-V 4.6 MiniCPM-V 4.6 minicpmv4_6 SigLIP + VitMerger + Merger + Qwen3.5 text
Moondream3 Moondream3 moondream3 Custom ViT + custom text decoder
Moondream2 Moondream2 moondream2 (also moondream1) Moondream3 ViT + dense Phi text
Nemotron H Nano Omni Nemotron H Nano Omni nemotron_h_nano_omni or nemotronh_nano_omni_reasoning_v3 Vision-capable Nemotron-H variant; optional audio path is loaded when present
Llama 3.2 Vision mllama mllama Tiled ViT with gated cross-attention layers spliced into the Llama-3 text backbone
GLM-4V GLM-4V glm4v GLM-4V ViT (3D patch embedding, SwiGLU merger) + GLM-4 text with sectioned even/odd MRoPE
GLM-4V MoE GLM-4.5V-class glm4v_moe GLM-4V ViT + GLM-4 MoE text with sectioned half-split MRoPE
GLM-OCR GLM-OCR glm_ocr GLM-4V-style ViT (OCR-oriented) + GLM-4 text
SmolVLM / SmolVLM2 / Idefics3 SmolVLM family smolvlm, smolvlm2, or idefics3 SigLIP + pixel-shuffle token compression + Llama/SmolLM2 text; one shared runtime for both on-disk layouts
Idefics2 Idefics2 idefics2 SigLIP + perceiver-resampler connector + Mistral text
PaddleOCR-VL PaddleOCR-VL paddleocr_vl NaViT dynamic-resolution SigLIP-style encoder + ERNIE-4.5 text with MRoPE
dots.ocr dots.ocr dots_ocr dots_vit dynamic-resolution ViT + Qwen2 text decoder
Kimi-VL / Kimi-VL 2.5 Kimi-VL kimi_vl (also kimi_k25) MoonViT native-resolution encoder + DeepSeek-V3-style MoE text. Accepts video as well as images: 3D MoonViT patch embedding covers both
Kimi K3 VLM Kimi K3 kimi_k3 with vision_config and vision_tower.* tensors MoonViT3D native-resolution tower + patchmergerv2 projector in front of the Kimi K3 text backbone. No native video path, so a clip goes through the video-frames fallback as ordered images. One request's images may use at most 32768 media tokens (MLXCEL_KIMI_K3_MAX_MEDIA_TOKENS)
LFM2-VL LFM2-VL lfm2_vl or lfm2-vl Packed-patch SigLIP2 ViT + pixel-unshuffle projector + LFM2 hybrid text
Granite Vision Granite Vision granite_vision (or llava_next with a Granite text config) SigLIP with four intermediate feature taps + Granite text
Granite 4 Vision Granite 4 Vision granite4_vision SigLIP + eight window-QFormer projectors feeding a Granite 4 hybrid text backbone
DeepSeek-OCR DeepSeek-OCR deepseekocr SAM-style ViT-B + CLIP-style ViT-L + DeepSeek MoE decoder
DeepSeek-OCR 2 DeepSeek-OCR 2 deepseekocr_2 SAM-style ViT-B + Qwen2-shaped query resampler + DeepSeek MoE decoder
GOT-OCR 2.0 GOT-OCR2_0 GOT SAM-style ViT-B on a fixed 1024x1024 canvas (256 feature rows per page) + Qwen2-0.5B decoder. One image per request; the checkpoint ships no chat template, so mlxcel supplies the fixed OCR conversation and the instruction text selects the mode (OCR:, OCR with format:, a [x1,y1,x2,y2] region, or a [red] color-marked region)
DeepSeek-VL2 DeepSeek-VL2 deepseek_vl_v2 (also deepseek_vl2) SigLIP-style ViT + DeepSeek-V2 MoE (MLA) decoder
FastVLM FastVLM fastvlm or llava_qwen2 FastViTHD hybrid encoder + Qwen2 text
ERNIE-4.5 MoE VL ERNIE-4.5 MoE VL ernie4_5_moe_vl or ernie4.5_moe_vl DFNRope ViT + variable-resolution resampler + modality-split MoE text with 3D MRoPE
Hunyuan-VL Hunyuan-VL (e.g. HunyuanOCR) hunyuan_vl ViT with a perceive merger + Hunyuan dense text with XD-RoPE
Qwen3-Omni MoE Qwen3-Omni (thinker + talker) qwen3_omni_moe Qwen3-VL-MoE vision/text stack + audio tower; optional speech output (talker + code2wav vocoder) via --output-audio
MiniMax-M3-VL MiniMax-M3-VL minimax_m3_vl ViT + MiniMax-M3 hybrid dense/MoE text with block-sparse attention
Unlimited-OCR Unlimited-OCR unlimited_ocr (also unlimited-ocr) OCR-oriented encoder + ring sliding decode cache
Florence-2 Florence-2 base-ft florence2 DaViT tower + BART encoder-decoder. Encoder-decoder (seq2seq), not autoregressive; see Vision-Language Models
LocateAnything LocateAnything 3B locateanything MoonViT native-resolution tower + Qwen2 text. Generative grounding: boxes arrive as <box> and coordinate tokens in the ordinary text stream
Falcon-OCR Falcon-OCR 300M falcon_ocr No vision tower. Each 16x16 patch goes through one linear projector straight into the token stream of a single hybrid-mask decoder
Jina VLM jina-vlm jvlm (also jina_vlm) SigLIP-so400m-class ViT + Molmo-style pooling connector + Qwen2-class text with an OLMo tensor layout
Muse Glimmer Meta Muse Glimmer 30B muse_glimmer Dense BF16 and pinned affine Q4 checkpoints; single-process only (no TP or PP). Speculative decoding runs only with its own DFlash assistant drafter on mlxcel-server, for text-only requests
Step Step-3.7 step3p7 Perception encoder ViT + Step-3.5 MoE text
Mage-VL Mage-VL 4B mage_vl (MageVLForConditionalGeneration) Mage-ViT tower with Qwen2-VL smart_resize (patch 16, 2x2 merge) + Qwen3-4B decoder with 1-D RoPE. Image input only. Validated on microsoft/Mage-VL and mlx-community/Mage-VL-8bit. Codec-native video, frame-sampled video, LoRA, and tensor parallelism are not supported
Inkling Inkling (text) / Inkling VLM inkling_mm_model or inkling Hybrid sliding and global NoPE attention with learned banded relative-position logits and routed plus shared experts. Loads bf16/f32 weights, ModelOpt NVFP4 expert planes, and pre-converted affine 4-bit experts. The VLM form (detected from vision_config plus vision weights) takes image, video, and audio (dMel) input. Both forms have a native chained-MTP drafter (see MTP and DFlash)
Nemotron-Parse Nemotron-Parse 2.0 nemotron_parse C-RADIOv2-H tower + mBART decoder. Encoder-decoder (seq2seq) document OCR and layout model with its own CLI driver and single-stream server worker, like Florence-2. One image per request; see Vision-Language Models

Audio Models

Audio-only checkpoints do not use the text-generation worker. Start a dedicated server and use the OpenAI Audio API, or for Nemotron VoiceChat the Realtime VoiceChat API.

Model Detection Direction Current limits
Whisper model_type: whisper (whisper) Speech-to-text transcription and English translation WAV input, fp16/f32 weights, greedy decoding
Kokoro-82M istftnet config or kokoro-v1_0.safetensors Text-to-speech American-English G2P, WAV output, voice packs under voices/
Nemotron VoiceChat model_type: nemotron_voicechat Full-duplex speech-to-speech (16 kHz in, 22.05 kHz out, 80 ms frames) Built-in Aria voice only, batch 1; offline through mlxcel generate --audio, served only on the /v1/realtime WebSocket, one session at a time

Regional and Specialized Models

Model Family Variant Architecture Key (model_type) Notes
Baichuan Baichuan M1 baichuan_m1
GLM GLM 4 glm4
ERNIE ERNIE 4.5 ernie4_5 or ernie4.5
Hunyuan Hunyuan Dense hunyuan_v1_dense or hunyuan_dense
Hunyuan Hunyuan (auto) hunyuan (with num_experts == 1) Dense auto-detected
ExaOne ExaOne exaone Korean LLM
ExaOne ExaOne 4 exaone4

Embedding Models

Embedding checkpoints run through mlxcel embed or the embedding server routes rather than text generation. Detection checks encoder-only model_type values, known embedding architectures, a sentence-transformers Pooling module, or 1_Pooling/config.json. See Embedding and Reranking APIs for serving and Embeddings and Reranking for the model contracts.

Dense Text Embeddings

Family Detection key Pooling Validated checkpoint Recipe
BERT / MiniLM bert Checkpoint, commonly mean sentence-transformers/all-MiniLM-L6-v2; intfloat/multilingual-e5-small Recipe
XLM-RoBERTa xlm-roberta Checkpoint, commonly CLS BAAI/bge-m3 Recipe
ModernBERT modernbert Checkpoint or mean default nomic-ai/modernbert-embed-base Recipe
SigLIP text tower siglip Fixed last position google/siglip-base-patch16-224; text only Recipe
EmbeddingGemma gemma3_text or bidirectional gemma3 architecture Mean plus two dense projections mlx-community/embeddinggemma-300m-4bit Recipe
Qwen3-Embedding qwen3 embedding architecture/layout Last token Qwen/Qwen3-Embedding-0.6B Recipe
Bidirectional Llama / LLM2Vec llama_bidirec or LlamaBidirectionalModel Mean nvidia/llama-nemotron-embed-1b-v2 Recipe
Nemotron-3-Embed Non-causal ministral3 Mean nvidia/Nemotron-3-Embed-1B-BF16 Recipe
LFM2.5-Embedding lfm2 with Lfm2BidirectionalModel CLS LiquidAI/LFM2.5-Embedding-350M Recipe

Multimodal and Late-Interaction Embeddings

Family Detection key Output Validated checkpoint Recipe
Qwen3-VL-Embedding qwen3_vl embedding architecture One pooled text or image vector Qwen/Qwen3-VL-Embedding-2B Recipe
Llama-Nemotron-VL-Embed llama_nemotron_vl One pooled text or image vector nvidia/llama-nemotron-embed-vl-1b-v2 Recipe
EmbeddingGemma 2 embedding_gemma2, embedding_gemma2_text, or EmbeddingGemma2Model One pooled text vector, or an image vector when the checkpoint carries a vision tower; in-model projection 512 to 768, mean pooling, L2 normalization, Matryoshka 768 / 512 / 256 / 128 google/embeddinggemma-2, mlx-community/embeddinggemma-2-bf16 (bf16 kept at load) Recipe
ColIdefics3 idefics3, ColIdefics3 One normalized 128-dimensional vector per token vidore/ColSmolVLM-Instruct-256M-base with merged retrieval weights Recipe
ColQwen2.5 qwen2_5_vl or colqwen2 retrieval architecture One normalized 128-dimensional vector per token vidore/colqwen2.5-base with merged retrieval weights Recipe

Qwen3-VL-Embedding, Llama-Nemotron-VL-Embed, and EmbeddingGemma 2 return a single vector for an image; an EmbeddingGemma 2 checkpoint without a vision tower, such as embedding_gemma2_text, refuses image inputs. ColIdefics3 and ColQwen2.5 return a token-vector matrix and must be ranked with MaxSim. A LoRA-only late-interaction repository is rejected; merge the adapter into a complete checkpoint first. The SigLIP embedding family exposes only its text tower.

Reranker Models

Rerankers are served through mlxcel rerank or any of the reranking routes. All supported kinds return a relevance score in [0, 1].

Family Selection Score Validated checkpoint Recipe
BERT cross-encoder One-label BertForSequenceClassification; auto-detected from -m sigmoid(logit) cross-encoder/ms-marco-MiniLM-L6-v2 Recipe
XLM-RoBERTa cross-encoder One-label XLMRobertaForSequenceClassification; auto-detected from -m sigmoid(logit) BAAI/bge-reranker-v2-m3 Recipe
ModernBERT cross-encoder One-label ModernBertForSequenceClassification; auto-detected from -m sigmoid(logit) Alibaba-NLP/gte-reranker-modernbert-base Recipe
Qwen3 generative reranker Explicit --reranker-model sigmoid(logit("yes") - logit("no")) mlx-community/Qwen3-Reranker-0.6B-4bit Recipe
Qwen3-VL multimodal reranker Explicit --reranker-model The same yes/no score over text and images Qwen/Qwen3-VL-Reranker-2B Recipe

Only one-label sequence classifiers can be identified as rerankers from -m alone. A generative checkpoint is indistinguishable from an ordinary generator at detection time, so the explicit secondary flag selects its ranking semantics. Qwen3-VL supports image-bearing queries and documents, processes image rows individually, and does not rerank video.


Object Detection Models

Object-detection models do not emit a token stream. Use the dedicated mlxcel detect command, which loads the checkpoint, runs the image processor, and prints bounding boxes in text or JSON format.

Model Family Variant Detection Key Notes
RT-DETRv2 RT-DETRv2 / Docling layout checkpoints architectures: ["RTDetrV2ForObjectDetection"] or compatible RT-DETRv2 config Supports pre-converted MLX checkpoints and raw HuggingFace RT-DETRv2 weights, which are translated to MLX layout at load time.
YOLO11 OmniParser v2 icon detect model_type: yolo11 Fixed OmniParser v2 icon_detect topology: C3k2 backbone, SPPF, C2PSA neck, and an anchor-free DFL head at strides 8, 16, and 32. Accepts converted MLX checkpoints with a matching ch / stride; --threshold defaults to 0.05, --size sets the longest side before letterboxing, and --iou sets NMS (default 0.1, at most 300 boxes). Validated on axiom-of-choice/OmniParser-v2-icon-detect

Example:

mlxcel detect -m mlx-community/docling-layout-heron-mlx-bf16 -i page.png --format json
mlxcel detect -m axiom-of-choice/OmniParser-v2-icon-detect -i ui.png --size 1280 --format json

Dense Prediction and Token-Level Models

Three further families of checkpoints do not produce a chat token stream and each has its own subcommand.

Surface Subcommand Families Guide
Depth, normals, segmentation, point maps, keypoints, masks, meshes mlxcel predict DINOv2, Sapiens2, SAM 3 and SAM 3.1, Video Depth Anything, MoGe3, SAM 3D Objects, SAM 3D Body Dense Prediction and Vision Tasks
Object boxes, optionally with instance masks mlxcel detect RT-DETRv2, PP-DocLayoutV3, RF-DETR Base and Seg Small (--masks-dir) CLI Reference
Fixed-label token classification and request-time span extraction mlxcel tag, mlxcel extract BERT / XLM-RoBERTa ForTokenClassification, OpenAI Privacy Filter, GLiNER2.5 Token Classification and Span Extraction

Image-generation checkpoints are a fourth surface (mlxcel generate-image, and /v1/images/generations and /v1/images/edits behind --image-model). The families are FLUX.2 Klein (flux2), Z-Image (z_image), Prism Bonsai ternary FLUX.2 Klein (bonsai), ERNIE-Image (ernie_image), Mage-Flow (mage_flow), Qwen-Image-2.1 (qwen_image), Ideogram 4 (ideogram4), Ming-Image-0.1-Design (ming_image), and LLaDA-Image (llada_image). Image Generation lists checkpoints, tasks, and default steps.

Page OCR pipelines load a whole document through mlxcel generate rather than through a subcommand. IndicOCR (indic_ocr) pairs a PP-DocLayoutV3 layout stage with a Qwen3.5-0.8B block transcriber for English and 22 Indian languages, and returns Markdown in reading order or a block JSON file:

mlxcel generate -m HashNuke/indic-ocr-mlx --image page.png --output-json page.json

--table-format markdown renders tables as GitHub-flavored Markdown instead of HTML, and -n/--max-tokens overrides the 2048-token per-block default. A prompt is not needed because each region's instruction comes from its layout class. --layout-detections FILE replays detection JSON from mlxcel detect instead of running the layout stage.


Code Models

Model Family Variant Architecture Key (model_type) Notes
StarCoder StarCoder 2 starcoder2 Code generation
IQuest IQuest-Coder V1 Loop iquestloopcoder 40B-Loop Instruct and Thinking checkpoints, also detected from architectures: ["IQuestLoopCoderForCausalLM"]. A Llama-shaped decoder that runs its layers twice over the same tokens with the same weights: in pass 2 each layer mixes attention over pass 1's K/V and a 64-token sliding window over its own K/V through a per-head sigmoid gate. Only loop_num: 2 is accepted. KV cache modes are FP16 only, and --max-kv-size does not bound the pass-1 cache
IQuest IQuest-Coder V1 iquestcoder 7B / 14B / 40B Base, Instruct, and Thinking checkpoints on the shared Llama decoder under their own label; also detected from architectures: ["IQuestCoderForCausalLM"] on a checkpoint relabelled llama. A non-null clip_qkv or an active sliding window is refused at load because the shared decoder implements neither. Pipeline parallelism is available; tensor parallelism is not

Model Detection

Architecture detection is performed in src/models/detection.rs. Generation families primarily match config.json::model_type; task-kind detection first checks embedding layouts and supported one-label sequence-classification heads so they are not misrouted to generation.

For models that have both text-only and vision-language variants (Gemma 3, Llama 4, Qwen 3.5, Mistral 3, Gemma 3n), detection is automatic:

if config.json contains "vision_config" key
    => load as VLM
else
    => load as text-only model

Florence-2 is an encoder-decoder family. It is detected the same way, from model_type: florence2, but it does not join the shared autoregressive loop: mlxcel generate drives its own seq2seq pipeline and mlxcel-server serves it through a dedicated single-stream worker rather than the batched or paged scheduler. Nemotron-Parse (model_type: nemotron_parse) follows the same pattern.

For the Hunyuan family, detection is based on num_experts:

if num_experts > 1  => HunyuanMoe
else                => HunyuanV1Dense

Embedding detection also recognizes encoder-only families, known embedding architecture names, a sentence-transformers Pooling module, or 1_Pooling/config.json. A supported ForSequenceClassification architecture always selects reranking before those embedding rules. Generative Qwen3 and Qwen3-VL rerankers require --reranker-model because their configuration is an ordinary generation configuration.

Quantization Formats

Quantization is read from the quantization block of config.json. Besides affine 4-bit and 8-bit and the MXFP4, MXFP8, and NVFP4 modes, mlxcel loads affine 1-bit checkpoints (bits: 1, group_size 32, 64, or 128, with .scales and .biases): Metal runs them with fused 1-bit kernels, and CUDA and ROCm run the dequantize graph. Only dense linears and embeddings may be 1-bit; 1-bit MoE expert stacks, 1-bit MLA per-head projections, and 1-bit planes without .biases are refused at load. MLXCEL_ONE_BIT_KERNEL=0 forces the dequantize graph on Metal. Validated on prism-ml/Bonsai-1.7B-mlx-1bit and prism-ml/Bonsai-8B-mlx-1bit (qwen3). See Quantization Support for per-backend behavior.

The fine-grained FP8 hub builds (quantization_config: {"quant_method": "fp8", "fmt": "e4m3", "weight_block_size": [128, 128]}) and llm-compressor's compressed-tensors float-quantized exports both load: mlxcel reconstructs raw E4M3 bytes with their block or channel scale and requantizes each tensor to MLX-native mxfp8, one tensor at a time. Compressed-tensors accepts per-output-channel and block scales; strategy: "tensor" or "group", another num_bits, and dynamic weights are named load errors. Validated on RedHatAI/Qwen3.5-4B-FP8-dynamic against its bf16 base; the per-channel scale is load-bearing, and traces without it produce non-finite logits.

Adding a New Model

See the Adding Models guide for the complete checklist.