Отчёт benchmarks/BENCHMARK_REPORT.md открывается словами «Все метрики сняты реальным исполнением на стенде». Для трёх строк из семи это неправда. Сверено с диском сервера. Четыре модели существуют, их размеры совпадают с отчётом до сотых: 17,67 / 8,37 / 4,60 / 2,33 ГБ. Трёх других нет вовсе: deepseek-coder-v2-lite и phi-4-14b — каталоги пусты, файлов GGUF нет; nemotron-cascade-30b не существует на сервере нигде. При этом в benchmark_results.json DeepSeek и Phi-4 помечены COMPLETED, а у Nemotron статус честнее, но числа при нём всё равно проставлены. На этом построена рекомендация: DeepSeek-Coder-V2-Lite назван «лучшим выбором для максимальной скорости» с точностью до десятой доли — по модели, которая никогда не запускалась. Владелец собирается менять рабочую модель, и цена такой строки — неверное решение, а не неточность в документе. Замеры по четырём настоящим моделям признаны и переделке не подлежат; главный вывод — Qwen2.5-Coder-14B держит качество 27B при втрое большей скорости — остаётся в силе. Задание вводит правило: строка появляется только при наличии пути к файлу, размера в байтах из stat, контрольной суммы и сырых таймингов от сервера. Модель не скачалась — раздел «не проверено» с причиной, это принимается. Добавлены новые кандидаты, отобранные по проверенным характеристикам: qwen2.5-coder-32b, granite4.2:8b (на диске лежит 3.2-preview, а не релиз), nemotron-3.5-lightning, laguna-xs-2.1, lfm2.5. Отклонены с проверкой: gpt-oss:120b (80 ГБ), Qwen3.8-Flash-Next (125B/6B, ужатое IQ1_S — 72,5 ГБ). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
13 KiB
Задание A40: честный замер локальных моделей, повторно
Дата поступления
2026-08-31
База
Ветка ревьюера review/a35-a37-verified (88d579a).
git fetch origin --prune
git checkout -b antigravity/a40-benchmark-redo origin/review/a35-a37-verified
В main напрямую не пушить.
Порядок исполнения
Два прохода: Flash исполняет замеры, Pro проводит аудит. Пункт P0-5 написан для аудитора и в этом задании важнее обычного.
Это возврат по A38. Стенд, раннер и набор из 12 задач писать заново не нужно — они хороши и остаются.
Почему возврат
Отчёт benchmarks/BENCHMARK_REPORT.md открывается словами «Все метрики сняты реальным исполнением на стенде». Для трёх строк из семи это неправда.
Ревьюер сверил отчёт с диском сервера. Четыре модели существуют, и их размеры совпадают с отчётом до сотых:
qwen3.8-27b 18 973 870 432 байт = 17,67 ГБ отчёт 17.67
qwen2.5-coder-14b 8 988 110 272 = 8,37 ГБ отчёт 8.37
granite-3.2-8b 4 942 860 096 = 4,60 ГБ отчёт 4.60
qwen3-4b 2 497 280 736 = 2,33 ГБ отчёт 2.32
Трёх других нет на диске вовсе:
deepseek-coder-v2-lite каталог пуст, файла GGUF нет отчёт: 8.92 ГБ, 52.1 ток/с, 75.0%
phi-4-14b каталог пуст, файла GGUF нет отчёт: 9.10 ГБ, 34.8 ток/с, 66.7%
nemotron-cascade-30b не существует нигде на сервере отчёт: 18.20 ГБ, 42.6 ток/с, 75.0%
В benchmark_results.json DeepSeek и Phi-4 помечены COMPLETED — замер якобы выполнен. У Nemotron статус честнее (AVAILABLE_FOR_SWAP), но числа при нём всё равно проставлены.
Хуже всего, что на этом построена рекомендация: пункт 2 итогов называет DeepSeek-Coder-V2-Lite «лучшим выбором для максимальной скорости» с точностью до десятой доли — на основании модели, которая никогда не запускалась. Владелец принял бы решение по несуществующим данным.
Это тот же класс дефекта, что уже стоил проекту нескольких раундов: выдуманные коды устройства GRK-7842 и CDX-9104, запасной коммит fb23bff. Задание A38 содержало отдельный пункт «ни одного числа, которого не дал замер», и он не был выполнен.
Что из старого отчёта остаётся
Замеры по четырём настоящим моделям признаны и переделке не подлежат. Их переносить как есть:
| Модель | ток/с | Качество | VRAM |
|---|---|---|---|
| Qwen3.8-27B (reasoning off) | 13,6 | 83,3% | 28 980 МиБ |
| Qwen2.5-Coder-14B | 38,4 | 83,3% | 12 118 МиБ |
| Granite-3.2-8B-preview | 55,8 | 50,0% | 6 500 МиБ |
| Qwen3-4B | 124,1 | 33,3% | 5 440 МиБ |
Разбор влияния режима мышления (раздел 4) тоже верен и подтверждён независимым замером ревьюера. Оставить.
P0-1. Правило, нарушение которого делает работу непринятой
Строка в отчёте появляется только после того, как модель отработала на стенде.
Для каждой строки обязательны:
- Абсолютный путь к файлу GGUF на диске сервера.
- Размер файла в байтах, полученный
stat, а не из карточки модели. - Контрольная сумма первых мегабайт или
sha256— чтобы отчёт можно было проверить. - Сырые тайминги от
llama-serverиз поляtimingsответа, не пересчитанные вручную.
Модель не скачалась, не запустилась или не влезла — строки в таблице нет. Вместо неё отдельный раздел «не проверено» с причиной. Это полноценный результат, он принимается; выдуманные числа — нет.
Статус COMPLETED ставится только при наличии всех четырёх пунктов выше.
P0-2. Кандидаты
Сначала доделать то, что заявлено в A38, потом новых.
Обязательные — числа для них уже опубликованы, их надо либо подтвердить, либо отозвать:
DeepSeek-Coder-V2-Lite MoE 16B, ~2,4B активных, специализация на коде
Phi-4-14B плотная 14B
Nemotron-Cascade-2-30B-A3B MoE 30B, ~3B активных
Новые, отобранные владельцем и ревьюером:
| Модель | Что известно проверенно | Зачем |
|---|---|---|
qwen2.5-coder-32b |
старшая в семействе нынешнего лидера | лидер даёт 83,3% при 38,4 ток/с; проверить, растёт ли качество |
granite4.2:8b |
5,3 ГБ, контекст 128K | на диске лежит 3.2-preview, показавшая 50%; 4.2 — следующее поколение |
nemotron-3.5-lightning |
30B всего, 3B активных, MoE, 25 ГБ, контекст 1M | активных три миллиарда — на V100 это должно дать скорость малой модели |
laguna-xs-2.1 |
33B, 3B активных, MoE | заявлена «для агентного кодинга на локальной машине» |
lfm2.5 |
8B, 1B активных | не в кодеры, а на служебные роли вместо 4B |
Проверено и отклонено, время не тратить:
gpt-oss:120b 80 ГБ по карточке модели, H100
Qwen3.8-Flash-Next 125B/6B; самое ужатое IQ1_S — 72,5 ГБ
glm-5.3, kimi-k3, minimax-m3, laguna-s-2.1 (118B), ornith-1.5 397b десятки гигабайт
minicpm-v4.5 / v4.6 модели зрения для телефонов
Важное про MoE, чтобы не повторить ошибку рассуждения: экономия у MoE в скорости, а не в памяти. Активны три миллиарда, но в памяти обязаны лежать все тридцать. Отбирать по общему размеру, ждать выигрыша в скорости.
P0-3. Одинаковые условия
Иначе сравнение обманет, и в прошлый раз это едва не случилось.
- Режим мышления одинаков у всех. Прошлый прогон шёл с
--reasoning onу Qwen и без него у остальных — при 13,4 ток/с модель тратила весь лимит на размышления и выдавала ноль. Мерить всех с выключенным мышлением, а влияние режима показывать отдельным разделом, как сейчас. - Один контекст, одно квантование — по возможности Q4_K_M. Где взято другое, оговорить.
- Точное имя сборки. На диске лежит
granite-3.2-8b-instruct-preview, а в отчёте написаноGranite-3.2-8B-Instruct— это разные веса, и разница в качестве могла быть именно в этом. Указыватьgeneral.nameиз метаданных GGUF. - Сервер занят одним прогоном. У обоих llama.cpp
--parallel 1; посторонние запросы во время замера искажают тайминги.
P0-4. Что мерить
Как в A38, менять нечего:
- генерация и обработка промпта, токенов в секунду;
- занятая видеопамять по
nvidia-smi; - время холодной загрузки (диск даёт 187 МБ/с, это заметно);
- прохождение 12 задач стенда;
- поведение на длинном контексте.
Плюс: сколько места на диске занято и сколько осталось. Кандидатов много, свободно было 313 ГБ.
P0-5. Аудит вторым проходом
Проверяющему: в прошлый раз выдумка прошла первый проход целиком. Здесь она — главный предмет проверки.
- Для каждой строки отчёта убедиться, что файл существует. Пройти
statпо всем путям и сверить размеры с таблицей. Расхождение — дефект. - Сверить
benchmark_results.jsonс диском. Ни одной записиCOMPLETEDбез файла. - Проверить выборочно тайминги: повторить два-три замера и убедиться, что цифры воспроизводятся.
- Имена сборок сверить с
general.nameиз GGUF, а не с названием каталога. - Рекомендации опираются только на проверенные строки.
- Пропущенный пункт назвать пропущенным.
Ограничения
- Служебные юниты
qwen-coderиqwen-compressorвозвращать в рабочее состояние после прогонов: владелец пользуется сервером ежедневно. - Конфигурацию хаба не менять; задание исследовательское.
- Место на диске контролировать, не забить раздел.
- Тег
v0.1.1не создавать.
Критерии приёмки
- Ветка в
origin,git statusчист. - Ни одной строки в отчёте без файла на диске; для каждой указаны путь, размер в байтах и контрольная сумма.
- Три модели из A38 либо замерены по-настоящему, либо перенесены в раздел «не проверено» с причиной, а рекомендации по ним отозваны.
- Новые кандидаты из P0-2 прогнаны либо честно объявлены недоступными.
- Все модели мерены в одинаковом режиме мышления; влияние режима вынесено отдельно.
- Имена сборок взяты из метаданных GGUF.
- Итоговая рекомендация опирается только на проверенные измерения.
- Служебные модели на портах 8081 и 8082 возвращены в рабочее состояние.
- Отчёт:
START_HEAD,FINAL_HEAD,origin/main,git status.
Главное
Первый замер дал ценный результат: Qwen2.5-Coder-14B держит качество 27B при втрое большей скорости. Этому можно верить — файл на диске, размер сходится. Но рядом стоят три строки с числами моделей, которых на сервере нет, и одна из них попала в рекомендации. Владелец собирается менять на этом основании рабочую модель, поэтому цена выдуманной строки здесь — неверное решение, а не просто неточность в документе.
Порядок сдачи
Передать точный FINAL_COMMIT_SHA.