TL;DR
Loud and Clear — способ подготовки входа для модели, которая читает PDF как картинки (VLM, vision-language model). Страницы подаются в высоком разрешении (Loud, «громко»), а рядом с картинкой кладётся распознанный текст нужных блоков (Clear, «чётко»). Модель и поиск страниц не меняются, меняется только то, в каком виде страницы попадают к модели.
Главная находка: даже когда поиск нашёл правильную страницу, модель не вытаскивает из неё всё нужное. Страницу сжимают до скромного бюджета визуальных токенов, мелкие цифры в таблицах превращаются в кашу, и модель отвечает по соседней таблице или суммирует не те строки. Если те же страницы дать в большем разрешении, точность вырастает на 15 пунктов без единого изменения в модели.
Суть метода в двух приёмах. Первый: одна страница в высоком разрешении, а не повторы, нарезка на плитки или пустые картинки «для объёма». Второй: к картинке страницы добавляется текст релевантных блоков (OCR, распознавание текста). Страница остаётся для структуры (строки, столбцы, подписи), текст даёт точные слова и числа. Каждый из двух входов по отдельности хуже, вместе они дают лучший результат.
Схема метода
ШАГ 1: Найти страницы (обычный поиск, ColQwen3) → top-k страниц
ШАГ 2: Разбить страницы на блоки (MinerU) → блоки с координатами
ШАГ 3: Оценить, какие блоки близки к вопросу → top-m блоков на страницу
ШАГ 4 (Loud): Увеличить разрешение страниц (~в 5 раз больше токенов) → одна крупная картинка на страницу
ШАГ 5 (Clear): Достать текст выбранных блоков (OCR) → текст по страницам, в порядке чтения
ШАГ 6: Подать модели: картинки страниц + OCR-текст → затем инструкция и вопрос
Шаги 1–3 требуют кода и поиска по документам. Шаги 4–6 по смыслу можно повторить руками для одного документа.
Пример применения
В статье нет готовых промптов, это метод подготовки входа. Ниже ручная адаптация для чата с моделью, которая принимает картинки. В самой статье такой вариант не проверялся: там контролировали токены и использовали автоматический отбор блоков.
Задача: Аналитик разбирает годовую отчётность Ozon по МСФО. На одной странице две похожие таблицы: выручка по сегментам и расходы по сегментам. Модель по скриншоту уже путала их и брала числа не из той таблицы. Сильная зона метода: плотные таблицы со схожими блоками, где точность зависит от мелких деталей.
Промпт:
Ниже — материалы с одной страницы отчёта.
[Приложено: скриншот страницы 47 в максимальном разрешении, целиком]
Текст таблицы «Выручка по сегментам» с этой страницы (скопирован из PDF):
{вставленный текст таблицы}
Используй скриншот, чтобы понять структуру: какие столбцы к каким заголовкам относятся, где подписи и примечания.
Используй текст, чтобы точно прочитать числа и названия.
Если скриншот и текст расходятся — укажи на расхождение и не угадывай.
Вопрос: какая доля выручки приходится на сегмент {сегмент} и как она изменилась к прошлому периоду? Таблицу «Расходы по сегментам» не используй.
Результат: Модель ответит по нужной таблице и сошлётся на строки и столбцы. Структуру она возьмёт со скриншота, числа из вставленного текста. При расхождении между картинкой и текстом она должна его назвать. Ответ придёт в обычном текстовом формате.
Почему это работает
Слабость модели. Модель читает страницу не как человек. Картинка превращается в ограниченное число визуальных токенов, и при стандартном размере мелкий шрифт в таблицах теряется. Пять прежних систем давали модели в среднем 0.7–2.7 тыс. токенов на запрос, а модель могла прочитать гораздо больше. Эти токены не нужно «заполнять чем попало»: повтор страницы, пустые картинки и нарезка на плитки хуже, чем одна страница побольше.
Сильная сторона. Модель хорошо читает чистый текст и хорошо понимает структуру макета: заголовки, подписи, строки и столбцы. Эти два умения дополняют друг друга. Текст даёт точные слова и числа. Картинка показывает, что с чем связано. Отдельно OCR оказался хуже страницы, но вместе они лучше любого из двух.
Как метод это использует. Он ничего не заставляет модель делать иначе. Он убирает потери на входе: увеличивает разрешение страницы и добавляет текст нужных кусков. Страница при этом остаётся в контексте. Когда вместо неё давали только вырезанные кропы, модель теряла заголовки и подписи и путалась.
Рычаги управления: - Разрешение / бюджет токенов. Больше — точнее, но дороже и медленнее. Для простых страниц с крупным шрифтом можно не повышать. - Число блоков с текстом (top-m). Меньше — чище и дешевле. Больше — выше шанс не упустить нужное. - Закрашивание лишнего (whiteout). Дешёвая замена OCR: всё вокруг нужных блоков закрашивается белым, но страница сохраняет размеры и положение блоков. Помогает, когда на странице есть похожие «отвлекающие» блоки. - Страница или только фрагмент. Фрагмент без страницы теряет заголовки и подписи. Надёжнее оставлять страницу и добавлять фрагмент рядом.
Шаблон промпта
В статье нет текстового промпта. Это шаблон входа в духе LoC для ручного использования. Порядок такой же, как в статье: сначала страницы и текст, затем инструкция и вопрос.
[Приложено: {число_страниц} скриншот(а) страниц в максимальном разрешении, целиком]
Текст релевантных блоков по страницам, в порядке чтения:
{текст_блоков}
Скриншоты — главный источник структуры: заголовки, столбцы, подписи, примечания.
Текст — источник точных слов и чисел.
Если скриншот и текст не совпадают — укажи расхождение и не угадывай.
{инструкция_по_формату_ответа}
Вопрос: {вопрос}
Что подставлять:
- {число_страниц} — только страницы, где ответ вероятнее всего, а не весь документ.
- {текст_блоков} — текст таблицы, абзаца или подписи, скопированный из PDF или полученный через OCR.
- {инструкция_по_формату_ответа} — например, «ответь одной строкой + укажи страницу и таблицу».
- {вопрос} — конкретный вопрос.
Ограничения
⚠️ Контроль токенов недоступен в чате: в ChatGPT, Claude и Gemini вы не задаёте бюджет визуальных токенов. Интерфейс сам ресайзит изображения. Поэтому «Loud» вручную повторить сложно: максимум — загружать страницу в хорошем качестве и не сжимать скриншот.
⚠️ Полная версия требует инженерии: отбор блоков опирается на токен-эмбеддинги ретривера ColQwen3 и разбор страниц через MinerU. Это код, а не промпт.
⚠️ Эффект на втором бенчмарке слабый: на ViDoRe-v3 прирост от OCR к странице меньше процента, и доверительный интервал включает ноль. Уверенно показан выигрыш на научных документах (SciEGQA).
⚠️ Дороже и медленнее: вход вырастает примерно в пять раз по токенам. Для простых документов с крупным шрифтом это лишние расходы.
⚠️ Только вырезанные фрагменты вредят: замена страницы на кропы теряет заголовки и подписи. Один OCR без картинки хуже страницы.
⚠️ Ручная адаптация не проверена: шаблон для чата выше — перенос идеи. Его эффект авторы не измеряли.
Как исследовали
Идея была простой: зафиксировать всё, кроме способа подачи страниц. Исследователи взяли «оракульные» страницы, то есть страницы, где точно есть ответ, и один и тот же генератор. Они проверяли только то, как меняется точность от формы входа. Основной стенд: SciEGQA (1 623 вопроса по научным документам) и пять англоязычных датасетов ViDoRe-v3 (1 488 вопросов).
Сначала они проверили, сколько токенов получали пять прежних систем. Оказалось, что мало: 0.7–2.7 тыс. токенов на запрос. Если поднять бюджет страниц с 1 до 32 тыс. токенов, точность растёт с 65.7% до 81.0%, то есть на 15.22 пункта. При фиксированных 16 тыс. токенов добавление правильных вырезок даёт ещё +3.75.
Затем сравнили пять способов потратить лишние токены: пустые картинки, повторы страницы, мультимасштаб, плитки 2×2 и масштабирование полной страницы. Лучше всех и стабильнее всех оказалось масштабирование полной страницы. Это важно: значит, дело не в количестве токенов, а в том, что на них приходится. Ещё одна проверка разделила два эффекта. Выяснилось, что разрешение и итоговый бюджет токенов дают прирост независимо друг от друга.
Для «Clear» сравнили закрашивание лишнего, кропы, холст из кропов, страницу с кропами и OCR разных видов. Закрашивание даёт +2.03 на SciEGQA и +0.81 на ViDoRe-v3. Страница с кропом лучше всех на SciEGQA, но на ViDoRe-v3 хуже страницы без добавок. Страница плюс OCR выше страницы на обоих. Хороший пример — таблица, где модель получала 26 (по странице) и 57 (по OCR), а вместе дали верные 31.
Итоговая LoC обошла восемь методов на трёх бенчмарках с тем же поиском и генератором, что у сильнейшей базы ColQwen3. Прирост: +8.88 на SciEGQA, +3.09 на ViDoRe-v3, +4.22 на MMLongBench-Doc. LoC лучше и своей версии «только страницы» при том же бюджете. Вывод для практики: узкое место не только в поиске, но и в том, как страницы подаются модели.
Адаптации и экстраполяции
🔧 Техника: закрасить лишнее вручную → меньше путаницы между похожими блоками
Если на странице две похожие таблицы, закрасьте ненужную в любом редакторе скриншотов и приложите картинку. Добавьте в промпт: «Часть страницы закрашена белым намеренно; игнорируй пустые области». В статье это проверено автоматически (whiteout). Выигрыш больше, когда нужные блоки занимают малую часть страницы.
Экстраполяция: сначала извлечь, потом отвечать. Это не из статьи, а перенос идеи, эффект не проверен:
Шаг 1. По скриншоту выпиши текст таблицы «{название_таблицы}» построчно, сохрани заголовки столбцов.
Шаг 2. Сверь выписанные числа со скриншотом и отметь сомнительные.
Шаг 3. Ответь на вопрос, опираясь на выписанный текст и скриншот: {вопрос}
Идея та же: сделать текст блока явным и оставить страницу как визуальную опору. Но здесь текст получает сама модель, и это может внести ошибки распознавания.
Ресурсы
- Работа: Loud and Clear: Making Visual Evidence Count in Multimodal Document RAG (arXiv preprint)
- Авторы: Eunchan Jo, Seounghyun Jang, Sangwoo Mo — POSTECH
- Код: https://github.com/Chipmunk-g4/Loud-and-Clear
- Упомянутое в работе: SciEGQA, ViDoRe-v3, MMLongBench-Doc, ColQwen3, ColPali, MinerU, RegionRAG, M3DocRAG
