JSON-схема EEE от Hugging Face: стандарт отчетов об оценке ИИ | AiManual
AiManual Logo Ai / Manual.
30 Июн 2026 Инструмент

Как стандартизировать отчеты об оценках ИИ: разбираем JSON-схему EEE от Hugging Face

Разбираем JSON-схему EEE для унификации метрик моделей. Сравнение с альтернативами, примеры использования, кому подойдет инструмент.

Реклама
cliv2

Хватит мерить удава попугаями: зачем нужен единый язык отчетов

Если ты когда-нибудь пытался сравнить две модели по метрикам из разных бенчмарков, то знаешь это чувство: один отдает accuracy, второй — f1, третий — perplexity, а четвертый вообще придумал свою «эффективность». Бардак, который AI-сообщество терпело годами. Hugging Face решил, что с этим пора завязывать. Их ответ — JSON-схема EEE (EvalEval Evaluation). И нет, это не очередная «резиновая» спецификация. Это попытка навести порядок в доме, где каждый таракан поет свою песню.

EEE — часть инициативы EvalEval Coalition, стартовавшей еще в 2024-м, но к середине 2026 года обросшей зубами и плотью. Схема задает жесткую структуру для любого отчета об оценке: от названия модели и датасета до единиц измерения метрик и гиперпараметров. Зачем? Чтобы все отчеты стали читаемыми, машинно-валидируемыми и, самое главное, сравнимыми. Никаких больше «у нас ответ 0.89, ну вы поняли».

Суть EEE: один JSON — один отчет о прогоне модели на одном датасете с фиксированными полями. Никакой вольности.

В отличие от того же Community Evals, где оценка децентрализована через PR, EEE фокусируется именно на формате хранения результата. Это как если бы в лаборатории химиков вместо «накидал в пробирку» появился протокол с четкими полями: температура, время, количество реагентов. Мозги встают на место.

Разбираем скелет EEE: что внутри схемы

На момент 30 июня 2026 года актуальная версия схемы — v0.2.3. Она доступна в репозитории Hugging Face EvalEval. JSON-схема eval-report-schema.json содержит около 80 полей, но основные блоки такие:

  • metadata — информация об оценке: инструмент (например, lm-eval-harness v0.4.2), дата, автор, версия схемы.
  • model — каноническое имя модели (например, mistralai/Mistral-7B-v0.3), тип (base, instruct, fine-tuned), ссылка на репозиторий.
  • dataset — название датасета, конфигурация, разбивка (test/validation), количество примеров.
  • task — конкретная задача (arc_challenge, mmlu, truthfulqa).
  • metrics — массив объектов. Каждый объект содержит: имя метрики (exact_match, f1, bleu), значение (число), единицу измерения (проценты, дробь), метод агрегации (micro, macro, weighted).
  • configuration — гиперпараметры: batch size, max new tokens, temperature, seed.
  • environment — железо: GPU, память, версия библиотеки.
💡
Обрати внимание: EEE не разрешает указывать метрики без единицы. Если ты хочешь написать просто accuracy: 0.95, схема потребует {name: "accuracy", value: 95.0, unit: "percent"}. Да, это больно, но это лечит.

Сравни с подходами из Structured Outputs в Amazon Bedrock — там тоже валидный JSON, но без жесткой типизации метрик. EEE идет дальше, требуя enum для единиц (percent, ratio, raw) и обязательное поле aggregation.

EEE против альтернатив: драка в песочнице

Схем для хранения метрик — как грязи. Самые популярные конкуренты EEE на середину 2026 года:

ПодходФилософияГлавный минус
LM Evaluation Harness (EleutherAI)Свой внутренний формат .json с метриками, плавающий набор полейНет централизованной валидации; каждый запуск может быть неполным
MLPerf / MLCommonsФокус на производительность, а не на качество; жесткие правила для конкуренцииНе подходит для быстрых экспериментов и кастомных метрик
Hugging Face Community EvalsДецентрализованные PR с результатами, формат JSON свободныйОтсутствие обязательных полей ведет к мусору — мы писали об этом
EEEJSON-схема с обязательными и опциональными полями, строгая типизацияСложнее для ручного написания, требует инструментов

EEE выигрывает за счет принудительной полноты. Если ты пропустил поле environment.gpu — схема плюнет ошибкой. Это бесит, но спасает от ситуаций, когда через год ты не помнишь, на каком железе гонял модель. Как Flatten JSON помогает в поиске, так EEE помогает в воспроизводимости.

