Downloads · 30 days
191
8% of all-time downloads
r0b0tlab/Ornith-1.5-35B-A3B-NVFP4-W4A16
Ornith-1.5-35B-A3B-NVFP4-W4A16 is a image-text-to-text model from r0b0tlab. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for sglang. The card lists the license as mit.
NVFP4 W4A16 weight-only quantization of ornith-ai/Ornith-1.5-35B-A3B (revision e4dfb35a93d4b6822a811a7676f3488514abe7e2), produced with NVIDIA Model Optimizer (dev 913f5e224) using the official w4nvfp4 recipe preset.…
Downloads · 30 days
191
8% of all-time downloads
All-time downloads
2.3K
Public
Parameters
18.3B
23.6 GB on disk
Likes
5
Public
Click a slice to open those files.
.safetensors23.6 GB · 100%
How the weights are stored.
U816.8B · 88%
From the Hugging Face model README
NVFP4 W4A16 weight-only quantization of
ornith-ai/Ornith-1.5-35B-A3B
(revision e4dfb35a93d4b6822a811a7676f3488514abe7e2), produced with
NVIDIA Model Optimizer (dev 913f5e224) using the official w4_nvfp4
recipe preset. FP4 weights (block-16, E4M3 block scales) with BF16
activations, plus an FP8-E4M3 KV cache cast. The bundled MTP head is kept
in BF16 and served with SGLang EAGLE/nextn speculative decoding.
5a7b26c63) on Blackwell-class NVIDIA
GPUs; validated on DGX Spark GB10/SM121This checkpoint is a self-quantization by r0b0tlab. It is an independent community artifact and is not affiliated with, endorsed by, or produced by Ornith AI or NVIDIA.
| Item | Value |
|---|---|
| Tool | NVIDIA Model Optimizer, dev tree @ 913f5e224 (examples/hf_ptq recipe flow) |
| Format | NVFP4 W4A16 weight-only: 4-bit E2M1 weights, block size 16, E4M3 per-block scales, scalar FP32 per-tensor scale |
| Scope | All Linear targets (routed experts, shared experts, dense attention projections, GDN linear-attention projections); lm_head, embeddings, routers, conv1d, MTP left in BF16 |
| Recipe | w4_nvfp4 preset (max calibration) + default_disabled_quantizers + kv_fp8_cast |
| Calibration | cnn_nemotron_v2_mix (CNN/DailyMail + NVIDIA Nemotron Post-Training Dataset v2 mix), 1024 samples × 1024 tokens, batch 16 |
| KV cache | FP8-E4M3 with constant amax (cast; NVFP4 KV unavailable on aarch64) |
| MTP head | 785 BF16 tensors re-attached verbatim from the source checkpoint (byte-identical, SHA-256 audited) |
Fixed scorer (final-numeric-answer extraction). n = 80/40/40/20 per family; ±5–11 pp noise bands apply at these sample sizes.
| Family | BF16 baseline | This model (base AR) | This model + MTP |
|---|---|---|---|
| GSM8K (flex) | 76.25% (61/80) | 76.25% (61/80) | 78.75% (63/80) |
| HumanEval pass@1 | 92.50% (37/40) | 92.50% (37/40) | 95.00% (38/40) |
| IFEval (strict subset) | 90.00% (36/40) | 90.00% (36/40) | 90.00% (36/40) |
| Agentic coding | 70.00% (14/20) | 75.00% (15/20) | 85.00% (17/20) |
No measurable quality loss. Speculative decoding with the BF16 MTP head (K=1 draft): mean accept length 1.737, accept rate 0.737 over 964 decode batches. Decode throughput on DGX Spark (GB10): 63–77 tok/s single-request with CUDA graphs (vs 38.6 tok/s for an experts-only variant).
Per-tensor NVFP4 reconstruction cosines vs BF16: experts 0.9956–0.9973; dense/GDN projections 0.967–0.986 (expected for plain max calibration on outlier-rich projections; no end-to-end effect observed on this suite).
Validated command line (SGLang 0.5.6.post3.dev9218+g5a7b26c63, FlashInfer
0.6.17, torch 2.13.0+cu130):
python -m sglang.launch_server \
--model-path r0b0tlab/Ornith-1.5-35B-A3B-NVFP4-W4A16 \
--served-model-name Ornith-1.5-35B-A3B \
--trust-remote-code \
--attention-backend triton \
--moe-runner-backend marlin \
--context-length 32768 \
--kv-cache-dtype fp8_e4m3 \
--mem-fraction-static 0.80 \
--speculative-algorithm EAGLE \
--speculative-num-steps 1 \
--speculative-eagle-topk 1 \
--speculative-num-draft-tokens 2 \
--port 8000
Thinking-off protocol: pass chat_template_kwargs: {"enable_thinking": false}
in chat completion requests.
A ready-to-run Docker image with a pre-warmed FlashInfer JIT cache and a one-command compose file is available at github.com/r0b0tlab/ornith-15-35b-nvfp4-w4a16-sm121-sglang.
--moe-runner-backend auto may resolve to flashinfer_trtllm, which is
not implemented for NVFP4 MoE in this SGLang version — pin marlin (as
above).FROZEN_KV_MTP is not implemented for the qwen3_5 MTP head; use
--speculative-algorithm EAGLE (the draft architecture is auto-remapped
to Qwen3_5ForCausalLMMTP).curl -s http://127.0.0.1:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Ornith-1.5-35B-A3B",
"messages": [{"role": "user", "content": "What is 19*23? Answer with just the number."}],
"temperature": 0, "max_tokens": 32,
"chat_template_kwargs": {"enable_thinking": false}
}'
# expect "437"
Reproduction scripts (200-question suite, scorer, audits) live in the GitHub repo above; the full evidence trail (serve logs, quant logs, audit JSON) is described there.
913f5e224) — w4_nvfp4 / kv_fp8_cast recipe units.0.5.6.post3.dev9218+g5a7b26c63) with FlashInfer
0.6.17 CUTLASS FP4 GEMM kernels and Marlin
W4A16 MoE kernels.The base model is MIT-licensed; this derived quantization is distributed under MIT as well. Calibration datasets remain under their own licenses.
@misc{ornith15nvfp4w4a16,
author = {r0b0tlab},
title = {Ornith-1.5-35B-A3B-NVFP4-W4A16: NVFP4 weight-only quantization with BF16 MTP head},
year = {2026},
url = {https://huggingface.co/r0b0tlab/Ornith-1.5-35B-A3B-NVFP4-W4A16},
note = {Quantized from ornith-ai/Ornith-1.5-35B-A3B with NVIDIA ModelOpt}
}