中文翻译暂不可用,显示俄语原文。
Чем мультимодальный RAG отличается от «OCR + текстовый RAG»? Почему второго недостаточно?
Краткий тезис
Мультимодальный RAG (Multimodal RAG) обрабатывает и индексирует изображения, таблицы, диаграммы и текст как единое целое, сохраняя их пространственные и логические связи. Подход «OCR + текстовый RAG» (OCR-based RAG) извлекает только текст из изображений, теряя визуальную структуру, семантику графиков и взаимное расположение элементов. Второго недостаточно для сценариев, где ответ зависит от понимания диаграмм, схем, формул или визуальных паттернов.
1. Термин: Мультимодальный RAG (Multimodal RAG)
Мультимодальный RAG — это расширение классического RAG, которое умеет работать с данными разных модальностей: текст, изображения, таблицы, аудио, видео. В контексте документов это означает, что система индексирует не только текст, но и визуальные элементы (схемы, графики, скриншоты, отсканированные страницы) в их исходном виде.
Ключевое отличие: мультимодальный RAG использует мультимодальные эмбеддинги (multimodal embeddings) — векторы, которые представляют и текст, и изображения в едином семантическом пространстве. Это позволяет искать изображения по текстовому запросу и наоборот.
Термин: Модальность (Modality) — тип данных: текст, изображение, аудио, видео. Мультимодальная система работает с несколькими типами одновременно.
2. Термин: OCR + текстовый RAG (OCR-based RAG)
OCR (Optical Character Recognition) — технология распознавания текста на изображениях. В подходе «OCR + текстовый RAG» все документы сначала прогоняются через OCR, извлекается только текстовая информация, а затем этот текст индексируется в стандартную RAG-систему.
Изображения, диаграммы, графики при этом отбрасываются или сохраняются как неиндексируемые вложения. Система «видит» только плоский текст, извлечённый из документа.
Термин: Плоский текст (Flat text) — текст без структуры, форматирования, таблиц, изображений. Потеряна информация о том, какой текст был заголовком, какой — подписью к рисунку, какой — частью таблицы.
3. Почему OCR + текстовый RAG недостаточен: потеря структуры и семантики
Основная проблема OCR-based RAG — потеря логических и пространственных связей. Рассмотрим на примерах.
3.1 Диаграммы и блок-схемы
Представьте блок-схему алгоритма:
- Прямоугольник «Входные данные» → стрелка → ромб «Условие A?» → стрелка «Да» → прямоугольник «Действие 1» → стрелка → прямоугольник «Вывод результата».
OCR извлечёт текст из каждого блока: «Входные данные», «Условие A?», «Действие 1», «Вывод результата». Но он потеряет:
- Направление стрелок (какой блок за каким следует)
- Тип блока (прямоугольник — действие, ромб — условие)
- Вложенность (если есть подпроцессы)
- Визуальные связи (какой текст к какому узлу относится)
Пользователь спрашивает: «Что происходит, если условие A ложно?» OCR-based RAG найдёт текст «Условие A?», но не сможет определить, куда ведёт стрелка «Нет». Мультимодальный RAG, индексируя изображение целиком, сможет найти визуальный путь «Нет» и вернуть соответствующий блок.
3.2 Графики и диаграммы
График зависимости продаж от времени: OCR извлечёт подписи осей («Месяц», «Продажи, млн руб.») и, возможно, значения на осях. Но он потеряет:
- Форму кривой (рост, падение, сезонность)
- Точки экстремумов (максимум, минимум)
- Визуальные тренды (линейный, экспоненциальный)
- Цветовую кодировку (разные линии для разных продуктов)
Вопрос: «В каком месяце продажи достигли пика?» OCR-based RAG может не найти ответ, если пик не подписан явно. Мультимодальный RAG с визуальным пониманием (vision-language model) может «увидеть» максимум на графике и ответить.
3.3 Таблицы со сложной структурой
Таблица с объединёнными ячейками, вложенными заголовками, многоуровневыми колонками. OCR часто «разрывает» такие таблицы, теряя иерархию. Например, ячейка «Продукт A» может быть объединена на 3 строки, а OCR создаст 3 отдельные строки с повторяющимся текстом.
3.4 Формулы и математические выражения
OCR плохо распознаёт формулы (особенно сложные, с интегралами, суммами, греческими буквами). Даже если распознаёт, теряется структура: ∫_a^b f(x)dx превращается в «интеграл от a до b f от x dx», что не позволяет выполнять математические операции или точный поиск.
3.5 Семантический разрыв
Термин: Семантический разрыв (Semantic gap) — разница между тем, что система «понимает» (текст), и тем, что нужно пользователю (смысл визуального элемента). OCR-based RAG создаёт семантический разрыв, потому что текст из OCR не передаёт визуальный смысл.
4. Сравнение подходов: таблица
| Характеристика | OCR + текстовый RAG | Мультимодальный RAG |
|---|---|---|
| Что индексируется | Только текст из OCR | Текст + изображения + таблицы (как изображения) |
| Тип эмбеддингов | Текстовые (text embeddings) | Мультимодальные (multimodal embeddings) |
| Понимание диаграмм | Нет (только подписи) | Да (визуальная структура) |
| Понимание графиков | Нет (только оси и подписи) | Да (форма кривой, тренды) |
| Сложные таблицы | Плохо (теряется структура) | Хорошо (сохраняется layout) |
| Формулы | Плохо (OCR ошибки) | Хорошо (LaTeX или изображение) |
| Поиск по визуальному сходству | Нет | Да (например, «найди график, похожий на этот») |
| Стоимость | Низкая (только OCR + текстовый поиск) | Высокая (мультимодальные модели дороже) |
| Latency | Низкая | Выше (из-за обработки изображений) |
5. Когда OCR + текстовый RAG всё ещё достаточен?
- Документы только с текстом: книги, статьи, юридические документы без иллюстраций.
- Изображения только с текстом: отсканированные страницы без диаграмм, где важен только текст.
- Низкие требования к точности: если допустимы ошибки в понимании структуры.
- Ограниченный бюджет: мультимодальные модели (GPT-4V, Gemini, Claude 3) дороже в инференсе.
6. Архитектура мультимодального RAG
6.1 Этап индексации
- Извлечение элементов: документ разбивается на текстовые блоки и изображения (с помощью детектора страниц, например, LayoutLM или PDF parser).
- Генерация мультимодальных эмбеддингов: каждый элемент (текст, изображение, таблица) преобразуется в вектор с помощью мультимодальной модели (например, CLIP, ALIGN, ImageBind).
- Индексация в векторной БД: все эмбеддинги хранятся в едином индексе, с метаданными (тип элемента, позиция в документе, источник).
6.2 Этап retrieval
- Запрос пользователя (текстовый) преобразуется в эмбеддинг той же моделью.
- Поиск по всем модальностям: векторная БД возвращает top-k элементов, наиболее близких по смыслу — это могут быть как тексты, так и изображения.
- Ранжирование: можно применить re-ranker, учитывающий модальность (например, повысить вес изображений для визуальных запросов).
6.3 Этап генерации
- Формирование контекста: в промпт LLM добавляются и текст, и изображения (как ссылки или base64-encoded).
- Генерация ответа: мультимодальная LLM (например, GPT-4V, LLaVA, CogVLM) обрабатывает и текст, и изображения, формируя ответ.
Пример кода (упрощённый):
# Псевдокод для мультимодального RAG
from multimodal_embedder import MultimodalEmbedder
from vector_db import VectorDB
from multimodal_llm import MultimodalLLM
# Индексация
embedder = MultimodalEmbedder(model="clip-vit-base")
db = VectorDB()
for doc in documents:
elements = extract_elements(doc) # список (текст, изображение, таблица)
for elem in elements:
emb = embedder.encode(elem)
db.add(emb, metadata={"type": elem.type, "source": doc.name})
# Retrieval
query = "Покажи график продаж за 2023 год"
query_emb = embedder.encode(query)
results = db.search(query_emb, k=5)
# Генерация
context = []
for r in results:
if r.type == "image":
context.append(f"[Image: {r.data}]")
else:
context.append(r.data)
prompt = f"Контекст: {''.join(context)}\nВопрос: {query}\nОтвет:"
answer = MultimodalLLM.generate(prompt)
7. Модели для мультимодального RAG
| Модель | Тип | Особенности |
|---|---|---|
| CLIP (OpenAI) | Эмбеддинги | Текст + изображение в едином пространстве. Хорош для retrieval. |
| ALIGN (Google) | Эмбеддинги | Аналог CLIP, обучен на шумных парах. |
| ImageBind (Meta) | Эмбеддинги | 6 модальностей (текст, изображение, аудио, видео, глубина, тепло). |
| GPT-4V (OpenAI) | Генерация | Мультимодальная LLM. Дорогой, но точный. |
| LLaVA (открытая) | Генерация | Открытая альтернатива GPT-4V. Можно fine-tune. |
| CogVLM | Генерация | Сильное понимание изображений. |
| LayoutLMv3 | Понимание документов | Специализирован для документов с layout. |
8. Проблемы мультимодального RAG
- Стоимость: мультимодальные эмбеддинги и LLM дороже текстовых.
- Latency: обработка изображений (особенно больших) медленнее.
- Размер контекста: изображения занимают много токенов (GPT-4V: ~200-500 токенов на изображение).
- Качество OCR для гибридных подходов: иногда всё равно нужен OCR для извлечения текста из изображений, чтобы улучшить поиск.
- Отсутствие стандартных метрик: сложно оценить качество retrieval, когда результаты — изображения.
9. Пет-проект для закрепления
Задача: Создать мультимодальный RAG для технической документации с диаграммами и схемами.
Инструменты:
- Python, LangChain или LlamaIndex
- Мультимодальный embedder: CLIP (через
sentence-transformersилиopen_clip) - Векторная БД: ChromaDB или FAISS
- Мультимодальная LLM: LLaVA (локально через Ollama) или GPT-4V API
- Датасет: PDF-документы с диаграммами (например, документация Kubernetes или AWS)
Шаги:
- Парсинг PDF: используйте
PyMuPDF(fitz) для извлечения текста и изображений. Сохраняйте позицию каждого элемента на странице. - Генерация эмбеддингов: для каждого текстового блока и изображения получите эмбеддинг через CLIP.
- Индексация: сохраните в ChromaDB с метаданными (тип, страница, документ).
- Retrieval: реализуйте поиск по текстовому запросу. Выведите top-3 результата (текст + изображения).
- Генерация: передайте найденные элементы в LLaVA (локально) или GPT-4V API. Попросите ответить на вопрос, ссылаясь на диаграмму.
- Оценка: сравните с OCR-based RAG (извлеките только текст, проиндексируйте, ответьте). Замерьте точность ответов на 10 вопросах про диаграммы.
Ожидаемый результат: Система, которая на вопрос «Как работает механизм autoscaling в Kubernetes?» возвращает не только текстовое описание, но и соответствующую диаграмму из документации, а LLM описывает её.
10. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 105 | Обработка таблиц (частный случай мультимодальности) |
| 107 | Модели для понимания layout документов |
| 108 | Парсинг PDF, извлечение элементов |
| 110 | Базовые подходы к изображениям в RAG |
| 112 | Выбор embedder для мультимодальности |
| 115 | Метрики для мультимодального retrieval |
11. Навигация
- Предыдущий: 110
- Следующий: 112
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 110
- Следующий: 112
- Индекс: 00. Индекс разборов