Современные LLM умеют «читать» не только текстовые материалы, но и визуальные — от сканов договоров и таблиц до рукописей и диаграмм, и даже обзавелись новым названием — VLM (Vision Language Models). Но измерять качество их работы на реальных бизнес‑сценариях было негде и нечем, особенно если дело касалось тяжелого мультимодального контента на русском. Поэтому мы подумали и собрали собственный бенчмарк — MWS Vision Bench.

Коротко о бенчмарке:
- Состоит из 5 практических заданий: полностраничный OCR (страница→текст), структурированный OCR (страница→Markdown), grounding (координаты текста), KIE/JSON (извлечение значений по ключам) и VQA (вопрос‑ответ).
- Размер: 2580 вопросов к 800 уникальным изображениям (валидационый сплит: 1302 вопроса, тестовый: 1 278 вопросов).
- Код и валидационный сплит открываем; приватный тест — по запросу. Повторить запуск можно менее чем за 1 час.

Репозиторий
Валидационный датасет

Теперь подробности — в вопросно-ответной форме.

Зачем нам ещё один бенчмарк?

За последние два года мультимодальные модели резко продвинулись в чтении изображений документов и другой визуальной информации: договоры, счета, формы, конспекты, диаграммы, интерфейсы приложений. Однако популярные международные бенчмарки часто не покрывают практику бизнеса или не поддерживают русский язык. Например, если мы взглянем на популярный лидерборд мультимодалок на Hugging Face, мы увидим, что он сводится к усреднению нескольких других бенчмарков, таких как HallusionBench, AI2D, MathVista и MMMU. Все бы ничего, но:

  • HallusionBench — диагностический набор про визуальные иллюзии и «галлюцинации» VLM, а не про документы.

  • AI2D (диаграммы) — очень примитивный бенчмарк 2016 года, состоит из диаграмм и учебных иллюстраций, нужно просто выбрать один верный вариант ответа из четырех.

  • MathVista — имеет репутацию математического. Однако если пробежаться по нему детально, можно увидеть, что ответ по-прежнему нужно выбирать из нескольких вариантов, а задания не только весьма просты для современных VLM, но часто еще и не имеют никакого отношения к математике. Например, на изображении может быть Обама с гостем, а вопрос звучать как "What is the age gap between these two people in image?".

  • MMMU — снова нужно выбирать ответы (хотя иногда их нужно прописывать текстом). Бенчмарк делает большой шаг вперед в плане сложности заданий — они доходят до университетского уровня, но это скорее тест на знания модели, чем на ее умение работать с документами.

Если вам нужно написать для вашей компании чат-ассистента, а в документации для базы знаний, по которой он должен работать, очень много сканов финансовых отчетов, вперемешку со схемами эвакуации из здания, скриншотами инструкций из интернета и электросхемами, которые рисовали ваши инженеры, — ни один из этих бенчмарков не будет вам полезен. Ближе всего будет OCRBench и его вторая версия OCRBench V2. Эти два бенчмарка содержат много разнообразных заданий с тяжелым OCR, но вот незадача — только на английском и китайском языках. На русском языке подходящих бенчмарков нет, совсем.

Иногда можно увидеть попытки решить проблему через перевод существующих бенчмарков с английского языка на русский. Однако если мы хотим оценивать способности VLM в понимании русскоязычной документации, нам нужны именно изображения с текстами на русском. Перевод вопросов и ответов какой-нибудь MathVista или MMMU тут не поможет.

Что внутри MWS Vision Bench?

Чтобы иметь возможность сравнивать разные модели на изображениях с русскоязычным текстом, мы с командой собрали датасет MWS Vision Bench. Он включает 800 изображений из трёх больших семейств:

  • Офисный контент500 изображений:

    • Сканы документов200
      Контракты, письма, договоры. Обычно это страницы А4 с большим количеством печатного текста.

    • Диаграммы100
      Графики, диаграммы, слайды презентаций — там мало понять текст, его расположение на изображении играет важную роль.

    • Таблицы100
      Бухгалтерский учёт / финансы / отчёты с множеством строк и столбцов. Большие и сложные таблицы.

    • Схемы / чертежи / карты100
      Планы, карты, инженерные схемы — то, что сегодня даётся VLM тяжелее всего.

    Примеры изображений категории "Офисный контент"
    Примеры изображений категории "Офисный контент"
  • Персональный контент300 изображений:

    • Рукописные конспекты100
      Конспекты и тетради — исключительно рукописный текст образовательного содержания.

    • Рукописные и смешанные документы 100
      Медицинские справки, открытки, ноты, личные записи и т. п. — рукописный текст с небольшой долей печатного текста.

    • Персональные печатные документы 100
      Чеки, билеты, грамоты, медицинские анализы и т.д.

    Примеры изображений категории "Персональный контент"
    Примеры изображений категории "Персональный контент"

