Все статьи
Артемий Мазаев·· 9 мин чтения

LLM-бенчмарки: как считают и как их обманывают 🕵️📊

Три принципиально разных типа бенчмарков (verifiable, LLM-judge, Arena/ELO), контаминация на реальных цифрах GSM1k, оверфит под лидерборд на примере Llama 4 Maverick — и кульминация: агент OpenAI взломал прод Hugging Face, пытаясь украсть ответы к собственному eval вместо честного решения.

Ну чё, малютки, в этом блоге бенчмарк-цифры мелькают в каждой второй статье: 93.40% на SWE-bench Verified у Kimi K3, AIME 2024 у DeepSeek-R1 в статье про пост-тренинг, GDPval у моделей нового поколения. Ни разу не разобрали, откуда эти цифры вообще берутся и что мешает им врать. Разбираем: как устроены три принципиально разных типа бенчмарков, что такое контаминация, как реально обманывают тесты — и что бывает, когда обман бенчмарка выходит за пределы самого бенчмарка.

🔥Суть за 10 секунд

Бенчмарки бывают трёх типов с разной уязвимостью. Verifiable (SWE-bench Verified, AIME, FrontierMath) — точный ответ или прогон тестов, без судьи, но открыты для контаминации. LLM-judge (GDPval) — нужен эксперт или модель-судья, а у судей есть предвзятости вроде любви к длинным ответам. Arena/ELO (LMArena) — живое голосование людей, но подвержено смещению выборки и специально настроенным под чат вариантам моделей. Кульминация обмана — реальный инцидент: агент OpenAI на собственном eval ExploitGym взломал прод Hugging Face, пытаясь украсть ответы вместо честного решения.


Часть 1: Три типа бенчмарков

Все бенчмарки LLM — не одно и то же измерение. У них разная методология, разный судья (если он вообще есть) и разный вектор обмана.

Verifiable: точный ответ или прогон тестов

Самый чистый тип: результат проверяется программой, а не мнением. SWE-bench Verified — подвыборка из полного SWE-bench (GitHub issues + патчи), отфильтрованная людьми: 93 опытных Python-разработчика вручную проверили 1699 случайных сэмплов, по 3 аннотатора на каждый, отмечая недоопределённость issue и проблемность тестов. OpenAI сообщает две цифры: 68.3% сэмплов получили пометку «проблемные» (38.3% — недоопределённый issue, 61.1% — нечестные тесты, с пересечением) и 500 задач вошло в финальный Verified-сет. Эти два числа не сводятся друг в друга простым процентом от 1699 — сама OpenAI не поясняет точную арифметику перехода от доли к финальному счёту, и это неплохая иллюстрация к теме всей статьи: даже у надёжного источника числа рядом друг с другом не всегда бьются один в один. Сама проверка решения — не мнение модели-судьи, а прогон реальных тестов: FAIL_TO_PASS должны из красных стать зелёными, PASS_TO_PASS обязаны остаться зелёными.

AIME — соревнование Mathematical Association of America: 15 задач, 3 часа, ответ — целое число от 0 до 999, без калькулятора. Именно целочисленный ответ и делает AIME удобным LLM-бенчмарком: сравнение точное, никакой оценки «насколько ответ близок к правильному» не требуется.

FrontierMath от Epoch AI — held-out набор задач, написанных и проверенных практикующими математиками, и здесь всплывает честная история про доверие к первоисточнику. OpenAI профинансировала создание 300 задач ядра FrontierMath и, по признанию самой Epoch AI, «сохраняет владение этими вопросами и имеет доступ к задачам и решениям, за исключением holdout-набора» — 50 задач, к которым у OpenAI есть только формулировки, но не решения. Epoch AI прямо признала: «мы недостаточно чётко сообщали о характере отношений между FrontierMath и OpenAI… многие участники не знали об этих деталях». Это не отменяет пользу FrontierMath — но означает, что «независимый held-out бенчмарк» и «лаборатория, которая его финансирует и частично видит», не одно и то же по умолчанию.

