Ornith-1.5: от скаффолдинга к самоулучшению

· 2 мин чтения
ornith llm benchmarks reinforcement-learning open-source
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.

Каждый тренировочный цикл идёт в три шага:

  1. Генерация задач. По окружению или кодовой базе, высокоуровневому описанию типа задачи и истории предыдущих решений модель предлагает всё более сложные задачи — за пределами уже решённого. Так вскрываются пробелы в способностях и непрерывно сдвигается фронтир обучения.
  2. Генерация скаффолда. Для каждой задачи модель создаёт или уточняет специфичный скаффолд: инструкции, инструменты, стратегию декомпозиции и оркестрацию.
  3. Роллаут. Условленная задачей и скаффолдом политика производит решение.

Награда от роллаута распространяется на все три стадии: система учится не только лучше решать, но и генерировать более полезные задачи и строить более эффективные скаффолды. Повторяясь, это даёт замкнутую петлю: более сильная политика порождает более трудные и информативные задачи, эволюционирующие скаффолды лучше выявляют способности модели, а качественные роллауты дают более сильный обучающий сигнал. Вместо статичного тренировочного распределения и хенд-крафтового дизайна агента 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