Sakhanda Wire
NVDA $235.30 +1.92% MSFT $514.68 +0.37% GOOGL $344.40 +1.82% META $730.69 +0.66% AMZN $251.26 +1.22%
← К новостям

Datalab представляет OmniExtractBench, чтобы устранить предвзятость и непрозрачность в бенчмарках для извлечения данных

Datalab выпустила OmniExtractBench — открытый бенчмарк для структурированного извлечения данных из документов. Он проверяет, насколько точно система заполняет JSON-схему на основе PDF-файла. Бенчмарк объединяет 620 документов из 4 существующих наборов тестов. Один детерминированный оценщик проверяет их все и объясняет каждое решение.

Релиз состоялся в момент, когда поставщики решений для извлечения данных публикуют собственные таблицы лидеров. Datalab утверждает, что такие таблицы сложно сравнивать и проверять. OmniExtractBench — это попытка создать общий эталон.

Подходит ли он для использования? Да, оценщик устанавливается из PyPI как omni-extract-bench (v0.1.7, Python 3.11+, только SciPy) и распространяется по лицензии Apache 2.0. Для повторного запуска тестов поставщиков потребуются собственные API-ключи и оплаченные кредиты.

Что такое OmniExtractBench?

OmniExtractBench — бенчмарк структурированного извлечения данных, созданный Datalab. В каждой задаче системе предоставляются PDF-файл и JSON-схема. Система возвращает JSON, который оценивается по каждому значению в сравнении с эталонным файлом. Код доступен на GitHub, а данные — на Hugging Face по лицензии CC BY 4.0.

4 недостатка, на которые он нацелен

В публикации Datalab, посвящённой запуску, названы 4 регулярно встречающиеся проблемы существующих бенчмарков извлечения данных:

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

Откуда взялись 620 документов

НаборДокументыИсходный издательСодержимое
ExtractBench329LlamaIndexФормы, отчётность, презентации
Внутренний202Datalab (синтетический)Плотные скалярные схемы, небольшие документы
LongExtractBench47micro1 (по заказу Reducto)Очень большие таблицы
LongArray-Extract42ExtendБольшие таблицы с повторяющимися скалярными значениями

Формы нормативной отчётности — крупнейшая категория, 88 документов. 128 документов состоят из одной страницы. С другой стороны, 33 документа объёмом более 100 страниц содержат 40% всех страниц. Собственный синтетический набор Datalab занимает вторую по величине долю.

Как работает оценщик

Оценщик преобразует прогноз и эталонный JSON в адреса — пути к отдельным значениям. Сначала он нормализует каждое значение, поэтому «03/31/2024» совпадает с «2024-03-31».

Таблицы — самая сложная часть. При сравнении по позициям одна пропущенная строка смещает все последующие строки. Мы повторно запустили оценщик на таблице из 100 строк с пропущенной первой строкой. При позиционном сравнении результат составил 0%, тогда как OmniExtractBench получил 99%.

Решение — сопоставление на основе содержимого с использованием венгерского алгоритма. ExtractBench и LongArray-Extract уже выравнивают строки таким образом. OmniExtractBench добавляет поверх этого уровень вердиктов.

6 вердиктов для каждого значения

  • matched: сопоставлено, и значения совпадают.
  • misread: сопоставлено, но значения различаются.
  • unfound: в эталоне есть значение, а в прогнозе его нет.
  • fabricated: схема это допускает, эталон не содержит значения, а прогноз его заполняет.
  • invented_item: часть спрогнозированной строки, которой ничего не соответствует.
  • invented_field: адрес, который схема никогда не объявляла.

Точность — это количество совпавших значений, делённое на общее количество вердиктов. Precision делит количество совпавших значений на количество спрогнозированных значений. Recall делит их на количество эталонных значений. Полные правила приведены в спецификации метрик.

Правило для null

