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


Навык AML в конвейере обогащения поиска ИИ Azure

Внимание

Поддержка подключений индексатора к каталогу моделей Azure AI Foundry доступна в общедоступной предварительной версии в соответствии с дополнительными условиями использования. Предварительный просмотр ИНТЕРФЕЙСОВ REST API поддерживает этот навык.

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

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

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

Примечание.

Индексатор дважды повторяется для определенных стандартных кодов состояния HTTP, возвращаемых из сетевой конечной точки AML. Это такие коды состояния HTTP:

  • 503 Service Unavailable
  • 429 Too Many Requests

Навык AML можно вызвать с помощью стабильной версии API 2024-07-01 или эквивалентного пакета SDK Azure или версии API 2024-05-01-preview для подключений к каталогу моделей на портале Azure AI Foundry.

Навык AML для моделей в Azure AI Foundry

Начиная с 2024-05-01-preview REST API и в портал Azure (который также предназначен для предварительной версии 2024-05-05-01-preview), поиск ИИ Azure предоставляет векторизатор каталога моделей Azure Foundry для подключений времени запроса к каталогу моделей на портале Azure AI Foundry. Если вы хотите использовать этот векторизатор для запросов, навык AML является аналогом индексирования для создания внедрения с помощью модели в каталоге моделей Azure AI Foundry.

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

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

Необходимые компоненты

  • Рабочая область AML для создаваемой пользовательской модели или проекта в Azure AI Foundry, если модель внедрения развернута из каталога.
  • Конечные точки Online (в режиме реального времени) в этой рабочей области для пользовательской модели или конечной точки модели для внедрения моделей, развернутых из каталога.

@odata.type

Microsoft.Skills.Custom.AmlSkill

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

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

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

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

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

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

Входные данные навыка — это узел обогащенного документа, созданного во время взлома документов. Например, это может быть корневой документ, нормализованное изображение или содержимое большого двоичного объекта. Для этого навыка нет предопределенных входных данных. Для входных данных следует указать один или несколько узлов, заполненных во время выполнения навыка 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 представляет полезные данные, отправляемые в конечную точку AML в сети. Поля верхнего уровня структуры соответствуют именам, указанным в inputs разделе определения навыка. Значения этих полей являются из этих полей (которые могут быть из source поля в документе или потенциально из другого навыка).

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

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

Выходные данные соответствуют ответу, возвращенному из веб-конечной точки AML. Конечная точка 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"
}

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

Помимо недоступности AML или отправки неуправляемых кодов состояния, такие случаи считаются ошибочными:

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

  • Конечная точка AML в Сети возвращает недопустимый JSON.

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

См. также