惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

M
MIT News - Artificial intelligence
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
S
SegmentFault 最新的问题
V
V2EX
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
博客园 - 【当耐特】
美团技术团队
博客园 - 司徒正美
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Last Week in AI
Last Week in AI
Jina AI
Jina AI
L
LangChain Blog
博客园 - 聂微东
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园_首页
雷峰网
雷峰网
T
Tenable Blog
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
Cisco Talos Blog
Cisco Talos Blog
P
Proofpoint News Feed
T
Threatpost
S
Securelist
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta
量子位
Project Zero
Project Zero
Simon Willison's Weblog
Simon Willison's Weblog
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
W
WeLiveSecurity
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
腾讯CDC
IT之家
IT之家
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Почему промпты для VLM работают наоборот: как это исправить
Gena Genai · 2026-06-18 · via Все публикации подряд на Хабре

Сложный

9 мин

239

Недавно я пытался выжать максимум из корпоративной OCR-модели, перебирая промпты и гиперпараметры, когда наткнулся на issue в репозитории Qwen-3-VL. Автор утверждал, что точность задачи выросла просто от изменения порядка: сначала изображение, потом текст. Просто перестановка блоков.

Звучало странно. Трансформеры используют позиционное кодирование, но модель видит те же пиксели и те же слова. Порядок не должен так сильно влиять. Я проверил, оказалось, автор был прав.

Если вам интересна тема AI‑агентов и внедрения нейросетей, заглядывайте в мой Telegram‑канал ДругОпенсурса. Там я публикую свежие новости и разборы инструментов в числе первых. |

Результаты в двух словах

Простая перестановка входных данных изображение перед текстом вместо текста перед изображением — даёт прирост точности 13–18%. Без изменений в модели, без дополнительных вычислений. Только другой порядок.

Вот что получилось на 89 образцах OCR:

  • Qwen3-VL-2B-instruct: 0.378 → 0.429 ANLS (+13.4%)

  • Gemma-3-4B-instruct: 0.151 → 0.179 ANLS (+18.5%)

Оба результата статистически значимы p < 0.01. Одна и та же модель и данные, разный порядок и внезапно теряешь двузначный прирост, если следуешь «стандартному» подходу.

Что меняется

Когда вызываешь vision-language модель через OpenAI-совместимый API, отправляешь массив messages. В каждом сообщении можно передать и текст, и изображения, но порядок этих блоков выбираешь сам.

Это те же данные. Модель получает те же пиксели и те же слова. Меняется только последовательность: какие токены попадают в трансформер первыми.

Я думал, что разница будет минимальной, однако нет.

Эксперимент: OCRBench v2

Нужен был датасет, который действительно проверяет модель на прочность, а не просто подтверждает, что она умеет читать чистый текст. Для этого подошёл OCRBench v2 — набор тестов от идеальных документов до кошмаров вроде ASCII-арта, капч и неразборчивого почерка.

Вот с чем приходится работать моделям:

Задачи в OCRBench v2

Задачи в OCRBench v2

Если модель будет ошибаться или ломаться, то именно на таких образцах. Это идеальный полигон для проверки, влияет ли порядок входных данных на результат.

Я ограничился 100 образцами (89 после фильтрации неудачных запусков). Использовал взвешенную выборку, чтобы подмножество отражало сложность всего бенчмарка. Цель была не гонка за лидербордом, а проверка, влияет ли структура промпта на результат.

Тестировал две небольшие модели, которые удобно запускать в продакшене:

  • Qwen3-VL-2B-Instruct (от Alibaba)

  • Gemma-3-4B-Instruct (от Google)

Почему именно они? Во-первых, достаточно малы, чтобы запускать локально на M3 MacBook Pro 32GB RAM через llama.cpp без облака и GPU. Во-вторых, из разных семейств. Если эффект проявляется в обеих, значит, дело не в архитектуре. Все запуски шли в квантизации Q8_0 с форматированием ChatML. Никакого ручного ресайза или нормализации. Просто отправлял картинки в llama-server и полагался на его дефолтную обработку. Так проверял, что получит обычный разработчик.

Для генерации использовал рекомендованные Qwen параметры декодирования с одним изменением: temperature = 0.0, чтобы исключить случайность выборки. Когда проверяешь влияние порядка, не хочется, чтобы шум от сэмплинга мешал.

