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


Обновление моделей Студии машинного обучения (классической) с помощью действия Update Resource

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

Внимание

Поддержка Машинное обучение Azure Studio (классическая) завершится 31 августа 2024 г. Мы рекомендуем перейти на Машинное обучение Azure по этой дате.

По состоянию на 1 декабря 2021 г. нельзя создавать новые ресурсы Машинное обучение Studio (классический) (рабочая область и план веб-службы). До 31 августа 2024 г. вы можете продолжать использовать существующие эксперименты Машинное обучение Studio (классические) и веб-службы. Дополнительные сведения см. в разделе:

Машинное обучение Studio (классическая) документация не обновляется и может не обновляться в будущем.

Примечание.

Так как создавать ресурсы Студии машинного обучения (классической) после 1 декабря 2021 года невозможно, для обновления моделей Студии машинного обучения (классической) пользователям рекомендуется использовать Машинное обучение Azure с действием Execute Pipeline Машинного обучения, а не использовать действие Update Resource.

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

Обзор

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

Модели, создаваемые с помощью Студии машинного обучения, обычно не являются статическими. Если появляются новые данные или у пользователя API есть свои данные, модель нужно переобучить.

Переобучение может требоваться достаточно часто. С помощью действия Batch Execution и действия Update Resource можно переобучить модель для Студии машинного обучения Azure и обновить прогнозную веб-службу.

На следующем рисунке показа связь между обучением и прогнозными веб-службами.

Веб-службы

Действие Update Resource в Студии машинного обучения (классическая версия)

В приведенном ниже фрагменте кода JSON показано действие Batch Execution в Студии машинного обучения.

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
Свойство Описание: Обязательное поле
name Имя действия в конвейере. Да
описание Описание действия. No
type Для действия Update Resource в Студии машинного обучения применяется тип действия AzureMLUpdateResource. Да
linkedServiceName Связанная служба Студии машинного обучения, которая содержит свойство updateResourceEndpoint. Да
trainedModelName Имя модуля модели обучения для обновления в эксперименте веб-службы. Да
trainedModelLinkedServiceName Имя связанной службы хранилища Azure, содержащей файл iLearner, который был отправлен действием обновления. Да
trainedModelFilePath Относительный путь к файлу в trainedModelLinkedService для представления файла iLearner, который отправлен действием обновления. Да

Комплексный рабочий процесс

Процесс переобучения модели и обновления прогнозных веб-служб включает в себя такие шаги:

  • Вызов веб-службы обучения с помощью действия выполнения пакета. Вызов веб-службы обучения выполняется так же, как вызов прогнозной веб-службы, описанный в статье Create predictive pipelines using Machine Learning Studio (classic) and the Batch Execution activity (Создание прогнозных конвейеров с помощью Студии машинного обучения (классической) и действия Batch Execution). На выходе веб-служба обучения выдает файл iLearner, который можно использовать для обновления прогнозной веб-службы.
  • Вызов обновления конечной точки ресурсапрогнозной веб-службы с помощью действия обновления ресурса, чтобы обновить веб-службу и добавить новую обученную модель.

Связанная служба Студии машинного обучения (классической)

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

  1. Связанная служба Студии машинного обучения Azure для веб-службы обучения, которая используется действием Batch Execution так же, как описано в статье Create predictive pipelines using Machine Learning Studio (classic) and the Batch Execution activity (Создание прогнозных конвейеров с помощью Студии машинного обучения (классической) и действия Batch Execution). Разница заключается в том, что выходные данные веб-службы обучения являются файлом iLearner, который используется действием Update Resource для обновления прогнозной веб-службы.
  2. Связанная служба Студии машинного обучения для обновления конечной точки ресурса прогнозной веб-службы. Эта связанная служба используется действием обновления ресурса для обновления прогнозной веб-службы с помощью файла iLearner, возвращенного на предыдущем шаге.

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

Веб-служба — новая веб-служба Azure Resource Manager

Если веб-служба является новым типом веб-службы и предоставляет конечную точку Azure Resource Manager, то необходимо добавить вторую конечную точку не по умолчанию. Конечная точка updateResourceEndpoint в связанной службе имеет такой формат:

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview

Вы можете получить значения для владельцев мест в URL-адресе при запросе веб-службы в Машинное обучение Azure Studio.

Новому типу конечной точки ресурса для обновления необходима проверка подлинности субъекта-службы. Чтобы использовать проверку подлинности субъекта-службы, зарегистрируйте сущность приложения в идентификаторе Microsoft Entra и предоставьте ей роль участника или владельца подписки или группы ресурсов, к которой принадлежит веб-служба. Ознакомьтесь со статьей Создание приложения Active Directory и субъекта-службы с доступом к ресурсам с помощью портала. Запишите следующие значения, которые используются для определения связанной службы:

  • Application ID
  • ключ приложения.
  • Идентификатор клиента

Ниже приведен пример определения связанной службы:

{
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "description": "The linked service for AML web service.",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/0000000000000000	000000000000000000000/services/0000000000000000000000000000000000000/jobs?api-version=2.0",
            "apiKey": {
                "type": "SecureString",
                "value": "APIKeyOfEndpoint1"
            },
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearning/webServices/{web-service-name}?api-version=2016-05-01-preview",
            "servicePrincipalId": "000000000-0000-0000-0000-0000000000000",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "servicePrincipalKey"
            },
            "tenant": "mycompany.com"
        }
    }
}

