Créer un pipeline prédictif à l’aide de Machine Learning Studio (classique) avec Azure Data Factory ou Synapse Analytics

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) prendra 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) (espace de travail et plan de service Web). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les expériences et les services Web Machine Learning Studio (classiques) 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

Étant donné que les ressources Machine Learning Studio (classiques) ne pourront plus être créées après le 1er décembre 2021, les utilisateurs sont encouragés à utiliser Azure Machine Learning avec l’activité d’exécution des pipelines Azure Machine Learning au lieu d’utiliser l’activité Batch Execution pour exécuter des lots Machine Learning Studio (classiques).

ML Studio (classique) vous permet de générer, tester et déployer des solutions d’analyse prédictive. D’un point de vue très général, cela s’effectue en trois étapes :

  1. Créez une expérience de formation. Vous effectuez cette étape à l’aide de ML Studio (classique). ML Studio (classique) est un environnement de développement visuel collaboratif qui vous permet de former et de tester un modèle d’analyse prédictive à l’aide de données d’apprentissage.
  2. Convertissez-la en une expérience prédictive. Une fois que votre modèle a été formé avec des données existantes et que vous êtes prêt à l’utiliser pour la notation de nouvelles données, vous préparez et simplifiez votre expérience de notation.
  3. Déployez-la en tant que service web. Vous pouvez publier votre expérience de notation comme un service web Azure. Vous pouvez envoyer des données à votre modèle via ce point de terminaison de service web et recevoir des prédictions de résultats du modèle.

Utilisation de Machine Learning Studio (classique) avec Azure Data Factory ou Synapse Analytics

Azure Data Factory et Synapse Analytics vous permettent de créer facilement des pipelines qui utilisent un service web Machine Learning Studio (classique) publié pour l’analyse prédictive. À l’aide de l’activité d’exécution du lot dans un pipeline, vous pouvez appeler un service web Machine Learning Studio (classique) pour effectuer des prédictions sur les données par lots.

Au fil du temps, les modèles prédictifs dans les expériences de scoring Machine Learning Studio (classique) doivent être réentraînés à l’aide de nouveaux jeux de données d’entrée. Vous pouvez réentraîner un modèle à partir d’un pipeline en effectuant les étapes suivantes :

  1. Publiez l’expérience de formation (et non l’expérience prédictive) comme un service web. Vous pouvez effectuer cette tâche dans ML Studio (classique) comme vous l’avez fait pour exposer l’expérience prédictive en tant que service web dans le scénario précédent.
  2. Utilisez l’activité d’exécution par lots ML Studio (classique) pour appeler le service web pour l’expérience de formation. En fait, vous pouvez utiliser l’activité Batch Execution de ML Studio (classique) pour appeler à la fois le service web de formation et le service web de notation.

Une fois que vous avez fini la reformation, mettez à jour le service web de notation (expérience prédictive exposée comme un service web) avec le modèle qui vient d’être formé à l’aide de l’Activité des ressources de mise à jour ML Studio (classique) . Consultez l’article Mise à jour des modèles à l’aide de l’activité des ressources de mise à jour pour plus d’informations.

Service lié ML Studio (classique)

Vous créez un service lié Machine Learning Studio (classique) pour lier un service web Machine Learning Studio (classique). Le service lié est utilisé par l'Activité d'exécution par lot et l'Activité des ressources de mise à jour Machine Learning Studio (classique).

{
    "type" : "linkedServices",
    "name": "AzureMLLinkedService",
    "properties": {
        "type": "AzureML",
        "typeProperties": {
            "mlEndpoint": "URL to Azure ML Predictive Web Service",
            "apiKey": {
                "type": "SecureString",
                "value": "api key"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Consultez l’article sur les services liés de calcul pour obtenir les descriptions des propriétés dans la définition JSON.

Machine Learning Studio (classique) prend à la fois en charge les services web classiques et les nouveaux services web pour votre expérience prédictive. Vous pouvez choisir celui qui vous convient à partir de votre espace de travail Data Factory ou Synapse. Pour obtenir les informations requises afin de créer le service lié Machine Learning Studio (classique), accédez à https://services.azureml.net, où tous vos (nouveaux) services web et les services web classiques sont répertoriés. Cliquez sur le service web auquel vous voulez accéder, puis cliquez sur la page Consommer. Copiez la clé primaire de la propriété apiKey, puis les requêtes de lots de la propriété mlEndpoint.

ML Studio (classic) Web Services

Activité Batch Execution ML Studio (classique)

L’extrait de code JSON suivant définit une activité d’exécution par lot ML Studio (classique). La définition de l’activité comporte une référence au service lié ML Studio (classique) que vous avez créé précédemment.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "<web service input name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path1"
            },
            "<web service input name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path2"
            }
        },
        "webServiceOutputs": {
            "<web service output name 1>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path3"
            },
            "<web service output name 2>": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"path4"
            }
        },
        "globalParameters": {
            "<Parameter 1 Name>": "<parameter value>",
            "<parameter 2 name>": "<parameter 2 value>"
        }
    }
}
Propriété Description Obligatoire
name Nom de l’activité dans le pipeline Oui
description Texte décrivant l’activité. Non
type Pour l'activité U-SQL de Data Lake Analytics, le type d'activité est AzureMLBatchExecution. Oui
linkedServiceName Services liés au service lié ML Studio (classique) Pour en savoir plus sur ce service lié, consultez l’article Services liés de calcul. Oui
webServiceInputs Paires clé/valeur, caractérisant les noms des entrées du service web ML Studio (classique). La clé doit correspondre aux paramètres d’entrée définis dans le service web ML Studio (classique) publié. La valeur est une paire de propriétés FilePath de services liés de stockage Azure spécifiant les emplacements d’objets blob d’entrée. Non
webServiceOutputs Paires clé/valeur caractérisant les noms des sorties du service web ML Studio (classique). La clé doit correspondre aux paramètres de sortie définis dans le service web ML (classique) publié. La valeur est une paire de propriétés FilePath de services liés de stockage Azure spécifiant les emplacements d’objets blob de sortie. Non
globalParameters Paires clé/valeur à passer au point de terminaison du service d’exécution par lot ML Studio (classique). Les clés doivent correspondre aux noms des paramètres de service web définis dans le service web ML Studio (classique) publié. Les valeurs sont passées dans la propriété GlobalParameters de la requête d’exécution par lot ML Studio (classique). Non