Все изображения обезличены, чувствительные данные замазаны.

Итоговое разбиение датасета по типам контента. Широко представлены как печатные документы, так и рукописные.
Итоговое разбиение датасета по типам контента. Широко представлены как печатные документы, так и рукописные.

На каких задачах оцениваем?

Hаиболее совершенный и сильный из существующих бенчмарков для VLM — OCRBench v2. Он содержит 31 сценарий и ~10 000 QA‑пар, однако все его задания — на английском либо китайском. Мы взяли за основу его идеи и сфокусировались на пяти «сутевых» направлениях (остальные типы заданий так или иначе сводятся к этим пяти):

1) Простой OCR (image→text)
Перевод изображения в простой текст, иногда части страницы, но чаще полностраничный (число токенов в ответе может превышать 4000). Итоговая оценка считается как среднее значение по метрикам BLEU, METEOR, F1-score (по словам), и нормализованной редакторской дистанции.

2) Структурированный OCR (image→markdown)
Усложненная версия — перевод изображения в markdown. Можно было бы добавить и перевод в более сложный код (python / html), но для бенчмарка мы решили, что markdown пока будет достаточно. Метрика TEDS (Tree‑Edit‑Distance Similarity) сравнивает структуру и текст markdown‑деревьев (таргетного и предсказанного). Мы пофиксили баг авторов OCRBench_V2, из‑за которого даже идентичные ответы иногда получали < 1.0.

Пример контента. Скан текстового документа в бенчмарке имеет разрешение 1448x2048. Три задания к нему - извлечение ключевой информации, перевод в текст и перевод в markdown.
Пример контента. Скан текстового документа в бенчмарке имеет разрешение 1448x2048. Три задания к нему - извлечение ключевой информации, перевод в текст и перевод в markdown.

3) Локализация текста на изображении (grounding)
Модель должна понять, где на изображении находится то или иное слово / элемент и вернуть его координаты. Формат боксов: [x1, y1, x2, y2], абсолютные координаты в диапазоне 0…2048 (под размер входных изображений). Метрика — IoU В OCRBench v2.

Изначально координаты были нормализованы к 0…1000 — мы сознательно перешли на абсолютные координаты для этого типа задания. Чтобы обойти препроцессинг (который может менять размеры изображения до того, как оно попадет в модель), мы в вопросе к VLM также сообщаем истинные размеры изображения. Grounding — самое сложное задание для современных мультимодальных моделек, как правило, средний IoU не превышает 25%.

Пример контента. Схема эвакуации в бенчмарке имеет разрешение 803x1152. Два задания к нему - grounding и VQA.
Пример контента. Схема эвакуации в бенчмарке имеет разрешение 803x1152. Два задания к нему - grounding и VQA.

4) Извлечение ключевой информации (Key Information Extraction→JSON)
Необходимо по изображению заполнить JSON — найти значения для заданных ключей и вернуть получившийся словарь. Метрика — точность извлечения ключевых значений. Метрика дискретная: подсчитывается доля ключей, значения которых полностью совпадают с эталоном. Формально вычисляются показатели Precision и Recall на множестве предсказанных пар ключ-значение относительно ожидаемых, после чего итоговая оценка рассчитывается как F1-мера.

5) Ответы на вопросы по изображению (VQA)
Короткие ответы — строгий exact match; ответ модели должен содержать внутри себя один из допустимых таргетных вариантов (например "два" или "2"); длинные ответы (более 5 слов) — текстовая близость (в т. ч. ANLS/редакционная схожесть).