Ниже приведен сценарий с более подробными сведениями. Это пример переобучения и обновления моделей Студии машинного обучения (классической) из конвейера.

Пример. Переобучение и обновление модели Студии машинного обучения (классической)

В этом разделе показан пример конвейера, который использует действие Batch Execution Студии машинного обучения Azure для повторного обучения модели, а также действие Update Resource Студии машинного обучения Azure для обновления модели в веб-службе оценки. Здесь также приведены фрагменты JSON для всех связанных служб, наборов данных и конвейера, которые используются в примере.

Связанная служба хранилища BLOB-объектов Azure

Служба хранилища Azure содержит следующие данные:

  • Данные для обучения. Это входные данные для веб-службы Студии машинного обучения (классической).
  • Файл iLearner. Это выходные данные из веб-службы Студии машинного обучения (классической). Этот файл также служит в качестве входных данных для действия "Обновить ресурс".

Вот пример определения JSON для связанной службы:

{
    "name": "StorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=name;AccountKey=key"
        }
    }
}

Связанная служба для конечной точки обучения Студии машинного обучения (классической)

В следующем фрагменте кода JSON показана связанная служба Студии машинного обучения (классической), которая указывает на конечную точку по умолчанию веб-службы обучения.

{
    "name": "trainingEndpoint",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/xxx/services/--training experiment--/jobs",
            "apiKey": "myKey"
        }
    }
}

Чтобы получить значения mlEndpoint и apiKey, выполните указанные ниже действия в Студии машинного обучения Azure.

  1. В меню слева щелкните ВЕБ-СЛУЖБЫ .
  2. В списке веб-служб выберите веб-службу обучения .
  3. Рядом с полем Ключ API нажмите кнопку копирования. Вставьте ключ из буфера обмена в редактор JSON фабрики данных.
  4. В Студии машинного обучения Azure щелкните ссылку Выполнение пакета.
  5. Скопируйте URI запроса из раздела Запрос и вставьте его в редактор JSON.

Связанная служба для конечной точки оценки Студии машинного обучения Azure с возможностью обновления

В приведенном ниже фрагменте кода JSON показана связанная служба Студии машинного обучения Azure, которая указывает на обновляемую конечную точку по умолчанию веб-службы оценки.

{
    "name": "updatableScoringEndpoint2",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "https://ussouthcentral.services.azureml.net/workspaces/00000000eb0abe4d6bbb1d7886062747d7/services/00000000026734a5889e02fbb1f65cefd/jobs?api-version=2.0",
            "apiKey": "sooooooooooh3WvG1hBfKS2BNNcfwSO7hhY6dY98noLfOdqQydYDIXyf2KoIaN3JpALu/AKtflHWMOCuicm/Q==",
            "updateResourceEndpoint": "https://management.azure.com/subscriptions/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/resourceGroups/Default-MachineLearning-SouthCentralUS/providers/Microsoft.MachineLearning/webServices/myWebService?api-version=2016-05-01-preview",
            "servicePrincipalId": "fe200044-c008-4008-a005-94000000731",
            "servicePrincipalKey": "zWa0000000000Tp6FjtZOspK/WMA2tQ08c8U+gZRBlw=",
            "tenant": "mycompany.com"
        }
    }
}

Pipeline

Конвейер содержит два действия: AzureMLBatchExecution и AzureMLUpdateResource. Действие выполнения пакета принимает входные данные для обучения и создает выходной файл iLearner. Действие ресурса обновления принимает этот файл iLearner и использует его для обновления прогнозной веб-службы.

{
    "name": "LookupPipelineDemo",
    "properties": {
        "activities": [
            {
                "name": "amlBEGetilearner",
                "description": "Use AML BES to get the ileaner file from training web service",
                "type": "AzureMLBatchExecution",
                "linkedServiceName": {
                    "referenceName": "trainingEndpoint",
                    "type": "LinkedServiceReference"
                },
                "typeProperties": {
                    "webServiceInputs": {
                        "input1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        },
                        "input2": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/input"
                        }
                    },
                    "webServiceOutputs": {
                        "output1": {
                            "LinkedServiceName":{
                                "referenceName": "StorageLinkedService",
                                "type": "LinkedServiceReference"
                            },
                            "FilePath":"azuremltesting/output"
                        }
                    }
                }
            },
            {
                "name": "amlUpdateResource",
                "type": "AzureMLUpdateResource",
                "description": "Use AML Update Resource to update the predict web service",
                "linkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "updatableScoringEndpoint2"
                },
                "typeProperties": {
                    "trainedModelName": "ADFV2Sample Model [trained model]",
                    "trainedModelLinkedServiceName": {
                        "type": "LinkedServiceReference",
                        "referenceName": "StorageLinkedService"
                    },
                    "trainedModelFilePath": "azuremltesting/output/newModelForArm.ilearner"
                },
                "dependsOn": [
                    {
                        "activity": "amlbeGetilearner",
                        "dependencyConditions": [ "Succeeded" ]
                    }
                ]
            }
        ]
    }
}

Ознакомьтесь со следующими ссылками, в которых описаны способы преобразования данных другими способами: