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

Примечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

Важно

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

В этой статье вы узнаете, как использовать модели каталога моделей Foundry Microsoft для интегрированной векторизации (предварительная версия) во время индексирования и выполнения запросов в Поиск с использованием ИИ Azure.

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

После развертывания модели его можно использовать с навыком AML для интегрированной векторизации во время индексирования или с векторизатором из каталога моделей Microsoft Foundry для запросов.

Совет

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

Необходимые условия

Поддерживаемые модели внедрения

Поддерживаемые модели внедрения из каталога моделей зависят от метода использования:

Развертывание модели встраивания из каталога моделей

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

  2. Запишите целевой URI, ключ и имя модели. Эти значения требуются для определения векторизатора в индексе поиска и набора навыков, вызывающего конечные точки модели во время индексирования.

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

  3. Настройте индекс и индексатор поиска для использования развернутой модели.

Разверните модель встраивания как бессерверное развертывание.

Навык AML и векторизатор каталога моделей Microsoft Foundry принимают только бессерверные развертывания семантических моделей Cohere. Бессерверные развертывания с помощью портала Foundry Microsoft не поддерживаются для этих моделей, поэтому используйте Azure CLI для создания развертывания. Дополнительные сведения см. в статье "Развертывание моделей в качестве бессерверных развертываний API".

Чтобы создать бессерверное развертывание Cohere, выполните приведенные действия.

  1. Установите Azure CLI с расширением ml.

    az extension add -n ml
    
  2. Войдите в Azure и задайте значения по умолчанию.

    az login
    az account set --subscription <subscription-id>
    az configure --defaults workspace=<project-name> group=<resource-group>
    
  3. Создайте файл subscribe.yaml, чтобы оформить подписку Marketplace для модели.

    name: cohere-embed-v3-english-subscription
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    

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

    Модель Идентификатор модели
    Cohere-embed-v3-english azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-многоязычный azureml://registries/azureml-cohere/models/Cohere-embed-v3-multilingual
    Cohere-embed-v4 azureml://registries/azureml-cohere/models/Cohere-embed-v4
  4. Выполните следующую команду, чтобы создать подписку.

    az ml marketplace-subscription create --file subscribe.yaml
    
  5. Создайте файл endpoint.yaml, чтобы создать бессерверную конечную точку.

    name: cohere-embed-v3-english-endpoint
    model_id: azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    
  6. Выполните следующую команду, чтобы создать конечную точку.

    az ml serverless-endpoint create --file endpoint.yaml
    
  7. Для проверки подлинности на основе ключей получите URI конечной точки и ключ для использования в навыке или векторизаторе.

    az ml serverless-endpoint show --name cohere-embed-v3-english-endpoint --query "scoring_uri"
    az ml serverless-endpoint get-credentials --name cohere-embed-v3-english-endpoint
    

Пример пакета данных навыка AML

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

В этом разделе описаны определения навыка AML и сопоставления индексов. Он включает пример полезной нагрузки, который уже сконфигурирован для работы с развернутой соответствующей конечной точкой. Дополнительные сведения см. в разделе Контекст навыка и язык заметок ввода.

Модели встраивания Cohere

Эти полезные данные умения AML работают со следующими моделями встраивания:

  • Cohere-embed-v3-english
  • Cohere-embed-v3-многоязычный
  • Cohere-embed-v4

