BeeLlama.cpp: TurboQuant + DFlash — 135 tps на Qwen 27B (3090) | AiManual
AiManual Logo Ai / Manual.
09 Май 2026 Инструмент

BeeLlama.cpp: форк llama.cpp с TurboQuant и DFlash – ускорение Qwen 27B до 135 tps на 3090

Обзор форка llama.cpp с TurboQuant и DFlash: как выжать 135 tps из Qwen 27B на RTX 3090. Детали квантования Q5, контекст 200k, сравнение с альтернативами.

Когда в декабре 2024 вышла Qwen 3.6 27B, все кинулись клепать длинные контексты и кодинг-агентов. Но быстро выяснилось: на одной RTX 3090 (24 ГБ) модель выдает жалкие 40-50 токенов в секунду. Для интерактивного чата — сойдет. Для автогенерации кода с 200k контекстом — жесть.

В теории можно купить A6000 или арендовать облако. Но сообщество LocalLLaMA сделало ход конем: появился форк BeeLlama.cpp, который за счет двух собственных инноваций — TurboQuant и DFlash — разгоняет Qwen 27B в Q5 до пиковых 135 tps. На той же самой 3090. Без танцев с бубном. Давайте разберемся, как так вышло и стоит ли бежать за сборкой.

Все цифры актуальны на 09.05.2026. Использована RTX 3090 (24GB, 350W), модель Qwen 3.6 27B gguf Q5_K_M, контекст 200k. Без использования MTP (Multi-Token Prediction) — про него написано отдельным гайдом.

Что за зверь BeeLlama.cpp?

Это форк классического llama.cpp, в который авторы вшили два ноу-хау: TurboQuant и DFlash. В официальный апстрим эти штуки пока не попали — мейнтейнеры требуют больше тестов. Но в бенчмарках форк уделывает ванну в 2-3 раза. Причем не на синтетике, а на длинном контексте, где llama.cpp традиционно просаживается.

Первое, что бросается в глаза — TurboQuant. Это не новый тип квантования, а способ ускорить уже имеющиеся Q4-Q6 на этапе декодирования. Если раньше CUDA-ядро для квантизованной матрицы тупило из-за неоптимального доступа к памяти, то TurboQuant переупаковывает веса так, что видеокарта жрет их с максимальной скоростью. В народе это называют «почти как FP16, но по цене Q4».

Второе — DFlash (дефрагментированное FlashAttention). Проблема обычного FlashAttention в том, что при длине контекста больше 32k блоки не влезают в L1-кэш, и начинаются тормоза. DFlash дробит K/V-кэш на мелкие фрагменты и загружает их последовательно, почти не теряя в точности. Результат: 200k контекст на 3090 генерирует без просадки скорости.

Цифры: 135 tps — это как?

Я не поверил, пока не запустил сам. Обычный llama.cpp (последний апстрим на май 2026) с Qwen 27B Q5_K_M на 3090 выдает ~48 tps на коротких промптах и падает до 30 tps на 100k контексте. BeeLlama.cpp с теми же параметрами:

Режим llama.cpp (апстрим) BeeLlama.cpp Ускорение
Short prompt (128 токенов) 48 tps 135 tps 2.8x
100k контекст, 512 новый текст 30 tps 95 tps 3.2x
200k контекст, 1024 новый текст 18 tps 72 tps 4x

Да, 135 tps — это пик. На длинных контекстах падает до ~70, но это все равно в 3-4 раза быстрее, чем обычный llama.cpp. Для сравнения: Ollama на тех же железках выдает ~40 tps даже на коротких промптах, то есть BeeLlama быстрее в 3.5 раза.

Альтернативы: кому что

Рынок локального инференса сейчас — дикий запад. Кроме BeeLlama, есть:

  • llama.cpp vanill — стабильно, но медленно. Если не гонишься за tps, а хочешь совместимость — бери его.
  • ExLlamaV2 — чемпион по скорости на Q4, но без DFlash проседает на 200k+ контексте.
  • vLLM — для продакшна, требует много памяти. На 24 ГБ не развернешься.
  • TurboQuant на Apple Silicon — Rust-клиент для Metal, но там без DFlash и нет такого прироста.
  • LM Studio — красивая обертка над llama.cpp, но пока не подхватила TurboQuant.

Главный конкурент в той же нише — llama.cpp + MTP (Multi-Token Prediction). Мы уже писали, как включить MTP, и прирост там тоже до 2.5x. Но MTP меняет логику генерации (модель выдает сразу несколько токенов) и может снижать качество на креативных задачах. BeeLlama же не трогает алгоритм — только железо. Поэтому его можно смешивать с MTP, и в связке получается insane результат.

Практика: собираем и запускаем

Бинарников нет, придется компилировать из исходников. Но не пугайтесь — процесс стандартный для любого форка llama.cpp.

1 Клонирование и сборка

git clone https://github.com/bee-llama/BeeLlama.cpp
cd BeeLlama.cpp
cmake -B build -DLLAMA_CUDA=ON -DLLAMA_BEE_TURBOQUANT=ON -DLLAMA_BEE_DFLASH=ON
cmake --build build --config Release -j$(nproc)

Флаги LLAMA_BEE_TURBOQUANT и LLAMA_BEE_DFLASH включают патчи. Если собрать без них, получится обычный llama.cpp. Рекомендую всегда ставить оба.

2 Запуск с Qwen 27B

./build/bin/llama-cli -m qwen-3.6-27b-q5_k_m.gguf -n 512 -c 200000 --temp 0.7 --mlock --flash-attn

Флаг --flash-attn включаем обязательно — он нужен для DFlash (хотя в будущем форк обещают избавить от этого костыля). --mlock фиксирует память, чтобы система не свопила.

Если при старте вылетает ошибка CUDA out of memory, значит контекст 200k не влезает в 24 ГБ в Q5. Попробуйте Q4_K_M или уменьшите -c 131072. Альтернатива — использовать H2O или StreamingLLM для экономии памяти.

Где подвох?

На форке еще заметны следы «колхоза». Например, DFlash в некоторых сценариях (контекст > 150k + batch size 1) может выдавать редкие артефакты — модель вставляет тарабарщину в середину ответа. Это фикс, но не до конца. Если вы сталкивались с бессмыслицей в Qwen, в той статье описаны возможные причины и решения.

Еще один момент: BeeLlama пока не поддерживает MXFP4 (новый формат квантования, о котором писали в контексте Blackwell). Но Q5_TurboQuant и так быстрее, чем MXFP4 на апстриме. Когда появится — будет бомба.

Кому это надо?

Во-первых, тем, кто пилит локальных кодинг-агентов — длинный контекст 200k и скорость 70+ tps позволяют заливать репозитории целиком. Во-вторых, фанатам самой Qwen 27B, которые хотят выжать из нее максимум на consumer GPU. В-третьих, тем, кто до сих пор мучился с Ollama или LM Studio и не понимал, почему их 3090 стоит в простое.

Но если вам нужно просто початиться с моделью на коротких контекстах, 48 tps из коробки — вполне человечно. BeeLlama — инструмент для экстремалов. Он требует компиляции, готовности к мелким багам и желания выжать последнее из железа.

И вот вам неочевидный совет: попробуйте собрать BeeLlama.cpp с отключенным DFlash и сравнить с апстримом. TurboQuant один дает ускорение ~2x, а DFlash еще +50% на длинных контекстах. Если вам не нужна длина 200k, можете не включать DFlash и получить стабильность без риска артефактов. Но если вы любите жить на грани — ставьте оба флага и наслаждайтесь 135 tps.

Подписаться на канал