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.