Partager via


Mettre à jour des modèles Machine Learning Studio (classique) à l’aide de l’activité des ressources de mise à jour

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Important

La prise en charge d’Azure Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

Depuis le 1er décembre 2021, vous ne pouvez plus créer de nouvelles ressources Machine Learning Studio (classique) (plan d’espace de travail et de service web). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les expériences et services web Machine Learning Studio (classique) existants. Pour plus d’informations, consultez l’article suivant :

La documentation de Machine Learning Studio (classique) est en cours de retrait et pourrait ne pas être mise à jour à l’avenir.

Remarque

Dans la mesure où les ressources Machine Learning Studio (classique) ne peuvent plus être créées après le 1er décembre 2021, les utilisateurs sont encouragés à utiliser Azure Machine Learning avec l’activité Execute Pipeline Azure Machine Learning au lieu d’utiliser l’activité Update Resource pour mettre à jour des modèles Machine Learning Studio (classique).

Cet article vient s’ajouter à l’article principal sur l’intégration d’Machine Learning Studio (classique) : Création de pipelines prédictifs avec Machine Learning Studio (classique). Si vous ne l’avez pas déjà fait, passez en revue l’article principal avant de lire cet article.

Vue d’ensemble

Dans le cadre du processus de mise en place de modèles Machine Learning Studio (classique), votre modèle est entraîné et enregistré. Vous l’utilisez ensuite pour créer un service web prédictif. Le service web peut ensuite être utilisé dans des sites web, des tableaux de bord et des applications mobiles.

Les modèles que vous créez avec Azure Machine Learning Studio (classique) ne sont généralement pas statiques. Lorsque de nouvelles données sont disponibles ou lorsque le consommateur de l’API a ses propres données, il faut effectuer à nouveau l’apprentissage du modèle.

La réexécution d’une formation peut se produire fréquemment. Avec l’activité d’exécution par lot et l’activité des ressources de mise à jour, vous pouvez mettre en place le modèle Machine Learning Studio (classique) qui réentraîne et met à jour le service web prédictif.

L’image suivante illustre la relation entre les services web d’apprentissage et de prévision.

SERVICES WEB

Activité de ressource de mise à jour Machine Learning Studio (classique)

L’extrait de code JSON suivant définit une activité Batch Execution Machine Learning Studio (classique).

{
    "name": "amlUpdateResource",
    "type": "AzureMLUpdateResource",
    "description": "description",
    "linkedServiceName": {
        "type": "LinkedServiceReference",
        "referenceName": "updatableScoringEndpoint2"
    },
    "typeProperties": {
        "trainedModelName": "ModelName",
        "trainedModelLinkedServiceName": {
                    "type": "LinkedServiceReference",
                    "referenceName": "StorageLinkedService"
                },
        "trainedModelFilePath": "ilearner file path"
    }
}
Propriété Description Obligatoire
name Nom de l’activité dans le pipeline Oui
description Texte décrivant l’activité. Non
type Pour l’activité des ressources de mise à jour Machine Learning Studio (classique), le type d’activité est AzureMLUpdateResource. Oui
linkedServiceName Service lié Machine Learning Studio (classique) qui contient la propriété updateResourceEndpoint. Oui
trainedModelName Nom du module de modèle formé dans l’expérience du service web à mettre à jour. Oui
trainedModelLinkedServiceName Nom du service lié au service Stockage Azure contenant le fichier ilearner chargé par l’opération de mise à jour Oui
trainedModelFilePath Chemin d’accès relatif de fichier dans trainedModelLinkedService pour représenter le fichier ilearner chargé par l’opération de mise à jour Oui

Workflow de bout en bout

L’ensemble du processus de mise en place de la reformation d’un modèle et de la mise à jour des services web prédictifs implique les étapes suivantes :

  • Appelez le service web de formation à l’aide de l’activité d’exécution par lot. Un appel de service web d’entraînement est identique à un appel de service web prédictif décrit dans Créer des pipelines prédictifs avec Machine Learning Studio (classique) et l’activité d’exécution par lot. La sortie du service web de formation est un fichier iLearner que vous pouvez utiliser pour mettre à jour le service web prédictif.
  • Appelez le point de terminaison des ressources de mise à jour du service web prédictif à l’aide de l’activité des ressources de mise à jour pour mettre à jour le service web avec le modèle qui vient d’être formé.

Service lié Machine Learning Studio (classique)