temperature: float = 0.0,
top_p: float = 0.8,
top_k: int = 20,
repetition_penalty: float = 1.0,
presence_penalty: float = 1.5

(При temperature = 0.0 параметры top_p и top_k не влияют, но оставил их для единообразия запусков.)

Как измеряем улучшение: ANLS и точность

Основная метрика - ANLS. Стандарт для OCR-бенчмарков. Отвечает на вопрос: насколько близко предсказание модели к правильному ответу?

Формула:

ANLS(p,a) = 1 − (edit_distance(p,a) / max(|p|,|a|))

То есть, если предсказание совпадает с эталоном ANLS = 1.0, если стремится к 0, если почти правильно, например, «Итого: 1234» вместо «Итого: 1235», даёт частичный балл за количество правок.

Важные детали реализации:

  • Сравнение без учёта регистра

  • Если у вопроса несколько правильных ответов, берём максимальный ANLS

  • Для разных типов задач разная обработка: multiple-choice вытаскивает букву, счётные задачи - число, математические выражения сначала проверяются на точное совпадение, потом на ANLS

Также считаю простую точность: если ANLS ≥ 0.5, засчитываю как правильный ответ. Порог условный, но даёт быстрое представление: «в целом справилась или нет», поэтому ANLS и точность могут расходиться. ANLS учитывает близкие ответы, а точность по порогу может меняться от небольших колебаний вокруг 0.5.

Как проходил эксперимент

Для каждого из 89 образцов создавал два идентичных входа с одной разницей: порядок.

  • Prompt-First: сначала текст, потом изображение

  • Image-First: сначала изображение, потом текст

Каждую версию прогонял через обе модели с одинаковыми параметрами декодирования. Сохранял предсказания и метаданные в JSON, затем считал ANLS и точность.

Простой A/B-тест: меняем порядок, всё остальное фиксируем, сравниваем результаты.

 A/B-тестирование с использованием изображений и подсказок: меняем порядок, все остальное оставляем без изменений, оцениваем результаты.

 A/B-тестирование с использованием изображений и подсказок: меняем порядок, все остальное оставляем без изменений, оцениваем результаты.

Всего должно было быть 400 запусков - 100 образцов × 2 модели × 2 порядка. На практике 11 образцов упали хотя бы раз. Для чистоты сравнения взял 89 образцов, которые успешно прошли во всех четырёх вариантах. Каждая модель видела одни и те же данные, только в разном порядке. Если порядок не важен, результаты должны быть похожи, если важен - данные это покажут.

Результаты: Image-First выигрывает с большим отрывом

Если бы порядок не влиял, точки расположились бы симметрично вокруг диагонали, а разница была бы около нуля. Этого не произошло.

В обеих моделях Image-First выигрывает чаще, и разница в пользу этого порядка.

Qwen3-VL-2B-Instruct (n = 89)

  • Image-First выигрывает: 46/89 (51.7%)

  • Prompt-First выигрывает: 12/89 (13.5%)

  • Ничья: 31/89 (34.8%)

  • Средняя разница ANLS: +0.051

  • p-value: 0.0019

Gemma-3-4B-Instruct (n = 89)

  • Image-First выигрывает: 53/89 (59.6%)

  • Prompt-First выигрывает: 27/89 (30.3%)

  • Ничья: 9/89 (10.1%)

  • Средняя разница ANLS: +0.028

  • p-value: 0.0148

p-value показывает вероятность получить такие результаты случайно, если бы порядок не влиял. Для Qwen p = 0.0019 крайне маловероятно. Для Gemma p = 0.0148 тоже ниже стандартного порога 0.05.

Вывод: порядок входных данных влияет на результат, и Image-First чаще даёт лучшие показатели.

Не все задачи одинаково чувствительны к порядку

Эффект проявляется неравномерно. В некоторых задачах Image-First даёт сильный прирост, в других почти не влияет.

Разбил по типам задач с помощью простого показателя чувствительности: (ANLS Image-First − ANLS Prompt-First). Положительное значение - Image-First лучше, отрицательное - Prompt-First.

Самые большие приросты там, где модель должна понимать структуру и пространственные отношения:

  • Diagram QA: +0.254 ANLS (самый сильный эффект)

  • Formula recognition: +0.103

  • ASCII art classification: +0.095

  • Table parsing: +0.069

  • Chart parsing: +0.065

