Понаблюдайте за любым форумом про локальные LLM достаточно долго — увидите ритуал. Кто-то публикует скорость модели на популярной коробке. Кто-то отвечает, что у него почти вдвое быстрее — или вдвое медленнее, та же модель, та же коробка. Дальше по расписанию обвинения: не та сборка, криво поставил, проплачено. Почти всегда обе цифры настоящие. Обе измерены. Они описывают разные системы, которым случилось делить одно название продукта.
Число из бенчмарка — это конфигурация, сжатая до одного значения. Сжатие с потерями, и всё, что при сжатии выпало, — ровно то место, где живёт спор.
Дефолт, который вы не выставляли, — всё равно ваш конфиг
Самый острый экземпляр в нашем собственном журнале: бенчмарк, показавший разрыв в 2,6 раза между двумя развёртываниями одного образа на соседних узлах. Дни теорий про тюнинг умерли от одного запроса к работающему серверу: между версиями runtime поменялся дефолт числа параллельных слотов, и пропускная способность одного потока делилась ещё до того, как измерение вообще началось. Полная история — в эссе про луддитов; мораль перенесла сжатие лучше, чем цифра. Вы не выставляли этот флаг, поэтому не упомянули его, когда публиковали число. Флаг всё равно там был.
llama.cpp, vLLM и их родня везут десятки таких дефолтов, и от релиза к релизу дефолты ездят. Два человека, запускающие «одну и ту же команду» с разницей в месяц, запускают не одну и ту же команду.
Бенчмарк без хеша прошивки — сплетня
Дискурс вокруг DGX Spark в этом году перевернулся с «переоценён и троттлит» на «обновление всё изменило» — одно устройство, похороненное и воспетое одним и тем же сообществом с разницей в месяцы. А значит, большинство гуляющих сегодня цифр по Spark сняты на стеках, которых больше не существует, и сравнивать их через эту границу прошивки — археология, а не бенчмаркинг.
Мы упёрлись в ту же стену со стороны измерений: опубликованные скорости модели, которую мы сами обслуживаем на своей паре Spark, расходились между собой настолько, что вместо очередного числа мы написали страницу-сверку. Большая часть разброса растворилась, как только каждая цифра была пришпилена к своему профилю нагрузки и конфигурации runtime. Один флаг выбора ядра, который автоматический режим сознательно пропускает, перекидывает одно и то же железо между классами производительности — и этот флаг ни разу не появился ни в одном форумном посте, цитирующем полученное с ним число.
На нашей коробке Strix Halo та же история в меньшем масштабе: выбрать не тот бэкенд стоит примерно столько же, сколько удвоить точность весов. Версия, прошивка, бэкенд, флаг ядра — ни один из них не влезает в одно число, и все они и есть это число.
Что цифра обязана нести с собой
У нашего реестра клеймов фиксированный набор полей, и набор этот не рисовали сверху вниз. Каждое поле заслужило место задокументированным случаем, когда два честных измерения разошлись: точное устройство и прошивка, runtime со сборкой и digest образа, артефакт модели с хешем, квантизация, идентичность нагрузки с формой промпта и выхода, конкурентность, настройки сэмплирования, какая сторона провода мерила и как агрегировались значения. Уберите любое из них — и найдётся реальная пара противоречащих друг другу цифр, чьё расхождение объясняется именно этим полем.
Вот тест, который стоит прикладывать к любой опубликованной цифре, включая наши: не «верна ли она», а «достаточно ли в ней конфига, чтобы с ней можно было спорить». Цифра, с которой невозможно спорить — потому что не понять, что именно она описывает, — не доказательство. Это настроение.
Как читать цифру с форума
Считайте её интервалом, а не точкой, пока не всплыл конфиг. Если вопрос можно задать только один, спросите про три поля, которые по нашему опыту двигают результат сильнее всего: бэкенд, конкурентность, глубина контекста. Спрашивайте, что реально запущено на сервере, а не что автор имел в виду: работающий процесс расскажет сам и переспорит чью угодно память.
А когда публикуете сами — переверните процедуру. Запиньте всё, назовите всё поимённо и положите конфиг вплотную к числу, чтобы процитировать одно без другого требовало усилий. В этом весь замысел наших страниц клеймов: значение, его рамки, его ограничения и сырые прогоны делят один пермалинк — число не может уйти гулять в одиночку и обрастать слухами.
Цифры не путешествуют. Путешествуют конфиги. Цитируйте конфиги.