
Стартап PrismML, основанный исследователями из Caltech, представил Bonsai 27B — это бинарная и тернарная версии модели Qwen3.6-27B, которые сохраняют 90–95% качества исходной модели при сжатии весов в 9.4–14.2 раза. Тернарная версия занимает 5.9 ГБ и работает на обычном ноутбуке со скоростью около 26 токенов в секунду, а 1-битная умещается в 3.9 ГБ и генерирует около 11 токенов в секунду на iPhone 17 Pro Max. Это первый случай, когда модель такого класса запускается на телефоне. Проект полностью открыт под лицензией Apache 2.0: веса обеих версий опубликованы в коллекции на Hugging Face, код, демо и технический отчёт доступны в репозитории на GitHub, а попробовать модель прямо в браузере можно через WebGPU-демо на Hugging Face Spaces.
Почему квантование ниже 4 бит раньше не работало
Главное узкое место при генерации текста на устройстве — это не вычисления, а перемещение данных. На каждом шаге декодирования модель считывает из памяти практически весь набор весов, выполняя при этом мало арифметики на каждый переданный байт. Скорость генерации ограничена пропускной способностью памяти, поделённой на размер модели. Поэтому чем меньше весит модель, тем быстрее она пишет текст, и тем реальнее уместить её на телефоне, где iOS выделяет одному приложению лишь около половины физической памяти. У iPhone с 12 ГБ модели достаётся примерно 6 ГБ, и в этот бюджет не проходит даже «4-битная» сборка Qwen3.6-27B размером 17.6 ГБ.
Проблема в том, что обычное post-training квантование ниже 4–5 бит ломает модель качественно, а не постепенно. Внешне ответы выглядят нормально: текст гладкий и уверенный, но цепочки рассуждений начинают противоречить сами себе, структурированные вызовы инструментов перестают парситься, а многошаговые агентные сценарии разваливаются на середине. Единственный известный способ обойти коллапс — подход BitNet от Microsoft Research, где модель обучают в низкобитном виде с нуля, так что квантование закладывается ещё на этапе предобучения. Но это требует полного цикла обучения для каждой новой модели, и самые крупные нативные 1-битные модели так и остались на уровне около 2 миллиардов параметров. Bonsai идёт противоположным путём: берёт готовую предобученную модель и переводит её веса в бинарный или тернарный вид, сохраняя поведение.
Что такое бинарные и тернарные веса
Тернарный значит «троичный». Это способ хранения весов, при котором каждый вес принимает только одно из трёх значений: −1, 0 или +1. Для сравнения проще всего выстроить лесенку. В обычной модели каждый вес — это число с плавающей точкой (FP16), например 0.0374 или −1.2841, и на него уходит 16 бит. В бинарной (двоичной) модели вес может быть только −1 или +1, то есть хранится один бит, по сути только знак. Тернарная модель занимает промежуточное положение: к −1 и +1 добавляется ноль. Три состояния несут log₂3 ≈ 1.585 бита информации, поэтому такие модели ещё называют «1.58-битными».
Ноль здесь важен, потому что даёт модели возможность «выключить» связь между нейронами, то есть сказать «этот вход вообще не влияет на выход». В бинарном формате такого варианта нет: каждый вес обязан тянуть либо в плюс, либо в минус, даже если его вклад должен быть нулевым. Эта дополнительная выразительность объясняет разницу в качестве между двумя версиями: тернарная точнее, бинарная компактнее. Сами по себе значения {−1, 0, +1} слишком грубые, поэтому их домножают на масштабный коэффициент: на каждую группу из 128 весов хранится один общий множитель в FP16, и реальный вес получается как произведение w = s · t, где t — это тернарное значение, а s — масштаб группы. Отсюда итоговая цена хранения: 1.585 бита на значение плюс добавка 16/128 = 0.125 бита как доля масштаба, всего около 1.71 бита на вес у тернарной версии и 1.125 бита у бинарной.
Что на самом деле значит «низкобитный»
Авторы отдельно разбирают маркетинговые названия форматов квантования. Сборка с ярлыком «2-bit» почти никогда не хранит два бита на вес: чувствительные тензоры, такие как эмбеддинги и проекции внимания, остаются в 4–8 битах, плюс добавляются поблочные масштабы. В итоге «4-битный» Q4_K_XL реально содержит 5.2 бита на вес, а «2-битный» IQ2_XXS содержит 2.8 бита. Bonsai применяет своё представление сквозным образом ко всем матричным компонентам языковой модели: эмбеддингам, проекциям внимания, MLP и LM-голове. Итоговые 1.71 и 1.125 бита на вес — это честное среднее по всем весам.

Результаты на бенчмарках
Все замеры выполнены по единой методике оценки на базе фреймворка EvalScope с бэкендом vLLM на графических процессорах NVIDIA H100, в режиме рассуждений, где деградация ниже 4 бит проявляется сильнее всего. Усреднялись 15 бенчмарков по шести категориям: знания и рассуждения, математика, программирование, следование инструкциям, вызов инструментов и работа с изображениями. Исходная Qwen3.6-27B в FP16 набирает 85.07 при размере 54 ГБ. Ternary Bonsai 27B набирает 80.49 (94.6% от FP16) при 5.9 ГБ, а 1-bit Bonsai 27B набирает 76.11 (89.5%) при 3.9 ГБ. Для сравнения, «2-битный» IQ2_XXS падает до 72.73 при 9.4 ГБ, то есть Bonsai обгоняет его по качеству при вдвое-втрое меньшем размере.

