Text Generation
GGUF
llama.cpp
speculative-decoding
mtp
multi-token-prediction
qwen3.5
conversational
Instructions to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Use Docker
docker model run hf.co/protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF 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-9B-MTP-GGUF" # 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-9B-MTP-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
- Ollama
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with Ollama:
ollama run hf.co/protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with Docker Model Runner:
docker model run hf.co/protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
- Lemonade
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Ornith-1.0-9B-MTP-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use protoLabsAI/Ornith-1.0-9B-MTP-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
protoLabs commited on
Commit Β·
7bcb8f0
1
Parent(s): 47b2452
rename files to resolvable <Model>-<QUANT>.gguf convention
Browse filesllama.cpp's -hf resolver (gguf_filename_is_model) excludes any filename
containing 'mtp-' β the old '-mtp-kl-' infix made every ladder rung
invisible to 'Use this model' / -hf repo:TAG. Upstream bug report for the
substring match filed separately.
- ornith-9b-mtp-kl-BF16.gguf β Ornith-1.0-9B-MTP-BF16.gguf +0 -0
- ornith-9b-mtp-kl-IQ2_M.gguf β Ornith-1.0-9B-MTP-IQ2_M.gguf +0 -0
- ornith-9b-mtp-kl-IQ3_M.gguf β Ornith-1.0-9B-MTP-IQ3_M.gguf +0 -0
- ornith-9b-mtp-kl-IQ4_XS.gguf β Ornith-1.0-9B-MTP-IQ4_XS.gguf +0 -0
- Ornith-1.0-9B-NVFP4-MTP.gguf β Ornith-1.0-9B-MTP-NVFP4.gguf +0 -0
- ornith-9b-mtp-kl-Q4_K_M.gguf β Ornith-1.0-9B-MTP-Q4_K_M.gguf +0 -0
- ornith-9b-mtp-kl-Q5_K_M.gguf β Ornith-1.0-9B-MTP-Q5_K_M.gguf +0 -0
- ornith-9b-mtp-kl-Q6_K.gguf β Ornith-1.0-9B-MTP-Q6_K.gguf +0 -0
- ornith-9b-mtp-kl-Q8_0.gguf β Ornith-1.0-9B-MTP-Q8_0.gguf +0 -0
- README.md +23 -13
- mtp-ornith-9b-mtp-kl-Q8_0.gguf β mtp-Ornith-1.0-9B-head-Q8_0.gguf +0 -0
ornith-9b-mtp-kl-BF16.gguf β Ornith-1.0-9B-MTP-BF16.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-IQ2_M.gguf β Ornith-1.0-9B-MTP-IQ2_M.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-IQ3_M.gguf β Ornith-1.0-9B-MTP-IQ3_M.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-IQ4_XS.gguf β Ornith-1.0-9B-MTP-IQ4_XS.gguf
RENAMED
|
File without changes
|
Ornith-1.0-9B-NVFP4-MTP.gguf β Ornith-1.0-9B-MTP-NVFP4.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-Q4_K_M.gguf β Ornith-1.0-9B-MTP-Q4_K_M.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-Q5_K_M.gguf β Ornith-1.0-9B-MTP-Q5_K_M.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-Q6_K.gguf β Ornith-1.0-9B-MTP-Q6_K.gguf
RENAMED
|
File without changes
|
ornith-9b-mtp-kl-Q8_0.gguf β Ornith-1.0-9B-MTP-Q8_0.gguf
RENAMED
|
File without changes
|
README.md
CHANGED
|
@@ -28,7 +28,7 @@ head's per-token acceptance on llama.cpp matches the vLLM reference (**0.766** h
|
|
| 28 |
|
| 29 |
## NEW: NVFP4 build β 306 tok/s on Blackwell, the fastest rung in this repo
|
| 30 |
|
| 31 |
-
`Ornith-1.0-9B-
|
| 32 |
attention/MLP GEMMs, Q8_0 on the DeltaNet trunk/embeddings, MTP `nextn` head included.
|
| 33 |
Converted directly from our gate-verified
|
| 34 |
[vLLM NVFP4 quant](https://huggingface.co/protoLabsAI/Ornith-1.0-9B-NVFP4) β same calibrated
|
|
@@ -62,15 +62,15 @@ MTP support (both merged spring 2026).
|
|
| 62 |
|
| 63 |
| File | Form | Size | Use |
|
| 64 |
|---|---|---:|---|
|
| 65 |
-
| `
|
| 66 |
-
| `
|
| 67 |
-
| `
|
| 68 |
-
| `
|
| 69 |
-
| `
|
| 70 |
-
| `
|
| 71 |
-
| `
|
| 72 |
-
| `
|
| 73 |
-
| `mtp-
|
| 74 |
|
| 75 |
The **IQ** quants are i-quants built with an importance matrix (calibrated on the trunk) for
|
| 76 |
quality at low bit-rates, with the **MTP `nextn` head pinned to Q8_0** so speculative-decode
|
|
@@ -84,7 +84,7 @@ Requires **llama.cpp β₯ b9616** (Qwen3.5 `qwen35` arch + `--spec-type draft-mtp
|
|
| 84 |
**Bundled (recommended)** β the head travels in the file:
|
| 85 |
|
| 86 |
```bash
|
| 87 |
-
llama-server --model
|
| 88 |
--n-gpu-layers 99 --ctx-size 8192 --flash-attn on --jinja \
|
| 89 |
--spec-type draft-mtp --spec-draft-n-max 3
|
| 90 |
```
|
|
@@ -93,7 +93,7 @@ llama-server --model ornith-9b-mtp-kl-Q4_K_M.gguf \
|
|
| 93 |
|
| 94 |
```bash
|
| 95 |
llama-server --model ornith-1.0-9b-Q4_K_M.gguf \
|
| 96 |
-
--model-draft mtp-
|
| 97 |
--spec-type draft-mtp --spec-draft-n-max 3 \
|
| 98 |
--n-gpu-layers 99 --ctx-size 8192 --flash-attn on --jinja
|
| 99 |
```
|
|
@@ -165,7 +165,7 @@ then expects 442 tensors and finds 427 β load fails.
|
|
| 165 |
(`attn_*`, `ffn_*`, the norms) β so grepping for `nextn` shows only 4, but the head is complete.
|
| 166 |
|
| 167 |
Don't want to graft? You don't have to build the bundled file at all β run the base GGUF with
|
| 168 |
-
`--model-draft mtp-
|
| 169 |
|
| 170 |
## Provenance & license
|
| 171 |
|
|
@@ -181,3 +181,13 @@ Open a Community discussion β requests usually ship within 48h. That's how mos
|
|
| 181 |
quants in this repo got here. All benchmark rows behind these numbers:
|
| 182 |
[`protoLabsAI/lab-benchmarks`](https://huggingface.co/datasets/protoLabsAI/lab-benchmarks) Β·
|
| 183 |
charts at [protolabs.studio/lab](https://protolabs.studio/lab).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
## NEW: NVFP4 build β 306 tok/s on Blackwell, the fastest rung in this repo
|
| 30 |
|
| 31 |
+
`Ornith-1.0-9B-MTP-NVFP4.gguf` (6.6 GB) β calibrated NVFP4 (`GGML_TYPE_NVFP4`) on all
|
| 32 |
attention/MLP GEMMs, Q8_0 on the DeltaNet trunk/embeddings, MTP `nextn` head included.
|
| 33 |
Converted directly from our gate-verified
|
| 34 |
[vLLM NVFP4 quant](https://huggingface.co/protoLabsAI/Ornith-1.0-9B-NVFP4) β same calibrated
|
|
|
|
| 62 |
|
| 63 |
| File | Form | Size | Use |
|
| 64 |
|---|---|---:|---|
|
| 65 |
+
| `Ornith-1.0-9B-MTP-Q8_0.gguf` | bundled (trunk + head) | 9.8 GB | highest quality / biggest relative speedup |
|
| 66 |
+
| `Ornith-1.0-9B-MTP-Q6_K.gguf` | bundled | 7.6 GB | near-lossless quant |
|
| 67 |
+
| `Ornith-1.0-9B-MTP-Q5_K_M.gguf` | bundled | 6.6 GB | balanced |
|
| 68 |
+
| `Ornith-1.0-9B-MTP-Q4_K_M.gguf` | bundled | 5.8 GB | fastest k-quant |
|
| 69 |
+
| `Ornith-1.0-9B-MTP-IQ4_XS.gguf` | bundled (imatrix) | 5.5 GB | low VRAM, near-Q4 quality |
|
| 70 |
+
| `Ornith-1.0-9B-MTP-IQ3_M.gguf` | bundled (imatrix) | 4.7 GB | lower VRAM |
|
| 71 |
+
| `Ornith-1.0-9B-MTP-IQ2_M.gguf` | bundled (imatrix) | 3.9 GB | **very low VRAM** (~5 GB to serve) |
|
| 72 |
+
| `Ornith-1.0-9B-MTP-BF16.gguf` | bundled (full precision) | 18.4 GB | the master; re-quantize from this |
|
| 73 |
+
| `mtp-Ornith-1.0-9B-MTP-Q8_0.gguf` | standalone draft head | 2.4 GB | attach to a base GGUF via `--model-draft` |
|
| 74 |
|
| 75 |
The **IQ** quants are i-quants built with an importance matrix (calibrated on the trunk) for
|
| 76 |
quality at low bit-rates, with the **MTP `nextn` head pinned to Q8_0** so speculative-decode
|
|
|
|
| 84 |
**Bundled (recommended)** β the head travels in the file:
|
| 85 |
|
| 86 |
```bash
|
| 87 |
+
llama-server --model Ornith-1.0-9B-MTP-Q4_K_M.gguf \
|
| 88 |
--n-gpu-layers 99 --ctx-size 8192 --flash-attn on --jinja \
|
| 89 |
--spec-type draft-mtp --spec-draft-n-max 3
|
| 90 |
```
|
|
|
|
| 93 |
|
| 94 |
```bash
|
| 95 |
llama-server --model ornith-1.0-9b-Q4_K_M.gguf \
|
| 96 |
+
--model-draft mtp-Ornith-1.0-9B-MTP-Q8_0.gguf \
|
| 97 |
--spec-type draft-mtp --spec-draft-n-max 3 \
|
| 98 |
--n-gpu-layers 99 --ctx-size 8192 --flash-attn on --jinja
|
| 99 |
```
|
|
|
|
| 165 |
(`attn_*`, `ffn_*`, the norms) β so grepping for `nextn` shows only 4, but the head is complete.
|
| 166 |
|
| 167 |
Don't want to graft? You don't have to build the bundled file at all β run the base GGUF with
|
| 168 |
+
`--model-draft mtp-Ornith-1.0-9B-MTP-Q8_0.gguf --spec-type draft-mtp`. Functionally identical.
|
| 169 |
|
| 170 |
## Provenance & license
|
| 171 |
|
|
|
|
| 181 |
quants in this repo got here. All benchmark rows behind these numbers:
|
| 182 |
[`protoLabsAI/lab-benchmarks`](https://huggingface.co/datasets/protoLabsAI/lab-benchmarks) Β·
|
| 183 |
charts at [protolabs.studio/lab](https://protolabs.studio/lab).
|
| 184 |
+
|
| 185 |
+
## One-command usage
|
| 186 |
+
|
| 187 |
+
```bash
|
| 188 |
+
llama-server -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:NVFP4 --spec-type draft-mtp -ngl 99 # Blackwell: fastest
|
| 189 |
+
llama-server -hf protoLabsAI/Ornith-1.0-9B-MTP-GGUF:Q4_K_M --spec-type draft-mtp -ngl 99 # everything else
|
| 190 |
+
```
|
| 191 |
+
|
| 192 |
+
> 2026-07-03: files renamed to the standard `<Model>-<QUANT>.gguf` convention β older llama.cpp
|
| 193 |
+
> `-hf` invocations with the previous `ornith-9b-mtp-kl-*` filenames should switch to tags.
|
mtp-ornith-9b-mtp-kl-Q8_0.gguf β mtp-Ornith-1.0-9B-head-Q8_0.gguf
RENAMED
|
File without changes
|