Text Generation
Transformers
Safetensors
qwen3_5_moe
image-text-to-text
fp8
vllm
agentic-coding
Mixture of Experts
conversational
Instructions to use protoLabsAI/Ornith-1.0-35B-FP8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use protoLabsAI/Ornith-1.0-35B-FP8 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="protoLabsAI/Ornith-1.0-35B-FP8") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("protoLabsAI/Ornith-1.0-35B-FP8") model = AutoModelForMultimodalLM.from_pretrained("protoLabsAI/Ornith-1.0-35B-FP8") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use protoLabsAI/Ornith-1.0-35B-FP8 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "protoLabsAI/Ornith-1.0-35B-FP8" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "protoLabsAI/Ornith-1.0-35B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/protoLabsAI/Ornith-1.0-35B-FP8
- SGLang
How to use protoLabsAI/Ornith-1.0-35B-FP8 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "protoLabsAI/Ornith-1.0-35B-FP8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "protoLabsAI/Ornith-1.0-35B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "protoLabsAI/Ornith-1.0-35B-FP8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "protoLabsAI/Ornith-1.0-35B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use protoLabsAI/Ornith-1.0-35B-FP8 with Docker Model Runner:
docker model run hf.co/protoLabsAI/Ornith-1.0-35B-FP8
File size: 4,284 Bytes
a2a5fdb 5e69ffd a2a5fdb 5e69ffd a2a5fdb eeecbda | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | ---
license: mit
license_link: https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B/blob/main/LICENSE
base_model: deepreinforce-ai/Ornith-1.0-35B
base_model_relation: quantized
pipeline_tag: text-generation
library_name: transformers
tags:
- fp8
- vllm
- agentic-coding
- moe
---
# Ornith-1.0-35B-FP8
Block-wise **FP8 (E4M3)** quantization of [`deepreinforce-ai/Ornith-1.0-35B`](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B) — DeepReinforce's self-scaffolding agentic-coding MoE (Qwen3.5-35B-A3B hybrid). Served size ~35 GB; fits a single 80–96 GB GPU with full context.
Quantized and serve-validated by [protoLabs](https://protolabs.studio) on RTX PRO 6000 Blackwell (vLLM 0.22.1).
## Why this exists
The upstream FP8 release was reported broken. This is a clean, serve-validated FP8 built to the **Qwen official block-wise format** (served natively on vLLM's fused-MoE Triton path), with the **entire linear-attention / SSM path and the MoE router kept in bf16** — FP8-quantizing those corrupts the hybrid SSM and is the most likely failure mode for a naive FP8 of this architecture.
## Quantization recipe
- **Scheme:** block-wise `[128, 128]` FP8 E4M3, dynamic per-token activations (`quant_method: fp8`, `activation_scheme: dynamic`).
- **Quantized:** all expert FFNs (gate/up/down), shared-expert FFNs, full-attention projections (q/k/v/o).
- **Kept bf16 (`modules_to_not_convert`):** `lm_head`, `embed_tokens`, MoE router gates (`mlp.gate`, `shared_expert_gate`), **all `linear_attn.*` (SSM: `in_proj_*`, `out_proj`, `conv1d`, `A_log`, `dt_bias`)**, all norms, and the vision tower.
- Streaming tensor-by-tensor quantizer (peak RAM ≈ 2× largest tensor) — no full-model load.
## Validation (protoLabs harness, thinking-on, single trial)
Smoke: coherent across coding / reasoning / long-form / multilingual / tool-calling — no gibberish, no reasoning leak.
| Metric | bf16 source | This FP8 |
|---|---|---|
| custom coding (one-shot) | 1.00 (10/10) | 0.975 (9/10) |
| function-call | 93% (50/54) | 89% (48/54) |
| decode tok/s (1× RTX PRO 6000) | 208 | 207 |
Deltas are within single-trial run-to-run variance (temp 0.6–0.7); throughput is identical to the source.
## Serving (vLLM)
```bash
vllm serve protoLabsAI/Ornith-1.0-35B-FP8 \
--served-model-name ornith-35b \
--max-model-len 262144 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice --tool-call-parser qwen3_xml \
--gpu-memory-utilization 0.90 \
--trust-remote-code
```
**Context:** full **256K** (262144). **Vision:** the base is multimodal (Qwen-VL-style image + video tokens) and the vision tower is preserved in bf16 — the recipe above keeps it enabled. For **text-only** serving (smaller footprint), add `--language-model-only`. Verified serving with vision on at 256K on RTX PRO 6000 (Blackwell, sm120).
Ornith is a reasoning model: the assistant turn opens with a `<think>…</think>` block surfaced as `reasoning_content`; tool calls are emitted as standard `tool_calls`. Recommended sampling: `temperature=0.6, top_p=0.95, top_k=20`.
## License & attribution
MIT, inheriting [Ornith-1.0](https://huggingface.co/deepreinforce-ai/Ornith-1.0-35B). All credit for the base model to the **DeepReinforce** team ([blog](https://deep-reinforce.com/ornith_1_0.html)); this repo only adds the FP8 quantization.
```bibtex
@misc{ornith-35b, title={{Ornith-1.0-35B}: Agentic Coding, Open to All},
url={https://deep-reinforce.com/ornith_1_0.html}, author={{DeepReinforce Team}}, year={2026}}
```
## The Ornith quant family
- [`Ornith-1.0-9B-NVFP4`](https://huggingface.co/protoLabsAI/Ornith-1.0-9B-NVFP4) — calibrated
W4A4 for vLLM, MTP sidecar in-box; 10.4 GB, gate-verified parity, ~1.5x bf16+MTP.
- [`Ornith-1.0-9B-MTP-GGUF`](https://huggingface.co/protoLabsAI/Ornith-1.0-9B-MTP-GGUF) — llama.cpp
builds incl. the NVFP4+MTP rung (306 tok/s on Blackwell).
- [`Ornith-1.0-9B-MTP`](https://huggingface.co/protoLabsAI/Ornith-1.0-9B-MTP) — the MTP draft head.
- 35B-A3B NVFP4 is next in the pipeline (MoE is NVFP4's best case).
Benchmark rows: [`protoLabsAI/lab-benchmarks`](https://huggingface.co/datasets/protoLabsAI/lab-benchmarks) ·
[protolabs.studio/lab](https://protolabs.studio/lab). Different quant? Community discussion — ~48h.
|