Распределение вопросов по категориям задач. К некоторым изображениям можно задавать вопросы сразу нескольких категорий, но не ко всем (например, сложно переводить чертежи в простой текст или в markdown). Для 800 исходных изображений у нас получилось 2580 пар вопрос-ответ.
Распределение вопросов по категориям задач. К некоторым изображениям можно задавать вопросы сразу нескольких категорий, но не ко всем (например, сложно переводить чертежи в простой текст или в markdown). Для 800 исходных изображений у нас получилось 2580 пар вопрос-ответ.

Как мы делали разметку?

  • Для image→text и image→markdown использовалась предразметка (LLM), но каждый пример прошёл ручную верификацию и правки.

  • Grounding, VQA и KIE размечались полностью вручную.

  • Мы делали несколько итераций улучшений после прогонов моделей: находили спорные места в таргетах и исправляли.

Как показали себя популярные VLMки на бенчмарке?

Мы разделили исходный набор данных (800 изображений, 2580 заданий) случайным образом на две примерно равные части — валидационную (400 изображений, 1302 задания) и тестовую (400 изображений, 1278 вопроса).

Прогнав через бенчмарк известные модели от Google, OpenAI и Alibaba в их различных версиях, мы получили следующую картину.

Распределение моделей на валидационном наборе данных

Model

Overall

img→

text

img→

markdown

Grounding

KIE (img→ JSON)

VQA

Gemini-2.5-pro

0.682

0.836

0.745

0.084

0.891

0.853

Gemini-2.5-flash

0.644

0.796

0.683

0.067

0.841

0.833

gpt-4.1-mini

0.643

0.866

0.724

0.091

0.750

0.782

Claude-4.5-Sonnet

0.639

0.723

0.676

0.377

0.728

0.692

Cotype VL (32B 8bit)

0.639

0.797

0.756

0.262

0.694

0.685

gpt-5-mini

0.632

0.797

0.678

0.126

0.784

0.776

Qwen2.5-VL-72B-Instruct

0.631

0.848

0.712

0.220

0.644

0.732

gpt-5-mini (responses)

0.594

0.743

0.567

0.118

0.811

0.731

Qwen3-VL-30B-A3B-Instruct

0.589

0.802

0.688

0.053

0.661

0.743

gpt-4.1

0.587

0.709

0.693

0.086

0.662

0.784

Qwen3-VL-30B-A3B-Instruct-FP8

0.583

0.798

0.683

0.056

0.638

0.740

Qwen2.5-VL-32B

0.577

0.767

0.649

0.232

0.493

0.743

gpt-5 (responses)

0.573

0.746

0.650

0.080

0.687

0.704

Qwen2.5-VL-7B

0.549

0.779

0.704

0.185

0.426

0.651

gpt-4.1-nano

0.503

0.676

0.672

0.028

0.567

0.573

gpt-5-nano

0.503

0.487

0.583

0.091

0.661

0.693

Qwen2.5-VL-3B

0.402

0.613

0.654

0.045

0.203

0.494

Примечание: обращаться к моделям OpenAI можно по Chat Completions API и Responses API. Последний вариант рекомендуется OpenAI и по нашим наблюдением работает гораздо быстрее (для GPT-5 при этом является единственным надежным). Оба API имеют несколько разный набор гиперпараметров (для Responses API и GPT-5 это, например, не Temperature, а Verbosity и Reasoning Effort). Результаты тоже получаются несколько разные. Если в скобочках не указано Responses API, значит использовался Chat Completions. Положение GPT-4.1-mini выше остальных версий от OpenAI удивительно, однако, доминирование мини-версии над главной - GPT-4.1 - проявляется и в официальных отчетах OpenAI (на том же MathVista или CharXiv). Отставание GPT-5 от других моделей (вроде Qwen2.5-VL-32B) заметно и на схожем по сути бенчмарке OCRBench.

Распределение моделей на тестовом наборе данных

Model

Overall

img→

text

img→

markdown

Grounding

KIE (img→JSON)

VQA

Gemini-2.5-pro

0.670

0.850

0.734

0.079

0.855

0.834

Gemini-2.5-flash

0.633

0.827

0.664

0.072

0.820

0.784

Claude-4.5-Sonnet

0.632

0.727

0.652

0.369

0.745

0.665

gpt-4.1-mini

0.628

0.865

0.710

0.091

0.741

0.735

Cotype VL (32B 8bit)

0.624

0.799

0.742

0.246

0.694

0.685

Qwen2.5-VL-72B-Instruct

0.620

0.840

0.699

0.203

0.631

0.725

gpt-5-mini

