Подготовка

Службы ИИ Azure
Поиск по искусственному интеллекту Azure
Служба Azure OpenAI
Машинное обучение Azure

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

Этот материал входит в цикл статей. Ознакомьтесь с введением.

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

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

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

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

  • Различные классификации документов — например, у вас есть спецификации продукта, ежеквартальные отчеты, договоры страхования автомобилей, контракты медицинского страхования и т. д.
  • Различные типы документов. Например, у вас есть PDF-файлы, файлы Markdown, HTML-файлы, DOCX-файлы и т. д.
  • Ограничения безопасности. Например, являются ли документы общедоступными или нет, или требуется ли проверка подлинности и авторизация для доступа к ним
  • Структура документов— например, длина документов, разрывов разделов и наличие контекстно релевантных изображений или табличных данных

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

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

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

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

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

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

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

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

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

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

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

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

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

Ниже приведены некоторые классифицированные вопросы, которые можно использовать для принятия некоторых из этих определений.

Вопросы о распространенных элементах, которые можно игнорировать

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

  • Содержит ли документ оглавление?
  • Есть ли верхние и нижние колонтитулы?
  • Существуют ли авторские права или отказ от ответственности?
  • Существуют ли сноски или конечные сноски?
  • Есть ли подложки?
  • Есть ли заметки или комментарии?

Вопросы, помогающие информировать о предварительной обработке и стратегии блокирования

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

  • Есть ли данные с несколькими столбцами или абзацы с несколькими столбцами? Вы не хотите анализировать содержимое с несколькими столбцами, как будто это был один столбец.
  • Как структурирован документ? Например, HTML-файлы иногда используют таблицы для их макета, которые должны отличаться от внедренных табличных данных.
  • Сколько абзацев есть? Сколько времени в абзацах? Равна ли длина абзацев?
  • Какие языки, вариант языка или диалекты находятся в документах?
  • Содержит ли документ символы Юникода?
  • Как форматируются числа? Используются ли они запятыми или десятичными знаками? Они согласованы?
  • Что в документе однородно и что не является универсальным?
  • Существует ли структура заголовка, в которой можно извлечь семантический смысл?
  • Есть ли маркеры или значимые отступы?

Вопросы о изображениях

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

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

Вопросы о таблицах, диаграммах и другом расширенном содержимом

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

  • Есть ли в документе диаграммы с числами?
  • Содержит ли документ таблицы?
    • Являются ли таблицы сложными (вложенными таблицами) или некомплексными?
    • Есть ли подписи для таблиц?
    • Какова длина таблиц? Длинные таблицы могут требовать повторяющихся заголовков в блоках.
  • Существуют ли другие типы внедренных носителей, таких как видео или аудио?
  • Существуют ли математические уравнения или научные нотации в документе?

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

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

Рекомендации

Рассмотрите эти области при оценке потенциальных репрезентативных тестовых документов:

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

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

Руководство по тестированию документа

  • Предпочитайте реальные документы искусственным. Реальные документы должны пройти процесс очистки для удаления личных сведений (PII).
  • Чтобы убедиться, что вы обрабатываете все виды сценариев, включая прогнозируемые будущие сценарии, рассмотрите возможность выборочного расширения документов с искусственными данными.
    • Если вы должны использовать искусственные данные, сделайте это максимально близко к реальным данным.
  • Убедитесь, что документы могут решать вопросы, которые собираются.
  • Для каждого варианта документа должно быть не менее двух документов.
  • Вы можете использовать большие языковые модели или другие средства для оценки качества документа.

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

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

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

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

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

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

Это часто сложно для экспертов по темам (SMEs) для конкретного домена, чтобы объединить полный список вопросов для варианта использования. Одним из решений этой проблемы является создание искусственных вопросов из собранных репрезентативных тестовых документов. Ниже приведен реальный подход к созданию искусственных вопросов из репрезентативных документов:

  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, directly quoting the text from provided context. Provide the array output in strict JSON format as shown in output format. Ensure that the generated JSON is 100 percent structurally correct, with proper nesting, comma placement, and quotation marks. There should not be any comma after last element in the array.
    
    Output format:
    [
      {
        "question": "Question 1",
        "answer": "Answer 1"
      },
      {
        "question": "Question 2",
        "answer": "Answer 2"
      }
    ]
    
    CONTEXT:
    
  3. Проверьте выходные данные . Убедитесь, что вопросы относятся к варианту использования и что ответы отвечают на этот вопрос. Эта проверка должна выполняться SME.

Незапланированные запросы

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

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

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

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

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

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

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