Мультимодальный RAG
Текстовый RAG игнорирует таблицы, графики, диаграммы и схемы — а они содержат до 60% критической информации. Мультимодальный RAG извлекает и понимает изображения, таблицы, PDF с визуальным контентом. ColPali, SigLIP 2, Cohere Embed 4, LLaVA — в вашем контуре.
- Изображения, диаграммы, схемы, сканы
- Таблицы с объединёнными ячейками, графики, формулы
- PDF с визуальным контентом, инженерные чертежи
- ColPali, SigLIP 2, Cohere Embed 4, LLaVA — on-premise
Почему текстовый RAG не справляется
До 60% критической информации в enterprise-документах — не текст
Таблицы
Фармацевтический исследователь спрашивает «какие кардиоваскулярные сигналы в фазе III?» — ответ в Таблице 4 документа 8432 с adverse events, стратифицированными по возрасту и дозировке. Текстовый RAG возвращает ничего или контекст без данных. Мультимодальный RAG: извлекает структурированные данные + natural language description таблицы.
Графики и диаграммы
10-K отчёт отвечает на вопрос «что вызвало снижение маржи в Q3?» waterfall chart на странице 34, а не текстом. OCR линейлизует 2D-макет в 1D-текст, столбцы таблицы сливаются в бессмыслицу. Мультимодальный RAG: рендерит страницу как изображение, VLM (Qwen2.5-VL, PaliGemma) извлекает данные из графика.
Инженерные схемы
Wiring diagram отвечает на вопрос «какой клапан подключён к линии сброса давления?» — ни один параграф в руководстве не содержит этой информации. Информация в пикселях, а не в тексте. Мультимодальный RAG: ColPali/ColQwen2 рендерит страницу, patch-level embeddings, MaxSim matching — без OCR, без layout detection.
Сканированные документы
Документы, отсканированные и перефотографированные многократно, теряют качество. OCR мусорит. Визуальный поиск по изображению страницы работает даже при degraded quality. Мультимодальный RAG: page-as-image подход — рендерим страницу как изображение, встраиваем через ColPali/SigLIP 2.
Excel и сложные форматы
Excel с 50+ взаимосвязанными листами, формулами, cross-references, embedded charts. Простой парсинг ломается. Мультимодальный RAG: screenshot rendered sheet → vision model для понимания layout + structured data extraction из pandas/openpyxl. Dual representation: структурированные данные + визуальное описание.
Гибридный подход
Мультимодальный RAG не заменяет текстовый — дополняет. Гибридная архитектура: BM25 для точных совпадений, dense vectors для семантики, image embeddings для визуального контента, cross-encoder reranker для финальной сортировки. RRF fusion объединяет все три пути.
Как мы строим мультимодальный RAG
-
01
Аудит документов и оценка контента
Анализируем типы документов: какой процент — чистый текст, таблицы, графики, схемы, сканы. Определяем, какие визуальные элементы критичны для бизнес-вопросов. Выбираем архитектуру: caption-and-index (быстрый старт), unified embeddings (оптимальный баланс), page-as-image (максимальный recall), или hybrid (лучшее покрытие).
-
02
Парсинг и извлечение
Настройка парсинга: Unstructured.io (open-core, typed elements), Docling (IBM, научные документы), MinerU (таблицы и фигуры), Microsoft Table Transformer (borderless tables). Для сложных layout — screenshot + vision model. Quality scoring: low-quality документы помечаются, результаты с низким confidence — на ручную проверку.
-
03
Встраивание и индексация
Выбор embedding-моделей: Cohere Embed 4 (API, 128K context, text + images), voyage-multimodal-3.5 (video frames), Nomic Embed Multimodal (self-hosted, single + multi-vector). ColPali/ColQwen2 для page-as-image с late interaction. Индексация в Qdrant с параллельными vector fields: text_embedding + image_embedding.
-
04
Retrieval и fusion
Три параллельных пути: BM25 (keyword), dense k-NN (text_embedding), dense k-NN (image_embedding). RRF (Reciprocal Rank Fusion) для объединения. Reranking: Cohere Rerank 3.5 (text) + VLM-judge (multimodal). Query routing: автоматический выбор стратегии по типу запроса.
-
05
Генерация и верификация
Генерация ответа через vision LLM (Qwen2.5-VL, PaliGemma 2, Gemma 3 vision) с page images. Prompt pattern: «Ответь, используя только информацию со страниц. Для числовых ответов цитируй конкретную таблицу.» Grounded citations: bounding boxes, не только page numbers. Chart QA eval set для проверки точности.
Архитектуры мультимодального RAG
Четыре подхода и когда каждый применять
| Архитектура | Как работает | Когда применять |
|---|---|---|
| Caption-and-index | Извлекаем изображения, caption через VLM, эмбеддируем caption как текст | Быстрый старт, малые корпуса, простые документы |
| Unified embeddings | Текст и изображения в одном векторном пространстве (Cohere Embed 4, voyage-multimodal-3.5) | Оптимальный баланс cost/recall, смешанные корпуса |
| Page-as-image | Рендерим страницы, встраиваем через ColPali/ColQwen2, multi-vector retrieval | Figure-heavy корпуса, high-stakes queries, юридические/медицинские документы |
| Hybrid late-fusion | Параллельные text + image индексы, BM25 + dense, RRF fusion, VLM reranker | Лучшее покрытие, enterprise-корпуса с разным контентом |
Риски мультимодального RAG
Caption drift: VLM-генерированные captions галлюцинируют и становятся misinformation в индексе. Modality leakage: image embeddings извлекают визуально похожие, но семантически нерелевантные страницы. Chart hallucination: VLMs читают оси графиков неправильно, путают цвета легенды, выдумывают числа. Mitigations: display original images alongside AI descriptions, bounding-box citations, chart QA eval set (50-200 вопросов с ground-truth числами), ask model для reasoning chain перед числовым ответом.
Технологический стек
Модели и инструменты для мультимодального RAG
ColPali / ColQwen2
Page-as-image с late interaction: рендерим PDF страницу, встраиваем через VLM, patch-level embeddings. MaxSim matching между query tokens и page patches. ColPali (PaliGemma backbone), ColQwen2 (Qwen2-VL backbone), ColQwen2.5 (Qwen2.5-VL backbone). ColSmol — лёгкий вариант для cost-sensitive деплоя.
SigLIP 2
Google DeepMind (февраль 2025): captioning-based pretraining, multilingual training, native aspect-ratio / multi-resolution. Лучше CLIP на document-style visuals: charts, tables, dense text in images. Для OCR-adjacent задач, где страница содержит и визуальную структуру, и embedded text.
Cohere Embed 4
Enterprise document retrieval: interleaved text + images, raw PDF pages без parsing pipeline, 128K context window (~200 страниц на embedding call). Matryoshka dimensions: 256, 512, 1024, 1536. API: Cohere, Amazon Bedrock, Azure AI Foundry.
voyage-multimodal-3.5
Single-vector multimodal: screenshots, slides, figures без парсера. Video frame support (январь 2026). Matryoshka dimensions. Strong gains over CLIP-large на table и screenshot retrieval. January 2026 — актуальная версия.
Nomic Embed Multimodal
Self-hosted: 3B и 7B в single-vector и multi-vector (ColNomic) флейворs. Qwen2.5-VL backbone. ColNomic 7B: 62.7 nDCG@5 на ViDoRe V2. Permissive licensing, Hugging Face. Для VPC-деплоя без API-зависимости.
Парсеры
Unstructured.io (open-core, typed elements), Docling (IBM, научные документы), MinerU (таблицы и фигуры), Marker (PDF-to-markdown, Surya OCR), Microsoft Table Transformer (borderless tables). Для Excel: pandas + openpyxl с dependency graphs.
Техническая глубина мультимодального RAG
Почему текстовый RAG не работает с визуальным контентом
Текстовый RAG молча отбрасывает значительную часть сигнала в реальных enterprise-документах. Графики, таблицы, диаграммы и layout cues часто содержат сам ответ — но никогда не попадают в индекс.
Проблема 1: OCR линейлизует 2D в 1D. Столбцы таблицы сливаются в бессмыслицу, сноски отрываются от референсов, figure captions извлекаются без самой фигуры.
Проблема 2: Table parsing ломается на merged cells. Таблицы с объединёнными ячейками производят garbled markdown, который модель пытается «додумать» — и галлюцинирует структуру.
Проблема 3: Diagram-dependent questions возвращают «недостаточно информации». Даже если страница индексирована — информация была в пикселях, а не в тексте.
По нашим данным, 40-60% критической информации в enterprise-документах существует в нетекстовых форматах. Текстовый RAG имеет upper bound, который никакая tuning chunking strategy не поднимет.
Четыре архитектуры мультимодального RAG
Caption-and-index — самый простой подход. Извлекаем изображения из документов, генерируем caption через VLM (Qwen2.5-VL, PaliGemma), эмбеддируем caption как текст. Плюсы: просто, переиспользует существующий text RAG. Минусы: lossy, caption hallucination становится index pollution.
Unified embeddings — текст и изображения в одном векторном пространстве. Cohere Embed 4: interleaved text + images, 128K context window, raw PDF pages без parsing. voyage-multimodal-3.5: screenshots, slides, figures, video frames. Nomic Embed Multimodal: self-hosted, single + multi-vector. Плюсы: single index, cross-modal queries. Минусы: API dependency или self-hosted GPU cost.
Page-as-image с late interaction — рендерим PDF страницу при high DPI, встраиваем через ColPali/ColQwen2, multi-vector retrieval. ColPali: PaliGemma backbone, patch-level embeddings, MaxSim matching. ColQwen2: Qwen2-VL backbone, лучше на multilingual. ColQwen2.5: Qwen2.5-VL backbone, лидер на ViDoRe V2. Плюсы: highest recall на figure-heavy docs, no parsing pipeline. Минусы: 100-1000x больше векторов на страницу, custom scoring.
Hybrid late-fusion — parallel text + image индексы, BM25 + dense, RRF fusion, VLM reranker. Плюсы: most flexible, best recall на mixed corpora. Минусы: most complex to operate.
Большинство production команд выбирают architecture #2 или #4. #1 — для quick win на малых корпусах. #3 — когда ответы действительно живут в пикселях и recall — binding constraint.
Retrieval и fusion
Три параллельных пути:
- BM25 over text_chunk — для keyword и exact-string queries
- Dense k-NN over text_embedding — для semantic text matching
- Dense k-NN over image_embedding — для visual queries
RRF (Reciprocal Rank Fusion) объединяет три ranked list. Per-query weighting помогает, когда запрос явно визуальный («какой график показывает...») или явно текстовый («определи X»). Parameter-free RRF default — strong baseline.
Reranking: Cohere Rerank 3.5 — стандарт text-side (long context, strong на tables). Для true multimodal reranking — VLM-judge: prompt с query + candidate page image, relevance score 0-10 с justification.
Генерация с grounding
Генерация через vision LLM (Qwen2.5-VL, PaliGemma 2, Gemma 3 vision) с page images inline. Prompt pattern:
> «Вот релевантные страницы. Ответь на вопрос, используя только информацию с этих страниц. Для числовых ответов цитируй конкретную таблицу или график. Если ответа нет — скажи так.»
Grounded citations — bounding boxes, не только page numbers. Храним element bounding boxes при индексации, показываем через UI для verification.
Chart hallucination mitigation:
1. Ask model для reasoning chain («I see the bar labeled Q3 reaches approximately 4.2 on the y-axis...»)
2. Cross-check VLM-extracted numbers against structured data (extracted при парсинге)
3. Hedged answers — soft signal для human review
Chart QA eval set (50-200 вопросов с ground-truth числами) — единственный способ понять, насколько ваш корпус affected.
Cost и storage
Cost per query (на corpus из 10M pages):
- Caption-and-index: low single-digit cents
- Unified embeddings: small multiple
- ColPali + VLM generation: meaningfully higher (self-hosted GPU + multi-image generation)
Storage:
- Single-vector: 10M pages → tens of GB
- Multi-vector (ColPali): 10M pages → single-digit TB
- Matryoshka truncation (1024→256 dim): < 2% recall cost, 4x storage savings
Break-even: consumer search → cheaper architecture. Legal/medical/financial → recall lift от late interaction worth the premium.
Когда мультимодальный RAG не нужен
Если критическая информация существует в чистом тексте — текстовый RAG справится. Если документный набор мал, и ручной поиск практичен — мультимодальность избыточна. Если бюджет ограничен, и текстовый RAG решает 80% задач — начните с него.
Мультимодальный RAG оправдан, когда:
- Критическая информация — в таблицах, графиках, схемах
- Документов много, ручной поиск не масштабируется
- Пользователи тратят часы на поиск информации
- Организация может handle operational complexity и cost