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


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

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

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

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

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

  • Входные данные запроса — это векторы, текст или изображения, которые преобразуются в векторы во время обработки запросов. Встроенное решение в службе "Поиск ИИ Azure" — использовать векторизатор.

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

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

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

Встроенная векторизация требует, чтобы ресурсы были в одном регионе:

  1. Проверьте регионы для модели внедрения текста.

  2. Найдите тот же регион для поиска ИИ Azure.

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

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

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

!pip install openai

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)

Выходные данные — это массив векторов размером 1536 измерений.

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

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

  • Разработка стратегии блокирования: модели внедрения имеют ограничения на количество маркеров, которые они могут принимать, что представляет требование к фрагментации данных для больших файлов. Дополнительные сведения см. в разделе "Блоки больших документов" для решений поиска векторов.

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

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

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

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

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

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