English translation is not available yet. Showing Russian content.

Чем мультимодальный 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 Этап индексации

  1. Извлечение элементов: документ разбивается на текстовые блоки и изображения (с помощью детектора страниц, например, LayoutLM или PDF parser).
  2. Генерация мультимодальных эмбеддингов: каждый элемент (текст, изображение, таблица) преобразуется в вектор с помощью мультимодальной модели (например, CLIP, ALIGN, ImageBind).
  3. Индексация в векторной БД: все эмбеддинги хранятся в едином индексе, с метаданными (тип элемента, позиция в документе, источник).

6.2 Этап retrieval

  1. Запрос пользователя (текстовый) преобразуется в эмбеддинг той же моделью.
  2. Поиск по всем модальностям: векторная БД возвращает top-k элементов, наиболее близких по смыслу — это могут быть как тексты, так и изображения.
  3. Ранжирование: можно применить re-ranker, учитывающий модальность (например, повысить вес изображений для визуальных запросов).

6.3 Этап генерации

  1. Формирование контекста: в промпт LLM добавляются и текст, и изображения (как ссылки или base64-encoded).
  2. Генерация ответа: мультимодальная 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

  1. Стоимость: мультимодальные эмбеддинги и LLM дороже текстовых.
  2. Latency: обработка изображений (особенно больших) медленнее.
  3. Размер контекста: изображения занимают много токенов (GPT-4V: ~200-500 токенов на изображение).
  4. Качество OCR для гибридных подходов: иногда всё равно нужен OCR для извлечения текста из изображений, чтобы улучшить поиск.
  5. Отсутствие стандартных метрик: сложно оценить качество retrieval, когда результаты — изображения.

9. Пет-проект для закрепления

Задача: Создать мультимодальный RAG для технической документации с диаграммами и схемами.

Инструменты:

  • Python, LangChain или LlamaIndex
  • Мультимодальный embedder: CLIP (через sentence-transformers или open_clip)
  • Векторная БД: ChromaDB или FAISS
  • Мультимодальная LLM: LLaVA (локально через Ollama) или GPT-4V API
  • Датасет: PDF-документы с диаграммами (например, документация Kubernetes или AWS)

Шаги:

  1. Парсинг PDF: используйте PyMuPDF (fitz) для извлечения текста и изображений. Сохраняйте позицию каждого элемента на странице.
  2. Генерация эмбеддингов: для каждого текстового блока и изображения получите эмбеддинг через CLIP.
  3. Индексация: сохраните в ChromaDB с метаданными (тип, страница, документ).
  4. Retrieval: реализуйте поиск по текстовому запросу. Выведите top-3 результата (текст + изображения).
  5. Генерация: передайте найденные элементы в LLaVA (локально) или GPT-4V API. Попросите ответить на вопрос, ссылаясь на диаграмму.
  6. Оценка: сравните с OCR-based RAG (извлеките только текст, проиндексируйте, ответьте). Замерьте точность ответов на 10 вопросах про диаграммы.

Ожидаемый результат: Система, которая на вопрос «Как работает механизм autoscaling в Kubernetes?» возвращает не только текстовое описание, но и соответствующую диаграмму из документации, а LLM описывает её.


10. Связь с другими вопросами

ВопросТема
105Обработка таблиц (частный случай мультимодальности)
107Модели для понимания layout документов
108Парсинг PDF, извлечение элементов
110Базовые подходы к изображениям в RAG
112Выбор embedder для мультимодальности
115Метрики для мультимодального retrieval

11. Навигация


Навигация