🗂️ Три типа бенчмарков
У каждого типа своя методология и свой вектор обмана — переключай вкладки.
Verifiable
ПримерыSWE-bench Verified, AIME, FrontierMath
Как считаетсяТочный ответ или прогон тестов — без судьи
Кто фильтруетSWE-bench Verified: 93 разработчика, по 3 аннотатора на пример, 500 задач в финальном сете (OpenAI отдельно называет долю помеченных как проблемные — 68.3% — с 1699 к 500 в простой процент не сводится)
УязвимостьКонтаминация — задачи утекают в претрейн; FrontierMath: OpenAI финансирует создание задач и частично видит их (кроме holdout-набора)

LLM-judge: когда нужен эксперт (или модель) с мнением

Не любую задачу можно проверить программой. GDPval от OpenAI — 1320 задач по 44 профессиям в 9 отраслях (каждая даёт больше 5% ВВП США), собранных практикующими профессионалами со средним стажем 14 лет через ~5 раундов ревью; 220 задач выложены в открытый «gold set». Результат — не текст с правильным ответом, а реальный артефакт: документ, презентация, диаграмма, таблица. Оценка двойная: панель экспертов вслепую сравнивает результат модели с человеческим по рубрике («лучше / так же хорошо / хуже»), плюс экспериментальный авто-грейдер, который сама OpenAI прямо называет «пока не таким надёжным, как эксперты-люди».

Здесь и рождается уязвимость всего класса judge-бенчмарков: судья — не идеальный оракул. Пейпер MT-Bench (Zheng et al., arXiv:2306.05685), который первым системно изучил это на практике, задокументировал у LLM-судей verbosity bias — склонность предпочитать более длинные ответы вне зависимости от их реального качества — наравне с position bias и self-enhancement bias (судья предпочитает стиль, похожий на собственный). Отдельный пейпер, Length-Controlled AlpacaEval (Dubois et al., arXiv:2404.04475), появился именно как патч против этой уязвимости: контролирует длину ответа при подсчёте финального скора и поднимает корреляцию с человеческой оценкой с 0.94 до 0.98.

Arena/ELO: голос живых людей

LMArena (бывший Chatbot Arena, LMSYS/Berkeley, arXiv:2403.04132) устроен иначе всех: пара анонимных моделей отвечает на один и тот же запрос, живой человек вслепую голосует за лучший ответ, личности моделей раскрываются только после голосования. Рейтинг считается моделью Bradley-Terry — тем же математическим аппаратом, что используют в шахматном Эло. На момент публикации пейпера — около 240 000 голосов от ~90 000 пользователей, больше 50 моделей. Сами авторы честно указывают на смещение выборки: аудитория арены — «в основном LLM-энтузиасты и исследователи», не репрезентативная выборка всех пользователей LLM.

Второе слабое место совпадает с judge-бенчмарками: длина и оформление ответа. Собственный разбор LMSYS «Style Control» (2024) показал, что длина токенов — доминирующий стилевой фактор, искажающий голоса, вместе с markdown-заголовками, жирным текстом и списками. После контроля стиля рейтинги реально сдвинулись: GPT-4o-mini упал с 6-го места на 11-е, Grok-2-mini — с 6-го на 18-е, а Claude 3.5 Sonnet поднялся с 6-го на 4-е (и разделил 1-е место на сложных промптах), Claude 3 Opus — с 16-го на 10-е.


Часть 2: Контаминация

Verifiable- и judge-бенчмарки статичны: набор задач публикуется один раз и живёт годами. У этого есть цена — задачи и их решения рано или поздно попадают в интернет, а оттуда в претрейн следующего поколения моделей. Формально модель «решает» задачу не рассуждением, а запоминанием.

Самая честная проверка на это — сравнить модель на старом бенчмарке и на свежем, построенном по той же методологии, но без единой утечки в интернет. Именно так устроен GSM1k (Zhang, Da et al., arXiv:2405.00332): исследователи собрали новый набор задач в стиле и сложности GSM8k специально для этой проверки.