Это логично. В Diagram QA часто нужно сопоставить текст и символы на сложной схеме. Если модель «смотрит» первой, ей проще зафиксировать визуальный контекст перед ответом. Формулы и ASCII-арт - задачи, где важны мелкие детали формы и расположения. Для стандартных OCR-задач : распознавание текста, извлечение ключевой информации, парсинг документов эффект тоже есть, но меньше: +0.039–0.041 ANLS. Небольшой, но стабильный прирост.

Есть и исключение: Full-page OCR стал хуже с Image-First −0.052 ANLS. Возможно, длинные тексты работают, как режим чтения, где инструкция в начале помогает модели настроиться перед обработкой плотной страницы, но это гипотеза такова, что в этой категории мало образцов, так что выводы предварительные.

Практический вывод: если работаешь с формами, счетами, таблицами, графиками или схемами - Image-First безопаснее. Для полностраничного распознавания стоит протестировать оба варианта.

Короткие промпты усиливают эффект

Чем короче промпт, тем сильнее влияет порядок.

Разбил образцы по длине промпта:

  • Очень короткие (<50 символов): +0.034 ANLS

  • Короткие (50–100 символов): +0.068 ANLS - пик чувствительности

  • Средние (100–200 символов): +0.026

  • Длинные (200–500 символов): +0.024

  • Очень длинные (>500 символов): +0.044

Объяснение: длинные промпты дают модели больше контекста, чтобы исправиться, даже если порядок неоптимален. С коротким промптом вроде «Извлеки итог» или «Что это?» мало информации. Если промпт идёт первым, модели приходится удерживать инструкцию через большой блок токенов изображения, и она может потеряться. Если изображение идёт первым, модель сначала формирует визуальное представление, а потом сразу применяет к нему простой запрос.

Проблема в том, что короткие промпты - это как раз то, что обычно используют в продакшене. Именно они больше всего зависят от порядка. Длинные, тщательно составленные промпты тоже выигрывают от Image-First, но эффект слабее, потому что у модели больше возможностей перестроиться по ходу.

Когда порядок решает всё

В большинстве случаев порядок промпта даёт небольшой прирост или ухудшение на пару процентов. Но иногда это разница между модель не справляется и модель решает задачу.

Разбил 89 парных запусков на категории:

  • 66 образцов (74%): проваливаются в обоих порядках. Обычно это просто слишком сложные задачи для моделей такого размера.

  • 11 образцов (12%): проваливаются в обоих, но с разными ошибками. Нестабильность - тот же вход, разные сбои.

  • 7 образцов (8%): справляются в обоих порядках. Лёгкие случаи, где порядок не важен.

  • 5 образцов (6%): один порядок справляется, другой - нет. Вот эти случаи и важны.

Модель явно способна решить задачу, но делает это стабильно только при правильном порядке.

Примеры:

  • Образец 1062 (Key Information Extraction): Prompt-First - 0.193, Image-First - 0.636. Прирост в 3.3 раза.

  • Образец 959 (Key Information Extraction): 0.115 → 0.461. Почти в 4 раза лучше.

  • Образец 463 (ASCII Art Classification): 0.043 → 0.333. В 7.8 раза.

Бывают и обратные случаи. Например, Образец 5842 (Full-page OCR) выигрывает с Prompt-First: 0.827 против 0.526. Это подтверждает, что длинные тексты могут вести себя иначе.

Главное не то, что переворачиваются все образцы, а то, что переворачиваются именно те, которые имеют значение в реальных системах: счета, формы, извлечение ключевых значений, парсинг документов.

Не все образцы одинаково чувствительны

До сих пор смотрели на средние значения и категории задач. Но эффект проявляется и на уровне отдельных образцов. Одни стабильны при любом порядке, другие - неожиданно хрупкие.

Хорошая новость: большинство образцов устойчивы. 73 из 89 попадают в категорию высокой согласованности >0.9, где модель ведёт себя одинаково при любом порядке. Ещё 13 - средняя согласованность 0.7–0.9, где результаты немного отличаются. И только 3 образца - низкая согласованность <0.7, где порядок кардинально меняет предсказание.

Есть опасная зона: высокая средняя оценка, но низкая согласованность. Это случаи, где модель в принципе справляется, но результат зависит от порядка. В моём наборе данных только один образец попал в эту категорию, но он хорошо иллюстрирует риск. Риск в том, что модель может показывать 80% качества, но если использовать неоптимальный порядок, то получишь 50%. И сделаешь вывод, что модель недостаточно хороша. А на самом деле она способна на большее, просто не всегда получает доступ к этой способности. Виноват интерфейс, а не модель.