Scénario 1 : Expériences qui utilisent des entrées/sorties de service web qui font référence à des données dans Stockage Blob Azure

Dans ce scénario, le service web Machine Learning Studio (classique) effectue des prédictions à l’aide des données d’un fichier dans un stockage d’objets blob Azure et stocke les résultats des prédictions dans le stockage d’objets blob. Le code JSON suivant définit un pipeline avec une activité AzureMLBatchExecution. Les données d’entrée et de sortie dans le stockage d’objets blob Azure sont référencées à l’aide d’une paire LinkedName/FilePath. Dans l’exemple, le service lié des entrées et des sorties est différent. Vous pouvez utiliser des services liés différents pour chacune de vos entrées/sorties pour que le service puisse récupérer les bons fichiers et les envoyer au service web Machine Learning Studio (classique).

Important

Dans votre expérience ML Studio (classique), les ports et paramètres globaux de l’entrée et la sortie du service web ont des noms par défaut (« input1 », « input2 ») que vous pouvez personnaliser. Les noms que vous utilisez pour les paramètres globalParameters, webServiceOutputs et webServiceInputs doivent correspondre exactement aux noms utilisés dans les expériences. Vous pouvez afficher la charge utile de l’exemple de requête sur la page d’aide relative à l’exécution par lots pour votre point de terminaison ML Studio (classique) afin de vérifier le mappage attendu.

{
    "name": "AzureMLExecutionActivityTemplate",
    "description": "description",
    "type": "AzureMLBatchExecution",
    "linkedServiceName": {
        "referenceName": "AzureMLLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "webServiceInputs": {
            "input1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in1.csv"
            },
            "input2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService1",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest/input/in2.csv"
            }
        },
        "webServiceOutputs": {
            "outputName1": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out1.csv"
            },
            "outputName2": {
                "LinkedServiceName":{
                    "referenceName": "AzureStorageLinkedService2",
                    "type": "LinkedServiceReference"
                },
                "FilePath":"amltest2/output/out2.csv"
            }
        }
    }
}

Scénario 2 : Expériences qui utilisent des modules lecteur/enregistreur pour faire référence à des données dans différents stockages

Un autre scénario courant lors de la création d’expériences ML Studio (classique) consiste à utiliser des modules de données d’importation et de données de sortie. Le module de données d’importation permet de charger des données dans une expérience, tandis que le module de données de sortie sert à enregistrer les données issues de cette expérience. Pour plus d’informations sur les modules de données d’importation et de données de sortie, consultez les rubriques Données d’importation et Données de sortie sur MSDN Library.

Quand vous utilisez les modules de données d’importation et de données de sortie, il est conseillé d’utiliser un paramètre de service web pour chaque propriété de ces modules. Ces paramètres web permettent de configurer les valeurs pendant l’exécution. Par exemple, vous pouvez créer une expérience avec un module d’importation de données qui utilise une base de données Azure SQL Database : XXX.database.windows.net. Une fois le service web déployé, vous pouvez autoriser les consommateurs du service web à spécifier un autre serveur SQL logique appelé YYY.database.windows.net. Vous pouvez utiliser un paramètre de service web pour permettre à cette valeur d’être configurée.

Notes

L’entrée et la sortie du service web diffèrent des paramètres de service web. Dans le premier scénario, vous avez vu comment une entrée et une sortie peuvent être spécifiées pour un service web ML Studio (classique). Dans ce scénario, vous passez pour un service web des paramètres qui correspondent aux propriétés des modules de données d’importation/de sortie.

Examinons un scénario d’utilisation de paramètres de service web. Vous avez déployé un service web ML Studio (classique) qui utilise un module lecteur pour lire les données de l’une des sources de données prises en charge par ML Studio (classique) (par exemple : Azure SQL Database). Après l’exécution par lots, les résultats sont écrits à l’aide d’un module enregistreur (Azure SQL Database). Aucune entrée ou sortie de service web n’est définie dans les expériences. Dans ce cas, nous vous recommandons de configurer les paramètres de service web appropriés pour les modules lecteur et enregistreur. Cela permet la configuration des modules lecteur/enregistreur quand vous utilisez l’activité AzureMLBatchExecution. Spécifiez les paramètres de service web dans la section globalParameters du code JSON de l’activité comme suit.

"typeProperties": {
    "globalParameters": {
        "Database server name": "<myserver>.database.windows.net",
        "Database name": "<database>",
        "Server user account name": "<user name>",
        "Server user account password": "<password>"
    }
}

Notes

Les paramètres de service web respectent la casse ; veillez donc à ce que les noms que vous indiquez dans le script JSON de l'activité correspondent à ceux exposés par le service web.

Une fois que vous avez fini la reformation, mettez à jour le service web de notation (expérience prédictive exposée comme un service web) avec le modèle qui vient d’être formé à l’aide de l’Activité des ressources de mise à jour ML Studio (classique) . Consultez l’article Mise à jour des modèles à l’aide de l’activité des ressources de mise à jour pour plus d’informations.

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