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


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

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

Совет

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

Внимание

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

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

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

Примечание.

Так как ресурсы Машинное обучение Studio (классической) больше не могут быть созданы после 1 декабря 2021 г., пользователям рекомендуется использовать Машинное обучение Azure с действием Машинное обучение Execute Pipeline, а не с помощью действия "Обновить ресурс" для обновления. модели Машинное обучение Studio (классическая модель).

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

Обзор

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

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

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

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

Веб-службы

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

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

{
    "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, который можно использовать для обновления прогнозной веб-службы.
  • Вызов обновления конечной точки ресурсапрогнозной веб-службы с помощью действия обновления ресурса, чтобы обновить веб-службу и добавить новую обученную модель.

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

Чтобы ранее упомянутый комплексный рабочий процесс работал, необходимо создать две связанные службы Машинное обучение Studio (классическая версия):

  1. Связанная служба Машинное обучение Studio (классическая) с веб-службой обучения, связанная служба используется действием пакетного выполнения так же, как и в том, что упоминалось в статье "Создание прогнозных конвейеров" с помощью Машинное обучение Studio (классической) и действия пакетного выполнения. Разница заключается в том, что выходные данные веб-службы обучения являются файлом iLearner, который используется действием Update Resource для обновления прогнозной веб-службы.
  2. Связанная служба Машинное обучение Studio (классическая) с конечной точкой ресурса обновления прогнозной веб-службы. Эта связанная служба используется действием Update Resource для обновления прогнозной веб-службы с помощью файла 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.

Новому типу конечной точки ресурса для обновления необходима проверка подлинности субъекта-службы. Чтобы использовать проверку подлинности субъекта-службы, зарегистрируйте сущность приложения в идентификаторе 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"
        }
    }
}

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

Пример. Переобучение и обновление модели Машинное обучение Studio (классическая модель)

В этом разделе показан пример конвейера, который использует действие 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 определяет связанную службу Машинное обучение Studio (классическая), которая указывает на конечную точку по умолчанию веб-службы обучения.

{
    "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 Studio (классическая версия) выберите ссылку BATCH EXECUTION.
  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 ilearner 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" ]
                    }
                ]
            }
        ]
    }
}

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