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

Внимание

Эта функция предоставляется в общедоступной предварительной версии, и к ней применяются дополнительные Условия использования. Последняя предварительная версия набора навыков — создание или обновление (REST API) поддерживает эту функцию.

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

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

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

Совет

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

Предварительные требования

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

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

Развернуть встраиваемую модель из каталога моделей

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

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

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

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

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

Навык AML и векторизатор каталога моделей Microsoft Foundry принимают только бессерверные развертывания моделей внедрения Cohere. Бессерверные развертывания с помощью портала Microsoft Foundry не поддерживаются для этих моделей, поэтому используйте 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 для подписки на маркетплейс для модели.

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

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

    Модель Идентификатор модели
    Cohere-embed-v3-английский azureml://registries/azureml-cohere/models/Cohere-embed-v3-english
    Cohere-embed-v3-multilingual 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 и сопоставления индексов. Он включает образец payload, который уже настроен для работы с соответствующим развернутым конечным узлом. Дополнительные сведения см. в разделе Контекст навыка и язык заметок ввода.

Совместное внедрение моделей

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

  • Cohere-embed-v3-английский
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4

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

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

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>"
        },
    }
]

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

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