Интересна структура падения качества у обычных методов. Оно избирательное: IQ2_XXS проваливается до 57.5 на AIME26 и 56.4 на LiveCodeBench, хотя всё ещё показывает 88.93 на MMLU-Redux. Именно поэтому коллапс легко пропустить в коротких тестах. Bonsai удерживает как раз те бенчмарки, где нужны длинные цепочки рассуждений: тернарная версия держит AIME на уровне 87.5–90.8, и даже 1-битная не опускается ниже 87. Математика и код почти не страдают (93.40 и 85.96 у тернарной версии против 95.33 и 88.74 у FP16), а основная цена сжатия приходится на агентные задачи, следование инструкциям и работу с изображениями.
По метрике intelligence density, которую PrismML ввела в whitepaper по 1-bit Bonsai 8B в марте 2026 года, интеллект модели измеряется как −log₂(Pₑ), где Pₑ — это вероятность ошибки, а плотность получается делением на размер в гигабайтах. 1-bit Bonsai 27B достигает 0.530 на ГБ: примерно в 2.7 раза выше самой плотной обычной сборки и более чем в 10 раз выше FP16:

Скорость на реальных устройствах
Пропускную способность замеряли стандартными метриками tg128 (скорость генерации на 128 токенах) и pp512 (скорость обработки промпта на 512 входных токенах). На ноутбуке с чипом M5 Pro бинарная версия выдаёт 44.2 токена в секунду на генерации, тернарная выдаёт 26.2. На M5 Max цифры растут до 66.4 и 44.0 соответственно. На iPhone 17 Pro Max бинарная модель генерирует 11 токенов в секунду, чего достаточно для интерактивного чата. На одной H100 через CUDA бинарная версия достигает 104.8 токенов в секунду при batch size 1.

Отдельный замер энергопотребления показал, что локальный инференс ещё и дешевле по энергии: M5 Pro декодирует бинарную модель за 0.275 мВт·ч на токен против 0.63–1.32 мВт·ч на токен у шести классов датацентровых GPU. Тест на батарее iPhone дал 672 токена на 1% заряда, то есть полный заряд проецируется примерно на 67 тысяч токенов устойчивой генерации:

KV-кэш и длинный контекст
Модель поставляется с контекстом 262K токенов, и здесь помогает гибридная архитектура Qwen3.6-27B: около 75% слоёв используют линейное внимание с рекуррентным состоянием фиксированного размера, поэтому растущий KV-кэш держат только 16 из 64 слоёв. Даже так кэш в FP16 занимает около 64 КиБ на токен и на полном окне достигает 17.2 ГБ, что больше весов самой модели. Поэтому в поставку входит 4-битный квантователь KV-кэша, сжимающий его примерно в 4 раза.
Ключевое наблюдение: Bonsai переносит квантование кэша почти без потерь. Авторы измерили forward-KL расхождение выходов при 4-битном кэше относительно FP16-кэша той же модели. У Bonsai расхождение в 12–15 раз меньше, чем у FP16-модели, на её собственных генерациях и в 75–95 раз меньше на off-policy данных, тогда как обычная «4-битная» сборка ведёт себя не лучше FP16.
Объяснение простое: веса Bonsai уже сформированы так, чтобы терпеть шум дискретизации, поэтому дополнительный шум от сжатия кэша выбрасывает меньше полезной информации. На практике обе версии держат контекст 100K токенов даже без сжатия кэша: пик памяти 11.6–12.2 ГБ у бинарной и 14.7–15.5 ГБ у тернарной. С включённым 4-битным кэшем полное окно 256K укладывается в 9.4 ГБ и 12.8 ГБ соответственно.
Спекулятивное декодирование DSpark
Низкобитные веса уменьшают объём байтов на каждый шаг декодирования, а спекулятивное декодирование уменьшает число самих шагов, поэтому эти техники дополняют друг друга. Вместе с моделью поставляется драфтер DSpark: компактный шестислойный трансформер, который читает скрытые состояния из пяти равномерно распределённых слоёв целевой модели и предсказывает блок из четырёх токенов за один проход. Лёгкая последовательная голова восстанавливает зависимости внутри блока, а confidence-голова оценивает вероятность выживания каждой позиции при проверке, чтобы верифицировать только токены с положительным ожидаемым выигрышем. Проверка целевой моделью математически не меняет распределение выходов, поэтому ускорение достаётся без потери качества.

На H100 средняя принятая длина составляет 3.6–3.7 токена за проверку, что даёт ускорение декодирования в 1.34–1.37 раза поверх низкобитных kernels (Table 9, стр. 13). На потребительской RTX PRO 6000 выигрыш достигает +17%. На Apple Silicon драфтер пока выключен по умолчанию: при batch size 1 многострочный проход проверки там ещё не окупается.
Ограничения
Авторы честно перечисляют слабые места. Тернарные веса пока хранятся в 2-битных слотах, поэтому развёрнутый размер тернарной версии составляет 7.2 ГБ вместо теоретических 5.9 ГБ, и она не проходит в память iPhone; нативные тернарные kernels в работе. Тернарная и бинарная версии теряют заметные баллы на агентных задачах и зрении относительно FP16, а вариант, заточенный под агентное программирование с многофайловыми правками и циклами запусков тестов, обещают отдельным релизом. Наконец, ускорение DSpark пока подтверждено только на CUDA. Тем не менее главный результат уже зафиксирован: качественный коллапс ниже 4 бит, который считался свойством самих моделей, оказался свойством методов квантования, и модель уровня 27B параметров теперь помещается на устройства, которые лежат в кармане.






