Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Статьи

ColPali: видение-языковой интеллект для RAG

Статья объясняет проблемы традиционного разбора документов в RAG, особенно с таблицами и изображениями, и представляет модель ColPali как решение. ColPali преобразует страницы PDF в изображения и использует мультивекторные встраивания для точного извлечения. Примеры демонстрируют, как это улучшает обработку сложного контента.

30 октября 2025 г.
12 мин
7

При создании приложений на основе RAG (Retrieval-Augmented Generation) часто возникают трудности с обработкой таблиц и изображений. В этой статье рассматривается, как справляться с такими форматами с использованием моделей видения-языка, в частности модели ColPali.

Сначала разберемся, что такое RAG и почему таблицы и изображения создают столько проблем.

RAG и разбор документов

Представьте, что перед вами вопрос вроде:

Какова политика компании по обработке возвратов?

Базовая большая языковая модель (LLM) вряд ли сможет на него ответить, поскольку такая информация специфична для компании и обычно отсутствует в обучающих данных модели.

Поэтому стандартный метод — связать LLM с базой знаний, например, папкой в SharePoint с различными внутренними документами. Это позволяет модели извлекать и использовать релевантный контекст для ответов на вопросы, требующие специализированных знаний. Такой подход называется Retrieval-Augmented Generation (RAG) и часто подразумевает работу с документами в формате PDF.

Однако извлечение нужной информации из обширной и разнообразной базы знаний требует тщательной предварительной обработки документов. Типичные этапы включают:

  1. Разбор: Разделение документов на текст и изображения, часто с помощью инструментов оптического распознавания символов (OCR), таких как Tesseract. Таблицы обычно преобразуются в текстовый формат.
  2. Сохранение структуры: Поддержание структуры документа, включая заголовки и абзацы, путем преобразования извлеченного текста в формат, сохраняющий контекст, например Markdown.
  3. Фрагментация: Разделение или объединение текстовых фрагментов, чтобы контексты помещались в окно модели без потери связности.
  4. Обогащение: Добавление дополнительной метаданных, например извлечение ключевых слов или создание сводок для фрагментов, чтобы облегчить поиск. Опционально, описание изображений с помощью мультимодальной LLM для их индексации.
  5. Встраивание: Создание встраиваний для текстов (и возможно изображений с мультимодальными встраиваниями) и хранение их в векторной базе данных.

Как легко понять, этот процесс крайне сложен, требует множества экспериментов и оказывается хрупким. Более того, даже при максимальных усилиях такой разбор может не сработать.

Почему разбор часто оказывается недостаточным

Таблицы и изображения часто встречаются в PDF-файлах. Ниже приведено изображение, показывающее, как они обычно разбираются для использования в 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 изображение не будет извлекаться при вопросе вроде «каковы затраты на изменение климата?».

Пример разрыва связи текста и изображения в разборе PDF

Таким образом, даже если пытаться создавать решения, сохраняющие максимум информации при разборе, они часто не справляются с реальными сценариями.

Учитывая, насколько важен разбор в приложениях RAG, означает ли это, что агенты RAG обречены на провал при работе со сложными документами? Нет, с ColPali доступен более точный и эффективный метод обработки.

Что такое ColPali?

Основная идея ColPali проста: люди читают PDF как страницы, а не как «фрагменты», поэтому логично относиться к PDF именно так. Вместо запутанного процесса разбора страницы PDF преобразуются в изображения, которые используются как контекст для LLM при формировании ответа.

Преобразование страниц PDF в изображения для ColPali

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

Прежде чем углубляться в возможности ColPali, кратко объясним, что такое ColBERT.

ColBERT: гранулярное, контекстно-осведомленное встраивание для текста

ColBERT — это техника встраивания текста и переранжирования, использующая мультивекторы для повышения точности поиска по тексту.

Рассмотрим случай: у нас вопрос Пол веган?, и нужно определить, какой фрагмент текста содержит релевантную информацию.

Фрагменты текста о Поле с выделением релевантных частей
Выделено желтым: текст, содержащий информацию о Поле

Идеально, если бы была выбрана Фрагмент A как наиболее релевантный. Но при использовании одновекторной модели встраивания (text-ada-002) возвращается Фрагмент B.

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

Сравнение одновекторного и мультивекторного встраивания
Числа в векторах иллюстративны и не отражают реальные значения.

ColPali: аналог ColBERT для изображений документов

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

Разделение изображения на патчи в ColPali

Помимо повышенной точности извлечения, преимущества ColPali включают:

  1. Объяснимость: ColPali позволяет сравнивать запрос на уровне слов с отдельными патчами изображения документа. Это помогает четко понять и обосновать, почему определенный документ признан релевантным.
  2. Снижение усилий на разработку и повышение надежности: Устраняя необходимость в сложных конвейерах предварительной обработки — таких как фрагментация, OCR и разбор макета — ColPali сокращает время разработки и минимизирует точки отказа.
  3. Улучшение производительности: Процессы встраивания и извлечения ускоряются, что повышает отзывчивость системы в целом.

Теперь, зная, что такое 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!

Таблица воздействия на здоровье от повышения температуры на 3 градуса
Источник: страница 3 Влияние и затраты на изменение климата.

#2. Разрыв связи между текстом и изображениями

Вопрос: Какова моделируемая стоимость изменения климата по модели Greenbook с убывающей ставкой?

Ответ: Согласно модели Greenbook с убывающей ставкой, моделируемая стоимость изменения климата составляет 7.2 Euro/tCO2.

Правильный ответ — 7.4 Euro/tCO2, но результат близок к верному!

График моделируемых затрат по модели Greenbook
Источник: страница 46 Влияние и затраты на изменение климата.

Заключение

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

ColPali вводит интеллект видения-языка в RAG, делая его гораздо более способным к работе с многомодальной реальностью корпоративных документов.