Еще одна крутая фишка — поддержка вложенных метрик. Для задачи вроде MMLU ты можешь указать accuracy по каждому сабсету (astronomy, biology...) внутри одного отчета, а агрегировать через macro average. Никакой другой формат так не умеет.

Пример: как собрать отчет по EEE и не сойти с ума

Допустим, ты оценивал Qwen2.5-7B-Instruct на датасете ARC-Challenge. Вот минимальный валидный EEE-блок:

{
  "metadata": {
    "eval_library": "lm-eval-harness",
    "eval_library_version": "0.4.2",
    "timestamp": "2026-06-28T14:30:00Z",
    "schema_version": "0.2.3"
  },
  "model": {
    "name": "Qwen/Qwen2.5-7B-Instruct",
    "type": "instruct",
    "repository": "https://huggingface.co/Qwen/Qwen2.5-7B-Instruct"
  },
  "dataset": {
    "name": "arc_challenge",
    "config": "ARC-Challenge",
    "split": "test",
    "num_examples": 1172
  },
  "task": {
    "name": "arc_challenge",
    "config": "default"
  },
  "metrics": [
    {
      "name": "acc_norm",
      "value": 62.54,
      "unit": "percent",
      "aggregation": "micro"
    }
  ],
  "configuration": {
    "batch_size": 8,
    "max_new_tokens": 50,
    "temperature": 0.0,
    "seed": 42
  },
  "environment": {
    "gpu_model": "NVIDIA A100-SXM4-80GB",
    "cuda_version": "12.4",
    "python_version": "3.11"
  }
}

В чем соль? Всего один файл — полная картина. Если ты загрузишь его в репозиторий Hugging Face как eval-results/arc_challenge.json, любой желающий (или CI) сможет распарсить, сравнить с другими моделями и понять, что метрика — это не просто цифра, а осмысленный контекст.

Кстати, EEE можно использовать и для кастомных бенчмарков, которые ты строишь через Community Evals. Схема не требует, чтобы датасет был на хабе — достаточно поля dataset.name. Главное, чтобы имя было уникальным. Нет больше причин писать «оценка нашей модели на тесте с абстракциями» без указания количества примеров.

Частая ошибка: путать unit и aggregation. unit — это шкала (percent/ratio/raw), aggregation — способ усреднения. Если ты гонял на нескольких seed'ах, то в configuration.seeds можно указать список, а в метрике — среднее по ним с агрегацией macro. Схема это поддерживает.

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

EEE — не серебряная пуля. Если ты студент, который один раз прогнал модель ради курсовой, тебе проще открыть блокнот и записать метрики вручную. Схема съест час жизни на освоение.

Но если ты:

  • Работаешь в команде, где нужно сравнивать модели между собой и с чужими.
  • Публикуешь модель на Hugging Face и хочешь, чтобы ее результаты доверяли.
  • Участвуешь в лидербордах (Open LLM Leaderboard, Chatbot Arena) — они уже начали требовать EEE-отчеты для валидации.
  • Автоматизируешь пайплайны оценки с CI/CD — EEE можно проверить скриптом за миллисекунду.

Тогда EEE — твой новый лучший друг. Он не дает мухлевать с метриками (попробуй записать accuracy: 0.8 без единицы — схема выдаст ошибку). Он заставляет документировать окружение, что особенно важно для воспроизводимости. Кстати, если тебе не нравится писать JSON вручную, Hugging Face выпустил Python-библиотеку eval-reporter, которая принимает объект модели и датасета и генерирует EEE-отчет автоматически. В нее уже встроена интеграция с Community Evals.

Есть и слабые места. EEE пока не поддерживает многомодальные оценки (изображения+текст) — для них нужна отдельная схема. И схема не регламентирует, как именно проводить оценку: ты можешь сгенерировать идеальный JSON, но на самом деле использовать кривой промпт или неправильный датасет. Но это уже вопрос культуры, а не формата.

Взгляни на ситуацию шире. В 2026 году мы уже перестали спорить, что JSON — это стандарт общения между системами. EEE — это попытка зацементировать этот стандарт для оценок. Может, через пару лет любая публикация о модели без EEE-файла будет считаться моветоном, как раньше — отсутствие кода в репозитории. И тогда вопрос «а где твои метрики?» отпадет сам собой. Потому что метрики будут лежать в eval-results/, подписанные, с полной историей семплов.

Попробуй начать с малого: возьми свою любимую модель, прогони на одном тесте, заверни результат в EEE-схему и выложи в модель-карточку. Увидишь, как приятно, когда твой файл проходит валидацию без ошибок. Как будто собрал сложный пазл без единого торчащего края.

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