Tutoriel : prise en main d’un script Python dans Azure Machine Learning (SDK v1, partie 1 sur 3)
S’APPLIQUE À : SDK Python azureml v1
Dans ce tutoriel, vous allez exécuter votre premier script Python dans le cloud avec Azure Machine Learning. Ce tutoriel est la première partie d’une série de tutoriels en deux temps.
Ce tutoriel évite la complexité de l’apprentissage d’un modèle de Machine Learning. Vous exécuterez un script Python « Hello World » dans le cloud. Vous apprendrez comment un script de contrôle est utilisé pour configurer et créer une exécution dans Azure Machine Learning.
Ce didacticiel présente les procédures suivantes :
- Créer et exécuter un script Python « Hello World ».
- Créer un script de contrôle Python pour envoyer « Hello World » à Azure Machine Learning.
- Comprendre les concepts d’Azure Machine Learning en matière de script de contrôle.
- Soumettre et exécuter le script « Hello World ».
- Afficher le résultat de votre code dans le cloud.
Prérequis
- Effectuez Créer des ressources dont vous avez besoin pour démarrer afin de créer un espace de travail et de calculer l’instance à utiliser dans cette série de tutoriels.
-
- Créez un cluster de calcul basé sur le cloud. Nommez-le « cpu-cluster » afin qu’il corresponde au code de ce tutoriel.
Créer et exécuter un script Python
Ce tutoriel utilise l’instance de calcul comme ordinateur de développement. Commencez par créer quelques dossiers ainsi que le script :
- Connectez-vous au studio Azure Machine Learning, puis sélectionnez votre espace de travail si vous y êtes invité.
- Sur la gauche, sélectionnez Notebooks.
- Dans la barre d’outils Fichiers, sélectionnez + , puis Créer un dossier.
- Nommez le dossier get-started.
- À droite du nom du dossier, utilisez ... pour créer un autre dossier sous get-started.
- Nommez le nouveau dossier src. Utilisez le lien Modifier l’emplacement si l’emplacement du fichier n’est pas correct.
- À droite du dossier src, utilisez ... pour créer un fichier dans le dossier src.
- Nommez le fichier hello.py. Changez le Type de fichier en Python ( .py)*.
Copiez ce code dans votre fichier :
# src/hello.py
print("Hello world!")
La structure de dossiers du projet ressemble désormais à :
Tester votre script
Vous pouvez exécuter votre code localement, ce qui signifie dans le cas présent sur l’instance de calcul. L’exécution locale du code présente l’avantage de pouvoir déboguer le code en mode interactif.
Si vous avez arrêté l’instance de calcul, démarrez-la maintenant avec l’outil Démarrer le calcul situé à droite de la liste déroulante Calculer. Attendez environ une minute que l’état passe à Exécution en cours.
Sélectionnez Enregistrer et exécuter le script dans le terminal pour exécuter le script.
Vous verrez la sortie du script dans la fenêtre du terminal au moment où elle s’ouvre. Fermez l’onglet, puis sélectionnez Terminer pour fermer la session.
Créer un script de contrôle
Un script de contrôle vous permet d’exécuter votre script hello.py
sur différentes ressources de calcul. Vous utilisez le script de contrôle pour contrôler comment et où votre code de machine learning est exécuté.
Sélectionnez ... à la fin du dossier get-started pour créer un fichier. Créez un fichier Python appelé run-hello.py, puis copiez/collez le code suivant dans ce fichier :
# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig
ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')
config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')
run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)
Conseil
Si vous avez utilisé un autre nom quand vous avez créé le cluster de calcul, veillez à modifier également ce nom dans le code compute_target='cpu-cluster'
.
Comprendre le code
Voici une description du fonctionnement du script de contrôle :
ws = Workspace.from_config()
L’espace de travail se connecte à votre espace de travail Azure Machine Learning, afin que vous puissiez communiquer avec vos ressources Azure Machine Learning.
experiment = Experiment( ... )
L’expérience offre un moyen simple d’organiser plusieurs travaux sous un nom unique. Plus tard, vous pourrez voir comment les expériences facilitent la comparaison des mesures entre des dizaines de travaux.
config = ScriptRunConfig( ... )
ScriptRunConfig encapsule votre code hello.py
et le transmet à votre espace de travail. Comme son nom l’indique, vous pouvez utiliser cette classe pour configurer la manière dont vous souhaitez que votre scripts’exécute dans Azure Machine Learning. Il spécifie également la cible de calcul sur laquelle le script s’exécute. Dans ce code, la cible est le cluster de calcul que vous avez créé dans le tutoriel de configuration.
run = experiment.submit(config)
Soumet votre script. Cette soumission est appelée une exécution. Dans la v2, il a été renommé en travail. Une exécution/un travail encapsule une seule exécution de votre code. Utilisez un travail pour surveiller la progression du script, capturer la sortie, analyser les résultats, visualiser les métriques, etc.
aml_url = run.get_portal_url()
L’objet run
fournit un handle sur l’exécution de votre code. Surveillez la progression depuis le Azure Machine Learning studio avec l’URL affichée par le script Python.
Soumettre et exécuter votre code dans le cloud
Sélectionnez Enregistrer et exécuter le script dans le terminal pour exécuter le script de contrôle, qui à son tour exécute
hello.py
sur le cluster de calcul que vous avez créé dans le tutoriel de configuration.Dans le terminal, vous pouvez être invité à vous connecter pour vous authentifier. Copiez le code et suivez le lien pour effectuer cette étape.
Une fois que vous serez authentifié, vous verrez un lien dans le terminal. Sélectionnez le lien pour afficher le travail.
Superviser votre code dans le cloud à partir du studio
La sortie de votre script contient un lien vers le studio, il se présente comme ceci : https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>
.
Suivez le lien. Dans un premier temps, vous pouvez voir l’état En file d’attente ou Préparation en cours. La première exécution prend 5 à 10 minutes. Ceci est dû aux événements suivants :
- Une image Docker est créée dans le cloud
- Le cluster de calcul repasse de 0 à 1 nœud
- L’image Docker est téléchargée dans le calcul.
Les travaux suivants sont plus rapides (environ 15 secondes), car l’image Docker est mise en cache sur la ressource de calcul. Vous pouvez effectuer un test en renvoyant le code ci-dessous une fois le premier travail terminé.
Attendez environ 10 minutes. Vous pouvez voir un message indiquant que le travail a été effectué. Utilisez ensuite Actualiser pour voir l’état passer à Effectué. Une fois le travail terminé, accédez à l’onglet Sorties + journaux. Vous pouvez voir un fichier std_log.txt
dans le dossier user_logs
. La sortie de votre script se trouve dans ce fichier.
Les dossiers azureml-logs
et system-logs
contiennent des fichiers pouvant être utiles lors du débogage des travaux distants dans le cloud.
Étape suivante
Dans ce didacticiel, vous avez pris un script « Hello World » simple et l’avez exécuté sur Azure. Vous avez vu comment vous connecter à votre espace de travail Azure Machine Learning, comment créer une expérience et comment soumettre votre code hello.py
dans le cloud.
Dans le tutoriel suivant, vous allez développer ces apprentissages en exécutant un nom plus intéressant que print("Hello world!")
.
Notes
Si vous voulez arrêter la série de tutoriels ici sans passer à l’étape suivante, n’oubliez pas de nettoyer vos ressources.