Ornith-1.5

Представлена Ornith-1.5 — крупный шаг на пути к построению foundation-моделей через сквозное самосовершенствование. Ornith-1.5 расширяет фреймворк самостоятельного построения инфраструктуры (self-scaffolding), представленный в Ornith-1.0, до более полного цикла самосовершенствования: модель предлагает новые задачи, генерирует специфичные для задачи scaffold-ы и производит решения (rollouts) для обучения с подкреплением, непрерывно создавая новый учебный опыт, на основе которого продолжает улучшаться.

Ornith-1.5 выпущена в трёх масштабах: 397B MoE, 35B MoE и 9B dense. Модель ориентирована на сильный универсальный интеллект в задачах рассуждения, агентных сценариях и кодинге и демонстрирует state-of-the-art результаты среди открытых моделей сопоставимого размера по широкому набору бенчмарков. Ornith-1.5-397B набирает 86.1 балла на Terminal-Bench 2.1 и 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-9B: с квантованной версией Ornith-1.5-9B-Mobile модель можно развернуть прямо на iPhone и Android-устройствах, при этом она существенно превосходит более крупные модели, такие как Gemma 4-31B и Qwen 3.6-35B.

Результаты оценки Ornith-1.5-397B

На флагманском масштабе Ornith-1.5-397B набирает 86.1 на Terminal-Bench 2.1 и 56 на DeepSWE, совпадая с показателями Claude Opus 4.8 по обоим бенчмаркам и опережая ведущие открытые модели аналогичного размера, включая GLM-5.2 и DeepSeek-V4-Flash-0731.

Результаты оценки Ornith-1.5-35B

Ornith-1.5-35B значительно опережает своего ровесника по размеру Qwen 3.6-35B по всем бенчмаркам кодинга и агентных задач, а несмотря на активацию всего 3B параметров на токен, обходит и dense-модели — Gemma 4-31B и Muse Glimmer-30B от Meta — с большим отрывом в агентном кодинге (68.5 против 43.4 и 51.7 на Terminal-Bench 2.1; 79.0 против 52.0 и 76.0 на SWE-Bench Verified).

Результаты оценки Ornith-1.5-9B

Развёртываемая на edge-устройствах Ornith-1.5-9B также показывает заметно сильные результаты: 47.0 на Terminal-Bench 2.1 и 70.6 на SWE-Bench Verified. Несмотря на компактные 9B параметров, модель сравнима или превосходит по производительности гораздо более крупные модели, такие как Gemma 4-31B и Qwen 3.6-35B.

Самосовершенствование через самостоятельно сгенерированные задачи, scaffold-ы и решения

Ornith-1.5 расширяет Ornith-1.0, переводя цикл самосовершенствования от оптимизации scaffold-ов и rollout-ов к совместной оптимизации генерации задач, построения scaffold-ов и решений. Вместо опоры на фиксированный набор задач, подготовленных людьми, и вручную спроектированные harness-ы, Ornith-1.5 непрерывно генерирует новые обучающие задачи, находит эффективные стратегии их решения и улучшает политику через обучение с подкреплением.

Каждый цикл обучения проходит в три этапа. Имея окружение или кодовую базу, инструкции высокого уровня о типе задачи и доступ к истории решения предыдущих задач, система предлагает всё более сложные задачи, выходящие за пределы уже решённого моделью, вскрывая пробелы в возможностях и постоянно расширяя границу обучения.

Для каждой задачи модель затем генерирует или уточняет специфичный scaffold — инструкции, инструменты, стратегию декомпозиции и оркестрацию, используемые для подхода к задаче. При заданных задаче и scaffold-е политика формирует решение (rollout). Награда за rollout распространяется на все три этапа, поэтому система учится не только производить лучшие решения, но и генерировать более полезные обучающие задачи и строить более эффективные scaffold-ы.

