Vision LLM для парсинга PDF: счета, акты, договоры со сложным форматированием
Как извлекать структурированные данные из сложных PDF (с печатями, таблицами, картинками): что выбрать из vision-LLM 2026 года, как настроить pipeline, типовые ошибки.
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 OCR | Vision-LLM |
|---|---|---|
| Чистый текстовый PDF | 99% | 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: распознавание актов выполненных работ
Что нужно: стороны, период работ, перечень услуг с суммами, итог, подписи и печати.
Подход: двухэтапный
- Vision-LLM выделяет структуру акта (шапка, табличная часть, итог, подписной блок)
- Целевая extraction по каждой части (детальный JSON)
Точность: 88-94% на стандартных актах. Падает на нетиповых форматах «от руки».
Задача 3: парсинг договоров с приложениями
Что нужно: не data extraction, а структурный markdown для последующего RAG-поиска.
Подход:
- Vision-LLM на каждой странице → markdown с правильной hierarcy (главы, разделы, пункты)
- Сохранение перекрёстных ссылок («в соответствии с пунктом X.Y»)
- Распознавание таблиц как markdown-tables (для последующего поиска по содержимому)
Точность markdown structure: 90-95% на типовых договорах.
Задача 4: парсинг технических документов и схем
Что нужно: описание схем и чертежей, чтобы их можно было искать через текст.
Подход:
- Каждая страница в vision-LLM
- Промпт: «опиши изображение подробно, включая текстовые элементы, графические объекты, их взаимное расположение»
- Объединение текста из формальной части и описаний схем
Применение: инженерная документация, медицинские атласы, геологические карты.
Типовые проблемы и решения
Проблема 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 модели для русского.