# llama.cpp b11472 ускоряет выбор токена при нулевой температуре

Источник: https://modelium.tech/zhurnal/llama-cpp-b11472-greedy-zero-temperature-speed/

В предварительную сборку llama.cpp b11472 вошёл патч, заменяющий выбор из распределения на greedy для подходящих цепочек с temperature=0 либо завершающим top-k=1. Фильтры остаются, а запрос вероятностей и динамическая температура сохраняют прежний путь. Автор PR сообщил о 6,6% прироста скорости декодирования в одном тесте с Qwen3.8-27B и DFlash2; это не универсальное ускорение и не тест Modelium.

## Что вышло

7 октября 2026 года команда llama.cpp включила PR #29797 в **предварительную сборку b11472**. Тег указывает на merge-коммит `d0b490f`. Патч касается выбора следующего токена во время локальной генерации: это **не новые веса модели** и не отдельный стабильный номерной релиз. Код llama.cpp распространяется по MIT; эта лицензия относится к движку, а не автоматически к загружаемым весам. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s4](#src-s4)

Раньше подходящая цепочка с нулевой температурой могла завершаться выбором из распределения, хотя итоговый токен уже определялся однозначно. Теперь общий и backend-пути используют greedy-выбор, сохраняя предшествующие фильтры; для отфильтрованного списка backend отображает выбранный индекс обратно в ID токена словаря. В тесты добавлена проверка цепочки top-k → greedy для k=1 и k=8. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

## Где действует оптимизация

По итоговому коду greedy выбирается, только если **не запрошены вероятности токенов** (`n_probs=0`) и последний фильтр цепочки — температура ровно 0 без динамической температуры либо top-k со значением 1. При запросе вероятностей, динамической температуре и других конфигурациях сохраняется выбор из распределения. Автор отдельно указывает, что новый путь применим к CPU, а также к цепочкам с grammar и reasoning budget; это не означает, что всякая конфигурация этих функций ускорится. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

Практически это повод сравнить b11472 с предыдущей сборкой **на своём локальном сценарии с детерминированным выбором**. Если температура не нулевая или клиент запрашивает logprobs, не переносите эффект авторского теста на свою нагрузку. Проверьте фактическую цепочку сэмплеров и соблюдайте тот же набор параметров и модель при сравнении. [s2](#src-s2) [s3](#src-s3)

## Что показывает замер автора

В PR автор сообщает о тесте SPEED-Bench: 80 диалогов, 89 ходов, Qwen3.8-27B с DFlash2, оба чекпойнта Q4_K_M, Q8_0-выход target, Windows, RTX PRO 6000 Blackwell Server Edition и CUDA 13.4. При draft length 7, ограничении 512 выходных токенов, seed 1234, контексте 40960, F16 KV, greedy sampling, включённых thinking, prompt cache, Flash Attention и backend sampling средняя скорость декодирования по его таблице выросла с **98,49 до 104,95 токена/с** (+6,6%), а средняя задержка диалога снизилась с **6,64 до 6,29 с** (примерно −5,4%). Это **авторский результат на одной конфигурации**, не независимая проверка Modelium, не обещание такого же прироста на другой модели или CPU и не минимальные аппаратные требования. [s2](#src-s2)

Если используете b11472 для проверки, берите сборку своей платформы из официального предварительного выпуска и сравнивайте одинаковые входы, длину ответа, фильтры и параметры кэша. Сам патч не меняет лицензию используемой модели и не делает stochastic-сэмплинг быстрее по умолчанию. [s1](#src-s1) [s3](#src-s3) [s4](#src-s4)

## Источники

1. [ggml-org/llama.cpp — предварительный релиз b11472](https://github.com/ggml-org/llama.cpp/releases/tag/b11472) — получено 2026-10-07
2. [ggml-org/llama.cpp — PR #29797: greedy selection for temperature-zero chains](https://github.com/ggml-org/llama.cpp/pull/29797) — получено 2026-10-07
3. [ggml-org/llama.cpp — итоговый коммит b11472](https://github.com/ggml-org/llama.cpp/commit/d0b490f25edec147b4dcd69cce31c7d1099dff1d) — получено 2026-10-07
4. [ggml-org/llama.cpp — MIT LICENSE at b11472](https://github.com/ggml-org/llama.cpp/blob/b11472/LICENSE) — получено 2026-10-07
