ornith-ai
Ornith-1.5-9B
Available on FriendliAI
Run this model inference on single tenant GPU with unmatched speed and reliability at scale.
Model Details
Model Provider
ornith-ai
Model Tree
Input Modalities
Output Modalities
Supported Functionality
GLM-5.2 is live. #1 throughput on OpenRouter, pay-per-token on FriendliAI. Try it today ➜
ornith-ai
Available on FriendliAI
Run this model inference on single tenant GPU with unmatched speed and reliability at scale.
Model Details
Model Provider
ornith-ai
Model Tree
Input Modalities
Output Modalities
Supported Functionality
This model card documents Ornith-1.5-9B, the most lightweight member of the Ornith-1.5 family — a 9B dense model designed for efficient single-GPU deployment, and edge-deployable on mobile devices via its quantized Ornith-1.5-9B-Mobile variant.
Ornith-1.5-9B is a dense ~9B model (≈19 GB in bf16), so it serves on a single 80GB GPU. The recipes below stand up an OpenAI-compatible server; add --tensor-parallel-size / --tp if you want to shard across more GPUs.
bash
vllm serve ornith-ai/Ornith-1.5-9B --served-model-name Ornith-1.5-9B --host 0.0.0.0 --port 8000 --max-model-len 262144 --gpu-memory-utilization 0.90 --enable-prefix-caching --enable-auto-tool-choice --tool-call-parser qwen3_xml --reasoning-parser qwen3 --trust-remote-code
bash
python -m sglang.launch_server --model-path ornith-ai/Ornith-1.5-9B --served-model-name Ornith-1.5-9B --host 0.0.0.0 --port 8000 --context-length 262144 --mem-fraction-static 0.85 --tool-call-parser qwen3_coder --reasoning-parser qwen3
Ornith-1.5-9B handles context windows of up to 262,144 tokens. When a task's combined input and output must go beyond this limit, we suggest extending the effective window with RoPE scaling — YaRN is the technique we validate against, and it is already built into both vLLM and SGLang. With a scaling factor of 4.0, the usable window grows to roughly 1M tokens.
You can turn YaRN on in either of two ways:
Edit the checkpoint's config.json. Add a rope_scaling block to the model configuration:
json
{"rope_scaling": {"rope_type": "yarn","factor": 4.0,"original_max_position_embeddings": 262144}}
Override at launch time. Leave the checkpoint untouched and extend the serve commands above with the equivalent flags.
vLLM:
bash
VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 vllm serve ornith-ai/Ornith-1.5-9B ... --hf-overrides '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --max-model-len 1000000
SGLang:
bash
SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 python -m sglang.launch_server ... --json-model-override-args '{"rope_scaling": {"rope_type": "yarn", "factor": 4.0, "original_max_position_embeddings": 262144}}' --context-length 1000000
Once a vLLM or SGLang server is running, talk to it with any OpenAI-compatible client.
python
from openai import OpenAIclient = OpenAI(base_url="http://localhost:8000/v1",api_key="EMPTY", # any non-empty string works for a local server)response = client.chat.completions.create(model="Ornith-1.5-9B",messages=[{"role": "user", "content": "Write a one-line Python lambda that squares a number."}],temperature=0.6,top_p=0.95,max_tokens=1024,)message = response.choices[0].message# reasoning_content holds the <think> trace; content holds the final answer.print("reasoning:", getattr(message, "reasoning_content", None))print("answer:", message.content)
You can also stream tokens, or hand the model tools — Ornith-1.5-9B emits well-formed function calls that the server parses into the standard tool_calls field:
python
tools = [{"type": "function","function": {"name": "get_weather","description": "Get the current weather for a city","parameters": {"type": "object","properties": {"city": {"type": "string"}},"required": ["city"],},},}]response = client.chat.completions.create(model="Ornith-1.5-9B",messages=[{"role": "user", "content": "What is the weather in Paris right now?"}],tools=tools,tool_choice="auto",temperature=0.6,max_tokens=2048,)tool_call = response.choices[0].message.tool_calls[0]print(tool_call.function.name, tool_call.function.arguments)# -> get_weather {"city": "Paris"}
You can point any OpenAI-compatible SDK (Python, Node.js, etc.) or curl at the same /v1/chat/completions endpoint.
Ornith-1.5-9B exposes an OpenAI-compatible endpoint with tool calling, it works out of the box with standard agent frameworks.
Examples of using Ornith with agents:
bash
ollama run ornith-1.5:9b
bash
# Both runtimes load a GGUF build of Ornith (publish one at ornith-ai/Ornith-1.5-9B-GGUF).# llama.cpp — serve an OpenAI-compatible API on port 8000.llama-server -hf hf.co/ornith-ai/Ornith-1.5-9B-GGUF --port 8000 -c 262144
bash
# Both runtimes load a GGUF build of Ornith (publish one at ornith-ai/Ornith-1.5-9B-GGUF).# llama.cpp — serve an OpenAI-compatible API on port 8000.llama-server -hf hf.co/ornith-ai/Ornith-1.5-9B-GGUF --port 8000 -c 262144
bash
# Hermes talks to any OpenAI-compatible endpoint — point it at your Ornith server.export OPENAI_BASE_URL="http://localhost:8000/v1"export OPENAI_API_KEY="EMPTY"export MODEL="ornith-ai/Ornith-1.5-9B"
bash
# OpenClaw talks to any OpenAI-compatible endpoint — point it at your Ornith server.export OPENAI_BASE_URL="http://localhost:8000/v1"export OPENAI_API_KEY="EMPTY"export OPENAI_MODEL="ornith-ai/Ornith-1.5-9B"
bash
pip install unsloth# Load Ornith for fast local inference or fine-tuning (Python):# from unsloth import FastLanguageModel# model, tokenizer = FastLanguageModel.from_pretrained(# "unsloth/Ornith-1.5-9B-GGUF",# max_seq_length=262144,# load_in_4bit=True,# )
Ornith-1.5-9B is optimized for terminal-based coding agents. Point any OpenAI-compatible coding CLI at your Ornith-1.5-9B endpoint (set OPENAI_BASE_URL and OPENAI_API_KEY) to understand large codebases, automate tedious work, and ship faster.
bash
# Register your local Ornith endpoint as a provider in ~/.config/opencode/opencode.json:## {# "$schema": "https://opencode.ai/config.json",# "provider": {# "ornith": {# "npm": "@ai-sdk/openai-compatible",# "name": "Ornith (local)",# "options": { "baseURL": "http://localhost:8000/v1", "apiKey": "EMPTY" },# "models": { "ornith-ai/Ornith-1.5-9B": { "name": "Ornith-1.5-9B" } }# }# }# }opencode
If you find our work helpful, feel free to give us a cite.
bibtex
@misc{ornith_1_5,title = {{Ornith-1.5}: From Self-Scaffolding to Self-Improvement},url = {https://ornith.ai/ornith_1_5.html},author = {{Ornith Team}},year = {2026}}