Поделиться через


Этап подготовки RAG

Первый этап в разработке и экспериментировании технологий Retrieval-Augmented Generation (RAG) — это подготовка. На этом этапе вы определяете бизнес-домен для решения. После определения домена вы собираете документы, выполняете анализ документов и собираете примеры вопросов, относящихся к домену. Эти действия выполняются параллельно, так как они связаны друг с другом. Например, анализ документов помогает определить, какие тестовые документы и тестовые запросы необходимо собрать. Вопросы, которые вы задаете, должны отвечать содержимым в документах, и документы должны отвечать на соответствующие вопросы.

Эта статья является частью серии. Прочитайте введение.

Определение домена решения

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

Анализ документов

Цель анализа документов — собрать достаточно сведений о коллекции документов, чтобы понять:

  • Различные классификации документов. Например, у вас могут быть спецификации продуктов, ежеквартальные отчеты, страховые контракты автомобиля или контракты медицинского страхования.

  • Различные типы документов. Например, у вас могут быть PDF-файлы, файлы Markdown, HTML-файлы или ФАЙЛЫ DOCX.

  • Ограничения безопасности. Например, для доступа к документам может потребоваться проверка подлинности и авторизация в зависимости от того, доступны ли они общедоступны.

  • Структура документов. Например, длина документов может отличаться. Или у них могут быть разделы тем, соответствующие контексту изображения или табличные данные.

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

Классификация документов

Необходимо понять различные классификации документов, чтобы определить количество необходимых тестовых документов. Эта часть анализа должна рассказать вам о высокоуровневых классификациях, таких как страхование или финансы. Он также должен рассказать вам о подклассах, таких как документы медицинского страхования или страховые документы автомобиля. Вы также хотите знать, имеют ли подклассификации различные структуры или содержимое.

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

Типы документов

Понимание различных форматов файлов в коллекции помогает определить количество и разбивку тестовых документов. Например, если у вас есть типы документов PDF и Open XML для квартальных отчетов, вам потребуется тестовые документы для каждого из этих типов документов. Общие сведения о типах документов также помогают понять технические требования для загрузки и фрагментирования документов. Эти технические требования включают определенные библиотеки, которые могут обрабатывать эти форматы файлов.

Ограничения безопасности

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

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

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

Структура документа

Необходимо понять структуру документа, включая его макет и типы содержимого в документе. Общие сведения о структуре и содержимом документов помогут вам определить следующее:

  • Требуется ли предварительная обработка документа для удаления шума, извлечения мультимедиа, изменения формата содержимого или аннотирования элементов, которые следует игнорировать?

  • Следует ли игнорировать или исключить содержимое в документе

  • Какие части документа вы хотите зафиксировать

  • Как вы хотите фрагментировать документ

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

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

Определение элементов, которые можно игнорировать

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

  • Содержит ли документ оглавление?

  • Есть ли верхние или нижние колонтитулы?

  • Существуют ли авторские права или отказ от ответственности?

  • Существуют ли сноски или концевые сноски?

  • Есть ли водяные знаки?

  • Есть ли заметки или комментарии?

Определение стратегии предварительной обработки и разбиения на части

Следующие вопросы о структуре документа помогут вам решить, нужно ли предварительно обработать документ, чтобы упростить обработку документа. Они также помогают выбрать стратегию фрагментирования.

  • Существуют ли многоколоночные данные или многоколоночные абзацы? Вы не хотите анализировать содержимое с несколькими столбцами так же, как содержимое с одним столбцом.

  • Как структурирован документ? Например, HTML-файлы иногда используют таблицы, которые должны отличаться от внедренных табличных данных.

  • Сколько абзацев есть? Насколько длинные абзацы? Похожи ли абзацы по длине?

  • Какие языки, языковые варианты или диалекты находятся в документах?

  • Содержит ли документ символы Юникода?

  • Как форматируются числа? Включают ли они запятые или десятичные знаки? Они согласованы?

  • Какие части документа являются универсальными, и какие части не являются однородными?

  • Существует ли структура заголовка, в которой можно извлечь семантический смысл?

  • Есть ли маркеры или значимые отступы?

Определение требований к обработке изображений

Общие сведения о изображениях в документе помогут выбрать стратегию обработки изображений. Вам нужно знать, какие изображения у вас есть, имеют ли они достаточное разрешение для обработки, и содержит ли изображение все необходимые сведения. Следующие вопросы помогут вам понять требования к обработке изображений.

  • Содержит ли документ изображения?

  • Какое разрешение изображений?

  • Есть ли текст, внедренный в изображения?

  • Есть ли абстрактные изображения, которые не добавляют значение? Например, значки могут не добавлять семантические значения. Добавление описания значков может оказаться вредным для решения, так как значок обычно не относится к содержимому документа.

  • Что такое связь между изображениями и окружающим текстом? Определите, имеют ли изображения автономное содержимое или есть ли контекст вокруг изображения, который следует использовать при передаче в языковую модель. Подписи — это пример окружающего текста, который может иметь ценный контекст, который не включен в изображение.

  • Есть ли подробные текстовые представления, например, описания доступности изображений?

Определение требований к таблице, диаграмме и другим требованиям к обработке мультимедиа

Понимание того, какие сведения инкапсулируются в таблицах, диаграммах и других носителях, помогут вам решить, как его обрабатывать. Следующие вопросы помогут вам понять требования к таблице, диаграмме и другим требованиям к обработке мультимедиа.

  • Есть ли в документе диаграммы с числами?

  • Содержит ли документ таблицы?

    • Сложны ли таблицы, такие как вложенные таблицы или некомплексные?

    • Есть ли подписи для таблиц?

    • Какой длины столы? Длинные таблицы могут требовать повторяющихся заголовков в блоках.

  • Существуют ли другие типы встроенных медиа, например, видео или аудио?

  • Существуют ли математические уравнения или научные нотации в документе?