Pour que le workflow de bout en bout mentionné ci-dessus fonctionne, vous devez créer deux services liés Machine Learning Studio (classique) :

  1. Un service lié Machine Learning Studio (classique) au service web de formation. Ce service lié est utilisé par l’activité Batch Execution de manière identique à ce qui est mentionné dans Créer un pipeline prédictif à l’aide de Machine Learning Studio (classique) et de l’activité Batch Execution. La différence est que la sortie du service web d’apprentissage est un fichier iLearner qui est ensuite utilisé par l’activité des ressources de mise à jour pour mettre à jour le service web prédictif.
  2. Un service lié Machine Learning Studio (classique) au point de terminaison de ressource de mise à jour du service web prédictif. Ce service lié est utilisé par l’activité Update Resource pour mettre à jour le service web prédictif à l’aide du fichier iLearner retourné à l’étape précédente.

Pour le second service lié Machine Learning Studio (classique), la configuration est différente quand votre service web Machine Learning Studio (classique) est un service web classique ou un nouveau service web. Les différences sont expliquées distinctement dans les sections suivantes.

Le service web est un nouveau service web Azure Resource Manager

Si le service web est le nouveau type de service web qui expose un point de terminaison Azure Resource Manager, vous n’avez pas besoin d’ajouter le deuxième point de terminaison qui n’est pas celui défini par défaut. Le updateResourceEndpoint du service lié est au format :

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

Vous pouvez obtenir des valeurs pour les espaces réservés dans l’URL quand vous interrogez le service web dans Azure Machine Learning studio.

Le nouveau type de point de terminaison des ressources de mise à jour exige une authentification du principal du service. Pour utiliser une authentification du principal de service, inscrivez une entité d’application dans Microsoft Entra et octroyez-lui le rôle de contributeur ou de propriétaire de l’abonnement ou du groupe de ressources auquel le service web appartient. Consultez how to create service principal and assign permissions to manage Azure resource (comment créer le principal de service et affecter des autorisations de gestion de ressources Azure). Prenez note des valeurs suivantes, qui vous permettent de définir le service lié :

  • ID de l'application
  • Clé de l'application
  • ID client

Voici un exemple de définition de service lié :

{
    "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"
        }
    }
}

Le scénario suivant fournit plus de détails. Il présente un exemple de réentraînement et de mise à jour de modèles Machine Learning Studio (classique) à partir d’un pipeline.

Exemple : réexécution de la formation et mise à jour d’un modèle Machine Learning Studio (classique)

Cette section fournit un exemple de pipeline qui utilise l’activité d’exécution par lot Azure Machine Learning Studio (classique) pour réentraîner un modèle. Le pipeline utilise également l’activité des ressources de mise à jour Azure Machine Learning Studio (classique) pour mettre à jour le modèle dans le service web de notation. La section fournit également des extraits de code JSON pour tous les services liés, jeux de données et éléments de pipeline dans l’exemple.

Service lié Azure Blob Storage :

Azure Storage contient les données suivantes :

  • Données de formation. Les données d’entrée pour le service web d’entraînement Machine Learning Studio (classique).
  • Fichier iLearner. La sortie du service web d’entraînement Machine Learning Studio (classique). Ce fichier est également l’entrée de l’activité des ressources de mise à jour.

Voici l’exemple de définition JSON du service lié :

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

Service lié pour le point de terminaison d’entraînement Machine Learning Studio (classique)

L’extrait JSON suivant définit un service lié Machine Learning Studio (classique) qui pointe vers le point de terminaison par défaut du service web de formation.

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

Dans Azure Machine Learning Studio (classique) , procédez comme suit afin d’obtenir les valeurs pour mlEndpoint et apiKey :

  1. Sélectionnez SERVICES WEB dans le menu de gauche.
  2. Sélectionnez le service web de formation dans la liste des services web.
  3. Sélectionnez Copier en regard de la zone de texte Clé API. Collez la clé copiée dans l’éditeur JSON Data Factory.
  4. Dans Azure Machine Learning studio (classique), sélectionnez le lien EXÉCUTION PAR LOT.
  5. Copiez l’URI de demande à partir de la section Demande, et collez-le dans l’éditeur JSON.

Service lié du point de terminaison de scoring pouvant être mis à jour pour Azure Machine Learning studio (classique) :

L’extrait JSON suivant définit un service lié à Azure Machine Learning studio (classique), qui pointe vers le point de terminaison pouvant être mis à jour du service web de scoring.

{
    "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

Le pipeline a deux activités : AzureMLBatchExecution et AzureMLUpdateResource. L’activité d’exécution par lot prend les données d’apprentissage comme entrée et génère un fichier .iLearner comme sortie. L’activité des ressources de mise à jour prend alors ce fichier iLearner et l’utilise pour mettre à jour le service web prédictif.

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

Consultez les articles suivants qui expliquent comment transformer des données par d’autres moyens :