Раскрытие ценности нетекстового контента в вашей базе знаний
Делиться

Если вы когда-либо пытались создать приложение RAG (Retrieval-Augmented Generation), вы, вероятно, знакомы с трудностями, связанными с таблицами и изображениями. В этой статье рассматривается, как работать с этими форматами с помощью моделей языка Vision, в частности, модели ColPali.
Но сначала давайте разберемся, что же такое RAG и почему таблицы и изображения так усложняют его понимание?
RAG и парсинг
Представьте, что вы столкнулись с таким вопросом:
Какова политика нашей компании в отношении возврата средств?
Базовая модель LLM (большая языковая модель) вряд ли сможет ответить на этот вопрос, поскольку такая информация специфична для компании и обычно не включается в данные для обучения модели.
Именно поэтому распространённый подход заключается в подключении LLM к базе знаний, например, к папке SharePoint, содержащей различные внутренние документы. Это позволяет модели извлекать и включать релевантный контекст, давая ей возможность отвечать на вопросы, требующие специальных знаний. Этот метод известен как генерация дополненного поиска (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, давайте углубимся в код и посмотрим, сможет ли ColPali решить проблемы, о которых мы упоминали ранее!
Иллюстрация
Мой код можно найти на моём Github. Несколько слов о нём:
- Пример : для запуска кода требуется машина с графическим процессором 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 евро/тCO2.
Правильный ответ должен быть 7,4 евро/тCO2, но мы видим, что он близок к истине!

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























