Ternary Bonsai 2 27B: 5,93 ГБ вместо 53,8 ГБ при 98,2% качества Qwen3.8 27B

PrismML выпустила Ternary Bonsai 2 27B — тернарную версию Qwen3.8 27B. Веса занимают 5,93 ГБ против 53,80 ГБ в FP16, то есть примерно в 9,1 раза меньше. По заявлению разработчика, модель сохраняет 98,2% средней оценки родителя по 20 бенчмаркам. Модель принимает текст и изображения, поддерживает контекст 262K токенов. В демонстрациях PrismML она управляет кодинг-агентами Cline и сценариями computer use на RTX 5090. Релиз вышел через два месяца после первой Bonsai 27B, тернарный вариант которой удерживал около 95%.

Веса под лицензией Apache 2.0 запускаются на 16-гигабайтном ноутбуке или одной 24-гигабайтной видеокарте. Для работы нужен форк llama.cpp от PrismML либо его среда выполнения MLX.

Что внутри: архитектура без изменений, тернарные веса почти везде

Архитектура Qwen3.8 27B оставлена без изменений. Всего 27,36 млрд параметров: 24,35 млрд — языковой каркас, 2,54 млрд — эмбеддинги и LM head, 0,47 млрд — визуальный блок. Каркас использует гибридное внимание: около 75% слоёв с линейным вниманием и 25% с полным.

Тернарные веса охватывают эмбеддинги, проекции внимания, проекции MLP и LM head. В повышенной точности остаются лишь 26,2 млн параметров, или 0,0976%: это путь рекуррентного состояния и веса нормализации. В формате GGUF визуальный блок поставляется отдельным файлом на 0,63 ГБ и загружается только при подаче изображений.

Как работает тернарный формат

Каждый вес принимает одно из трёх значений: -1, 0 или +1. Каждая группа из 128 весов делит одну FP16-шкалу. Одно тернарное значение несёт log2(3), то есть примерно 1,585 бита. С добавлением 16 бит шкалы на 128 весов получается 1,71 бита на вес, а с учётом тензоров повышенной точности — 1,72.

Реальным ядрам нужна упакованная раскладка, поэтому в whitepaper описаны две упаковки GGUF. PTQ1_0 плотно пакует триты — 1,76 бита на вес и 5,93 ГБ. PQ2_0 хранит каждый трит в 2-битном слоте — 7,25 ГБ, зато распаковывается дешевле.

Веса хранятся и в повёрнутом базисе: PrismML применяет блочное преобразование Адамара с размером блока 1024 до присвоения тернарных значений. Среда выполнения применяет соответствующее преобразование к активациям перед каждым умножением. В whitepaper источником идеи назван SpinQuant. Как именно PrismML присваивает тернарные значения, не публикуется.

Результаты против Qwen3.8 27B

Все модели оценивались в режиме thinking с EvalScope и vLLM на GPU H100.

Возможность Qwen3.6 27B Qwen3.8 27B Ternary Bonsai 2 27B Сохранение
Знания и рассуждения 84,71 86,66 83,95 96,9%
Математика 94,64 97,06 96,57 99,5%
Код 82,57 82,17 81,58 99,3%
Агентность и вызов инструментов 80,05 79,74 77,57 97,3%
Следование инструкциям 74,53 81,25 82,66 101,7%
Зрение 79,82 81,64 78,59 96,3%
Итог (20 бенчмарков) 83,6 85,4 83,9 98,2%

Ещё показательнее сравнение с обычной квантовкой. Сборка IQ2_XXS модели Qwen3.8 27B даёт в среднем 75,2 при 7,3 ГБ. На AIME26 она набирает 78,6, тогда как Bonsai 2 — 95,83. На LiveCodeBench v6 разрыв 70,05 против 90,07.

Где качество всё-таки проседает

98,2% — это средняя, и потери распределены неравномерно. Зрение сохраняет 96,3%, знания и рассуждения — 96,9%.

Заметнее падение на длинных агентных задачах. Bonsai 2 набирает 52,8 на Terminal-Bench 2.1 против 69,7 у Qwen3.8 27B. На SWE-bench Verified — 60,8 против 80,6. Это около 75% сохранения, и оба результата не входят в среднее по 20 бенчмаркам.

