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


Встроенное внедрение векторов в поиске ИИ Azure

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

  • Кодировка векторов во время индексирования на основе индексатора
  • Кодировка векторов во время запросов

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

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

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

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

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

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

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

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

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

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

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

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

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

Встроенная векторизация доступна во всех регионах и уровнях. Однако если вы используете навыки и векторизаторы для обогащения ИИ, могут применяться региональные требования. Дополнительные сведения см. в разделе "Присоединение ресурса Foundry к набору навыков".

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

Безопасные подключения к векторизаторам и моделям

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

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

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

  • openai_account для внедрения моделей, размещенных в ресурсе Azure OpenAI.

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

Преимущества

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

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

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

  • Логика пакетной обработки и повторных попыток встроена (не настраиваемая). Служба "Поиск ИИ Azure" имеет внутренние политики повторных попыток при ограничении ошибок, которые возникают из-за исчерпания квоты токенов на конечной точке Azure OpenAI для модели встраивания. Мы рекомендуем настроить индексатор по расписанию (например, каждые 5 минут), чтобы индексатор мог обрабатывать любые ограниченные вызовы с конечной точки Азур OpenAI, несмотря на политики повторных попыток.

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

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

Ограничения

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

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

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

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