Интегрированные блоки данных и внедрение в поиск ИИ Azure

Внимание

Эта функция предоставляется в общедоступной предварительной версии, и к ней применяются дополнительные Условия использования. REST API 2023-10-01-Preview поддерживает эту функцию.

Встроенная векторизация добавляет фрагментирование данных и внедрение текста в вектор в навыки индексирования на основе индексатора. Он также добавляет преобразования текста в векторы в запросы.

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

Для индексирования требуется встроенная векторизация:

Для запросов:

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

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

схема компонентов

На следующей схеме показаны компоненты интегрированной векторизации.

Схема компонентов в интегрированном рабочем процессе векторизации.

Ниже приведен список проверка компонентов, ответственных за интегрированную векторизацию:

  • Поддерживаемый источник данных для индексирования на основе индексатора.
  • Индекс, указывающий поля векторов и определение векторизатора, назначенное полям векторов.
  • Набор навыков, предоставляющий навык разделения текста для фрагментирования данных, и навык векторизации (навык azureOpenAiEmbedding или пользовательский навык, указывающий на внешнюю модель внедрения).
  • При необходимости проекции индексов (также определенных в наборе навыков) для отправки фрагментированных данных в дополнительный индекс
  • Модель внедрения, развернутая в Azure OpenAI или доступная через конечную точку HTTP.
  • Индексатор для комплексного управления процессом. Индексатор также задает расписание, сопоставления полей и свойства для обнаружения изменений.

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

Доступность и цены

Встроенная доступность векторизации основана на модели внедрения. Если вы используете Azure OpenAI, проверка региональной доступности.

Если вы используете пользовательский навык и механизм размещения Azure (например, приложение-функцию Azure, веб-приложение Azure и Azure Kubernetes), проверка продукт по регионам для доступности компонентов.

Фрагментирование данных (навык разделения текста) бесплатно и доступно во всех службах ИИ Azure во всех регионах.

Примечание.

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

Какие сценарии могут поддерживать встроенную векторизацию?

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

  • Создайте векторное хранилище, где все поля являются векторами, а идентификатор документа (обязательный для индекса поиска) является единственным строковым полем. Запросите векторное хранилище для получения идентификаторов документов, а затем отправьте поля векторов документа в другую модель.

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

Когда следует использовать встроенную векторизацию

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

Использование встроенной векторизации

Для векторизации только для запросов:

  1. Добавьте векторизатор в индекс. Она должна быть той же моделью внедрения, используемой для создания векторов в индексе.
  2. Назначьте векторизатору профиль вектора, а затем назначьте профиль вектора полю вектора.
  3. Сформулируйте векторный запрос , указывающий текстовую строку для векторизации.

Более распространенный сценарий — блокирование и векторизация данных во время индексирования:

  1. Создайте подключение источника данных к поддерживаемму источнику данных для индексации на основе индексатора.
  2. Создайте набор навыков, который вызывает навык разделения текста для фрагментирования и AzureOpenAIEmbeddingModel или пользовательского навыка для векторизации блоков.
  3. Создайте индекс , указывающий векторизатор времени запроса и назначьте его векторным полям.
  4. Создайте индексатор , чтобы управлять всем, от извлечения данных до выполнения набора навыков с помощью индексирования.

При необходимости создайте вторичные индексы для расширенных сценариев, в которых фрагментированные содержимое находится в одном индексе и не блокируются в другом индексе. Блокированные индексы (или вторичные индексы) полезны для приложений RAG.

Совет

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

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

Ограничения

Убедитесь, что вы знаете квоты и ограничения Azure OpenAI для внедрения моделей. Поиск по искусственному интеллекту Azure имеет политики повторных попыток, но если квота исчерпана, повторите попытку.

Ограничения маркера Azure OpenAI в минуту относятся к модели для каждой подписки. Имейте в виду, если вы используете модель внедрения для рабочих нагрузок запросов и индексирования. По возможности следуйте рекомендациям. У вас есть модель внедрения для каждой рабочей нагрузки и попробуйте развернуть их в разных подписках.

В службе "Поиск ИИ Azure" помните, что существуют ограничения служб по уровням и рабочим нагрузкам.

Наконец, следующие функции в настоящее время не поддерживаются:

Преимущества интегрированной векторизации

Ниже приведены некоторые основные преимущества интегрированной векторизации:

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

  • Автоматизация сквозного индексирования. Когда данные изменяются в источнике (например, в служба хранилища Azure, SQL Azure или Cosmos DB), индексатор может перемещать эти обновления через весь конвейер, начиная от извлечения, до получения документов, путем дополнительного обогащения ИИ, фрагментирования данных, векторизации и индексирования.

  • Проецирование фрагментированного содержимого на вторичные индексы. Вторичные индексы создаются так же, как и любой индекс поиска (схема с полями и другими конструкциями), но они заполняются в тандеме первичным индексом индексатором. Содержимое из каждого исходного документа передается в поля в первичных и вторичных индексах во время одного и того же выполнения индексирования.

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

Блокированные индексы

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

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

Схема рабочего процесса блокирования и векторизации.

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