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

Внимание

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

Встроенная векторизация — это расширение конвейеров индексирования и запросов в службе "Поиск ИИ Azure". Он добавляет следующие возможности:

  • Блоки данных во время индексирования
  • Преобразование текста в вектор во время индексирования
  • Преобразование текста в вектор во время запросов

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

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

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

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

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

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

  • Набор навыков, настроенный для:

    • Навык разделения текста, используемый для фрагментации данных.
    • Навык azureOpenAIEmbedding, присоединенный к текстовому внедрению ada-002 в Azure OpenAI.
    • Кроме того, можно использовать пользовательский навык вместо AzureOpenAIEmbdding, который указывает на другую модель внедрения в Azure или на другой стороне.
  • Векторный индекс для получения фрагментированного и векторизованного содержимого.

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

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

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

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

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

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

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

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

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

Встроенная векторизация доступна во всех регионах и уровнях. Однако если вы используете Azure OpenAI и навык AzureOpenAIEmbedding, проверка региональной доступности этой службы.

Если вы используете пользовательский навык и механизм размещения 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), индексатор может перемещать эти обновления через весь конвейер, начиная от извлечения, до получения документов, путем дополнительного обогащения ИИ, фрагментирования данных, векторизации и индексирования.

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

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

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