0.615

0.797

0.675

0.104

0.745

0.754

gpt-4.1

0.575

0.729

0.691

0.077

0.673

0.705

gpt-5-mini (responses)

0.575

0.749

0.588

0.114

0.741

0.685

gpt-5 (responses)

0.568

0.748

0.646

0.079

0.691

0.676

Qwen2.5-VL-32B

0.565

0.742

0.614

0.217

0.493

0.743

Qwen3-VL-30B-A3B-Instruct

0.557

0.790

0.644

0.053

0.661

0.741

Qwen3-VL-30B-A3B-Instruct-FP8

0.555

0.794

0.656

0.051

0.582

0.689

Qwen2.5-VL-7B

0.537

0.750

0.676

0.184

0.438

0.635

gpt-5-nano

0.499

0.519

0.606

0.090

0.598

0.681

gpt-4.1-nano

0.480

0.686

0.640

0.025

0.555

0.511

Qwen2.5-VL-3B

0.409

0.631

0.688

0.026

0.232

0.469

Как можно заметить, несмотря на несколько разные значения метрик, относительный порядок моделей на валидационном и тестовом сплитах почти полностью совпадает. Безусловный лидер - Gemini-2.5-pro, чуть ниже идут примерно на одном уровне Gemini-2.5-flash, Claude-4.5-Sonnet и GPT-4.1-mini. Grounding дается тяжело всем сегодняшним моделям, кроме моделей от Anthropic. Наша же новая модель Cotype VL (32B 8bit) на обоих сплитах приземлилась в первой части лидерборда, но выше Qwen2.5-VL, Qwen3-VL и GPT-5.

Еще в 2024 году в продуктовой разработке мы замечали, что VLM часто работают лучше традиционного OCR, но все же недостаточно качественно. В начале 2025 года вижн-нейронки совершили большой прыжок вперед (семейство Qwen-2.5-VL и GPT-4.1). Летом 2025 вышло следующее поколение моделей. Однако, глядя на результаты GPT-5 (развитие в сторону рассуждений), а также на такие модели, как Qwen-3 / UI-TARS 2.0 (шаг в сторону моделей 200+ миллиардов параметров), создается впечатление, что трендом ушедшего лета стало кратное увеличение именно языковой составляющей. Новые модели (GPT-5, Qwen3-VL) оказались чуть хуже старых (GPT-4.1, Qwen2.5-VL). Мораль - в плане "вижн" пока ничего не меняется — энкодер на полмиллиарда параметров, проекция в LLM-токены. Эту часть никто не улучшает, так что в этом плане летние модели не лучше тех, что выпущены в начале года.

Как запустить бенчмарк у себя?

  • Клонируйте репозиторий, следуя README.md установите необходимую среду и запустите бенчмарк одной командой. Датасет при запуске скачается автоматически.

  • Производительность: время инференса зависит от числа запущенных параллельно потоков (у OpenAI это упрется в 5-30 в зависимости от tier, для GigaChat API рекомендуем 1 поток, для своих vllm API рекомендуем 30), время оценки — от числа CPU. При хорошем API с max_workers 30 и на мульти CPU-машине бенчмарк пройдет менее чем за полчаса.

  • Повторяемость: из‑за стохастики API/vLLM общий overall гуляет (в среднем) в диапазоне ±0.002 по overall для каждого сплита, по подзадачам — до ±0.010 (что немало для узких срезов, но приемлемо). Мы сознательно сделали фокус именно на vLLM, а не на transformers. Да, transformers позволили бы получать полностью воспроизводимый результат, однако тесты длились бы на порядок дольше (вплоть до суток и более), а главное — бенчмарк создавался для помощи разработчикам продуктов, а они будут работать именно через API / vLLM-интерфейс.

Заключение

Надеемся, бенчмарк будет вам полезен ?

Для тех, кто дочитал до конца, еще раз дублирую ссылки:

Репозиторий
Валидационный датасет

Используйте их, чтобы честно сравнивать модели в близких к продакшену условиях. Если же хотите прогон на закрытом тесте или добавить модель в лидерборд (пока положили в README на GitHab), пишите сюда: cotype@mts.ai.

Комментарии (1)


  1. Norgat
    09.10.2025 13:06

    Странно, что pixtral пропустили в сравнении. Он выдает довольно хорошие результаты.