What Is Ornith-1.5-9B? Self-Improving AI Model Explained
Ornith-1.5-9B trains itself by generating tasks, scaffolds, and rollouts. Here's how the 9B model beats larger rivals on coding benchmarks.

What is Ornith-1.5-9B?
Ornith-1.5-9B is a 9-billion-parameter open-weight language model built by ornith-ai that trains itself through a closed loop of task generation, scaffold construction, and solution rollouts, rather than relying only on fixed, human-curated training sets. It’s the smallest model in the Ornith-1.5 family, built on Qwen3.5, and it’s positioned for single-GPU deployment with a quantized mobile variant for edge devices. On several coding and agentic benchmarks it outperforms Qwen3.5-9B and even the larger Gemma-4-31B, despite its comparatively small size.
TL;DR
- Ornith-1.5-9B is a 9B dense model released by ornith-ai, built on top of Qwen3.5 architecture with a self-improvement training loop as its core innovation.
- The model jointly optimizes three components: it generates its own training tasks, builds the scaffolding (harnesses) needed to attempt them, and runs reinforcement learning rollouts to improve its policy, instead of depending purely on static human-labeled datasets.
- It extends Ornith-1.0, which itself was built via continued pretraining, mid-training, and post-training on Qwen3.5 and Gemma4 bases, with Ornith-1.5 widening the self-improvement scope from just scaffold and rollout tuning to include task generation.
- On coding benchmarks like SWE-bench Verified (70.6) and Terminal-Bench 2.1 (46.2 with Terminus-2, 47 with Claude Code), Ornith-1.5-9B beats both Qwen3.5-9B and Gemma-4-31B, and comes close to the much larger Qwen3.6-35B-A3B mixture-of-experts model.
- Reasoning scores also improved over its predecessor, with GPQA Diamond at 86.4 and HLE with tools at 30.5, both ahead of Qwen3.5-9B and Gemma-4-31B.
- Agentic benchmark results are more mixed: Ornith-1.5-9B leads on BrowseComp (56.4) and ClawEval (66.5) but trails Gemma-4-31B on Toolathlon-Verified, showing the self-improvement approach doesn’t uniformly beat every larger competitor.
- The model card reports all Ornith-1.5 results as averages over five independent runs, using adjusted chat templates and modified evaluation harnesses to keep training and inference consistent.
Other agents start typing. Remy starts asking.
Scoping, trade-offs, edge cases — the real work. Before a line of code.
How does the self-improvement training loop work?
Most foundation models are trained on a fairly fixed pipeline: pretraining on large text corpora, then supervised fine-tuning, then some form of reinforcement learning from human or AI feedback, all layered on top of a dataset that was curated ahead of time. Ornith-1.5 changes the shape of that last stage.
Instead of a static set of RL tasks and a manually built harness for scoring them, Ornith-1.5 optimizes three things at once:
- Task generation. The model (or a training system built around it) produces new problems for itself to solve, rather than pulling exclusively from a pre-built task bank.
- Scaffold construction. It builds or discovers the harness, or the tools, prompts, and execution environment, needed to actually attempt a given task.
- Solution rollouts. It runs the policy against those tasks inside that scaffold, generating rollouts that get scored and fed back into reinforcement learning.
The three pieces are optimized jointly, meaning improvements in one (say, better task difficulty calibration) feed into the others (better scaffolds, better rollouts) instead of being tuned in isolation. Ornith’s earlier release, Ornith-1.0, applied self-improvement only to scaffold and rollout optimization, using a fixed set of human-curated tasks. Ornith-1.5’s expansion to include task generation itself is the headline architectural change between the two versions.
Ornith-1.0 was built on continued pretraining, mid-training, and post-training layered on top of both Qwen3.5 and Gemma4 base models. Ornith-1.5-9B specifically uses the Qwen3.5 architecture (confirmed by its qwen3_5 model type in its config) as its foundation.
Why does joint optimization matter for a 9B model?
Smaller models typically lose to larger ones on raw benchmark comparisons because they have less capacity to memorize patterns and less headroom for complex multi-step reasoning. The bet behind Ornith-1.5’s approach is that if a model can generate progressively harder and better-targeted training tasks for itself, plus the scaffolding to solve them, it can extract more capability per parameter than a model trained on a fixed curriculum.
The benchmark results back this up in specific areas. On SWE-bench Pro, Ornith-1.5-9B scores 47.5, ahead of Qwen3.5-9B’s 31.3 and Gemma-4-31B’s 35.7, despite Gemma-4-31B having more than three times the parameters. On NL2Repo, a benchmark for generating full repositories from natural language, Ornith-1.5-9B scores 32.4 versus 16.2 for Qwen3.5-9B and 15.5 for Gemma-4-31B.
That said, the pattern isn’t universal. On MCP-Atlas and Toolathlon-Verified, both agentic tool-use benchmarks, Gemma-4-31B actually outscores Ornith-1.5-9B (55 vs. 54.2 on MCP-Atlas, and 52.8 vs. 41.2 on Toolathlon-Verified). This suggests the self-improvement loop is especially effective for coding-adjacent tasks where success can be verified automatically (does the code pass tests, does the patch apply), which is exactly the kind of signal that’s easy to generate synthetic tasks and rewards around. Open-ended tool orchestration tasks may benefit less from this training approach, at least at the 9B scale.
How does Ornith-1.5-9B compare to Qwen3.5-9B and Gemma-4-31B?
Directly:
- Coding: Ornith-1.5-9B outperforms both same-class Qwen3.5-9B and much-larger Gemma-4-31B across every coding benchmark reported, including Terminal-Bench 2.1, SWE-bench Verified, SWE-bench Pro, SWE-bench Multilingual, NL2Repo, and SWE Atlas QnA.
- Reasoning: On GPQA Diamond, Ornith-1.5-9B scores 86.4, ahead of Qwen3.5-9B (81.7) and Gemma-4-31B (84.3), and essentially tied with the much larger Qwen3.6-35B-A3B (86). On HLE (Humanity’s Last Exam) with tools, it scores 30.5, again ahead of both same-and-larger-class comparisons.
- Agentic: Results split. Ornith-1.5-9B wins on WideSearch, BrowseComp, and ClawEval, but Gemma-4-31B wins on Toolathlon-Verified, and Qwen3.6-35B-A3B (a mixture-of-experts model with far more total capacity) leads on MCP-Atlas and BrowseComp.
Built like a system. Not vibe-coded.
Remy manages the project — every layer architected, not stitched together at the last second.
The comparison to Qwen3.6-35B-A3B is worth noting separately because it isn’t a same-class model: it’s a mixture-of-experts architecture with roughly 35B total parameters (3B active). Ornith-1.5-9B trades blows with it on several coding and reasoning benchmarks despite having a fraction of the parameter count, though the MoE model still leads on most agentic tasks and some coding benchmarks like SWE-bench Multilingual (67.2 vs 54.4).
Is Ornith-1.5-9B worth using?
For teams that need strong coding and reasoning performance on constrained hardware, Ornith-1.5-9B’s benchmark profile makes it a reasonable candidate. Its 9B size targets single-GPU deployment, and the existence of a quantized “Mobile” variant signals an intent to run on edge devices, which is a meaningfully different deployment target than 31B or 35B-class models.
The tradeoffs are real, though. Agentic tool-use is a growing share of what people actually deploy LLMs for in production (browser agents, MCP-based tool orchestration, multi-step task execution), and that’s precisely the category where Ornith-1.5-9B’s advantage narrows or disappears against Gemma-4-31B and Qwen3.6-35B-A3B. If your use case leans heavily on tool orchestration rather than code generation or QA-style reasoning, the larger models may still be the better fit.
The model card notes all Ornith-1.5 benchmark numbers are averaged over five runs, which is a reasonable methodological safeguard against single-run variance, though independent replication outside the vendor’s own evaluation setup (which required custom chat template and harness adjustments) is worth watching for as the model sees wider use.
Frequently Asked Questions
What does “self-improving” mean for Ornith-1.5-9B?
It means the model’s training loop generates its own tasks, builds the scaffolding needed to attempt them, and runs reinforcement learning rollouts against those self-generated tasks, all optimized jointly, rather than training only on a fixed, human-curated dataset.
What base model is Ornith-1.5-9B built on?
It’s built on the Qwen3.5 architecture. Its predecessor, Ornith-1.0, was developed using continued pretraining, mid-training, and post-training on top of both Qwen3.5 and Gemma4 bases.
How big is Ornith-1.5-9B and what hardware does it need?
It’s a 9-billion-parameter dense model designed for efficient single-GPU deployment. A quantized “Mobile” variant is also available for edge deployment on mobile devices.
Does Ornith-1.5-9B beat larger models like Gemma-4-31B?
On most coding and reasoning benchmarks, yes, including SWE-bench Verified, SWE-bench Pro, Terminal-Bench 2.1, and GPQA Diamond. On some agentic tool-use benchmarks like Toolathlon-Verified, Gemma-4-31B still scores higher despite being the larger model.
What’s the difference between Ornith-1.0 and Ornith-1.5?
Ornith-1.0 applied self-improvement to scaffold and rollout optimization using a fixed set of human-curated tasks. Ornith-1.5 expands that loop to also generate its own training tasks, jointly optimizing task generation, scaffold construction, and rollouts together.


