Объёмы важной информации
Однако во многих случаях эта информация скрыта глубоко в содержимом документов, и поэтому её сложно использовать для последующих задач. В этой статье я расскажу, как последовательно извлекать метаданные из ваших документов, рассмотрю подходы к извлечению метаданных и проблемы, с которыми вы столкнётесь на этом пути.
Статья представляет собой обзор на высоком уровне по извлечению метаданных из документов, выделяя различные аспекты, которые необходимо учитывать при выполнении этой задачи.
Эта инфографика подчёркивает основное содержание статьи. Сначала я обсужу, почему нам нужно извлекать метаданные из документов и как это полезно для последующих задач. Затем я рассмотрю подходы к извлечению метаданных с помощью Regex, OCR + LLM и vision LLM. Наконец, я также обсужу различные проблемы, с которыми вы столкнётесь при извлечении метаданных, такие как использование регулярных выражений, рукописный текст и работа с длинными документами. Изображение предоставлено ChatGPT.
Зачем извлекать метаданные документов
Во-первых, важно уточнить, зачем нам нужно извлекать метаданные из документов. В конце концов, если информация уже присутствует в документах, разве мы не можем просто найти её с помощью RAG или других подобных подходов?
Во многих случаях RAG может найти конкретные данные, но предварительное извлечение метаданных упрощает многие последующие задачи. Используя метаданные, вы можете, например, фильтровать документы по таким точкам данных, как:
- Тип документа;
- Адреса;
- Даты.
Кроме того, если у вас есть система RAG, она во многих случаях выиграет от дополнительно предоставленных метаданных. Это связано с тем, что вы более чётко представляете дополнительную информацию (метаданные) для LLM. Например, предположим, вы задаёте вопрос, связанный с датами. В этом случае проще просто предоставить предварительно извлечённые даты документа модели, вместо того чтобы модель извлекала даты во время вывода. Это экономит как затраты, так и время задержки и, скорее всего, улучшит качество ваших ответов RAG.
Как извлечь метаданные
Я выделяю три основных подхода к извлечению метаданных, начиная с самого простого и заканчивая наиболее сложным:
- Regex;
- OCR + LLM;
- Vision LLM.
Этот образ подчёркивает три основных подхода к извлечению метаданных. Самый простой подход — использовать Regex, хотя он не работает во многих ситуациях. Более мощный подход — OCR + LLM, который хорошо работает в большинстве случаев, но не справляется в ситуациях, когда вы зависите от визуальной информации. Если визуальная информация важна, вы можете использовать vision LLM, самый мощный подход. Изображение предоставлено ChatGPT.
Regex
Regex — это самый простой и последовательный подход к извлечению метаданных. Regex хорошо работает, если вы знаете точный формат данных заранее. Например, если вы обрабатываете договоры аренды и знаете, что дата написана как dd.mm.yyyy, всегда сразу после слов «Date:», то Regex — это то, что вам нужно.
К сожалению, большинство процессов обработки документов сложнее, чем это. Вам придётся иметь дело с непоследовательными документами, с такими проблемами, как:
- Даты написаны в разных местах документа;
- В тексте отсутствуют некоторые символы из-за плохого OCR;
- Даты написаны в разных форматах (например, мм.дд.гггг, 22 октября, 22 декабря и т. д.).
Из-за этого нам обычно приходится переходить к более сложным подходам, таким как OCR + LLM, о которых я расскажу в следующем разделе.
OCR + LLM
Мощный подход к извлечению метаданных — использовать OCR + LLM. Этот процесс начинается с применения OCR к документу для извлечения текстового содержимого. Затем вы берёте текст, полученный с помощью OCR, и предлагаете LLM извлечь дату из документа. Обычно это работает невероятно хорошо, потому что LLM хорошо понимают контекст (какая дата актуальна, а какие даты не имеют значения) и могут понимать даты, написанные во всех видах различных форматов. LLM во многих случаях также смогут понимать как европейские (дд.мм.гггг), так и американские (мм.дд.гггг) стандарты дат.
Vision LLM
Использование vision LLM — это самый сложный подход, с наибольшей задержкой и стоимостью. В большинстве сценариев запуск vision LLM будет намного дороже, чем запуск чистых текстовых LLM.
При запуске vision LLM обычно приходится обеспечивать высокое разрешение изображений, чтобы vision LLM могла прочитать текст документов. Это требует большого количества визуальных токенов, что делает обработку дорогостоящей. Однако vision LLM с изображениями высокого разрешения обычно могут извлекать сложную информацию, которую не может извлечь OCR + LLM, например, информацию, представленную на изображении ниже.
Проблемы при извлечении метаданных
Как я указывал ранее, документы сложны и представлены в различных форматах. Поэтому при извлечении метаданных из документов приходится решать множество задач. Я выделю три основные проблемы:
- Когда использовать vision vs OCR + LLM;
- Работа с рукописным текстом;
- Работа с длинными документами.
Когда использовать vision LLMs vs OCR + LLM
Предпочтительно мы бы использовали vision LLMs для всего извлечения метаданных. Однако обычно это невозможно из-за стоимости запуска vision LLMs. Поэтому нам приходится решать, когда использовать vision LLMs, а когда — OCR + LLMs.
Один из способов — решить, требует ли метаданные, которые вы хотите извлечь, визуальной информации или нет. Если это дата, OCR + LLM будет работать довольно хорошо практически во всех сценариях. Однако, если вы знаете, что имеете дело с флажками, как в примере задачи, упомянутом выше, вам необходимо применить vision LLM.
Работа с рукописным текстом
Одна из проблем, связанных с подходом, упомянутым выше, заключается в том, что некоторые документы могут содержать рукописный текст, который традиционный OCR не особенно хорошо извлекает. Если ваш OCR плохой, LLM, извлекающий метаданные, также будет работать плохо. Таким образом, если вы знаете, что имеете дело с рукописным текстом, я рекомендую использовать vision LLM, поскольку они намного лучше справляются с рукописным вводом, основываясь на моём собственном опыте. Важно помнить, что многие документы будут содержать как изначально цифровой текст, так и рукописный.
Работа с длинными документами
Во многих случаях вам также придётся иметь дело с чрезвычайно длинными документами. Если это так, вы должны учитывать, насколько далеко в документе может присутствовать точка метаданных.
Причина, по которой это соображение, заключается в том, что вы хотите минимизировать затраты, и если вам нужно обработать чрезвычайно длинные документы, вам понадобится много входных токенов для ваших LLM, что обходится дорого. В большинстве случаев важная часть информации (например, дата) будет присутствовать в начале документа, и в этом случае вам не понадобится много входных токенов. В других ситуациях соответствующая часть информации может быть представлена на странице 94, и в этом случае вам понадобится много входных токенов.
Проблема, конечно, в том, что вы не знаете заранее, на какой странице представлены метаданные. Таким образом, вам, по сути, приходится принимать решение, например, просматривать только первые 100 страниц данного документа и предполагать, что метаданные доступны на первых 100 страницах почти для всех документов. Вы упустите данные в том редком случае, когда данные находятся на странице 101 и далее, но вы сэкономите на затратах.
Заключение
В этой статье я обсудил, как вы можете последовательно извлекать метаданные из ваших документов. Эти метаданные часто имеют решающее значение при выполнении последующих задач, таких как фильтрация ваших документов по точкам данных. Кроме того, я рассмотрел три основных подхода к извлечению метаданных с помощью Regex, OCR + LLM и vision LLM и обсудил некоторые проблемы, с которыми вы столкнётесь при извлечении метаданных.
Я думаю, что извлечение метаданных остаётся задачей, которая не требует больших усилий, но может обеспечить большую ценность в последующих задачах. Я считаю, что извлечение метаданных будет оставаться важным в ближайшие годы, хотя, я полагаю, мы увидим, как всё больше и больше извлечения метаданных будет осуществляться исключительно с использованием vision LLM, а не OCR + LLM.
