Ornith-1.5: от скаффолдинга к самоулучшению
Команда Ornith представила Ornith-1.5 — крупный шаг к созданию фундаментальных моделей через сквозное самоулучшение (self-improvement). Релиз расширяет фреймворк self-scaffolding из Ornith-1.0 до полноценной замкнутой петли: модель сама предлагает новые задачи, генерирует под них скаффолды и производит роллауты-решения для reinforcement learning, непрерывно создавая для себя новый обучающий опыт.
Семейство выходит в трёх размерах: 397B MoE, 35B MoE и 9B Dense. Ornith-1.5 построена на базе Ornith-1.0, которая, в свою очередь, развивалась поверх Qwen3.5 и Gemma 4 через continued pretraining (CPT), mid-training и post-training. По заявлению авторов, это state-of-the-art среди открытых моделей сопоставимого размера в reasoning, кодинге и агентных бенчмарках.
Результаты: флагман на уровне Claude Opus 4.8
Ornith-1.5-397B набирает 86.1 на Terminal-Bench 2.1 (фреймворк Terminus-2) и 56.0 на DeepSWE — это уровень Claude Opus 4.8 (85.0 и 59.0) и выше, чем у ведущих открытых моделей схожего масштаба: GLM-5.2 (82.7 и 46.2) и DeepSeek-V4-Flash-0731 (82.7 и 54.4).
Ключевые цифры флагмана (полная таблица — в оригинале):
| Бенчмарк | Ornith-1.5 397B | Claude Opus 4.8 | GLM-5.2 | DeepSeek-V4-Flash |
|---|---|---|---|---|
| Terminal Bench 2.1 (Terminus-2) | 86.1 | 85.0 | 81.0 | 82.7 |
| SWE-bench Verified | 86.0 | 85.8 | 83.0 | 81.6 |
| DeepSWE | 56.0 | 59.0 | 46.2 | 54.4 |
| HLE (no tools) | 44.6 | 49.8 | 40.5 | 35.0 |
| GPQA Diamond | 92.8 | 93.6 | 91.2 | 91.4 |
| MCP-Atlas | 80.0 | 82.2 | 77.8 | 74.6 |
| BrowseComp | 86.6 | 84.3 | 85.6 | 84.8 |
На другом конце спектра — Ornith-1.5-9B: 47.0 на Terminal-Bench 2.1 и 70.6 на SWE-bench Verified. Несмотря на компактность, он догоняет или обгоняет куда более крупные Gemma 4-31B и Qwen 3.6-35B, а квантованная версия Ornith-1.5-9B-Mobile разворачивается прямо на iPhone и Android.
Средняя модель, Ornith-1.5-35B-A3B (активно лишь 3B параметров на токен), заметно обходит одноразмерную Qwen 3.6-35B по всем кодинговым и агентным бенчмаркам и обгоняет плотные Gemma 4-31B и Muse Glimmer-30B в агентном кодинге: 68.5 против 43.4 и 51.7 на Terminal-Bench 2.1 (Claude Code) и 79.0 против 52.0 и 76.0 на SWE-bench Verified.
Цикл самоулучшения: задачи, скаффолды, решения
Ornith-1.0 оптимизировала скаффолды и роллауты. Ornith-1.5 расширяет петлю до совместной оптимизации трёх стадий: генерации задач, построения скаффолдов и производства решений. Вместо фиксированного набора задач, отобранных людьми, и вручную спроектированных харнессов система непрерывно создаёт новые обучающие задачи, сама находит стратегии их решения и улучшает политику через RL.
Каждый тренировочный цикл идёт в три шага:
- Генерация задач. По окружению или кодовой базе, высокоуровневому описанию типа задачи и истории предыдущих решений модель предлагает всё более сложные задачи — за пределами уже решённого. Так вскрываются пробелы в способностях и непрерывно сдвигается фронтир обучения.
- Генерация скаффолда. Для каждой задачи модель создаёт или уточняет специфичный скаффолд: инструкции, инструменты, стратегию декомпозиции и оркестрацию.
- Роллаут. Условленная задачей и скаффолдом политика производит решение.
Награда от роллаута распространяется на все три стадии: система учится не только лучше решать, но и генерировать более полезные задачи и строить более эффективные скаффолды. Повторяясь, это даёт замкнутую петлю: более сильная политика порождает более трудные и информативные задачи, эволюционирующие скаффолды лучше выявляют способности модели, а качественные роллауты дают более сильный обучающий сигнал. Вместо статичного тренировочного распределения и хенд-крафтового дизайна агента Ornith-1.5 сама расширяет свой учебный план (curriculum) и адаптирует стратегии решения задач.
Task Reward: валидность, сложность, новизна
Для связки «вопрос → скаффолд → роллауты» вводится награда за задачу из трёх сигналов:
R_task = V(q, s) × D(q, s, {τi}) × N(q)
где V — валидность и проверяемость, D — сложность у фронтира способностей, N — новизна относительно уже сгенерированных задач. Мультипликативная форма заставляет пропозер выполнять все три условия сразу: задача должна быть валидной, достаточно трудной и не дублирующей существующие.
Валидность и проверяемость (V ∈ [0,1]). Полезная задача обязана быть корректной обучающей средой: вопрос связан и решаем, скаффолд исполняется и надёжно оценивает решения. V строится на проверках: скаффолд запускается, уверенно правильные решения проходят, заведомо неверные — проваливаются, оценка соответствует спецификации задачи. Валидность можно использовать и как жёсткий гейт: V = 0 обнуляет всю награду, чтобы кривые задачи или ненадёжные скаффолды не получали вознаграждение за мнимую сложность.
Сложность у фронтира (D). Из N роллаутов считается эмпирический успех p, и награждаются задачи, где p близок к целевому фронтиру p*:
D = exp(-(p - p*)² / 2σ²), p* = 0.2
Цель p* = 0.2 оставляет задачи трудными, но всё ещё дающими достаточно успешных траекторий для RL. По мере того как модель начинает решать задачу надёжнее, её награда падает, и генератор выталкивается к более трудным проблемам — curriculum эволюрует вместе с моделью автоматически.
Новизна (N). Одной сложности мало: модель может генерировать мелкие вариации одних и тех же задач. Поэтому добавляется N = 1 − max sim(q, qj) — дополнение максимального сходства с буфером предыдущих задач. Новизна вторична: её роль — снижать избыточность, а не поощрять вычурность.
Награды за харнесс и роллауты
Харнесс h для задачи q награждается за то, что даёт среду оценки, соответствующую задаче, верно отражающую качество решений и устойчивую к reward hacking:
R_harness = C(q, h) × F(h, {τi}) × H(h)
- C (task alignment) — насколько харнесс верен спецификации задачи;
- F (reward fidelity) — насколько его награды следят за реальным качеством решений;
- H (hack resistance) — устойчивость к сбоям оценщика, читам и обходам.
Каждый роллаут оценивается самим сгенерированным харнессом: для проверяемых задач это бинарный pass/fail, для более богатых сред — комбинация корректности, завершённости, эффективности и соблюдения ограничений.
Ключевая деталь: генерация вопросов, генерация харнессов и роллауты оптимизируются одним алгоритмом GRPO, каждый со своей наградой, — так три стадии улучшаются совместно внутри одной петли самоулучшения.
Как измеряли
Авторы приводят методологию оценки, и она заслуживает внимания:
- Все результаты Ornith-1.5 усреднены по пяти независимым запускам.
- Terminal-Bench 2.1 (Terminus-2): parser=json, temperature=1.0, 128K контекста, таймаут 4 часа, 32 CPU и 48GB RAM на прогон.
- SWE-bench Verified/Pro/Multilingual: харнесс OpenHands, 256K контекста, с анти-хаковыми мерами — из образа репозитория удаляется git-история (нет доступа к прошлым коммитам и решениям), сеть отключена.
- DeepSWE — через харнесс Claude Code; NL2Repo — с блокировкой доступа к указанным GitHub-репозиториям и pip-пакетам, чтобы исключить reward hacking.
- HLE и MCP-Atlas оцениваются с judge-моделью Claude Opus.
Почему это важно
Ornith-1.5 — демонстрация того, что curriculum для RL можно не проектировать вручную, а выращивать: модель сама находит, чему учиться дальше, сама строит среду оценки и сама учится на результатах. В сочетании с открытыми весами трёх размеров — от 397B флагмана уровня Opus до 9B, работающего на телефоне, — это интересный сигнал о том, куда движется тренировка агентных кодинговых моделей. Полные таблицы бенчмарков и веса доступны на Hugging Face.
Источник: https://ornith.ai/ornith_1_5.html