Instructions to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF", filename="ornith-1.0-35b-MTP-graft-Q4_K_M.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
Use Docker
docker model run hf.co/tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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": "tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
- Ollama
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with Ollama:
ollama run hf.co/tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
- Unsloth Studio
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF to start chatting
- Pi
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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 "tashfene/Ornith-1.0-35B-MTP-Q4_K_M-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"
- Docker Model Runner
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with Docker Model Runner:
docker model run hf.co/tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
- Lemonade
How to use tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Ornith-1.0-35B-MTP-Q4_K_M-GGUF-Q4_K_M
List all available models
lemonade list
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 "tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M" \
--custom-provider-id llama-cpp \
--custom-compatibility openai \
--custom-text-input \
--accept-risk \
--skip-healthRun OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"Ornith-1.0-35B MTP-graft Q4_K_M (GGUF)
The only Ornith MTP build that fits 24 GB cards. Ornith-1.0-35B (Q4_K_M) with the multi-token-prediction head from Qwen3.6-35B-A3B-MTP grafted on, enabling self-speculative decoding in llama.cpp.
- 22.8 GB โ fits Tesla P40 / RTX 3090 / RTX 4090 fully on-GPU with 128k context (q8_0 KV cache)
- +39% code generation, +27% prose measured vs plain Ornith Q4_K_M
- Output-exact: speculative decoding never changes results โ Ornith itself verifies every drafted token, so quality is identical to the base model by construction. A mismatched head could only cost speed; benchmarks show it doesn't.
Existing MTP grafts (Q6_K 29 GB, Q8_0 38 GB) don't fit 24 GB cards, which is what motivated this build.
Usage
Requires llama.cpp b9859 (2026-07-01) or newer.
llama-server -m ornith-1.0-35b-MTP-graft-Q4_K_M.gguf \
-ngl 99 -c 131072 -ub 1024 \
--cache-type-k q8_0 --cache-type-v q8_0 \
-fa on --spec-type draft-mtp --spec-draft-n-max 2 \
--jinja
--spec-draft-n-max 2 is optimal; deeper drafts lose speed (see sweep below).
Benchmarks (Tesla P40, llama.cpp b9859, 200W cap)
| Task | Plain Ornith Q4_K_M | MTP graft | Speedup |
|---|---|---|---|
| Code generation (400 tok, temp 0.3) | 56.1 tok/s | 77.9 tok/s | +39% |
| Prose generation (300 tok, temp 0.7) | ~56 tok/s | 71.2 tok/s | +27% |
Draft-depth sweep (code / prose tok/s): n-max 1 โ 71.2 / 72.1, n-max 2 โ 77.9 / 71.2, n-max 3 โ 75.7 / 62.4.
VRAM with q8_0 KV: 22.7 GB at 64k context, 23.9 GB at 128k (the practical max on a 24 GB card โ the MTP layer needs its own compute buffers). Generation at 17k-deep context: 58 tok/s (vs ~50 for plain Ornith). Use a plain GGUF if you need the model's full 256k.
How it was made
Ornith-1.0-35B is an architectural sibling of Qwen3.6-35B-A3B: identical tensor set, identical dims (40 blocks, 256 experts, 2048 embd), identical 248320-token vocabulary. The 20 MTP tensors (blk.40.* โ one extra transformer layer plus the nextn projection/norms) from unsloth's Qwen3.6-35B-A3B-MTP-UD-Q4_K_M.gguf were appended to ornith-1.0-35b-Q4_K_M.gguf, with qwen35moe.block_count patched 40โ41 and qwen35moe.nextn_predict_layers=1 added:
import gguf
from gguf import GGUFReader, GGUFWriter, GGUFValueType
orn = GGUFReader("ornith-1.0-35b-Q4_K_M.gguf")
mtp = GGUFReader("Qwen3.6-35B-A3B-MTP-UD-Q4_K_M.gguf")
writer = GGUFWriter("ornith-1.0-35b-MTP-graft-Q4_K_M.gguf", "qwen35moe", use_temp_file=False)
for field in orn.fields.values():
if field.name == gguf.Keys.General.ARCHITECTURE or field.name.startswith("GGUF."):
continue
val_type = field.types[0]
sub_type = field.types[-1] if val_type == GGUFValueType.ARRAY else None
val = field.contents()
if field.name == "qwen35moe.block_count":
val = 41
writer.add_key_value(field.name, val, val_type, sub_type=sub_type)
writer.add_key_value("qwen35moe.nextn_predict_layers", 1, GGUFValueType.UINT32)
mtp_extra = [t for t in mtp.tensors if t.name.startswith("blk.40.")]
all_tensors = list(orn.tensors) + mtp_extra
for t in all_tensors:
writer.add_tensor_info(t.name, t.data.shape, t.data.dtype, t.data.nbytes, t.tensor_type)
writer.write_header_to_file()
writer.write_kv_data_to_file()
writer.write_ti_data_to_file()
for t in all_tensors:
writer.write_tensor_data(t.data, tensor_endianess=orn.endianess)
writer.close()
The same recipe works for any qwen35moe-architecture fine-tune (abliterated variants, etc.).
Credits
- DeepReinforce โ Ornith-1.0-35B base model (MIT)
- Qwen / unsloth โ Qwen3.6-35B-A3B MTP head (Apache 2.0)
- skinnyctax and wang-yang โ pioneered the Frankenstein-MTP graft approach at Q6_K/Q8_0
Base model weights are unchanged; this is purely a head graft plus metadata patch. MIT license inherited from the base model; the grafted head tensors remain Apache 2.0.
- Downloads last month
- 4,656
4-bit
Model tree for tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF
Base model
deepreinforce-ai/Ornith-1.0-35B
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp# Start a local OpenAI-compatible server: llama serve -hf tashfene/Ornith-1.0-35B-MTP-Q4_K_M-GGUF:Q4_K_M