Swift 1.5 Ornith 9B
Swift 1.5 Ornith 9B is UkisAI's reasoning-efficient derivative of Ornith-1.5-9B. It uses 33.1% fewer thinking tokens while scoring 1.52 pp higher than the base on GPQA-Diamond.
Training approach
We made Swift Ornith 9B efficient by figuring out which tokens were linked to pathological overthinking and penalizing them without "attacking" the reasoning length directly, leading to "compressed" token usage.
Swift 1.5 produces shorter reasoning traces. In our testing, we also observe fewer overthinking errors.
Our training data is viewable here: https://huggingface.co/datasets/ukisai/Qwen3.8-27B-multi-turn-agent-sft albeit it is not used out of the box, but rather re-sampled, turned into proper RL environments etc.
Evaluation
The external results below compare Ornith-1.5-9B, the foundation base model, and Swift 1.5. Both models use the same saved evaluation protocols, and all scores are reported as final aggregate percentages.
| Benchmark | Score | Mean tokens | Median tokens | |||
|---|---|---|---|---|---|---|
| Base | Swift 1.5 | Base | Swift 1.5 | Reduction | Reduction | |
| General reasoning | ||||||
| GPQA-Diamond | 83.00% | 84.51% | 15,760 | 11,782 | ↓ 25.2% | ↓ 33.1% |
| IFBench | 42.60% | 40.47% | 13,409 | 10,790 | ↓ 19.5% | ↓ 24.7% |
| Mathematics | ||||||
| AIME 2026 | 92.67% | 90.67% | 37,872 | 35,460 | ↓ 6.4% | ↓ 29.2% |
| AIME 2024 | 94.00% | 93.33% | 20,776 | 17,266 | ↓ 16.9% | ↓ 12.2% |
| Coding | ||||||
| LiveCodeBench v6 | 59.20% | 56.91% | 41,057 | 34,343 | ↓ 16.4% | ↓ 33.5% |
Note: This is an experimental release. Swift 1.5 Ornith 9B thinks less than the base on every benchmark above but scores 0.7–2.3 pp lower on AIME, IFBench and LiveCodeBench. GPQA-Diamond, the benchmark we used to select this checkpoint, is the only one where it scores higher.
How to reproduceServing: BF16 · tensor parallelism 1 · context 262,144 · thinking on.
Sampling: temperature 1.0 · top_p 0.95 · top_k 20 · min_p 0 · presence_penalty 0.
Scoring: every attempt counts. Request errors, answers cut off at the output cap and empty answers count as wrong.
GPQA-Diamond: 198 questions × 3 seeds. The answer letter comes from the final answer, not from the thinking.
IFBench: 300 prompts × 5 seeds, official prompt-level loose score.
AIME 2026: 30 problems × 5 seeds, reasoning effort xhigh, scorer from UkisAI Benchmark_configs.
AIME 2024: 30 problems from MathArena × 5 seeds.
LiveCodeBench v6: the 175 problems that release v6 added, official pass@1 averaged over 5 seeds, 10-second limit per test.
| Benchmark | Output cap | Cap hits, base | Cap hits, Swift 1.5 |
|---|---|---|---|
| GPQA-Diamond (594 attempts) | 81,920 | 48 | 24 |
| IFBench (1,500 attempts) | 81,920 | 86 | 69 |
| AIME 2026 (150 attempts) | 250,000 | 2 | 0 |
| AIME 2024 (150 attempts) | 250,000 | 1 | 0 |
| LiveCodeBench v6 (875 attempts) | 100,000 | 225 | 149 |
How to use
The BF16 checkpoint is about 19 GB and runs on a single GPU. For the full 262,144-token context, use an 80 GB GPU.
GGUF download
The GGUF version is available for compatible llama.cpp-based runtimes.
vLLM
Use vLLM 0.19.1 or later:
vllm serve ukisai/Swift-1.5-Ornith-9B \
--dtype bfloat16 \
--max-model-len 262144 \
--enable-prefix-caching \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--port 8000
SGLang
Alternatively, use SGLang 0.5.9 or later:
python -m sglang.launch_server \
--model-path ukisai/Swift-1.5-Ornith-9B \
--dtype bfloat16 \
--context-length 262144 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
--port 8000
Adjust the context length to your GPU memory.
Transformers
Use Transformers 5.8.1 or later:
import torch
from transformers import AutoModelForImageTextToText, AutoProcessor
model_id = "ukisai/Swift-1.5-Ornith-9B"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
To extend the context beyond 262,144 tokens, follow the YaRN settings on the Ornith-1.5-9B model card.
Optional MTP decoding
The checkpoint includes the base model's one-layer MTP head. To enable self-speculative decoding, append the corresponding flags to the server command above:
# vLLM
--speculative-config '{"method":"mtp","num_speculative_tokens":3}'
# SGLang
--speculative-algorithm NEXTN --speculative-num-steps 3 \
--speculative-eagle-topk 1 --speculative-num-draft-tokens 4
License and access
Swift 1.5 Ornith 9B is a derivative of Ornith-1.5-9B (Ornith Team, MIT License). UkisAI's contribution, including the adapted weights, is licensed under the Apache License 2.0. See NOTICE for the change notice and attribution details.
The base model's MIT License still applies to the base model. This is an independent UkisAI release, not an official Ornith release or endorsement.
Citation
@misc{swift-1.5-ornith-9b,
title = {Swift 1.5 Ornith 9B},
author = {UkisAI},
year = {2026},
url = {https://huggingface.co/ukisai/Swift-1.5-Ornith-9B}
}
Acknowledgements
We acknowledge Amazon Web Services for providing compute credits and infrastructure support for Swift's development, training, and evaluation.