При создании приложений на основе RAG (Retrieval-Augmented Generation) часто возникают трудности с обработкой таблиц и изображений. В этой статье рассматривается, как справляться с такими форматами с использованием моделей видения-языка, в частности модели ColPali.
Сначала разберемся, что такое RAG и почему таблицы и изображения создают столько проблем.
RAG и разбор документов
Представьте, что перед вами вопрос вроде:
Какова политика компании по обработке возвратов?
Базовая большая языковая модель (LLM) вряд ли сможет на него ответить, поскольку такая информация специфична для компании и обычно отсутствует в обучающих данных модели.
Поэтому стандартный метод — связать LLM с базой знаний, например, папкой в SharePoint с различными внутренними документами. Это позволяет модели извлекать и использовать релевантный контекст для ответов на вопросы, требующие специализированных знаний. Такой подход называется Retrieval-Augmented Generation (RAG) и часто подразумевает работу с документами в формате PDF.
Однако извлечение нужной информации из обширной и разнообразной базы знаний требует тщательной предварительной обработки документов. Типичные этапы включают:
- Разбор: Разделение документов на текст и изображения, часто с помощью инструментов оптического распознавания символов (OCR), таких как Tesseract. Таблицы обычно преобразуются в текстовый формат.
- Сохранение структуры: Поддержание структуры документа, включая заголовки и абзацы, путем преобразования извлеченного текста в формат, сохраняющий контекст, например Markdown.
- Фрагментация: Разделение или объединение текстовых фрагментов, чтобы контексты помещались в окно модели без потери связности.
- Обогащение: Добавление дополнительной метаданных, например извлечение ключевых слов или создание сводок для фрагментов, чтобы облегчить поиск. Опционально, описание изображений с помощью мультимодальной LLM для их индексации.
- Встраивание: Создание встраиваний для текстов (и возможно изображений с мультимодальными встраиваниями) и хранение их в векторной базе данных.
Как легко понять, этот процесс крайне сложен, требует множества экспериментов и оказывается хрупким. Более того, даже при максимальных усилиях такой разбор может не сработать.
Почему разбор часто оказывается недостаточным
Таблицы и изображения часто встречаются в PDF-файлах. Ниже приведено изображение, показывающее, как они обычно разбираются для использования в LLM:

- Текст разбивается на фрагменты.
- Таблицы преобразуются в текст, при этом содержимое копируется без сохранения границ таблицы.
- Изображения подаются в мультимодальную LLM для генерации текстового описания или оригинальное изображение встраивается с помощью мультимодальной модели без описания.
Тем не менее, в традиционном подходе есть две фундаментальные проблемы.
#1. Сложные таблицы нельзя просто трактовать как текст
Возьмем для примера эту таблицу: как люди, мы понимаем, что изменение температуры >2˚C до 2.5˚C влияет на Здоровье следующим образом: Повышение на 2.3˚C к 2080 году подвергнет риску малярии до 270 миллионов человек.

Однако при преобразовании этой таблицы в текст получится нечто вроде: Изменение температуры В пределах цели ЕС <(2˚C) >2˚C до 2.5˚C >3C Здоровье По глобальным оценкам Повышение на 2.3oC к 2080 году подвергнет Повышение на 3.3oC к 2080 году до 270 миллионов риску малярии до 330....
В итоге возникает спутанный блок текста без ясного смысла. Даже человеку трудно извлечь из него полезную информацию. Когда такой текст подается в большую языковую модель (LLM), она тоже не способна дать точную интерпретацию.
#2. Разрыв связи между текстом и изображениями
Описание изображения часто содержится в тексте и неразделимо с ним. Возьмем следующий пример: мы знаем, что график представляет «Моделируемые затраты на изменение климата с разными чистыми ставками временных предпочтений и схемами убывающей ставки дисконтирования (без учета равенства)».

Но при разборе описание изображения (извлеченный текст) отделяется от самого изображения (графика). Поэтому в RAG изображение не будет извлекаться при вопросе вроде «каковы затраты на изменение климата?».

Таким образом, даже если пытаться создавать решения, сохраняющие максимум информации при разборе, они часто не справляются с реальными сценариями.
Учитывая, насколько важен разбор в приложениях RAG, означает ли это, что агенты RAG обречены на провал при работе со сложными документами? Нет, с ColPali доступен более точный и эффективный метод обработки.
Что такое ColPali?
Основная идея ColPali проста: люди читают PDF как страницы, а не как «фрагменты», поэтому логично относиться к PDF именно так. Вместо запутанного процесса разбора страницы PDF преобразуются в изображения, которые используются как контекст для LLM при формировании ответа.

