← Лендинг Hermes Agent

Опубликовано

Bonsai 2 27B на RTX 4060: замер скорости, качества и контекста

Автор: Гусев Николай [портфолио]

Дата обновления не указана в исходнике.

Темы: local-models, benchmarks, gpu

Сложность: средняя

PrismML выпустила Bonsai 2 - тернарную версию Qwen3.8-27B: 5,95 ГБ вместо ~54 ГБ полной модели, заявлено 98,2% исходного интеллекта и контекст до 262к. Мы скачали её, запустили на RTX 4060 с восемью гигабайтами и прогнали через наш стандартный замер из 38 задач. Ниже - цифры скорости, качество и вывод: кому этот бонсай реально нужен.

Как запустить у себя (главное из инструкции)

LM Studio эту модель не откроет: формат PTQ1_0 с тернарными весами и поворотом Адамара требует кастомных ядер. Рабочий путь - llama.cpp форк от PrismML.

  1. Скачать с релизов https://github.com/PrismML-Eng/llama.cpp сборку prism-b10685 (Windows CUDA 12.4, 241 МБ) и cudart-пакет (373 МБ), распаковать оба архива в одну папку. Свежий релиз b10687 сломан - там выложили только cudart-DLL без самого llama-server.
  2. Скачать GGUF: huggingface.co/prism-ml/Ternary-Bonsai-2-27B-gguf, файл Ternary-Bonsai-2-27B-PTQ1_0 (5,95 ГБ). PTQ1_0 быстрее на Ada-картах; PQ2_0 (7,21 ГБ) - выбор для H100/Blackwell.
  3. Выгрузить модели LM Studio перед стартом: 8 ГБ VRAM целиком нужна модели.
  4. Запустить сервер:

llama-server.exe -m Ternary-Bonsai-2-27B-PTQ1_0.gguf --port 8601 -ngl 99 -fa on -c 65536 --temp 1.0 --top-p 0.95 --top-k 20 --jinja

  1. Подключить к Hermes Agent как обычный OpenAI-совместимый провайдер: base_url http://127.0.0.1:8601/v1, api_key none, model - любое имя, context_window - как в флаге -c.

Полная инструкция с ловушками (прокси перехватывает localhost-запросы от python-клиентов, xhigh съедает бюджет токенов, mmproj для картинок) лежит в репо материалов.

Почему 27B в 8 ГБ - это важно

Рабочая лошадка домашнего локального ИИ сегодня - модель 7-9B в квантовании Q4: 4-5 ГБ, 30-60 tok/s, и всё это вместе с контекстом помещается в 8 ГБ VRAM. Bonsai 2 меняет расклад этого компромисса: в тернарных весах, где каждый вес равен -1, 0 или +1, упаковано 27 миллиардов параметров. 1,72 бита на вес - маркетинговый "2-bit" с хвостом не выглядит: тернарная упаковка это честная схема. Плюс гибридное внимание от Qwen3.8: примерно 75% слоёв линейные, и только 16 из 64 держат полный кэш внимания - поэтому 262к контекста заявляется как работающее на реальном железе.

Что поймали по ходу

Первая слабость - совместимость. Стоковый llama.cpp эти файлы не открывает, нужен форк PrismML. Свежий релиз от 17.09 выложили без основного бинаря - CI сломался, рабочий вариант на день позже.

Вторая слабость - заводской режим рассуждений. По умолчанию включён уровень xhigh: модель обязана рассуждать до ответа. На одиночном вопросе это работает, но в батче из 38 задач 10 задач израсходовали весь лимит 3072 токенов на рассуждение и не выдали финального ответа. Это не баг, а настройка: уровень effort снижается до medium, и режим становится практичным.

Замер на 64к контекста (38 задач, 102 минуты)

Набор - тот же, что в замере "38 задач, 8 русских моделей": фактчекинг, писательство, рассуждения, жёсткие форматы, токен-экономика. Чекеры - те же грубые маркеры, поэтому сравнение с прошлыми прогонами по одной методике честное. Одна оговорка: в сентябрьском замере этот сет гоняли облачные модели, а прошлый локальный замер под 8 ГБ (шесть моделей 7-9B) шёл по другому харнессу - прямое числовое сравнение с ним корректно только по скорости и VRAM, не по баллам чекеров.

Скорость на RTX 4060 8 ГБ:

  • средний декод 9,0 tok/s по всем 38 задачам
  • короткие ответы: 10-11 tok/s
  • длинные генерации: 7,3-7,6 tok/s
  • prefill: 43,8 tok/s на 4-тысячном промпте