Сбор репрезентативных тестовых документов

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

Соображения

Учитывайте следующие области при оценке потенциальных репрезентативных тестовых документов:

  • Актуальность: документы должны соответствовать бизнес-требованиям разговорного приложения. Например, если вы создаете бот чата, который помогает клиентам выполнять банковские операции, документы должны соответствовать этому требованию. Например, документы должны показать, как открыть или закрыть банковский счет. Документы должны иметь возможность решать тестовые вопросы, собранные на параллельном шаге. Если в документах нет сведений, относящихся к вопросам, решение не может создать допустимый ответ.

  • представление: Документы должны представлять различные типы документов, которые использует ваше решение. Например, документ страхования автомобилей содержит сведения, отличные от документа о здравоохранении или страховании жизни. Предположим, что в случае использования требуется решение для поддержки всех трех этих типов страхования, но у вас есть только документы страхования автомобилей. Ваше решение может плохо работать для операций медицинского страхования и страхования жизни. У вас должно быть не менее двух документов для каждого варианта.

  • качество физического документа: документы должны находиться в доступных для использования формах. Сканированные изображения, например, могут не позволить извлекать доступные сведения.

  • качество содержимого документа: документы должны иметь высококачественное содержимое. Они не должны содержать опечаток или грамматических ошибок. Языковые модели не работают хорошо, если вы предоставляете им низкое качество содержимого.

Чтобы успешно собрать тестовые документы, необходимо быть качественно уверенным в том, что они полностью и точно представляют ваш конкретный домен.

Руководство по тестовой документации

  • Выберите реальные документы вместо искусственных. Реальные документы должны пройти процесс очистки для удаления персональных данных.

  • Рассмотрите возможность выборочного расширения документов с помощью синтетических данных. Этот процесс помогает гарантировать, что документы охватывают все виды сценариев, включая прогнозируемые будущие сценарии. Если необходимо использовать искусственные данные, сделайте все возможное, чтобы сделать их похожими на реальные данные как можно больше.

  • Убедитесь, что документы могут ответить на имеющиеся вопросы.

  • Иметь не менее двух документов для каждой версии документа.

  • Используйте языковые модели или другие средства для оценки качества документов.

Сбор тестовых запросов

На этом шаге вы собираете тестовые запросы, которые используете для оценки своих блоков, решения поиска и инженерии запросов. Выполните этот шаг, пока вы собираете репрезентативные документы. Вы должны собрать запросы и определить, как репрезентативные документы решают эти запросы одновременно. Имея как примеры запросов, так и части примеров документов, которые обрабатывают эти запросы, вы можете оценить каждый этап решения RAG при эксперименте с различными стратегиями и подходами.

Сбор выходных данных тестового запроса

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

  • Запрос : Вопрос, представляющий потенциальный запрос законного пользователя.

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

  • ответ: допустимый ответ на запрос. Ответ может быть содержимым, которое находится непосредственно из документов, или оно может быть перефразировано из одного или нескольких элементов контекста.

Создание искусственных запросов

Часто бывает сложно для экспертов в предметной области для конкретного домена составить исчерпывающий список вопросов для варианта использования. Одним из решений этой проблемы является создание искусственных вопросов из собранных репрезентативных тестовых документов. Следующие шаги описывают реальный подход к созданию искусственных вопросов из репрезентативных документов:

  1. Разбейте документы на части. Разбейте документы на блоки. Не используйте стратегию разбиения на части для общего решения. Используйте этот одноразовый шаг для создания синтетических запросов. Вы можете выполнить блокирование вручную, если количество документов является разумным.

  2. Создайте запросы для каждого блока. Для каждого блока создайте запросы вручную или с помощью языковой модели. При использовании языковой модели обычно создается два запроса для каждого блока. Вы также можете использовать языковую модель для создания ответа. В следующем примере показана подсказка, которая создает вопросы и ответы для отрывка.

    Please read the following CONTEXT and generate two question and answer JSON objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern-matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT. Provide concise answers to each question, and directly quote the text from the provided context. Provide the array output in strict JSON format as shown in the output format. Ensure that the generated JSON is completely structurally correct, including proper nesting, comma placement, and quotation marks. There shouldn't be a comma after the last element in the array.
    
    Output format:
    [
      {
        "question": "Question 1",
        "answer": "Answer 1"
      },
      {
        "question": "Question 2",
        "answer": "Answer 2"
      }
    ]
    
    CONTEXT:
    
  3. Проверьте выходные данные. Убедитесь, что вопросы относятся к варианту использования и что ответы отвечают на этот вопрос. SME должен выполнять эту проверку.

Необработанные запросы

Важно собрать запросы, на которые документы не обращаются, и запросы, которые они делают. При тестировании решения, особенно при тестировании языковой модели, необходимо определить, как решение должно реагировать на запросы, которые он не имеет достаточного контекста для ответа. Чтобы ответить на запросы, которые решение не может адресовать, решение может:

  • Указать, что он не знает ответ.

  • Укажите, что он не знает ответ и укажите ссылку, где пользователь может найти дополнительные сведения.

Сбор тестовых запросов для встроенных медиа

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

Руководство по сбору тестовых запросов

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

  • Клиент или эксперт в предметной области (SME) для данного варианта использования должен выполнять роль контролера качества, чтобы определить, являются ли собранные документы, связанные с ними тестовые запросы и ответы на запросы из документов исчерпывающими, репрезентативными и правильными.

  • Периодически просматривайте текст вопросов и ответов, чтобы убедиться, что они продолжают точно отражать исходные документы.

Следующий шаг