Поэтому важно тестировать на своих данных. Общая статистика говорит, что Image-First лучше, но на конкретных документах и промптах эффект может быть от незначительного до критического.

Почему так происходит: Гипотезы

Не могу утверждать наверняка без анализа внутренностей модели, но паттерн достаточно выражен, чтобы предложить несколько объяснений. Они не исключают друг друга.

Гипотеза 1: Смещение внимания по позиции, эффект первичности

Трансформеры кодируют позицию, но это не значит, что все позиции обрабатываются одинаково. Ранние токены могут получать чуть больше внимания, особенно на этапе формирования контекста. Если это так, то Image-First ставит визуальные токены в более выгодные позиции и Prompt-First заставляет изображение конкурировать с уже установленным контекстом. Это объясняет, почему короткие промпты показывают большую чувствительность. Чем меньше текстовых токенов в начале, тем раньше попадает изображение и тем меньше конкуренции. Есть похожие обсуждения эффектов, связанных с порядком, в мультимодальном промптинге, например, в статье «Order Matters».

Гипотеза 2: Соответствие обучающему распределению

Модели лучше работают с форматами, похожими на те, что видели во время обучения. Много данных для vision-language моделей - это Image-First: изображение к подписи, изображение к описанию, изображение к вопросу-ответу. Если обучение чаще использовало Image-First, то это родной порядок для модели. Prompt-First становится слегка нестандартным форматом, и производительность падает, пусть и незначительно.

Гипотеза 3: Ограничение заземления и рабочей памяти

Самое интуитивное объяснение: если модель видит изображение первой, она может сформировать визуальное представление до того, как получит запрос. С Image-First модель строит внутреннее представление из пикселей, а потом применяет инструкцию к нему. С Prompt-First модель сначала читает инструкцию, а потом должна удержать её через сотни токенов изображения и инструкция может потеряться по пути.

Это совпадает с наблюдениями: самые большие приросты были на визуально сложных задачах, где нужно глубокое понимание структуры перед ответом.

Практический вывод: код для исправления

Вот что это значит для твоих API-запросов:

#  Как обычно учат (неоптимально)
messages = [
    {"role": "user", "content": [
        {"type": "text", "text": "Извлеки итог счета"},
        {"type": "image", "image": invoice_img}
    ]}
]

#  Что работает лучше (+13-18% точности)
messages = [
    {"role": "user", "content": [
        {"type": "image", "image": invoice_img},
        {"type": "text", "text": "Извлеки итог счета"}
    ]}
]

Поменяй две строки местами и протестируй на своём наборе данных. Используй выигрывающий порядок.

Не воспринимай это как универсальное правило. Общий тренд в пользу Image-First, но есть исключения, например, full-page OCR. Самый надёжный подход - A/B-тестирование на своих данных с теми же промптами, изображениями и параметрами декодирования.

Ограничения

Несколько оговорок, прежде чем переписывать весь продакшен:

  1. Воспроизводимость: Первый запуск шёл с дефолтным сэмплингом temperature > 0, то есть одинаковые входы могли давать немного разные выходы. Чтобы подтвердить, что дело не в шуме, перезапустил с temperature = 0.0 - эффект сохранился. Цифры в статье отражают оригинальный запуск с сэмплингом, так как это ближе к реальному использованию. Детерминированные результаты есть в репозитории.

  2. Охват: Тестировал только две open-source модели, потому что они хорошо запускаются локально и поддерживаются llama.cpp. Это всего две точки в огромном пространстве архитектур. Не проверял проприетарные модели: GPT-4V, Gemini, Claude, они могут вести себя иначе из-за других обучающих данных или архитектур.

  3. Задачи: Всё основано на OCRBench v2, который заточен под документы и OCR. Не оценивал общий VQA, генерацию подписей, мультимодальное рассуждение, несколько изображений или чередующиеся текст-изображение-текст форматы. Это сильное доказательство эффекта порядка для OCR-задач, но не доказательство, что все VLM одинаково чувствительны к порядку.

  4. Размер выборки: 89 образцов достаточно для статистической значимости, но мало для детального анализа по типам задач или длине промпта. Следующий шаг - репликация на 500+ образцах для конкретных задач.