Все статьи
обновлено 8 мин

Vision LLM для парсинга PDF: счета, акты, договоры со сложным форматированием

Как извлекать структурированные данные из сложных PDF (с печатями, таблицами, картинками): что выбрать из vision-LLM 2026 года, как настроить pipeline, типовые ошибки.

vision-llmpdf-parsingocrself-hosted-aiagmindrag

Vision LLM для парсинга PDF — это мультимодальная нейросеть, которая читает страницу как изображение и извлекает текст вместе со структурой, где классический OCR теряет контекст. Актуально для счетов с печатями, сканированных договоров и технических схем. Статья разбирает, какие self-hosted модели подходят и как выстроить production-pipeline.

В 2026 году у нас есть три практических vision-LLM модели для self-hosted: Qwen2.5-VL, Gemma 4 vision-instruct и InternVL2.5. Этот текст — про их выбор, настройку pipeline и типовые проблемы.

Зачем vision-LLM, а не классический OCR

Классический OCR (Tesseract, EasyOCR, ABBYY FineReader):

  • Извлекает текст из изображения
  • Не понимает структуру документа
  • Теряет связи между текстом и таблицами/картинками
  • Плохо справляется с печатями, подписями, штампами

Vision-LLM:

  • Понимает страницу как семантический объект — заголовок здесь, таблица там, подпись внизу
  • Может ответить на вопрос «сколько строк в таблице на странице 4?»
  • Распознаёт нестандартные форматы (печати, инфографика, схемы)
  • Генерирует структурированный markdown/JSON, не просто текст

Точность сравнительная:

Тип документаTesseract OCRVision-LLM
Чистый текстовый PDF99%99%
Скан с подписями75-85%92-96%
Документ с таблицами50-70% (теряет структуру)90-95%
Чертёж/инфографика30-50% (нечитаемо)80-90%

Три модели в 2026

Qwen2.5-VL (Alibaba)

Размер: 7B и 72B. 7B уже подходит для большинства задач, 72B — для топ-качества.

Сильные стороны:

  • Лучшее на русском среди open-source vision-LLM
  • Понимает китайские/японские документы (если корпус мультиязычный)
  • Хорошо работает с длинными PDF (до 100+ страниц)
  • Apache 2.0 лицензия

Слабые стороны:

  • 7B иногда галлюцинирует мелкие детали в таблицах
  • 72B требует серьёзного железа (60+ ГБ VRAM)

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

Gemma 4 vision-instruct (Google)

Размер: 12B и 27B (мульти-модальный).

Сильные стороны:

  • Отличное качество понимания русского контекста
  • Натренирована на разнообразных visual-text задачах
  • Умеренные требования к железу

Слабые стороны:

  • Меньше готовых fine-tunes под российские задачи
  • Лицензия Gemma — commercial OK, но с ограничениями

Когда брать: universal vision-LLM, особенно если уже используется Gemma в основном LLM-стэке.

InternVL2.5 (Shanghai AI Lab)

Размер: до 78B. Доступны меньшие версии (2B, 8B, 26B).

Сильные стороны:

  • Топ-уровень на vision-language benchmarks
  • Хорошая поддержка длинного контекста
  • Сильная на complex reasoning над изображениями

Слабые стороны:

  • Менее активная support в РФ
  • Тяжелее в развёртывании

Когда брать: если нужен максимум качества и есть железо для 26B+ модели.

Pipeline для парсинга PDF

PDF файл

[Страничная нарезка] → каждая страница как PNG/JPG

[Vision-LLM на каждой странице] → markdown с описанием структуры

[Классический text extraction (для текстовых страниц)] → быстрый путь когда vision не нужен

[Объединение и постобработка] → итоговый markdown/JSON

[Чанкинг + эмбеддинг] → для RAG-индекса

Оптимизация: не нужно гонять vision-LLM на каждую страницу. Сначала проверяем — есть ли в PDF text layer (тогда быстрый extract через Docling/PyMuPDF). Только страницы без text layer (сканы) или со сложным форматированием идут в vision-LLM.

Скорость на DGX Spark:

  • Чистый текстовый PDF: 0.5-1 сек на страницу
  • Скан с vision-LLM: 8-15 сек на страницу (Qwen2.5-VL 7B)
  • 5-страничный счёт целиком: 40-75 сек

Типовые задачи и решения

Задача 1: извлечение данных из счета на оплату

Что нужно: ИНН, КПП, расчётный счёт, банк, сумма с НДС, описание услуг, печать подтверждена ли.

Промпт:

Это счёт на оплату. Извлеки в JSON:
- инн поставщика
- кпп поставщика
- расчётный счёт
- банк
- сумма всего (число)
- сумма ндс (число)
- описание услуги
- наличие печати (true/false)
- дата выставления

Результат: vision-LLM выдаёт структурированный JSON, готовый к импорту в учётную систему.

Точность: 92-96% на стандартных счетах, 80-85% на нестандартных формах.

Задача 2: распознавание актов выполненных работ

Что нужно: стороны, период работ, перечень услуг с суммами, итог, подписи и печати.

Подход: двухэтапный

  1. Vision-LLM выделяет структуру акта (шапка, табличная часть, итог, подписной блок)
  2. Целевая extraction по каждой части (детальный JSON)