VRAM: 7,68 ГБ занято из 8,19 - модель, KV-кэш на 64к и буферы. Полностью на GPU, без выгрузок на RAM. Главный замер здесь: 27 миллиардов параметров целиком влезает в 8 ГБ, чего плотный квант сделать не может - Q4 от Qwen3.8-27B занимает около 16 ГБ и в 8 ГБ не влезает никак.

Качество (грубый чекер, процент от максимума): reasoning 87,5; writing 75; format 75; factcheck 60. Просадка factcheck - прямое следствие xhigh: модель тратила все 3072 токена на сомнения и не успевала напечатать ответ. По рассуждению в этих же 10 задачах видно, что правильный ответ в ней был.

Что с контекстом

Гибридная архитектура держит полный кэш только на 16 слоях из 64, KV растёт медленно - 128к контекста влезает в те же 8 ГБ. Замер prefill на 16к/32к/65к/131к и живой вопрос с 128к - во второй части ниже.

Vision-режим - отдельный mmproj-файл на 0,63 ГБ, грузится только под задачи с картинками; для текста не тратится.

Что это значит для практики

Сравнение по скорости: прошлый локальный замер под 8 ГБ отвечал моделями 7-9B в диапазоне 30-60 tok/s (LM Studio, Q4). Bonsai 2 на той же карте даёт 9 tok/s и prefill 44 tok/s - медленнее, но за эту цену покупается класс модели 27B с практичным длинным контекстом.

Bonsai 2 имеет смысл не для чата, а для двух сценариев:

  1. Агент с длинным контекстом - когда надо держать в контексте большой репозиторий, лог или договор, а облачные API под 152-ФЗ или NDA запрещены. У Bonsai 2 полный KV нужен только на 16 слоях из 64, поэтому 64к ставим без дополнительных настроек (7,68 ГБ занято), а 128к проверяем следом.
  2. Извлечение и структура - формат, JSON, таблицы. Стабильный finish=stop на formatting-задачах - признак, что модель можно ставить в пайплайн.

Для повседневного чата она пока не замена 7-9B-моделям: русский фактчекинг проседает именно там, где модель рассуждает дольше, чем отвечает. Лечится понижением effort до medium, но тогда по балансу скорость/качество она становится ближе к среднему 14B.

Вторая часть: medium, 128к и цена агентского хода

Первое обещание проверки: тот же сет 38 задач на medium. Результат оказался главной неожиданностью замера. Качество почти всюду не просело, а в двух категориях выросло. Factcheck с 60 поднялся до 85 процентов: на xhigh модель в пяти задачах тратила весь бюджет 3072 токенов на сомнения и не печатала ответ, на medium бюджет стал достаточным. Format поднялся с 75 до 83.3. Writing и reasoning остались на тех же 75 и 87.5 - там ограничение не в режиме, а в самой модели.

Скорость тоже в пользу medium: средний декод 9,5 tok/s против 9,0, средняя латентность 105 секунд против 161. Вывод по вилке: заводской xhigh в батче не нужен, medium - рабочий режим, и переключать его стоит одним флагом --reasoning-effort medium.

Второе обещание - 128к. Живой прогон с полным 128к контекстом до конца не дошёл, и вот почему это само по себе результат. Замер prefill llama-bench дал: 16к - 32,9 tok/s, 32к - 27,5, 65к - 20,6. Скорость чтения промпта падает примерно на четверть с каждым удвоением окна. Точка 131к не завершилась за разумное время и была снята.

Живой тест подсказал, откуда растёт провал. Подключили модель к Hermes агенту и задали обычный вопрос: вместе с системным промптом, скиллами и памятью ход агента весит 15-20 тысяч токенов. Prefill переходил через 12288 токенов со скоростью 28 tok/s - от отправки вопроса до первого токена ответа выходило около восьми-десяти минут. Декод после этого быстрый, но в живом диалоге ожидание первого токена убивает сценарий.

Отсюда честный вывод по применению. Bonsai 2 на 8 ГБ - модель не для интерактивного агента, а для фоновых задач. Ночные эвалы и бенчи, пакетная генерация текстов, разовые вопросы с большим офлайн-контекстом 64к+, всё, что нельзя отправить в облако по NDA или 152-ФЗ. В этих сценариях десять минут на запрос - приемлемая цена за качество 27B локально. Для живого диалога остаются 7-9B модели: они медленнее по классу, но отвечают за секунды.

Итог обеих частей: тернарная упаковка реально кладёт 27B в 8 ГБ вместе с 64к контекстом и не теряет интеллект на medium. Но)(( слабое место не VRAM, а prefill на длинных окнах: читать 100к+ токенов модель пока не умеет за человеческое время. Кто шёл за "локальный большой контекст прямо сейчас" - подождём следующих релизов форка.