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-те документа
| Набор | Документи | Първоначален издател | Съдържание |
| ExtractBench | 329 | LlamaIndex | Формуляри, отчети, презентации |
| Вътрешен | 202 | Datalab (синтетичен) | Плътни скаларни схеми, малки документи |
| LongExtractBench | 47 | micro1 (по поръчка на Reducto) | Много големи таблици |
| LongArray-Extract | 42 | Extend | Големи таблици с повтарящи се скаларни стойности |
Формулярите за регулаторни отчети са най-голямата категория — 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: адрес, който схемата никога не е декларирала.
Точността представлява броят на съвпадналите стойности, разделен на броя на всички определения. Прецизността разделя съвпадналите стойности на прогнозираните стойности. Пълнотата ги разделя на референтните стойности. Пълните правила са в спецификацията на метриката.
Правилото за null
Празните низове, None и интервалите се считат за пропуски, така че тези адреси се премахват. Низове като „NA“ или „-“ остават реални отговори. Това блокира незабележима измама: добавяне на празни незадължителни полета към схема, за да се спечелят безплатни съвпадения. При нашия тест добавените null полета доведоха до 0 определения.
Сравнение с други бенчмаркове за извличане
| Бенчмарк | Издател | Документи | Подравняване на редовете | Обяснение за всяка стойност | Лиценз на оценителя | Лиценз на данните |
| OmniExtractBench | Datalab | 620, от 4 източника | Унгарски, според съдържанието | Да, 6 типа определения | Apache 2.0 | CC BY 4.0 |
| ExtractBench | LlamaIndex | 370 | Унгарски | Разлики по поле, HTML отчет | Apache 2.0 | Apache 2.0 |
| LongArray-Extract | Extend | 45, синтетични | Унгарски | Резултат по документ | Не е посочен | CC BY 4.0 |
| LongExtractBench | micro1 | 225, от които 50 публични | По ключ на реда | Не е посочено | MIT | CC BY 4.0, само етикети |
Източниците са свързани с имената на всеки бенчмарк. Проверено на 27 септември 2026 г.
Кой пропуска полета и кой измисля стойности
Datalab е оценил 10 системни конфигурации върху целия корпус. Неговият точен режим е начело с точност 93.85. Datalab balanced (93.48) и Reducto deep_extract v2 (93.47) на практика са изравнени. След това прецизността и пълнотата показват как се проваля всяка система.
- Балансирани: Datalab (и в двата режима) и Reducto поддържат прецизността и пълнотата в рамките на 0,6 пункта.
- Склонни към пропуски: GPT 5.6-sol показва прецизност от 95.11, но пълнота от 84.99. То губи 11,88% заради неоткрити стойности. Gemini и Claude показват същия модел, но по-слабо изразен.
- Склонни към измислени стойности: LlamaExtract има пълнота 93.13, но прецизност 86.57, като губи 9,03% заради фабрикувани стойности. Extend губи 4,01% заради измислени елементи.
- Ниски резултати и по двата показателя: Mistral OCR 4.1 и Azure Content Understanding изостават и по двете метрики, като пълнотата им е още по-ниска.
Как всяка система не достига 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 адресите не позволява добавянето на полета към схемата да завишава резултатите.
- Datalab accurate е начело с 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 подкрепи и спонсорира това съдържание.
Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.