Exécuter des charges de travail Azure Machine Learning avec Machine learning automatisé sur Apache Spark dans HDInsight

Azure Machine Learning simplifie et accélère la création, la formation et le déploiement de modèles Machine Learning. Dans Machine Learning automatisé (AutoML), vous commencez par les données de formation qui ont une fonctionnalité cible définie. Itérer des combinaisons de sélections d’algorithmes et de fonctionnalités sélectionne automatiquement le meilleur modèle pour vos données en fonction des résultats de formation. HDInsight permet aux clients d’approvisionner des clusters avec des centaines de nœuds. AutoML exécuté sur Spark dans un cluster HDInsight permet aux utilisateurs d’utiliser la capacité de calcul sur ces nœuds afin d’exécuter des travaux d’apprentissage de manière montée en puissance et d’exécuter plusieurs travaux d’apprentissage en parallèle. Cela permet aux utilisateurs d’exécuter des expériences AutoML tout en partageant le calcul avec leurs autres charges de travail Big Data.

Installer Azure Machine Learning sur un cluster HDInsight

Pour obtenir des didacticiels généraux sur Machine Learning automatisé, consultez le Didacticiel : Utiliser le Machine Learning automatisé pour générer votre modèle de régression. Tous les nouveaux clusters HDInsight-Spark sont préinstallés avec le Kit de développement logiciel (SDK) AzureML-AutoML.

Notes

Les packages Azure Machine Learning sont installés dans l’environnement conda Python3. Le notebook Jupyter Notebook installé doit être exécuté à l’aide du noyau PySpark3.

Vous pouvez utiliser des notebooks Zeppelin pour utiliser AutoML.

Authentification pour l’espace de travail

La création d’espace de travail et la soumission d’expérience nécessitent un jeton d’authentification. Ce jeton peut être généré à l’aide d’une application Microsoft Entra. Un utilisateur Microsoft Entra peut également générer le jeton d’authentification requis, si l’authentification multifacteur n’est pas activée sur le compte.

L’extrait de code suivant crée un jeton d’authentification à l’aide d’une application Microsoft Entra.

from azureml.core.authentication import ServicePrincipalAuthentication
auth_sp = ServicePrincipalAuthentication(
    tenant_id='<Azure Tenant ID>',
    service_principal_id='<Azure AD Application ID>',
    service_principal_password='<Azure AD Application Key>'
)

L’extrait de code suivant crée un jeton d’authentification à l’aide d’un utilisateur Microsoft Entra.

from azure.common.credentials import UserPassCredentials
credentials = UserPassCredentials('user@domain.com', 'my_smart_password')

Chargement de jeu de données

Machine learning automatisé sur Spark utilise des dataflows, qui sont des opérations immuables et évaluées de manière différée sur des données. Un dataflow peut charger un jeu de données à partir d’un objet blob avec accès en lecture public, ou à partir d’une URL d’objet blob avec un jeton SAP.

import azureml.dataprep as dprep

dataflow_public = dprep.read_csv(
    path='https://commonartifacts.blob.core.windows.net/automl/UCI_Adult_train.csv')

dataflow_with_token = dprep.read_csv(
    path='https://dpreptestfiles.blob.core.windows.net/testfiles/read_csv_duplicate_headers.csv?st=2018-06-15T23%3A01%3A42Z&se=2019-06-16T23%3A01%3A00Z&sp=r&sv=2017-04-17&sr=b&sig=ugQQCmeC2eBamm6ynM7wnI%2BI3TTDTM6z9RPKj4a%2FU6g%3D')

Vous pouvez également inscrire le magasin de données auprès de l’espace de travail à l’aide d’une inscription unique.

Soumission d’expérimentations

Dans la configuration de Machine Learning automatisé, la propriété spark_context doit être définie pour que le package s’exécute en mode distribué. La propriété concurrent_iterations, qui est le nombre maximal d’itérations exécutées en parallèle, doit avoir pour valeur un nombre inférieur aux cœurs d’exécuteur de l’application Spark.

Étapes suivantes