Сверхспособность LLM в понимании документа, сконвертированного в текст с ошибками — или почему наш RAG работает. llm.. llm. Natural Language Processing.. llm. Natural Language Processing. PDF.. llm. Natural Language Processing. PDF. искусственный интеллект.. llm. Natural Language Processing. PDF. искусственный интеллект. парсинг.. llm. Natural Language Processing. PDF. искусственный интеллект. парсинг. языковые модели.

Недавно я столкнулся с интересным поведением языковой модели, которое меня по-настоящему удивило, и хочу поделиться этим наблюдением с сообществом.

Такую иллюстрацию к статье предложил ChatGPT. Ладно
Такую иллюстрацию к статье предложил ChatGPT. Ладно

Мы разрабатывали RAG-систему для ответов на вопросы по корпоративным документам. Как часто бывает, большинство таких документов хранятся в форматах, которые языковые модели напрямую не понимают — например, PDF или DOCX. С этой проблемой сталкивается практически любая команда, работающая над RAG для бизнеса, так как бизнес привык работать именно с такими файлами.

Первым делом такие документы необходимо сконвертировать в удобный для LLM текстовый формат — например, в Markdown или обычный текст. Одна из главных сложностей при конвертации PDF-файлов возникает, когда они сверстаны в несколько столбцов. Корректно “распрямить” такой текст в последовательный поток — нетривиальная задача. Сегодня с этим хорошо справляются мультимодальные модели, принимающие на вход скриншот страницы, но в тот раз я воспользовался старым добрым конвертером Aspose, который отлично зарекомендовал себя при работе с DOCX (PDF не пробовал).

В результате эксперимента я хотел понять, насколько хорошо LLM отвечает на вопросы по страницам документа, сверстанных в виде столбцов.

Исходный документ: годовой отчет компании Mercia.

Документ был сконвертирован с помощью Aspose. Далее я вырезал из него фрагмент для уменьшения числа токенов.

И задал вопрос по содержанию третьего столбца на одной из страниц (выделен красным) просто в ChatGPT (4o):

Сверхспособность LLM в понимании документа, сконвертированного в текст с ошибками — или почему наш RAG работает - 2
in this document:

Faradion was sold in January 2022 to
...
...
“Mercia has generated over £60million of  pre-tax profits during the last  two years.”

find answer to question:
what Oddbox achived to date?

ссылка на чат

ChatGPT успешно ответил на вопрос:

Oddbox has achieved the following to date:

Rescued 13,790 tonnes of fruit and vegetables
that would otherwise have gone to waste.

Saved 1,519 million litres of water, equivalent to the
amount that 25,682 people drink in a lifetime.

Prevented 15,365 tonnes of carbon emissions, which is
enough energy to power 3,513 houses for a year.

Я решил, что конвертер справился с задачей корректно — раз модель смогла найти и понять нужную информацию. Но мне стало интересно, и я решил посмотреть, как именно выглядит этот фрагмент текста после конвертации.

Здесь меня ждал сюрприз: оказалось, что Aspose очень плохо работает с многостолбцовыми PDF. Конвертер просто склеивает текст из всех столбцов подряд — в результате получается каша из текста трёх столбцов, которую человеку прочитать почти невозможно. Но языковая модель, что удивительно, отлично справилась с этим “зашифрованным” текстом и правильно ответила на вопрос!

Вот как выглядит фрагмент текстового файла (без переноса длинных строк):

Сверхспособность LLM в понимании документа, сконвертированного в текст с ошибками — или почему наш RAG работает - 3

и соответствующие строки в документе:

Сверхспособность LLM в понимании документа, сконвертированного в текст с ошибками — или почему наш RAG работает - 4

Ближе присмотревшись к тексту, я заметил, что в некоторых местах столбцы всё же разделяются парой пробелов (выделено розовым), но в целом структура сильно искажена. Это всё, что получает LLM — и, несмотря на это, модель каким-то образом “расшифровывает” и находит нужную информацию. Интересно что ChatGPT даже не упоминает то ему пришлось “восстанавливать” документ.

Не знаю, как это ещё назвать, кроме как сверхспособностью. Я ни разу не встречал упоминаний о подобных особенностях, поэтому был действительно удивлён.

Практический вывод здесь такой: даже если документ сконвертирован некачественно, модель всё равно способна его понимать. Причём ошибки конвертации могут быть разными — например, я также замечал, что модель правильно интерпретирует таблицы (в формате Markdown), даже если в результате конвертации значения в отдельных строках оказываются не в тех столбцах. Но таблицы — это уже отдельная история, и о них расскажу в другой раз.

И наш RAG работает.

Обо мне

Больше двух лет пишу проекты про интеграцию LLM в приложения: агентский RAG, мультиагентский DeepResearch, голосовое управление приложениями и т.д. Оказываю консультации по интеграции LLM.
Недавно начал вести телеграм-канал о сильных и слабых сторонах LLM: LLM => AGI?

Автор: ovsale

Источник

Rambler's Top100