llama-eval: бенчмарк локальных LLM прямо в llama.cpp | AiManual
AiManual Logo Ai / Manual.
12 Май 2026 Инструмент

Новый инструмент llama-eval в llama.cpp: что это и как использовать

Новый встроенный инструмент для оценки моделей в llama.cpp от ggerganov. Запускайте MMLU, HellaSwag и другие тесты локально. Инструкция и сравнение с альтернати

Когда хочешь знать, насколько твоя модель тупая

Ты собираешь llama.cpp, качаешь свежую Llama 3.3 8B в GGUF, запускаешь — и вроде всё хорошо. Но как понять, не потеряла ли модель мозги после квантования? Раньше приходилось гонять отдельные скрипты, тянуть lm-evaluation-harness (с его громоздкими зависимостями) или писать свой велосипед. Теперь — нет.

На сцену выходит llama-eval — новый пример в репозитории, который добавил сам ggerganov. Это не отдельная утилита, а встроенный бенчмарк, вшитый в рантайм llama.cpp. Он считает стандартные метрики без отправки данных на чужие сервера и без лишних телодвижений. Звучит как манна небесная? Да, но с парой нюансов.

Что под капотом: не просто перплексия

llama-eval поддерживает несколько популярных бенчмарков: MMLU (по 5-shot), HellaSwag, ARC (Easy и Challenge), TruthfulQA и WinoGrande. Также умеет считать перплексию на кастомных датасетах в plain text. Важно: все тесты прогоняются локально, модель остаётся на твоём железе — никаких утечек данных.

В отличие от lm-evaluation-harness (стандарт де-факто в open-source), llama-eval заточен под GGUF-формат и использует нативные оптимизации llama.cpp: поддержка K-квантов, Flash Attention, offloading на GPU, RPC-вычисления. На практике это означает, что прогон MMLU на 7B-модели занимает минуты, а не часы.

Осторожно: результаты llama-eval не стоит считать эталоном для публикаций. Для научных статей по-прежнему нужен lm-eval с полным набором метрик. Но для бытового сравнения квантизаций или проверки дообученной модели — самое то.

Сравнение с альтернативами:

Критерий llama-eval lm-eval-harness Самописные скрипты
Интеграция с llama.cpp Нативная, без костылей Через внешний API Ручная обёртка
Поддержка GGUF Полная, все кванты Ограниченная, нужен конвертер Как повезёт
Скорость прогона Высокая (GPU, K-кванты) Средняя (зависит от бэкенда) Низкая
Количество метрик ~10 встроенных 50+ (с кастомизацией) Ограничено фантазией
Простота запуска Одна команда после сборки Требует установки пакетов Отнимает время

Запуск: быстрее, чем кажется

Чтобы попробовать, нужно сначала собрать llama.cpp с включёнными примерами. Если ты уже собирал движок (как описано в нашем гиде по сборке под своё железо), просто добавь флаг -DLLAMA_BUILD_EXAMPLES=ON при конфигурации CMake. После сборки в папке build/bin появится исполняемый файл llama-eval.

Типичная команда для прогона MMLU выглядит так:

./llama-eval \
    --model /path/to/model.gguf \
    --tasks mmlu \
    --shots 5 \
    --batch-size 32 \
    --tensor-split 0.5,0.5  # если два GPU

На выходе — табличка с accuracy по каждой категории (STEM, humanities, social sciences, other) и общий скор. Если модель поддерживает chat template, можно добавить флаг --chat-template — результаты станут ближе к реальному использованию в чат-интерфейсах.

Для HellaSwag и ARC не нужны few-shot примеры — они выполняются в zero-shot режиме. А TruthfulQA требует кастомного промпта, который llama-eval загружает из встроенного конфига. Всё автоматически.

💡
Если ты используешь RPC для распределённых вычислений (мы подробно разбирали RPC-сервер в отдельной статье), llama-eval умеет работать через тот же протокол. Просто укажи --rpc с адресом сервера.

Кому это реально нужно (а кому нет)

llama-eval — идеальный инструмент для трёх категорий людей:

  • Энтузиасты, которые сравнивают квантизации. Вместо того чтобы гадать, насколько Q4_K_M хуже Q8_0, запустите прогон MMLU и получите цифры. Разница станет очевидной.
  • Разработчики, которые дообучают модели. После каждого LoRA-апдейта полезно быстро проверить, не упала ли точность на стандартных тестах. Встроенная интеграция с llama.cpp ускоряет цикл экспериментов.
  • Участники сообщества LocalLLaMA. В Discord-сервере LocalLlama постоянно спорят о том, какая модель лучше. Теперь можно подкрепить аргументы бенчмарком, который воспроизводится одной командой.

А кому не нужен? Тем, кто работает с моделями через высокоуровневые обёртки вроде LM Studio или LlamaBarn и не хотят лезть в консоль. Им проще подождать, пока поддержку бенчмарков добавят в графический интерфейс. Но, судя по скорости развития экосистемы, это вопрос пары месяцев.

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

Чего не хватает (субъективно)

llama-eval пока экспериментальный. Нет поддержки GSM8K, MATH и других генеративных бенчмарков — только задачи с выбором ответа. Нет автоматического сравнения двух моделей side-by-side. И, что бесит больше всего, нет ни единого графика. Вывод — просто колонки цифр в терминале. Приходится экспортировать в CSV и рисовать самому. Надеюсь, ggerganov в следующем PR добавит визуализацию.

Но если смотреть в целом — это огромный шаг вперёд. Встроенный бенчмарк в llama.cpp означает, что любая модель, собранная под этот движок, может быть протестирована за пару минут. Никаких внешних зависимостей, никаких споров о воспроизводимости. Просто ./llama-eval --tasks mmlu — и ты знаешь правду.

А правда, как обычно, оказывается где-то посередине: между хайпом и реальным качеством. И теперь её можно измерить.

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