Букмарклет для llama.cpp считает реальную скорость GGUF-моделей прямо на Hugging Face
Компания Hugging Face и открытый проект llama.cpp давно стали стандартом для тех, кто запускает языковые модели локально, но существующие калькуляторы скорости инференса (генерации токенов) врут: занижают контекст в разы и не учитывают архитектурные особенности моделей вроде MoE (Mixture of Experts, смесь экспертов, когда при генерации работает лишь часть параметров) или двойного прохода по весам.

Русскоязычный энтузиаст с видеокартой на 8 Гб может запускать модели до 35 млрд параметров, если правильно считать, но стандартные калькуляторы и даже нейросети-ассистенты этого не показывают, потому что не учитывают реальный оверхед (фиксированная задержка на каждый токен) и особенности конкретных архитектур.
Один из пользователей Habr опубликовал инструмент, который решает эту проблему иначе: букмарклет (скрипт, который вы сохраняете как обычную закладку в браузере), считывающий метаданные прямо с карточки модели на Hugging Face и подставляющий их в формулу с поправками на реальные параметры вашей видеокарты. Ниже разбираем, как это настроить и использовать.
Что понадобится?
- Видеокарта NVIDIA с известной пропускной способностью видеопамяти (например, RTX 3070 с 448 Гб/с)
- Установленный llama.cpp на вашем компьютере
- Браузер с доступом к Hugging Face
- Примерно 15 минут на первичную настройку и замеры
Пошаговая инструкция
-
Замерьте реальные параметры своей видеокарты. Запустите в llama.cpp несколько моделей разного размера. Зафиксируйте скорость генерации токенов в секунду (tok/s, токены в секунду) и максимальный контекст, при котором программа не вылетает с ошибкой нехватки памяти.
-
Определите свой оверхед. Оверхед (overhead) означает фиксированную задержку на каждый токен, которая не зависит от размера модели. По замерам автора инструмента, на RTX 3070 она составила 5 мс. Эту цифру вы получите, сопоставив реальную скорость генерации с теоретической (вес модели, делённый на пропускную способность видеопамяти). Разница и есть ваш оверхед.
-
Подставьте свои константы в букмарклет. В начале скрипта заданы переменные, которые нужно поправить под вашу конфигурацию:
BW = 448 // пропускная способность видеопамяти, Гб/с
OV = 5 // оверхед, мс на токен
V = 8 // объём видеопамяти, Гб
R = 1.2 // резерв: сколько видеопамяти занимает система
KB = 2 // байт на элемент KV-кеша
-
Создайте закладку с букмарклетом. Скопируйте код скрипта целиком. В браузере создайте новую закладку, в поле адреса вставьте скопированный код. Назовите закладку, например, «GGUF Speed Calc».
-
Откройте карточку модели на Hugging Face и нажмите на закладку. Скрипт автоматически найдёт первый файл формата GGUF (формат хранения квантованных моделей для llama.cpp) в репозитории, скачает первые 400 Кб файла через Range-запрос (то есть не весь файл, а только заголовок с метаданными) и извлечёт нужные параметры:
block_count(число слоёв)head_count_kv(число голов внимания для KV-кеша)key_length(размерность ключа)context_length(длина контекста)full_attention_interval(интервал полного внимания для гибридных архитектур, где часть слоёв использует локальное внимание, а часть полное)-
num_loops(число проходов по весам, как у модели Nanbeige4.2-3B, которая прогоняет данные дважды) -
Прочитайте результат. Рядом с каждым квантом GGUF на странице появятся расчётные цифры: скорость генерации в токенах в секунду и примерный максимальный контекст для вашей карты.
Допустим, у вас RTX 3070 с 8 Гб видеопамяти. Вы открываете на Hugging Face карточку MoE-модели (модель со смесью экспертов) на 35 млрд параметров в формате GGUF, нажимаете закладку. Скрипт считывает метаданные, видит, что при квантовании Q4_K_M размер файла составляет, к примеру, 6.2 Гб, и вычисляет: теоретическая скорость около 67 tok/s, доступный контекст порядка 12 000 токенов. Без оверхеда калькулятор показал бы завышенную скорость, а без учёта KV-кеша (память, которую модель расходует на хранение контекста разговора) занизил бы контекст втрое.
Модель Nanbeige4.2-3B с параметром num_loops=2 скрипт обработает корректно: он увидит двойной проход по весам и покажет скорость вдвое ниже, чем «наивный» расчёт, что совпадает с реальными замерами.
- Не учли резерв видеопамяти. Операционная система и драйвер занимают от 0.8 до 1.5 Гб. Если поставите R=0, калькулятор будет показывать контекст, при котором llama.cpp упадёт с ошибкой out of memory.
- Закрытый репозиторий (gated repo). Если модель требует принятия лицензии, скрипт не сможет скачать заголовок GGUF-файла. Скорость генерации (tok/s) он покажет по размеру файла, но контекст посчитать не сможет. Проверьте консоль браузера (F12): пустой объект
{}означает, что метаданные не получены. - Путают пропускную способность с объёмом. BW это не 8 (объём в гигабайтах), а 448 (пропускная способность в гигабайтах в секунду для RTX 3070). У каждой карты своё значение, его можно найти на сайте NVIDIA или в утилите GPU-Z.
- Не обновили оверхед при смене карты. Оверхед 5 мс был получен на конкретной RTX 3070. На другой карте (даже той же модели, но с другим разгоном) он будет отличаться. Замерьте заново.
Что делать с этим прямо сейчас?
-
Автору Дзена, который использует локальные модели для генерации черновиков: калькулятор покажет, какой максимальный квант модели влезет в вашу карту и сколько контекста останется. Это позволяет заранее понять, хватит ли памяти на длинный промпт (запрос к модели) с системными инструкциями и текстом статьи.
-
Энтузиасту локального ИИ в России: не верьте, когда ChatGPT или другой ассистент говорит, что 8 Гб видеопамяти хватит только на модели до 7 млрд параметров. MoE-архитектуры меняют арифметику. Букмарклет покажет реальную картину.
-
Предпринимателю, который выбирает модель для внутреннего сервиса: прежде чем покупать дорогую карту, проверьте букмарклетом, что нужная модель в нужном кванте работает на имеющемся оборудовании. Экономия может составить стоимость целого GPU.
Инструмент нишевый, но попадает в реальную боль. Я сам сталкивался с тем, что онлайн-калькуляторы обещают одно, а llama.cpp показывает другое. Причина как раз в том, что большинство калькуляторов не учитывают оверхед и особенности архитектур вроде num_loops.
Честная оговорка: калькулятор даёт теоретический потолок. Реальная скорость зависит от длины контекста (чем длиннее разговор, тем медленнее генерация), от конкретной сборки llama.cpp, от фоновой нагрузки на карту. Расхождение в 10-15% с реальностью нормально. Но это всё равно точнее, чем «наивное» деление веса модели на пропускную способность, которое может ошибаться в разы, особенно по контексту.
Букмарклет бесплатный, не требует установки и работает за секунду. Если вы запускаете модели локально через llama.cpp, замерьте свой оверхед один раз, подставьте константы, и дальше выбор модели на Hugging Face станет предметным, а не гаданием на форумах.
Научитесь работать с нейросетями на практике
В dzen.guru мы разбираем инструменты для авторов, от промптов до локальных моделей
Попробовать бесплатно
Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Развертывание кода в продакшен: 31 сбой в прототипе, который уже продавали
Развертывание кода в продакшен: когда прототип уже продают, а он ещё не готов. Статья разбирает реальный кейс: как команда получила голосовой ИИ-сервис,…

Контекст нейросети можно увеличить в разы: три метода без дообучения
Контекст нейросети (context window) определяет, сколько текста модель способна «видеть» за один раз, и когда он заканчивается, ответы становятся бессвязными, а…

ARC-AGI бенчмарк: 100% в тесте показывает силу кода, а не интеллект машины
Компания ARC Prize Foundation, основанная Франсуа Шолле, разработала серию бенчмарков ARC-AGI для проверки способности ИИ к обучению, и проекты, набирающие…
Комментарии