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


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

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

Атрибуты измерения имеют не менее 2 и не более 4096 измерений на поле вектора.

Примечание.

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

Использование моделей

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

    • Например, можно использовать text-embedding-ada-002 для создания внедрения текста и REST API извлечения изображений для внедрения изображений.

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

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

Создание ресурсов в одном регионе

Если вы хотите использовать ресурсы в одном регионе, начните с:

  1. Регион для модели внедрения сходства, в настоящее время в Европе и США.

  2. Регион для поиска ИИ Azure.

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

Создание внедрения для импровизированного запроса

Следующий код Python создает внедрение, которое можно вставить в свойство "значения" векторного запроса.

!pip install openai==0.28.1

import openai

openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"

response = openai.Embedding.create(
    input="How do I use Python in VSCode?",
    engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)

Советы и рекомендации по интеграции модели

  • Определение вариантов использования. Оцените конкретные варианты использования, в которых интеграция модели внедрения для функций векторного поиска может добавить значение в решение поиска. Это может включать сопоставление содержимого изображения с текстовым содержимым, межлингвальным поиском или поиском похожих документов.
  • Оптимизация затрат и производительности: векторный поиск может быть ресурсоемким и подвержен максимальным ограничениям, поэтому рекомендуется использовать только векторизацию полей, содержащих семантические значения.
  • Выберите правильную модель внедрения: выберите подходящую модель для конкретного варианта использования, например внедрения слов для текстовых поисков или внедрения изображений для визуального поиска. Рассмотрите возможность использования предварительно обученных моделей, таких как text-embedding-ada-002 из OpenAI или REST API извлечения изображений из Azure AI Компьютерное зрение.
  • Нормализованные длины векторов: убедитесь, что длина вектора нормализована перед их хранением в индексе поиска, чтобы повысить точность и производительность поиска сходства. Большинство предварительно подготовленных моделей уже нормализуются, но не все.
  • Точно настройте модель: при необходимости настройте выбранную модель в данных, относящихся к домену, чтобы повысить производительность и релевантность приложения поиска.
  • Тестирование и итерацию. Непрерывно тестируйте и уточняйте интеграцию модели внедрения, чтобы добиться требуемой производительности поиска и удовлетворенности пользователей.

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