Instructions to use knoopx/Ornith-1.5-35B-A3B-NInfer with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NInfer
How to use knoopx/Ornith-1.5-35B-A3B-NInfer with NInfer:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Ornith-1.5-35B-A3B-MTP β NInfer Artifact Card
This card documents the derived NInfer .ninfer inference artifact for the
ornith-ai/Ornith-1.5-35B-A3B model, not the upstream Hugging Face repository itself.
Ornith-1.5-35B-A3B is a Qwen 3.5 Mixture-of-Experts (MoE) multimodal language model
(text + image input) with a DFlash multi-token-prediction (MTP) draft head. The upstream
repo publishes BF16 safetensors (17 shards, ~143.84 GB). This artifact is a single
groupwise-quantized NInfer bundle built from that BF16 source, intended for serving
through the NInfer engine.
This MTP variant replaces the shipped Ornith-1.5 MTP head β which was untrained
(random-init, 21β32% draft acceptance) β with a trained MTP head from
1.8Γ** improvement and +21.5% decode throughput (336.5 vs 277.0 tok/s). See the Benchmark section.shisa-ai/Ornith-1.5-35B-A3B-MTP-ONLY. In our measured comparison on a prose prompt (this host, RTX 5090, single-stream CLI, spec flags from models.nix), the trained head reaches 39.0% overall draft acceptance vs 21.8% for the native head β a **
Scope note. This is a derived inference artifact. The upstream
ornith-ai/Ornith-1.5-35B-A3Brepository remains the source of truth for the model weights and the canonical (MIT-licensed) distribution. What is described here is a derived, quantized, engine-specific container produced by the conversion run.
Model Architecture
| Property | Value |
|---|---|
| Architecture | qwen3_5_moe (Qwen 3.5 MoE) |
| Internal model id | qwen3.6-35b-a3b |
| Hidden layers | 40 |
| Experts | 256 (8 active per token, A3B β 3B active) |
| Hidden size | 2048 |
| Attention | GQA β 16 heads : 2 KV heads (head_dim 256) |
| Vocabulary size | 248,320 |
| Max position | 262,144 |
| Modality | Multimodal (text + image input); 27-layer vision encoder (hidden 1152, patch 16, out_hidden 2048) |
| MTP / draft | DFlash draft model β z-lab/Qwen3.6-35B-A3B-DFlash (DFlashDraftModel, 6 layers, 32/8 heads) |
| MTP head | Trained 15-tensor head from shisa-ai/Ornith-1.5-35B-A3B-MTP-ONLY (897,934,336 bytes, KL-distilled from the Qwen3.6-35B-A3B MTP head) |
| Base pin for front-end resources | Qwen/Qwen3.6-35B-A3B |
| License | MIT (base); Apache-2.0 (grafted MTP head, Qwen-derived) |
The NInfer Artifact
The single self-contained inference bundle produced from the BF16 source:
| Property | Value |
|---|---|
| Filename | Ornith-1.5-35B-A3B-MTP-w8g32-q4g64-q5g64-q6g64-bf16.ninfer |
| Size | 22,783,245,824 bytes (21.22 GiB) |
| SHA-256 | 178fbdf85758af554578b0051372b8f1523bd4be677abac139c9d7322a5b8ac9 |
| Objects | 940 (tensors 934 + resources 6) |
model_id |
qwen3.6-35b-a3b |
weights_id |
groupwise-int |
| Recipe | qwen3_6_35b_a3b-v2 |
Quantization scheme
The artifact uses groupwise mixed-precision integer quantization, applied on-the-fly at conversion time (Q4/Q5/Q6/W8). It is a mixed-precision layout: the four integer group-wise formats carry the bulk of the expert/MLP weights, while a set of tensors is kept in full BF16 precision.
Weight types present in the artifact:
| Weight type | Description | Notes |
|---|---|---|
w8g32 |
8-bit weights, 32-element group scale | integer, group-wise |
q4g64 |
4-bit weights, 64-element group | integer, group-wise |
q5g64 |
5-bit weights, 64-element group | integer, group-wise |
q6g64 |
6-bit weights, 64-element group | integer, group-wise |
bf16 |
Full precision | embeddings, layer norms, attention output projections, the grafted MTP head |
Format histogram
| Format | Count |
|---|---|
BF16 |
487 |
FP32 |
60 |
I32 |
1 |
W8G32_F16S |
195 |
Q4G64_F16S |
95 |
Q5G64_F16S |
91 |
Q6G64_F16S |
5 |
(934 tensors total; the four *_F16S group-wise counts together account for the 386
quantized tensors.)
Component tensor bytes
| Component | Bytes |
|---|---|
| main_text | 21,038,461,952 |
| mtp | 897,934,336 |
| vision | 280,664,992 |
| dflash | 410,053,632 |
| draft_head | 143,130,624 |
| total | 22,770,245,536 |
Provenance / Conversion
This artifact was produced by the NInfer source converter
(the NInfer converter source tree), running in groupwise-int4 mode (i.e. on-the-fly
group-wise quantization at conversion time) using the recipe qwen3_6_35b_a3b-v2.
Converter
- Module:
tools.convert.qwen3_6_35b_a3b.convert(in the NInfer converter source tree) - Recipe:
qwen3_6_35b_a3b-v2(recipe idRECIPE_ID = "qwen3_6_35b_a3b-v2") - Quantization mode: groupwise-int4 (Q4/Q5/Q6/W8 on the fly)
- Converter revision:
a9136e412b8418a8189152e91fdd571044d0450b - Sources:
- Base model:
ornith-ai/Ornith-1.5-35B-A3B(BF16safetensors, 17 shards) - DFlash draft model:
z-lab/Qwen3.6-35B-A3B-DFlash - Trained MTP head (graft):
shisa-ai/Ornith-1.5-35B-A3B-MTP-ONLYβ 15mtp.*tensors, 897,934,336 bytes. Initialized from theQwen/Qwen3.6-35B-A3BMoE MTP head, then re-aligned to Ornith-1.5 hidden states via full-vocabulary KL distillation (two-epoch code-heavy warm-start).
- Base model:
Conversion command
From the NInfer converter source tree:
PYTHONPATH=$PWD python -m tools.convert.qwen3_6_35b_a3b.convert \
--model /home/knoopx/models/llm/ornith/ornith-ai-Ornith-1.5-35B-A3B-base \
--dflash-model /home/knoopx/models/llm/ornith/z-lab-Qwen3.6-35B-A3B-DFlash \
--out out/ornith-1.5-35b-a3b-mtp.ninfer --device cpu
- Device:
cpu - Elapsed: 228.1 s
Front-end Resources
The bundle embeds the model's own 6 front-end resources (its own
chat_template.jinja and the other 5):
tokenizer.jsontokenizer_config.jsongeneration_config.jsonchat_template.jinjapreprocessor_config.jsonvideo_preprocessor_config.json
Note. Unlike the base
knoopx/Ornith-1.5-35B-A3B-NInferartifact (which embedded the base pin'schat_template.jinja), this artifact embeds the model's ownchat_template.jinjaβ prompt formatting behaviour matches the model's native template.Size delta. This artifact (22,783,245,824 bytes) is 256 bytes smaller than the existing untrained-MTP artifact
ornith-ai/Ornith-1.5-35B-A3B-w8g32-q4g64-q5g64-q6g64-bf16.ninfer(22,783,246,080 bytes). The delta is the size difference between the model's ownchat_template.jinja(embedded here) and the base pin'schat_template.jinja(embedded in the untrained-MTP artifact).
Benchmark
Measured on this host (RTX 5090, sm_120a), single-stream CLI, identical spec flags for both artifacts (--spec mtp --draft-tokens 5 --lm-head-draft --draft-adaptive --draft-adaptive-min 3 --prefill-chunk 4096 --vision), a 150-word prose prompt, --max-new 256, reproducible sampling (--temperature 0.6 --top-k 20 --top-p 0.95 --seed 0). The unfixed artifact is the native ornith-ai head; the fixed artifact is this card's trained shisa-ai head.
| Metric | Unfixed (ornith-ai) | Fixed (shisa-ai) | Ξ |
|---|---|---|---|
| MTP acceptance rate | 21.79% | 39.03% | +17.2 pts (1.79Γ) |
| MTP accepted tokens | 100 | 137 | +37 |
| MTP drafted tokens | 459 | 351 | β108 |
| MTP rounds | 154 | 117 | β37 |
| MTP acceptance length | 1.65 tok/round | 2.17 tok/round | +0.52 |
| MTP fallback steps | 1 | 1 | 0 |
| Decode tok/s (spec) | 276.95 | 336.51 | +59.56 (+21.5%) |
The fixed head drafts fewer tokens (351 vs 459) across fewer rounds (117 vs 154) but accepts more of them per round (2.17 vs 1.65 tok/round) β the signature of a stronger draft head that the target verifies more often, with less wasted speculative work.
Note. The shisa-ai head was trained with a code-heavy distribution, so the ~69% code / ~60% overall acceptance figures from the upstream repo are expected on code prompts. The numbers above are a prose prompt (the harder case for a code-tuned head) and therefore land lower; a code-generation prompt should approach the upstream figures. These prose numbers are the validated, reproducible baseline.
Serving
- Engine: NInfer β a custom C++ inference engine, built for CUDA 13,
sm_120a. - Served via: the NInfer engine.
- Model id:
shisa-ai/Ornith-1.5-35B-A3B-MTP - Capabilities: multimodal (text + image input); MTP (multi-token prediction) via the trained MTP head and the DFlash draft head.
Serving flags
--max-concurrency 2 \
--kv-capacity auto \
--kv-dtype int8 \
--spec mtp \
--draft-tokens 5 \
--lm-head-draft \
--draft-adaptive \
--draft-adaptive-min 3 \
--prefill-chunk 4096 \
--vision
| Flag | Meaning |
|---|---|
--max-concurrency 2 |
Two concurrent requests |
--kv-capacity auto |
Automatic KV-cache sizing |
--kv-dtype int8 |
INT8 KV cache |
--spec mtp |
Speculative decoding via the MTP/draft head |
--draft-tokens 5 |
Draft tokens per step |
--lm-head-draft |
Draft head uses the LM head |
--draft-adaptive / --draft-adaptive-min 3 |
Adaptive draft budget (minimum 3) |
--prefill-chunk 4096 |
4096-token prefill chunking |
--vision |
Enable the vision (image-input) path |
Known Issues & Limitations
- No quality benchmark run. No KL-divergence or perplexity comparison has been run on this artifact. Quantization fidelity is not validated by a benchmark.
- Not numerically validated. No smoke/quality run against this artifact has been completed; treat quantization fidelity as unmeasured.
- Speculative-decoding output correctness on the trained head was not independently re-validated for this artifact.
- Template: N/A β the model's own
chat_template.jinjais embedded (no mismatch).
License
The model base is released under the MIT license (the front-matter license: mit
field follows the knoopx artifact-repo convention for the derived container). The
grafted trained MTP head is a derivative of the Apache-2.0 Qwen/Qwen3.6-35B-A3B
MTP head. The quantization/conversion tooling (the NInfer inference engine) governs any
additional license terms on the engine itself.
Citation / Provenance
- Upstream repo:
ornith-ai/Ornith-1.5-35B-A3B(BF16 source) - Trained MTP head:
shisa-ai/Ornith-1.5-35B-A3B-MTP-ONLY - DFlash draft:
z-lab/Qwen3.6-35B-A3B-DFlash - Base front-end pin:
Qwen/Qwen3.6-35B-A3B - Inference engine: NInfer (CUDA 13,
sm_120a) - Converter:
tools.convert.qwen3_6_35b_a3b.convert(recipeqwen3_6_35b_a3b-v2), groupwise-int4 mode
- Downloads last month
- 58
Model tree for knoopx/Ornith-1.5-35B-A3B-NInfer
Base model
Qwen/Qwen3.6-35B-A3B