Decision 3.0 — MLX (Apple Silicon)
Collection
MLX (Apple Silicon) conversions of the Decision 3.0 System One decision models — runnable with mlx-vlm. • 6 items • Updated
How to use ahmedandaloes/d3-mlx with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download ahmedandaloes/d3-mlx --local-dir d3-mlx
MLX conversion of vllm-sr/d3, part of the Decision 3.0 collection — the System One code-readout decision model (Qwen3.5-VL backbone + a 255-way readout head).
pip install mlx-vlm transformers
from d3_mlx import D3MLX
m = D3MLX(".")
result = m.system_one(
"state text the model should treat as data",
{"route": {"type": "choice", "criteria": {"a": "first option", "b": "second option"}}},
)
print(result)
weights.safetensors — MLX backbone weights (remapped + transposed)readout.safetensors — the original 255-way readout head (unchanged)d3_mlx.py — MLX runtime: loader, prompt contract, decision pathconfig.json, decision_config.json, tokenizer files — copied from the original checkpointlanguage_model.* → language_model.model.*; language_model.visual.* → vision_tower.*linear_attn.conv1d.weight transposed [C,1,K] → [C,K,1]patch_embed.proj.weight transposed NCDHW → NDHWClayer_types list
(irregular patterns: the small models end with several full-attention layers; the 32/64-layer
models use a uniform every-4 pattern — the stock MLX class derives this and gets it wrong)lm_head dropped (embeddings are tied; only hidden states are needed)Numerics: BF16 backbone, FP32 readout + softmax — the same as the reference implementation.
Weights are unchanged from the original; only the format/layout was converted. Converted with mlx-vlm on an Apple M3 Max.
Quantized