Играет роль и усилие рассуждения: при среднем уровне модель даёт в среднем 79,3 против 82,6 у FP16-базлайна. Низкий уровень не поддерживается. Все результаты получены самим PrismML и независимо не воспроизводились.

Скорость на реальном железе

Замеры — декодирование при размере батча 1 на собственных ядрах PrismML, от 16 сентября 2026 года. RTX 5090 выдаёт 142,5 токена в секунду при 0,582 мВт·ч на токен. RTX 4090 — 96,7 токена в секунду с упаковкой PTQ1_0, а L4 с потреблением 72 Вт — 32,1. На ноутбуках Apple M5 Max показывает 46,8, M5 Pro — 27,7.

Ни одна упаковка не выигрывает везде. PTQ1_0 быстрее на картах поколения Ada и на L4. PQ2_0 быстрее на Blackwell, Hopper, Ampere и Apple silicon, а также везде при обработке промпта. Команда PrismML также заявляет о 40% лучшей энергоэффективности по сравнению с полноточным 8B-моделью.

Как запустить

Файлы GGUF требуют форка llama.cpp от PrismML: штатный llama.cpp не принимает типы PTQ1_0 и PQ2_0. Поддерживаемый путь — репозиторий Bonsai-demo. Сначала запускается ./setup.sh, затем ./scripts/start_llama_server.sh — чат, зрение и инструменты поднимаются на localhost:8080.

Пользователи Mac могут взять пакет MLX, которому нужен встроенный загрузчик. Есть и демонстрация на WebGPU, запускающая модель прямо в браузере.

Для тех, кто разворачивает локальный инференс на своём железе, выбор между PTQ1_0 и PQ2_0 стоит делать по видеокарте: на Ada и L4 выгоднее первая, на Blackwell, Hopper, Ampere и Apple silicon — вторая. Если агентные задачи с длинным горизонтом критичны, стоит помнить: именно там отставание от полной точности максимально — около 75% по Terminal-Bench и SWE-bench Verified. Для локального кодинг-ассистента на одной 24-гигабайтной карте это по-прежнему редкий компромисс: 27B-модель с поддержкой изображений и контекстом 262K токенов умещается в 5,93 ГБ. Если сравнивать с другими компактными решениями под локальный запуск, маршрутизатор NVIDIA PAIR решает смежную задачу — раздаёт инференс между RTX, DGX Spark и Mac, а кодинг-модель Cognition SWE-2 показывает, какие результаты на агентных бенчмарках сегодня достижимы у специализированных моделей.

Частые вопросы

Кого касается этот релиз?

Тех, кто запускает локальные LLM: модель помещается на 16-гигабайтный ноутбук или одну 24-гигабайтную GPU, что делает 27B-класс доступным на потребительском железе.

Какая лицензия у весов?

Apache 2.0 — веса можно использовать и распространять в рамках этой лицензии.

Сколько места займут файлы?

Основной вариант PTQ1_0 — 5,93 ГБ. Упаковка PQ2_0 занимает 7,25 ГБ, но распаковывается дешевле. Визуальный блок в GGUF идёт отдельным файлом на 0,63 ГБ.

Можно ли загрузить модель в обычный llama.cpp?

Нет. Штатный llama.cpp не принимает типы PTQ1_0 и PQ2_0 — нужен форк от PrismML. Для Mac есть пакет MLX со встроенным загрузчиком.

Что даёт контекст 262K токенов?

Модель принимает длинные документы и изображения; контекст заявлен на уровне 262K токенов, как и у родительской Qwen3.8 27B.

Насколько модель хуже полной точности на агентных задачах?

Заметно хуже, чем в среднем. На Terminal-Bench 2.1 — 52,8 против 69,7, на SWE-bench Verified — 60,8 против 80,6, то есть около 75% сохранения. Эти бенчмарки не входят в среднее по 20 тестам.

Проверял ли кто-то результаты независимо?

Нет. Все цифры — собственные замеры PrismML, независимого воспроизведения не было.

Поддерживается ли низкий уровень усилия рассуждения?

Нет. При среднем уровне модель даёт в среднем 79,3 против 82,6 у FP16-базлайна, а низкий уровень не поддерживается.

Источник: marktechpost.com