Идея встраивания изображений с помощью мультимодальных моделей не нова — это распространенная техника. Чем же выделяется ColPali? Ключ в вдохновении от ColBERT, модели, которая встраивает входы в мультивекторы для более точного и эффективного поиска.
Прежде чем углубляться в возможности ColPali, кратко объясним, что такое ColBERT.
ColBERT: гранулярное, контекстно-осведомленное встраивание для текста
ColBERT — это техника встраивания текста и переранжирования, использующая мультивекторы для повышения точности поиска по тексту.
Рассмотрим случай: у нас вопрос Пол веган?, и нужно определить, какой фрагмент текста содержит релевантную информацию.

Идеально, если бы была выбрана Фрагмент A как наиболее релевантный. Но при использовании одновекторной модели встраивания (text-ada-002) возвращается Фрагмент B.
Причина в том, как работают одновекторные би-кодировщики вроде text-ada-002: они сжимают целое предложение в один вектор, не кодируя отдельные слова с учетом контекста. В отличие от них ColBERT встраивает каждое слово с учетом контекста, создавая более богатое мультивекторное представление, захватывающее нюансы.

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

Помимо повышенной точности извлечения, преимущества ColPali включают:
- Объяснимость: ColPali позволяет сравнивать запрос на уровне слов с отдельными патчами изображения документа. Это помогает четко понять и обосновать, почему определенный документ признан релевантным.
- Снижение усилий на разработку и повышение надежности: Устраняя необходимость в сложных конвейерах предварительной обработки — таких как фрагментация, OCR и разбор макета — ColPali сокращает время разработки и минимизирует точки отказа.
- Улучшение производительности: Процессы встраивания и извлечения ускоряются, что повышает отзывчивость системы в целом.
Теперь, зная, что такое ColPali, перейдем к коду и проверим, решает ли он проблемы, описанные ранее!
Иллюстрация
Код доступен в репозитории на GitHub. Кратко о нем:
- Инстанс: Для запуска требуется машина с GPU A100.
- Модель встраивания: ColPali имеет несколько вариантов, используется
vidore/colqwen2-v0.1для демонстрации. Можно обратиться к лидерборду здесь и переключиться на другие модели. - Агент:
– LLM: Используется OpenRouter для доступа к LLM, агент на базеGPT-4o. Можно заменить на любую мультимодальную LLM, принимающую изображения.
– Оркестрация:LangGraphприменяется для разработки агента. - Библиотека для преобразования PDF в изображения:
pdf2image, обертка надpoppler. Убедитесь, чтоpopplerустановлен. - Пример данных: «Влияние и затраты на изменение климата» Пола Уоткисса и соавторов, доступно публично здесь.
Результаты
Код прост, поэтому сразу перейдем к выводам: насколько хорошо ColPali справляется с проблемами из раздела «Почему разбор часто оказывается недостаточным»?
#1. Сложные таблицы нельзя просто трактовать как текст
Вопрос: Каково воздействие на здоровье при повышении температуры на 3 градуса выше доиндустриального уровня?
Ответ: Если температура повысится на 3 градуса Цельсия выше доиндустриального уровня, воздействие на здоровье будет значительным. В частности, предполагается, что к 2080-м годам до 330 миллионов человек окажутся под риском малярии. Это существенное увеличение по сравнению с 1920-ми, когда число подверженных было от 50 до 100 миллионов.
Это правильно извлечено из таблицы в PDF!

#2. Разрыв связи между текстом и изображениями
Вопрос: Какова моделируемая стоимость изменения климата по модели Greenbook с убывающей ставкой?
Ответ: Согласно модели Greenbook с убывающей ставкой, моделируемая стоимость изменения климата составляет 7.2 Euro/tCO2.
Правильный ответ — 7.4 Euro/tCO2, но результат близок к верному!

Заключение
Традиционные конвейеры RAG испытывают трудности с нетекстовым контентом. ColPali рассматривает каждую страницу PDF как изображение, что позволяет обрабатывать визуальные макеты, таблицы, графики и встроенную графику — форматы, которые стандартные текстовые парсеры часто искажают или игнорируют.
ColPali вводит интеллект видения-языка в RAG, делая его гораздо более способным к работе с многомодальной реальностью корпоративных документов.