Пустые строки, None и пробелы считаются пропусками, поэтому такие адреса исключаются. Строки вроде «NA» или «-» остаются реальными ответами. Это блокирует незаметный способ получить преимущество: заполнить схему пустыми необязательными полями и получить бесплатные совпадения. В нашем тесте добавление заполненных null-полей не добавило ни одного вердикта.

Сравнение с другими бенчмарками извлечения данных

БенчмаркИздательДокументыВыравнивание строкОбъяснение для каждого значенияЛицензия оценщикаЛицензия данных
OmniExtractBenchDatalab620, из 4 источниковВенгерский алгоритм, по содержимомуДа, 6 типов вердиктовApache 2.0CC BY 4.0
ExtractBenchLlamaIndex370Венгерский алгоритмРазличия по полям, HTML-отчётApache 2.0Apache 2.0
LongArray-ExtractExtend45, синтетическиеВенгерский алгоритмОценка для каждого документаНе указанаCC BY 4.0
LongExtractBenchmicro1225, из них 50 общедоступныхПо ключу строкиНе указаноMITCC BY 4.0, только метки

Источники указаны в названиях каждого бенчмарка. Проверено 27 сентября 2026 года.

Кто пропускает поля, а кто выдумывает значения

Datalab оценила 10 конфигураций систем на полном корпусе. Режим accurate от Datalab лидировал с точностью 93,85. Datalab balanced (93,48) и Reducto deep_extract v2 (93,47) фактически идут вровень. Precision и recall затем показывают, как каждая система ошибается.

  • Сбалансированные результаты: у Datalab (в обоих режимах) и Reducto precision и recall отличаются не более чем на 0,6 пункта.
  • Склонность к пропускам: GPT 5.6-sol показывает precision 95,11, но recall 84,99. Система теряет 11,88% из-за отсутствующих значений. Gemini и Claude демонстрируют ту же закономерность, но менее выраженную.
  • Склонность к выдуманным значениям: LlamaExtract имеет recall 93,13, но precision 86,57, теряя 9,03% из-за сфабрикованных значений. Extend теряет 4,01% из-за выдуманных элементов.
  • Низкие показатели по обоим параметрам: Mistral OCR 4.1 и Azure Content Understanding отстают по обеим метрикам, причём recall у них ещё ниже.

Как каждая система не дотягивает до 100% в зависимости от типа вердикта. Источник: Datalab.

Запустите самостоятельно

Скопировать кодСкопированоИспользовать другой браузер
uv pip install omni-extract-bench
oeb score --pred pred.json --gt gold.json --schema schema.json --verdicts

Установите дополнительный компонент [benchmark] и запустите oeb benchmark, чтобы повторно протестировать поставщиков. Запуски можно возобновлять, а каждому провайдеру нужны собственные учётные данные. Datalab также предлагает протестировать его площадку на собственных документах.

Основные выводы

  • OmniExtractBench объединяет 620 документов из наборов LlamaIndex, micro1, Extend и Datalab.
  • Детерминированный оценщик присваивает каждому значению 1 из 6 проверяемых вердиктов.
  • Сопоставление строк по содержимому не позволяет одной пропущенной строке обнулить результат для всей таблицы.
  • Исключение адресов со значением null не позволяет заполнением схемы искусственно завышать результаты.
  • Режим accurate от Datalab лидирует с результатом 93,85; Datalab balanced и Reducto делят место примерно на уровне 93,5.

Часто задаваемые вопросы

  • Что измеряет OmniExtractBench? Он измеряет, насколько точно система извлекает значения из PDF в JSON-схему, с оценкой по каждому значению.
  • Является ли OmniExtractBench проектом с открытым исходным кодом? Да. Оценщик распространяется по лицензии Apache 2.0 на GitHub и PyPI. Набор данных доступен по лицензии CC BY 4.0 на Hugging Face.
  • Кто создал OmniExtractBench? Его создала Datalab. Datalab также поддерживает инструменты для работы с документами с открытым исходным кодом Marker и Surya.

Благодарим команду Datalab за ресурсы, использованные при подготовке этой статьи. Datalab поддержала и проспонсировала этот материал.

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости