Ornith-1.0-35B: качество плотной 27B от MoE-модели на MacBook
Как MoE-модель на 35B с 3B активных параметров выглядит на фоне Qwen3.6, что ей нужно для запуска в llama.cpp и где она сильна, а где отстаёт.
Плотная модель на 27B тяжело даётся в ежедневной работе, даже если она хорошая, как Qwen3.6-27B. Ornith-1.0-35B идёт другим путём. Всего у неё 35 миллиардов параметров, но на каждый токен просыпаются лишь около 3 миллиардов, она помещается на потребительское железо, а в программировании и работе с инструментами держится рядом с плотными 27B. К тому же она поставляется в GGUF, так что не нужно ни обновлять llama.cpp, ни поднимать особый стек для инференса. Скачал, загрузил, поехали. И работает она быстро.
Что такое Ornith-1.0-35B
Ornith-1.0 — семейство моделей от DeepReinforce. Оно стартует с предобученных весов Qwen 3.5 и дообучается собственным методом лаборатории — обучением с подкреплением на самостроящихся каркасах (self-scaffolding RL). Версия на 35B построена по схеме Mixture-of-Experts (MoE): параметров 35B, но в обработке каждого отдельного токена участвуют примерно 3B.
Представьте большой мозг, в котором на каждую мысль загорается только нужная область, а остальное отдыхает и экономит вычисления. В итоге получается качество, близкое к плотной 27B, при активных вычислениях примерно на 3B. Для локального ИИ это очень привлекательный баланс.
Цифры
Комплексный бенчмарк spark-bench, опубликованный на github.com/Weschera/spark-bench, прогоняет 57 сценариев в 10 областях. Вот как Ornith выступил против семейства Qwen3.6:
Model Overall Coding Math Tool Use Reasoning
Ornith-1.0-35B 41.07 62.26 47.29 58.14 38.92
Qwen3.6-27B (dense) 43.12 64.18 49.87 56.32 41.05
Qwen3.6-35B-A3B (MoE) 39.84 59.47 44.12 52.88 37.21
Несколько моментов бросаются в глаза.
Ornith обходит Qwen3.6-35B-A3B везде. Это её ближайший родственник: обе — MoE-модели на 35B примерно с 3B активных. Self-scaffolding RL даёт Ornith заметный отрыв в коде (+2,8 балла), работе с инструментами (+5,3) и рассуждениях (+1,7).
Ornith также держится рядом с Qwen3.6-27B. Плотная модель всё ещё впереди в общем зачёте на 2,05 балла, но в коде разрыв сокращается до 1,92, а в работе с инструментами картина обратная: Ornith впереди на 1,82. В математике и чистых рассуждениях плотная модель по-прежнему выигрывает. Но для агентной работы с кодом Ornith вполне конкурентоспособна.
Тест на MacBook
Модель подключили к агенту на MacBook, и полный рабочий цикл включал поиск в интернете, написание кода и правку файлов. В повседневной работе она ощущалась как Qwen3.6-27B, только быстрее.
Причина в архитектуре. Когда на токен активны лишь около 3B параметров, квантизация Q4_K_M в llama.cpp требует на токен гораздо меньше вычислений, чем плотная 27B, хотя общее число параметров больше.
Model Q4_K_M Size Active Params Est. tok/s (M4 Max 64GB)
Ornith-1.0-35B (MoE) 21.2 GB ~3B ~75-85 tok/s
Qwen3.6-27B (dense) 16.5 GB 27B ~15-18 tok/s
Qwen3.6-35B-A3B (MoE) 20.5 GB ~3B ~65-75 tok/s
GGUF Ornith в Q4_K_M занимает 21,2 ГБ, чуть больше, чем 16,5 ГБ у Qwen3.6-27B, зато активных вычислений на токен примерно в девять раз меньше. В этом и состоит компромисс MoE: один раз платишь памятью, чтобы загрузить всех экспертов, а потом на каждый токен платишь вычислениями лишь за 3B.
На M4 Max с 64 ГБ сборка Q4_K_M занимает около 25 ГБ памяти с учётом весов, KV-кэша и рантайма, так что остаётся с запасом места для контекста и других приложений.
Обновлять llama.cpp не нужно
Ornith-1.0-35B работает из коробки на актуальной llama.cpp. Она использует те же теги <think> и </think>, что и модели Qwen, а llama.cpp нативно маршрутизирует экспертов. Никаких патчей, форков и ожидания поддержки в апстриме.
Когда агенту указали скачанный GGUF, теги рассуждений разбирались корректно, вызовы инструментов работали, а многоходовые циклы агента шли без проблем.
Сильные стороны и ограничения
Код и работа с инструментами — её родная стихия. Обучение self-scaffolding RL было нацелено именно на агентные сценарии программирования, и в тестах модель писала чистый код, справлялась с правками в нескольких файлах и разумно выбирала инструменты (веб-поиск, команды в шелле).
Рассуждения крепкие, хотя на ступень ниже, чем у Qwen3.6-27B. В чистой математике и запутанной логике плотная модель сохраняет преимущество. Для рассуждений, которые важны в программировании, вроде отладки, архитектурных решений и код-ревью, Ornith более чем достаточно.
Длинный контекст поддерживается свыше 200K токенов. До предела его не доводили, но на 32K–64K модель без жалоб справляется с большими кодовыми базами и RAG по нескольким документам.
Заменой Qwen3.6-27B она не станет, если вам нужна максимальная глубина рассуждений или математика. Если же основная нагрузка — код, инструменты и циклы агентов, вы получаете около 90% качества за малую долю вычислений.
Итог
Ornith-1.0-35B — модель, на фоне которой гонка за числом параметров выглядит менее важной: 35B всего, 3B активных на токен, качество около плотной 27B в коде и работе с инструментами, потребительское железо, никакого особого инференса. Для MacBook это золотая середина.
Пользуетесь Qwen3.6-35B-A3B? Переходите на Ornith. Работаете с Qwen3.6-27B и хотите инференс побыстрее без заметной потери качества? Попробуйте. GGUF лежит на Hugging Face, поддержка в llama.cpp работает гладко, и результаты подтверждаются.
Локальный open-source ИИ продолжает улучшаться, и то, как прибавляет MoE-модель, говорит о большом запасе для роста. Следующая веха, за которой стоит следить, — Qwen3.7-27B.