Точность: 88-94% на стандартных актах. Падает на нетиповых форматах «от руки».

Задача 3: парсинг договоров с приложениями

Что нужно: не data extraction, а структурный markdown для последующего RAG-поиска.

Подход:

  1. Vision-LLM на каждой странице → markdown с правильной hierarcy (главы, разделы, пункты)
  2. Сохранение перекрёстных ссылок («в соответствии с пунктом X.Y»)
  3. Распознавание таблиц как markdown-tables (для последующего поиска по содержимому)

Точность markdown structure: 90-95% на типовых договорах.

Задача 4: парсинг технических документов и схем

Что нужно: описание схем и чертежей, чтобы их можно было искать через текст.

Подход:

  1. Каждая страница в vision-LLM
  2. Промпт: «опиши изображение подробно, включая текстовые элементы, графические объекты, их взаимное расположение»
  3. Объединение текста из формальной части и описаний схем

Применение: инженерная документация, медицинские атласы, геологические карты.

Типовые проблемы и решения

Проблема 1: галлюцинации на низкокачественных сканах

Vision-LLM может выдумать текст где его не видно. Например, в плохом скане где буква нечитаема — модель «догадается» что там должно быть.

Решение: добавить в промпт инструкцию «если буква/цифра нечитаема, поставь [НЕЧИТАЕМО]». Качественные модели (Qwen2.5-VL 72B, InternVL2.5 26B) хорошо следуют такой инструкции.

Проблема 2: смешанная ориентация страниц

Сканы иногда повёрнуты на 90/180/270 градусов. Vision-LLM с этим справляется, но чтение rotated текста медленнее на 30-50%.

Решение: пред-обработка через OpenCV — определяем orientation и выпрямляем перед передачей в LLM.

Проблема 3: рукописный текст

Vision-LLM 2026 года распознают рукописный текст с точностью 60-75% — лучше Tesseract’а, но не идеально.

Решение: для критичных задач (медицинские записи, юридические надписи) — двойная проверка человеком. Для информативных — fine-tune модели на ваших образцах рукописного.

Проблема 4: печати и штампы

Стандартный OCR теряет текст под печатью. Vision-LLM лучше — выдаёт его с пометкой «под печатью».

Решение: включить в промпт «если текст частично перекрыт печатью или штампом, восстанови по контексту, отметив низкую уверенность».

Проблема 5: таблицы со сложным форматированием

Слитые ячейки, multi-row headers, вложенные таблицы — это сложно даже для людей.

Решение: специализированный TableTransformer перед vision-LLM. Сначала detect структуру таблицы, потом передать её vision-LLM с подсказкой «это таблица 5x12 с двойным заголовком».

Сколько стоит Vision LLM для парсинга PDF?

Vision-LLM на DGX Spark:

  • Веса модели: 0 ₽ (open-source)
  • Inference: ~5-10 кВт·ч/день при типовой нагрузке = 600-1200 ₽/мес электричества
  • Поддержка: входит в общий AGmind SLA

Альтернатива через облако (OpenAI GPT-4-Vision, Anthropic Claude Vision):

  • 0.01-0.03 $ за изображение страницы
  • 1000 PDF в день = 30-90 $ в день = 900-2700 $ в месяц = 80-240 тыс ₽/мес

При нагрузке 10K+ страниц/месяц self-hosted окупается за 1-2 месяца. Плюс — данные не уходят в облако.

Compliance и vision-LLM

Если документы содержат ПДн (договоры, счета с физлицами, акты с паспортными данными) — обработка через облачные vision-LLM нарушает 152-ФЗ. Self-hosted решение закрывает этот вопрос.

Для медицинских документов (рецепты, заключения, медкарты) — обязательно on-prem, потому что это специальные категории ПДн (см. статью про AI в клинике и про 152-ФЗ).

Что часто упускают

Размер изображений. Vision-LLM лучше работают с разрешением 1024-2048 px по большой стороне. Слишком мелкие изображения → потеря деталей. Слишком крупные → медленнее и не лучше.

Page-by-page vs document-level prompting. Если документ многостраничный со связями между страницами — лучше передавать страницы парами или тройками с overlap’ом, а не по одной.

Caching. Результаты vision-LLM по уникальным страницам стоит кэшировать. Один и тот же скан после небольших правок (новая дата, та же шапка) — 80% содержимого совпадает с прошлым.

Quality scoring. К каждому extracted field стоит прикладывать confidence score от vision-LLM. На low-confidence полях — human-in-the-loop ревью.

Итог

Vision-LLM в 2026 году — практичный инструмент для парсинга сложных PDF. Точность 90-95% на типовых корпоративных документах, в self-hosted режиме без compliance проблем.

Для большинства русскоязычных задач дефолт — Qwen2.5-VL 7B или 72B в зависимости от железа. Альтернатива — Gemma 4 vision-instruct 27B.

В AGmind vision-LLM встроен в pipeline по умолчанию — все сканы и документы со сложным форматированием обрабатываются через него автоматически. Никакой отдельной интеграции.

Хотите проверить на ваших документах — демо за 2 рабочих дня с реальными счетами/актами/договорами вашей компании.

Связанные тексты: архитектура корпоративного AI, технический разбор стека, embedding модели для русского.