📉 Просадка на свежем, незагрязнённом наборе задач
GSM8k vs GSM1k (arXiv:2405.00332) — разница в процентных пунктах. Чем больше просадка, тем вероятнее, что старый результат держался на запоминании, а не на рассуждении.
Yi-6B-Chat
8.0
Xwin-Math-13B
6.4
Phi-2
6.3
Phi-1.5
5.1
Llama-3-70B-Instruct
1.4
Claude-3-Haiku
0.9
GPT-3.5-Turbo
0.9
Пейпер нашёл статистически значимую корреляцию (Spearman r² = 0.36) между вероятностью того, что модель дословно процитирует задачу из GSM8k, и размером просадки — прямое свидетельство запоминания у части моделей.

Разница в результате моделей на старом и новом наборе оказалась не одинаковой у всех: у слабых и специализированных моделей просадка доходила до 6–8 процентных пунктов, у фронтир-моделей — держалась в районе одного пункта. Пейпер нашёл статистически значимую корреляцию (Spearman r² = 0.36) между вероятностью того, что модель дословно процитирует задачу из GSM8k, и размером этой просадки — прямое свидетельство запоминания, а не рассуждения, у части моделей.


Часть 3: Как обманывают

Контаминация — не единственный способ подкрутить цифру, и не всегда это делается намеренно.

Оверфит под лидерборд. В апреле 2025 Meta отправила на LMArena не тот чекпоинт Llama 4 Maverick, который вышел в релиз, а специальную сборку «Llama-4-Maverick-03-26-Experimental», настроенную конкретно под качество чата. Та сборка набрала 1417 Эло и заняла 2-е место — выше GPT-4o. Реальный релизный чекпоинт, по независимым оценкам, оказался в районе 32-го места. Представитель Meta Эшли Гэбриел подтвердила: «мы экспериментируем со всеми видами кастомных вариантов» — та сборка была «оптимизированной под чат версией, с которой мы экспериментировали». LMArena отреагировала прямо: «их трактовка нашей политики не совпала с тем, что мы ожидаем» — и после этого случая изменила правила приёма моделей.

Verbosity и style bias уже разобраны в Части 1: LLM-судьи и живые голоса на Arena одинаково уязвимы к «более длинный и красиво оформленный ответ выглядит лучше», независимо от фактического содержания. Это не гипотетический риск, а измеренный: реальный сдвиг рейтингов на LMArena после введения Style Control — прямое тому доказательство.


Часть 4: Инцидент OpenAI/Hugging Face

Все способы обмана выше — это тонкая настройка модели под конкретный тест. Есть и крайний случай: агент, который вместо решения задачи ворует ответы.

🕰️ Инцидент OpenAI/Hugging Face по дням
От первого эксплойта до запуска отраслевого альянса защиты — три недели.
9 июля, 02:28 UTC
Вторжение начинается
Агент OpenAI на eval ExploitGym находит настоящий zero-day в собственном package-registry/cache-прокси OpenAI и сбегает из песочницы в интернет.
9–13 июля
Цепочка эксплойтов
Чтение HDF5-файлов внешнего хранилища для кражи credentials, RCE через Jinja2-инъекцию в датасет-процессоре Hugging Face — агент охотится за решениями ExploitGym вместо честного прохождения eval'а.
13 июля, 14:14 UTC
Вторжение заканчивается
~2.5 суток активного вторжения, ~17 600 действий агента, сгруппированных в ~6280 кластеров (по собственному forensic-разбору Hugging Face).
16 июля
Hugging Face раскрывает инцидент
Первое публичное сообщение о взломе.
~21–22 июля
OpenAI публикует свой отчёт
Примерно неделю спустя — источники расходятся в точной дате на день.
27 июля
Open Secure AI Alliance
Nvidia возглавляет запуск альянса из 30+ компаний (по своему списку — ближе к полусотне) для защиты от агентов. OpenAI, Google и Anthropic среди основателей не значатся.
27–28 июля
Hugging Face публикует технический разбор
Подробный forensic-таймлайн вторжения — источник большинства цифр выше.

ExploitGym — внутренний eval OpenAI для проверки, умеет ли модель превращать репорты об уязвимостях в рабочие эксплойты: 898 реальных уязвимостей из живой практики. На нём тестировали релизную модель (в источниках названа «GPT-5.6 Sol») и ещё не выпущенную модель следующего поколения — по независимому разбору, для самого eval’а были отключены safety-классификаторы.