Повторяясь на протяжении обучения, это создаёт замкнутый цикл самосовершенствования: более сильные политики позволяют генерировать более сложные и информативные задачи, эволюционирующие scaffold-ы находят лучшие способы раскрыть возможности модели, а более качественные rollout-ы дают всё более эффективные обучающие сигналы. Вместо опоры на статичное распределение обучающих данных или вручную спроектированную архитектуру агента, Ornith-1.5 непрерывно расширяет собственную учебную программу и адаптирует стратегии решения задач, обеспечивая устойчивый рост возможностей в рассуждениях, кодинге и агентных задачах.

Цикл самосовершенствования Ornith-1.5 через сгенерированные задачи, scaffold-ы, rollout-ы, награды и обновления GRPO

Награда за задачу

Для схемы вопрос → scaffold → rollout награда за задачу определяется тремя сигналами: валидность, фронтирная сложность и новизна. Пусть \(q\) обозначает сгенерированный вопрос, \(s\) — его scaffold, а \(\{\tau_i\}_{i=1}^{N}\) — набор решений (rollout-ов). Определим

\[ R_{\text{task}} = \underbrace{V(q,s)}_{\text{Валидна и проверяема?}} \times \underbrace{D\!\left(q,s,\{\tau_i\}_{i=1}^{N}\right)}_{\text{Верная сложность?}} \times \underbrace{N(q)}_{\text{Достаточно нова?}}. \]

Здесь \(V\) измеряет, образуют ли сгенерированная задача и scaffold валидную и проверяемую обучающую среду, \(D\) измеряет, находится ли задача около текущей границы возможностей модели на основе производительности rollout-ов, а \(N\) измеряет новизну относительно ранее сгенерированных или обучающих задач. Мультипликативная формулировка стимулирует генератор задач создавать задачи, удовлетворяющие всем трём свойствам одновременно: валидные, соответствующе сложные и не избыточные.

Валидность и проверяемость

Полезная задача должна формировать чётко определённую обучающую среду. Вопрос должен быть связным и решаемым, а scaffold должен корректно выполняться и надёжно оценивать предложенные решения. Определим

\[ V(q,s) \in [0,1], \]

на основе таких проверок, как успешность выполнения scaffold-а, прохождение решений с высокой уверенностью, отбраковка явно неверных решений и соответствие оценки спецификации задачи. Валидность также можно рассматривать как жёсткий фильтр:

\[ V(q,s)=0 \quad\Rightarrow\quad R_{\text{task}}=0. \]

Это не позволяет некорректно сформулированным задачам или ненадёжным scaffold-ам получать награду просто потому, что они выглядят сложными.

Фронтирная сложность

Среди валидных задач наиболее полезны те, что не тривиальны, но и не невозможны. Сложность оценивается непосредственно по rollout-ам модели.

Для каждой задачи выбирается \(N\) rollout-ов и вычисляется эмпирическая доля успеха

\[ p = \frac{1}{N} \sum_{i=1}^{N} \mathbf{1}\!\left[s(q,\tau_i)=\text{success}\right]. \]

Затем награда назначается задачам, чья доля успеха близка к целевому фронтиру \(p^*\):

\[ D(q,s,\{\tau_i\}) = \exp\!\left(-\frac{(p-p^*)^2}{2\sigma^2}\right). \]

\(p^*\) установлен равным 0.2, что отдаёт приоритет задачам, которые сложны, но всё же дают достаточно успешных траекторий для обучения с подкреплением. По мере того как модель совершенствуется и решает задачу более надёжно, награда за неё естественным образом снижается, толкая генератор к более сложным задачам.

Новизна и разнообразие

Одна лишь фронтирная сложность может привести к тому, что модель будет повторно генерировать небольшие вариации одних и тех же задач. Поэтому добавлен член новизны:

\[ N(q) = 1 - \max_{q_j \in \mathcal{B}} \operatorname{sim}(q,q_j), \]

где \(\mathcal{B}\) — буфер ранее сгенерированных или обучающих задач. Новизна должна оставаться второстепенной по отношению к валидности и сложности: её роль — снижать избыточность, а не поощрять произвольно странные задачи.

