llama.cpp benchmark: измерить скорость своей модели через llama-bench
На странице · 4 разделов
`llama-bench` измеряет две разные скорости локальной модели: обработку входного текста и выдачу новых фрагментов ответа. Для сравнения сохраните версию программы, конкретный файл модели, оборудование и параметры теста, затем повторите прогон при тех же условиях. Это синтетический замер, а не проверка качества ответа или реальной переписки.
Проверено по документации 8 октября 2026 года, не на реальном стенде Modelium. Команды ниже сверены с llama.cpp на Git-ревизии
06cad0bи карточкой Qwen на ревизии91cad51. Мы не собирали программу, не скачивали веса и не получали собственных показателей скорости. s1 s2 s3
Что покажет этот тест?
Представьте, что локальная нейросеть долго «думает» над вашим вопросом. llama-bench поможет разделить задержку на два этапа: pp — обработку входного текста и tg — выдачу новых частей ответа. Единица измерения — токены в секунду; токен здесь означает небольшой фрагмент текста, а не целое слово. Инструмент считает среднее по повторам и разброс значений, но не оценивает, насколько полезен ответ. s1
Результат этой инструкции — две строки замера для одной модели на вашем компьютере, которые можно сохранить и повторить после изменения настройки. llama-bench создаёт синтетическую нагрузку: реального письма или вопроса в тест вводить не нужно. Время разбиения текста на токены и выбора следующего токена в цифры инструмента не входит; не называйте эти цифры общей скоростью приложения. s1
Что понадобится до запуска?
Основной путь ниже — для Linux с обычным процессором, без обязательной видеокарты. Нужны Git, CMake, компилятор C/C++, curl, доступ к сети для загрузки исходников и файла модели, а также место на диске. На Ubuntu эти инструменты можно установить командой sudo apt update && sudo apt install -y git cmake build-essential curl. Сборка CPU документирована разработчиками llama.cpp; конкретный минимум оперативной памяти для предложенной пары «компьютер + файл GGUF» мы не подтверждали, поэтому не обещаем, что модель запустится на любом устройстве. Проверьте свободное место и память до загрузки; размер GGUF не равен требованию к RAM. s2
Модель примера — Qwen2.5-1.5B-Instruct, файл Q4_K_M в формате GGUF из официального репозитория Qwen. GGUF — формат файла, который читает llama.cpp; Q4_K_M — конкретный вариант сжатия весов. В закреплённой ревизии файл присутствует; карточка репозитория помечена Apache-2.0. Если у вас уже есть совместимый локальный GGUF, можно использовать его путь вместо скачивания, сохранив точное название и ревизию в заметках. s3 s5
После подготовки исходников и файла модели сам CPU-тест выполняется на этом компьютере без обращения к облачному API. Загрузка и установка требуют сети; не считайте наличие одного локального файла доказательством отсутствия сетевых запросов у других запущенных программ. Если приватность критична, после подготовки отключите сеть и повторите тест; редакция такой сетевой проверки не проводила. s1 s2
Как получить два сравнимых показателя?
- В терминале выполните
git clone https://github.com/ggml-org/llama.cpp.git, затемcd llama.cppиgit checkout 06cad0b9e77315bd2930bd4f70a6d7b37b2a01c1. Командаgit rev-parse HEADдолжна вывести этот же полный идентификатор. Так фиксируется версия инструмента, а не случайная будущая сборка. s1 s2 - Выполните
cmake -B build -DCMAKE_BUILD_TYPE=Release, затемcmake --build build --config Release -j 2. Проверьте наличие программы через./build/bin/llama-bench --help: должен появиться список параметров-m,-p,-n,-r. На закреплённой ревизии каталог инструментов включаетllama-bench; если сборка завершилась с ошибкой, к замеру не переходите. s1 s2 s4 - Внутри каталога проекта выполните
mkdir -p models, затемcurl -fL 'https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/91cad51170dc346986eccefdc2dd33a9da36ead9/qwen2.5-1.5b-instruct-q4_k_m.gguf' -o models/qwen2.5-1.5b-instruct-q4_k_m.gguf. Убедитесь, что загрузка завершилась без ошибки и файл существует. Здесь указан точный файл и зафиксированная ревизия, а не плавающееmain. s3 s5 - Проверьте скорость обработки входа и выдачи:
./build/bin/llama-bench -m models/qwen2.5-1.5b-instruct-q4_k_m.gguf -ngl 0 -p 512 -n 128 -r 5 -o json > bench.json.-ngl 0оставляет слои модели на CPU;-p 512и-n 128задают длины синтетических этапов;-r 5повторяет каждый тест пять раз. Вbench.jsonожидаются записи сn_prompt: 512иn_gen: 128, полямиavg_ts,stddev_tsи отдельнымиsamples_ts. Это форма ожидаемого результата, а не измеренные Modelium числа. s1 - Откройте
bench.jsonи запишите две строкиavg_tsс единицей «токенов/с» вместе сstddev_ts. Сохраните рядом выводgit rev-parse HEAD, название/ревизию GGUF, модель процессора и ОС,backends,n_gpu_layers,n_threads,n_prompt,n_genи число повторов из JSON. При повторном прогоне меняйте только одну настройку и сравнивайте одинаковый этап с таким же этапом; чужие цифры с другим железом не используйте как обещание скорости. s1
Как понять результат и избежать ошибки?
Сверьте, что файл содержит два разных теста, а не один ответ модели: запись для обработки входа (n_prompt=512, n_gen=0) и запись для выдачи (n_prompt=0, n_gen=128). Не складывайте скорости pp и tg и не обещайте по ним длительность произвольного диалога. Если программа не видит файл, проверьте точное имя и завершение скачивания; если завершается с ошибкой памяти, не выводите минимальную RAM из размера файла — возьмите меньшую совместимую модель и укажите, что это уже другой тест. s1
Скорость на CPU не равна скорости на видеокарте: для её проверки нужен отдельно собранный backend и новая серия измерений с зафиксированной настройкой, а не просто смена числа в таблице. Для проверки качества реального ответа после замера откройте общий гайд llama.cpp; если нужна нагрузка на работающий сервер, у vLLM bench serve другая методика и метрики. s1 s2
Источники
- llama.cpp — llama-bench README — revision 06cad0b9e77315bd2930bd4f70a6d7b37b2a01c1. Получено 08.10.2026.
- llama.cpp — сборка CPU — revision 06cad0b9e77315bd2930bd4f70a6d7b37b2a01c1. Получено 08.10.2026.
- Qwen — Qwen2.5-1.5B-Instruct-GGUF: карточка модели — revision 91cad51170dc346986eccefdc2dd33a9da36ead9. Получено 08.10.2026.
- llama.cpp — включение инструмента при сборке — revision 06cad0b9e77315bd2930bd4f70a6d7b37b2a01c1. Получено 08.10.2026.
- Qwen — файловый список закреплённой ревизии GGUF — revision 91cad51170dc346986eccefdc2dd33a9da36ead9. Получено 08.10.2026.