llama.cpp b11472 ускоряет выбор токена при нулевой температуре
На странице · 3 разделов
В предварительную сборку 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 s2 s3 s4
Раньше подходящая цепочка с нулевой температурой могла завершаться выбором из распределения, хотя итоговый токен уже определялся однозначно. Теперь общий и backend-пути используют greedy-выбор, сохраняя предшествующие фильтры; для отфильтрованного списка backend отображает выбранный индекс обратно в ID токена словаря. В тесты добавлена проверка цепочки top-k → greedy для k=1 и k=8. s1 s2 s3
Где действует оптимизация
По итоговому коду greedy выбирается, только если не запрошены вероятности токенов (n_probs=0) и последний фильтр цепочки — температура ровно 0 без динамической температуры либо top-k со значением 1. При запросе вероятностей, динамической температуре и других конфигурациях сохраняется выбор из распределения. Автор отдельно указывает, что новый путь применим к CPU, а также к цепочкам с grammar и reasoning budget; это не означает, что всякая конфигурация этих функций ускорится. s1 s2 s3
Практически это повод сравнить b11472 с предыдущей сборкой на своём локальном сценарии с детерминированным выбором. Если температура не нулевая или клиент запрашивает logprobs, не переносите эффект авторского теста на свою нагрузку. Проверьте фактическую цепочку сэмплеров и соблюдайте тот же набор параметров и модель при сравнении. s2 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
Если используете b11472 для проверки, берите сборку своей платформы из официального предварительного выпуска и сравнивайте одинаковые входы, длину ответа, фильтры и параметры кэша. Сам патч не меняет лицензию используемой модели и не делает stochastic-сэмплинг быстрее по умолчанию. s1 s3 s4
Источники
- ggml-org/llama.cpp — предварительный релиз b11472 — GitHub API: tag commit d0b490f25edec147b4dcd69cce31c7d1099dff1d, prerelease=true, created_at 2026-10-07T10:34:18Z; опубликован 13:20:54 UTC; платформенные assets.. Получено 07.10.2026.
- ggml-org/llama.cpp — PR #29797: greedy selection for temperature-zero chains — Merged 2026-10-07T10:34:19Z; точная конфигурация авторского SPEED-Bench и результаты 98.49→104.95 токена/с, 6.64→6.29 с.. Получено 07.10.2026.
- ggml-org/llama.cpp — итоговый коммит b11472 — Diff common/sampling.cpp, src/llama-sampler.cpp, tests/test-backend-sampler.cpp проверен по GitHub API, условия greedy и тесты соотнесены с итоговым merge.. Получено 07.10.2026.
- ggml-org/llama.cpp — MIT LICENSE at b11472. Получено 07.10.2026.