- BrainTools - https://www.braintools.ru -
Недавно я столкнулся с интересным поведением [1] языковой модели, которое меня по-настоящему удивило, и хочу поделиться этим наблюдением с сообществом.
Мы разрабатывали RAG-систему для ответов на вопросы по корпоративным документам. Как часто бывает, большинство таких документов хранятся в форматах, которые языковые модели напрямую не понимают — например, PDF или DOCX. С этой проблемой сталкивается практически любая команда, работающая над RAG для бизнеса, так как бизнес привык работать именно с такими файлами.
Первым делом такие документы необходимо сконвертировать в удобный для LLM текстовый формат — например, в Markdown или обычный текст. Одна из главных сложностей при конвертации PDF-файлов возникает, когда они сверстаны в несколько столбцов. Корректно “распрямить” такой текст в последовательный поток — нетривиальная задача. Сегодня с этим хорошо справляются мультимодальные модели, принимающие на вход скриншот страницы, но в тот раз я воспользовался старым добрым конвертером Aspose [2], который отлично зарекомендовал себя при работе с DOCX (PDF не пробовал).
В результате эксперимента я хотел понять, насколько хорошо LLM отвечает на вопросы по страницам документа, сверстанных в виде столбцов.
Исходный документ: годовой отчет компании Mercia [3].
Документ был сконвертирован с помощью Aspose. Далее я вырезал из него фрагмент [4] для уменьшения числа токенов.
И задал вопрос по содержанию третьего столбца на одной из страниц (выделен красным) просто в ChatGPT (4o):

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?
ссылка на чат [5]
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 — и, несмотря на это, модель каким-то образом “расшифровывает” и находит нужную информацию. Интересно что ChatGPT даже не упоминает то ему пришлось “восстанавливать” документ.
Не знаю, как это ещё назвать, кроме как сверхспособностью. Я ни разу не встречал упоминаний о подобных особенностях, поэтому был действительно удивлён.
Практический вывод здесь такой: даже если документ сконвертирован некачественно, модель всё равно способна его понимать. Причём ошибки [6] конвертации могут быть разными — например, я также замечал, что модель правильно интерпретирует таблицы (в формате Markdown), даже если в результате конвертации значения в отдельных строках оказываются не в тех столбцах. Но таблицы — это уже отдельная история, и о них расскажу в другой раз.
И наш RAG работает.
Больше двух лет пишу проекты про интеграцию LLM в приложения: агентский RAG, мультиагентский DeepResearch, голосовое управление приложениями и т.д. Оказываю консультации по интеграции LLM.
Недавно начал вести телеграм-канал о сильных и слабых сторонах LLM: LLM => AGI? [7]
Автор: ovsale
Источник [8]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/15884
URLs in this post:
[1] поведением: http://www.braintools.ru/article/9372
[2] Aspose: https://products.aspose.app/words/conversion
[3] годовой отчет компании Mercia: https://drive.google.com/file/d/1grIpJRMRz8X-cgE2hzfxbWHxhc_qLKG9/view?usp=sharing
[4] фрагмент: https://drive.google.com/file/d/1OXBdOm6cR3am_XD4FvnpFd2c-fIVJ7bA/view?usp=sharing
[5] ссылка на чат: https://chatgpt.com/share/68414519-74a8-8008-a4a6-9ada88234975
[6] ошибки: http://www.braintools.ru/article/4192
[7] LLM => AGI?: https://t.me/llm2agi
[8] Источник: https://habr.com/ru/articles/915856/?utm_source=habrahabr&utm_medium=rss&utm_campaign=915856
Нажмите здесь для печати.