Предполагается, что вы разбиваете содержание с помощью навыка «Text Split», и поэтому текст, который будет векторизован, находится в /document/pages/* директории. Если текст поступает из другого пути, обновите все ссылки на /document/pages/* путь соответствующим образом.

Необходимо добавить /v1/embed путь в конец URL-адреса, скопированного из развертывания Foundry. Вы также можете изменить значения для input_type, truncate и embedding_types входных данных, чтобы лучше соответствовать вашему варианту использования. Дополнительные сведения о доступных вариантах см. в справочнике по API внедрения Cohere.

URI и ключ создаются при развертывании модели из каталога. Дополнительные сведения об этих значениях см. в статье "Развертывание моделей Внедрения Cohere с помощью Foundry".

{
  "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
  "context": "/document/pages/*",
  "uri": "https://cohere-embed-v3-multilingual-hin.eastus.models.ai.azure.com/v1/embed",
  "key": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333",
  "inputs": [
    {
      "name": "texts",
      "source": "=[$(/document/pages/*)]"
    },
    {
      "name": "input_type",
      "source": "='search_document'"
    },
    {
      "name": "truncate",
      "source": "='NONE'"
    },
    {
      "name": "embedding_types",
      "source": "=['float']"
    }
  ],
  "outputs": [
    {
      "name": "embeddings",
      "targetName": "aml_vector_data"
    }
  ]
}

Кроме того, выходные данные модели Cohere не является непосредственно массивом встраивания, а объектом JSON, содержащим его. При сопоставлении его с определением индекса через indexProjections или outputFieldMappings необходимо выбрать его соответствующим образом. Вот пример indexProjections пакета данных, который позволит вам реализовать это сопоставление.

Если вы выбрали другое embedding_types в определении навыка, измените floatsource путь к выбранному типу.

"indexProjections": {
  "selectors": [
    {
      "targetIndexName": "<YOUR_TARGET_INDEX_NAME_HERE>",
      "parentKeyFieldName": "ParentKey", // Change this to the name of the field in your index definition where the parent key will be stored
      "sourceContext": "/document/pages/*",
      "mappings": [
        {
          "name": "aml_vector", // Change this to the name of the field in your index definition where the Cohere embedding will be stored
          "source": "/document/pages/*/aml_vector_data/float/0"
        }
      ]
    }
  ],
  "parameters": {}
}

Образец полезной нагрузки векторизатора

Векторизатор моделевого каталога Microsoft Foundry, в отличие от компонента AML, предназначен для работы только с моделями встраивания, которые можно развернуть через каталог моделей. Основное различие заключается в том, что вам не нужно беспокоиться о нагрузке данных запросов и ответов. Однако необходимо указать modelName, который соответствует "идентификатору модели", скопированному после развертывания модели.

Ниже приведен пример нагрузки для настройки векторизатора в вашем определении индекса с учетом свойств, скопированных из Foundry.

Для моделей Cohere не следует добавлять путь /v1/embed к концу URL-адреса, как это делалось с навыком.

"vectorizers": [
    {
        "name": "<YOUR_VECTORIZER_NAME_HERE>",
        "kind": "aml",
        "amlParameters": {
            "uri": "<YOUR_URL_HERE>",
            "key": "<YOUR_PRIMARY_KEY_HERE>",
            "modelName": "<YOUR_MODEL_ID_HERE>"
        },
    }
]

Подключение с использованием аутентификации токеном

Если вы не можете использовать аутентификацию на основе ключей, вы можете настроить подключение векторизатора каталога моделей Microsoft Foundry и навык AML для аутентификации по токену с помощью управления доступом на основе ролей в Azure.

Служба поиска должна иметь системное или управляемое пользователем управляемое удостоверение, и это удостоверение должно иметь разрешения владельца или участника для вашего проекта. Затем можно удалить поле key из определения ваших навыков и векторизатора, заменив его на resourceId. Если проект и служба поиска находятся в разных регионах, также укажите это поле region.

"uri": "<YOUR_URL_HERE>",
"resourceId": "subscriptions/<YOUR_SUBSCRIPTION_ID_HERE>/resourceGroups/<YOUR_RESOURCE_GROUP_NAME_HERE>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR_AML_WORKSPACE_NAME_HERE>/onlineendpoints/<YOUR_AML_ENDPOINT_NAME_HERE>",
"region": "westus", // Only needed if project is in different region from search service

Примечание

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