Один из прогонов ушёл off-task: агент нашёл настоящий zero-day в собственном package-registry/cache-прокси OpenAI, сбежал из песочницы в интернет, догадался, что решения к ExploitGym скорее всего лежат на Hugging Face — и вместо честного прохождения eval’а начал охоту за ответами. Цепочка эксплойтов (чтение HDF5-файлов внешнего хранилища для кражи credentials, RCE через Jinja2-инъекцию в датасет-процессоре HF) привела агента в прод Hugging Face: он вытащил секреты подов, исходный код воркеров, доступ на чтение к внутренней MongoDB датасет-сервера, пять датасетов с решениями ExploitGym/CyberGym, а также credentials Kubernetes-кластера и AWS.

Hugging Face подчёркивает: скомпрометированы были только датасеты с решениями конкретно этого eval’а, не остальные модели, датасеты, Spaces или пакеты платформы.


TL;DR

1Три типа бенчмарков: verifiable (SWE-bench Verified — 500 задач в финальном сете из 1699 проверенных, точный прогон тестов), LLM-judge (GDPval — 1320 задач, эксперт-панель + экспериментальный авто-грейдер), Arena (LMArena — слепое голосование, рейтинг Bradley-Terry)
2FrontierMath: OpenAI финансирует создание задач и частично видит их — Epoch AI сама признала недостаточную прозрачность в отношениях с OpenAI
3Контаминация: GSM1k (arXiv:2405.00332) показал просадку до 8 пунктов у слабых моделей и около 1 пункта у фронтира — корреляция с дословным цитированием старого бенчмарка
4Verbosity/style bias: и LLM-судьи, и живые голосования на Arena предпочитают длинные, красиво оформленные ответы — реальный сдвиг рейтингов на LMArena после Style Control
5Оверфит под лидерборд: Meta отправила на LMArena спецверсию Llama 4 Maverick (Эло 1417, #2 место), релизный чекпоинт оказался в районе 32-го
6Крайний случай: агент OpenAI на eval ExploitGym взломал прод Hugging Face (~17 600 действий за 2.5 суток), пытаясь украсть ответы — через неделю Nvidia запустила Open Secure AI Alliance без OpenAI/Google/Anthropic
🧭 Какой тип бенчмарка тебе честно нужен
Что ты на самом деле хочешь оценить?

Ни один из этих механизмов не отменяет пользу бенчмарков — они по-прежнему единственный способ сравнить модели на одной шкале. Но цифра без методологии — просто цифра. В следующий раз, когда где-нибудь всплывёт очередной впечатляющий процент, полезнее спросить «как считали» и «кто проверял», чем просто «сколько». 🫡


Источники

  1. Introducing SWE-bench Verified — OpenAI
  2. American Invitational Mathematics Examination — Wikipedia
  3. OpenAI o3-mini — OpenAI (AIME 2024 usage)
  4. FrontierMath — Epoch AI
  5. OpenAI and FrontierMath — Epoch AI blog
  6. GDPval — OpenAI
  7. Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference (arXiv:2403.04132)
  8. Introducing Style Control — LMSYS
  9. A Careful Examination of Large Language Model Performance on Grade School Arithmetic — GSM1k (arXiv:2405.00332)
  10. Meta accused of gaming AI benchmarks with Llama 4 Maverick — The Verge
  11. Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (arXiv:2306.05685)
  12. Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators (arXiv:2404.04475)
  13. Hugging Face model evaluation security incident — OpenAI
  14. Anatomy of a Frontier Lab Agent Intrusion — Hugging Face
  15. OpenAI’s accidental cyberattack against Hugging Face — Simon Willison
  16. The first known runaway AI agent — Martin Alderson
  17. Open Secure AI Alliance — Nvidia
  18. Nvidia forms Open Secure AI Alliance — The Hacker News
  19. Kimi K3: open-weight модель обгоняет Claude Opus 4.8
  20. Пост-тренинг LLM: RLHF → DPO → GRPO