В совокупности эти сигналы стимулируют генератор задач создавать задачи, которые валидны, проверяемы, сложны, но решаемы, и достаточно разнообразны. Поскольку фронтирная сложность измеряется на основе rollout-ов самой текущей модели, итоговая учебная программа автоматически развивается вместе с ростом её возможностей.

Награды за harness и rollout

Для сгенерированного вопроса \(q\) harness \(h\) получает награду за предоставление оценочной среды, которая соответствует задаче, точно отражает качество решения и устойчива к «взлому» награды:

\[ R_{\text{harness}} = \underbrace{C(q,h)}_{\text{Соответствие задаче}} \times \underbrace{F\!\left(h,\{\tau_i\}\right)}_{\text{Точность награды}} \times \underbrace{H(h)}_{\text{Устойчивость к взлому}}. \]

Здесь \(C\) измеряет, насколько верно harness отражает спецификацию задачи, \(F\) измеряет, насколько его награды соответствуют реальному качеству предложенных решений, а \(H\) измеряет устойчивость к сбоям оценщика, обходным путям и поведению, направленному на «взлом» награды.

Каждый rollout \(\tau_i\) оценивается непосредственно сгенерированным harness-ом:

\[ R_{\text{rollout}}(\tau_i) = \underbrace{h(q,\tau_i)}_{\text{Успех задачи}}. \]

Для проверяемых задач это может быть бинарная награда «прошёл/не прошёл»; для более сложных сред она может сочетать корректность, завершённость задачи, эффективность и соблюдение ограничений. Генерация вопросов, генерация harness-ов и решения (rollout-ы) — все три компонента оптимизируются с помощью GRPO с использованием соответствующих наград, что позволяет всем трём этапам совместно улучшаться в рамках одного цикла самосовершенствования.

Полная таблица результатов

Ornith-1.5-397B

Бенчмарк Ornith-1.5
(397B)
DeepSeek-V4-Flash-0731
(284B)
GLM-5.2
(753B)
Claude Opus 4.8 Kimi K3
(2.8T)
Ornith-1.0
(397B)
Кодинг
Terminal Bench 2.1 (Terminus-2)86.182.7818588.377.5
Terminal Bench 2.1 (Claude Code)85.281.882.778.978.2
SWE-bench Verified8681.68385.886.282.4
SWE-bench Pro65.164.462.16862.2
SWE-bench Multilingual79.677.978.475.778.9
DeepSWE5654.446.25967.58
Frontier-Bench v0.113.56.15.121.1232.7
NL2Repo59.554.248.969.748.2
SWE Atlas – QnA55.651.65059.759.741.2
Рассуждения
HLE (без инструментов)44.63540.549.843.530.2
HLE (с инструментами)56.150.854.757.95647.5
GPQA Diamond92.891.491.293.693.588.1
Агентные задачи
MCP-Atlas8074.677.882.282.376.4
Toolathlon-Verified71.270.348.276.273.243.2
WideSearch80.877.37972.975.2
BrowseComp86.684.885.684.391.279.7
ClawEval81.477.678.880.277.1

Ornith-1.5-35B

Бенчмарк Ornith-1.5-35B-A3B Ornith-1.0-35B-A3B Qwen3.6-35B-A3B Gemma-4-31B
(dense)
Muse-Glimmer-30B
(dense)
Qwen3.5-397B
(397B)
Кодинг
Terminal Bench 2.1 (Terminus-2)67.864.252.542.151.753.5
Terminal Bench 2.1 (Claude Code)68.562.849.248.6
SWE-bench Verified7975.673.4527676.4
SWE-bench Pro59.650.449.535.751.251.6
SWE-bench Multilingual71.469.367.251.769.3
DeepSWE22001
Frontier-Bench v0.15.11.41.41.4
NL2Repo46.234.629.415.536.8
SWE Atlas – QnA39.837.115.520.4
Рассуждения
HLE (без инструментов)25.620.821.419.52228.7
HLE (с инструментами)33.430.128.926.548.3
GPQA Diamond89.286.28684.383.588.4
Агентные задачи
MCP-Atlas70.264.462.85575.572.3
Toolathlon-Verified48.742.441.740.838.3
WideSearch67.863.460.154.274
BrowseComp67.663.56278.6
ClawEval72.569.868.748.570.7

