Ternary Bonsai 2 9B — MLX 2-bit with Q4 MTP
Prism ML's Ternary Bonsai 2 9B checkpoint, mirrored by EigenLabs for compatible MLX runtimes on Apple silicon. The packed language weights, vision tower, tokenizer, chat template and optional MTP head retain the publisher's bytes.
Artifact
| Property | Value |
|---|---|
| Architecture | Qwen3.5-9B backbone; prism_hadamard_qwen35 |
| Language stack | 32 layers: 24 linear-attention and 8 full-attention layers; hidden size 4096 |
| Inputs / output | Text and images / text |
| Declared context | 262144 tokens; supported serving limits depend on runtime and hardware qualification |
| Language weights | Ternary values in affine 2-bit, group size 128, with signed block-Hadamard transforms |
| Vision tower | Included in the base weights, retained in FP16 |
| Base weight file | 3,462,149,260 bytes |
| Optional MTP | Separate mtp/ directory; affine Q4/group-64 head, 136,884,309 bytes |
| License | Apache 2.0 |
The 2-bit label describes the packed language weights, not every tensor. Download size is not a minimum-RAM requirement; context, image processing, batching, cache buffers and the optional assistant all consume memory.
Runtime support
Use a loader that explicitly supports prism_hadamard_qwen35 and its signed
Hadamard transforms. Treating this as an ordinary affine-2-bit Qwen checkpoint
does not preserve the model's computation.
Darkbloom's native integration is under review in MLX Swift LM #311 and d-inference #1509. It preserves the native tokenizer, reasoning and tool-call template, and adds checkpoint-specific image processing and validated assistant loading. Publication of these files does not activate a hosted model.
The publisher's usage examples, sampling guidance and bundled Python runtime are preserved in UPSTREAM-README.md and PACK-RUNTIME.md. Their compatibility and benchmark statements describe the publisher's runtime; they are not Darkbloom qualification results.
MTP enabled by default in native d-inference
The Q4 draft head is separate from the target weights. The prepared native
d-inference policy enables MTP by default (mtp_mode = "auto") for the exact
Prism and EigenLabs 9B identities. It selects rectangular verification, exact
acceptance and speculative depth two. A validated local assistant override
takes precedence; otherwise the runtime resolves a separately qualified catalog
assistant and attaches it when the model is idle. Explicit off, the process
kill switch, failed validation or insufficient memory retain plain generation.
Depth two is a runtime setting, not a count of trained prediction layers.
The published mtp/config.json still declares zero MTP layers. Native
qualification used a separate configuration changing only that count to one,
matching the tensor inventory. This mirror preserves the original configuration
and does not silently repair it. See NATIVE-MTP-NOTE.md for
the original and derived hashes. A recursive base-weight loader must not ingest
the separate assistant file as additional target weights.
Validation and limitations
All publisher runtime files match the pinned source revision. A bounded Debug probe passed 21 text requests across plain, serial MTP and rectangular MTP, with 14 cross-profile output comparisons and 12 repetition comparisons. Both assistant modes activated and executed the expected verification rounds. These checks do not establish general output quality or a speed guarantee.
Image quality, sampled whole-model equivalence, full memory/concurrency coverage and hosted end-to-end qualification remain separate release gates. Known arithmetic, reversal and OCR failures remain documented in the integration notes. The declared context length is not a measured deployment limit.
Source and attribution
Original model and training: Prism ML. Source:
prism-ml/Ternary-Bonsai-2-9B-mlx-2bit,
revision f4e28a59531731c41b6dfac88cf271bd58f0a287.
- Base SHA-256:
b8ebd13459dcd53504432a4a0a797287c3a4c00d80835466dbb499f05b7512bb. - MTP SHA-256:
8968d94855ba38809a4ff5b6e20f4856757b64fdbbbd84511e4bea371764faba.
See artifact-provenance.json, SHA256SUMS.json, NOTICE.txt and the preserved upstream model card for file identities and attribution. Pin an immutable Hugging Face revision when consuming this repository.