Instructions to use mlx-community/Ornith-1.0-9B-OptiQ-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use mlx-community/Ornith-1.0-9B-OptiQ-4bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("mlx-community/Ornith-1.0-9B-OptiQ-4bit") config = load_config("mlx-community/Ornith-1.0-9B-OptiQ-4bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use mlx-community/Ornith-1.0-9B-OptiQ-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Ornith-1.0-9B-OptiQ-4bit"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "mlx-community/Ornith-1.0-9B-OptiQ-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use mlx-community/Ornith-1.0-9B-OptiQ-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Ornith-1.0-9B-OptiQ-4bit"
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 mlx-community/Ornith-1.0-9B-OptiQ-4bit
Run Hermes
hermes
- OpenClaw new
How to use mlx-community/Ornith-1.0-9B-OptiQ-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Ornith-1.0-9B-OptiQ-4bit"
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 "mlx-community/Ornith-1.0-9B-OptiQ-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
mlx-community/Ornith-1.0-9B-OptiQ-4bit
Built with mlx-optiq, the MLX-native toolkit to quantize, fine-tune, and serve LLMs locally on Apple Silicon, no PyTorch and no cloud. Try the Lab · All OptiQ quants · Docs
A 4-bit mixed-precision MLX quant of deepreinforce-ai/Ornith-1.0-9B, built on the Qwen3.5-9B architecture. Sensitive layers are kept at 8-bit and robust ones at 4-bit.
17.6 GB of bf16 weights become 7.5 GB, which fits a 16 GB Mac.
Image input works. The vision tower is kept at bf16 in a sidecar, so this quant takes images as well as text.
Quantization details
| Property | Value |
|---|---|
| Predominant precision | 4-bit |
| Layers at 8-bit (sensitive) | 132 |
| Layers at 4-bit (robust) | 116 |
| Total quantized layers | 248 |
| Achieved bits per weight | 5.209 |
| Group size | 64 |
| Vision tower | bf16, 333 tensors, in optiq/optiq_vision.safetensors |
| Size on disk | 7.5 GB, from a 17.6 GB bf16 base |
We follow the same naming convention llama.cpp uses for Q4_K_M and similar mixed-precision quants: the "4-bit" label is the predominant precision, not the weighted average.
The base model ships no MTP head, so this quant has no speculative-decoding sidecar.
How the bit-widths were chosen
The per-layer allocation is transferred from mlx-community/Qwen3.5-9B-OptiQ-4bit, where it was derived by a KL-divergence sensitivity sweep against the bf16 reference on a six-domain calibration mix.
Ornith-1.0-9B shares the Qwen3.5-9B architecture unchanged (no shape or math field of the text config differs), so all 248 quantizable layers map across exactly and the allocation lands at the same 5.209 bits per weight when recomputed against Ornith's own tensors.
These are measured bit-widths, not a static rule-of-thumb recipe. But they were measured on the base architecture, not on this model. Training shifts weights, so Ornith's own per-layer sensitivities could differ somewhat. Which layers are fragile is mostly a property of the architecture, so the transfer is sound, but it is a transfer and you should know that.
Only the language tower is quantized. The vision tower stays at bf16, which is how every OptiQ VLM ships.
Usage
Text
The sidecar lives in an optiq/ subfolder, so a stock *.safetensors glob ignores it and mlx-lm sees a clean language model.
pip install mlx-lm
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/Ornith-1.0-9B-OptiQ-4bit")
prompt = tokenizer.apply_chat_template(
[{"role": "user", "content": "Explain the difference between TCP and UDP."}],
add_generation_prompt=True, tokenize=False)
print(generate(model, tokenizer, prompt=prompt, max_tokens=512))
This is a reasoning model: it thinks inside <think>...</think> before answering, so give it enough max_tokens to finish.
Images
Image input needs mlx-optiq, which loads the bf16 vision sidecar and feeds the merged embeddings to the quantized language tower:
pip install mlx-optiq
from PIL import Image
from optiq.runtime.engine import OptiqEngine
engine = OptiqEngine("mlx-community/Ornith-1.0-9B-OptiQ-4bit")
answer = engine.generate("What is in this image?",
images=[Image.open("photo.jpg")], max_tokens=512)
print(answer.text)
Or serve it over an OpenAI-compatible endpoint that accepts image content parts:
optiq serve --model mlx-community/Ornith-1.0-9B-OptiQ-4bit
Verification
Text, arithmetic reasoning, and image understanding were all exercised on the finished artifact before release.
The quantization was also checked numerically: dequantizing individual layers out of the artifact and comparing them against the bf16 checkpoint gives 0.7% mean relative error on the 8-bit layers and 9.8% on the 4-bit layers, which is what each bit-width should cost.
No task benchmarks were run on this quant; for measured quality numbers on the base architecture, see the Qwen3.5-9B OptiQ card.
Quantization does not change the behaviour or alignment of the base model. Use it under the same terms as the original.
- Downloads last month
- 469
4-bit
Model tree for mlx-community/Ornith-1.0-9B-OptiQ-4bit
Base model
deepreinforce-ai/Ornith-1.0-9B