Навык AML

Внимание

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

Используйте навык AML для расширения обогащения ИИ с развернутой базовой моделью внедрения из каталога моделей Microsoft Foundry или пользовательской модели Машинного обучения Azure (AML). Ваши данные обрабатываются в Гео, где ваша модель развернута.

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

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

Использование навыка AML

Как и другие навыки, навык AML имеет входные и выходные данные. Входные данные отправляются в виде объекта JSON в бессерверное развертывание из каталога моделей Foundry или веб-конечной точки AML. Выходные данные должны включать код успешного выполнения, JSON-полезную нагрузку и параметры, заданные определением навыка AML. Любой другой ответ считается ошибкой, и никакие обогащения не выполняются.

Индексатор повторяет два раза для следующих кодов состояния HTTP:

  • 503 Service Unavailable
  • 429 Too Many Requests

Навык AML для моделей на платформе Microsoft Foundry

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

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

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

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

@odata.type

Microsoft.Skills.Custom.AmlSkill

Параметры навыков

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

Наименование параметра Описание
uri (Требуется для аутентификации по ключу) Целевой URI бессерверного развертывания из каталога моделей Microsoft Foundry или URI онлайн-конечной точки AML. Допускается только схема URI HTTPS. Поддерживаемые модели из каталога моделей (только бессерверные развертывания):
  • Cohere-embed-v3-english
  • Cohere-embed-v3-multilingual
  • Cohere-embed-v4
key (Требуется для проверки подлинности ключа) Ключ API поставщика модели.
resourceId (Требуется для аутентификации токена) Идентификатор ресурса поставщика модели в Azure Resource Manager. Для сетевой конечной точки AML используйте subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.MachineLearningServices/workspaces/{workspace-name}/onlineendpoints/{endpoint_name} формат.
region (Необязательно для аутентификации токена) Регион, в котором размещается поставщик моделей. Требуется, если регион отличается от региона службы поиска.
timeout (Необязательно) Время ожидания для HTTP-клиента, выполняющего вызов API. Он должен быть отформатирован как значение XSD "dayTimeDuration", которое является ограниченным подмножеством значения длительности ISO 8601 . Например, PT60S для 60 секунд. Если не задано, выбирается значение по умолчанию — 30 секунд. Время ожидания можно задать как минимум 1 секунду и не более 230 секунд.
degreeOfParallelism (Необязательно) Число вызовов, которые индексатор делает параллельно на указанную конечную точку. Это значение можно уменьшить, если точка подключения дает сбой из-за слишком большой нагрузки от запросов. Вы можете вызвать его, если конечная точка может принимать больше запросов, и вы хотите увеличить производительность индексатора. Если не задано, используется значение по умолчанию — 5 секунд. Можно задать degreeOfParallelism значение не менее 1 и не более 10.

Проверка подлинности

Навык AML предоставляет два варианта проверки подлинности:

  • Проверка подлинности на основе ключей. Вы предоставляете статический ключ для аутентификации запросов на оценку из навыка AML. Задайте uri и key параметры для этого подключения.

  • Проверка подлинности на основе токенов. Проект на основе хаба Foundry или онлайн-окончательная точка AML развертывается с использованием аутентификации на основе токенов. Служба поиска ИИ Azure должна иметь управляемое удостоверение и назначение роли у поставщика моделей. Затем умение AML использует удостоверение службы поиска для аутентификации у поставщика моделей, при этом не требуются статические ключи. Учетная запись сервиса поиска должна иметь роль владельца или соучастника. Задайте параметр resourceId, а если служба поиска находится в другом регионе от поставщика модели, задайте параметр region.

Входные параметры навыков

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

Выходные данные навыка

Выходные данные навыка — это новые узлы обогащенного документа, созданного навыком. Для этого навыка нет предопределенных выходных данных. Для выходных данных следует указать узлы, которые можно заполнить из ответа JSON навыка AML.

Пример определения

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A custom model that detects the language in a document.",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Пример структуры входных данных JSON

Эта структура JSON представляет нагрузку, отправляемую в проект на основе Центра Foundry или в онлайн-конечную точку AML. Поля верхнего уровня структуры соответствуют именам, указанным в inputs разделе определения навыка. Значения этих полей происходят из их "источников", которые могут браться из поля в документе или другого навыка.

{
  "text": "Este es un contrato en Inglés"
}

Пример структуры выходных данных JSON

Выходные данные соответствуют ответу из вашего проекта на основе центра Foundry или онлайн-эндпойнта AML. Поставщик модели должен возвращать только JSON-объект (это проверяется через заголовок ответа Content-Type), где поля соответствуют "именам" в output и их значениям присваивается статус обогащения.

{
    "detected_language_code": "es"
}

Пример определения встроенного формообразования

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://language-model.models.contoso.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Входная структура JSON для внутристрового форматирования

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

Пример выходной структуры JSON для встроенного оформления

{
    "detected_language_code": "es"
}

Варианты ошибок

В дополнение к недоступности вашего проекта на базе центра Foundry или онлайн-конечной точки AML, либо если они отправляют коды состояния с ошибками, следующие случаи также считаются ошибками:

  • Поставщик модели возвращает код успешного выполнения, но ответ указывает, что это не application/json. Таким образом, ответ недействителен, и никакие дополнения не выполняются.

  • Поставщик модели возвращает недопустимый код JSON.

Если поставщик модели недоступен или возвращает ошибку HTTP, в журнал выполнения индексатора добавляется понятное сообщение об ошибке с доступными сведениями об этой ошибке.

См. также