Ornith-1.5-9B

Бенчмарк Ornith-1.5-9B Ornith-1.0-9B Qwen3.5-9B Qwen3.6-35B-A3B Gemma-4-31B
(dense)
Кодинг
Terminal Bench 2.1 (Terminus-2)46.243.121.352.542.1
Terminal Bench 2.1 (Claude Code)4740.618.949.2
SWE-bench Verified70.669.453.273.452
SWE-bench Pro47.542.931.349.535.7
SWE-bench Multilingual54.45239.767.251.7
NL2Repo32.427.216.229.415.5
SWE Atlas – QnA20.617.99.215.5
Рассуждения
HLE (без инструментов)20.216.814.721.419.5
HLE (с инструментами)30.526.424.528.926.5
GPQA Diamond86.482.581.78684.3
Агентные задачи
MCP-Atlas54.249.446.862.855
Toolathlon-Verified41.233.429.641.752.8
WideSearch59.555.853.660.154.2
BrowseComp56.444.841.562
ClawEval66.563.153.268.748.5

Примечания

  • Все результаты, приведённые для Ornith-1.5, усреднены по пяти независимым запускам.
  • Terminal-Bench 2.1 (Terminus-2): оценка проводилась с использованием фреймворка Harbor/Terminus-2 с parser=json, temperature=1.0, top_p=1.0 и контекстным окном 128K. Каждый запуск выполнялся с таймаутом 4 часа, с использованием 32 ядер CPU и 48 ГБ RAM, результаты усреднены по 5 запускам. Шаблон чата Qwen был скорректирован для обеспечения согласованности между обучением и инференсом, а Harbor модифицирован для соответствия ключу reasoning_content в vLLM.
  • Terminal-Bench 2.1 (Claude Code): оценка проводилась с использованием Claude Code 2.1.126 с parser=json, temperature=1.0, top_p=1.0, max_new_tokens=131072. Результаты усреднены по 5 запускам. Шаблон чата Qwen также требовал корректировки.
  • SWE-Bench Verified, Pro и Multilingual: оценка через harness OpenHands с temp=1.0, top_p=0.95, контекстным окном 256K. На протяжении всей оценки применялись меры защиты от «взлома» награды: из локального образа репозитория удалялась история Git, чтобы исключить доступ к готовым решениям или коммитам; сетевой доступ отключался, что не позволяло модели получать внешнюю информацию или ресурсы.
  • DeepSWE: оценка через harness Claude Code с temperature=1.0, top_p=0.95 и контекстным окном 256K.
  • SWE Atlas QnA, RF, TW: оценка через harness mini SWE agent с temp=1.0, top_p=0.95, контекстным окном 128K. Результаты усреднены по 5 запускам.
  • NL2Repo: с temperature=1.0, top_p=1.0, контекстом 400K, выходом 48K. Доступ к указанным GitHub-репозиториям и pip-пакетам был заблокирован для предотвращения «взлома» награды.
  • HLE: оценка проводилась с использованием Claude 4.6 Opus в роли модели-судьи.
  • MCP-Atlas: все модели оценивались в режиме размышления (thinking mode) на публичном подмножестве из 500 задач, с таймаутом 10 минут на задачу. В роли модели-судьи использовался Claude 4.8 Opus.
  • Tool-Decathlon: использовался официальный сервис оценки с максимальным лимитом токенов 128K.
  • ClawEval: агентный бенчмарк по коду на реальных распределениях пользовательских задач; temp=0.6 и контекстное окно 256K.