Exécuter un travail R pour entraîner un modèle
S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)
Cet article explique comment utiliser le script R que vous avez adapté pour s’exécuter en production et configurez-le pour l’exécuter en tant que travail R à l’aide d’Azure Machine Learning CLI V2.
Notes
Bien que le titre de cet article fasse référence à l’entraînement d’un modèle, vous pouvez exécuter n’importe quel type de script R tant qu’il répond aux exigences répertoriées dans l’article d’adaptation.
Prérequis
- Un espace de travail Azure Machine Learning.
- Ressource de données inscrite que votre travail de formation utilise.
- Azure CLI et l’extension ml installés. Vous pouvez également utiliser une instance de calcul dans votre espace de travail sur lequel l’interface CLI est préinstallée.
- Cluster de calcul ou instance de calcul pour exécuter votre travail d’entraînement.
- Environnement R que le cluster de calcul doit utiliser pour exécuter le travail.
Créer un dossier avec cette structure
Créez cette structure de dossiers pour votre projet :
📁 r-job-azureml
├─ src
│ ├─ azureml_utils.R
│ ├─ r-source.R
├─ job.yml
Important
Tout le code source passe dans le répertoire src
.
- Le fichier r-source.R est le script R que vous avez adapté pour exécuter en production. Veillez à suivre les étapes pour générer et journaliser votre modèle dans ce script.
- Le fichier Azureml_utils.R est nécessaire. Utilisez ce code source pour le contenu du fichier.
Préparer le YAML de travail
Azure Machine Learning CLI v2 a différents schémas YAML pour différentes opérations. Vous utilisez le schéma YAML de la tâche pour envoyer une tâche dans le fichier job.yml qui fait partie de ce projet.
Vous devez collecter des informations spécifiques à placer dans le YAML :
- Nom de la ressource de données inscrite que vous utilisez comme entrée de données (avec version) :
azureml:<REGISTERED-DATA-ASSET>:<VERSION>
- Nom de l’environnement que vous avez créé (avec version) :
azureml:<R-ENVIRONMENT-NAME>:<VERSION>
- Nom du cluster de calcul :
azureml:<COMPUTE-CLUSTER-NAME>
Conseil
Pour les artefacts Azure Machine Learning qui nécessitent des versions (ressources de données, environnements), vous pouvez utiliser l’URI de raccourci azureml:<AZUREML-ASSET>@latest
pour obtenir la dernière version de cet artefact si vous n’avez pas besoin de définir une version spécifique.
Exemple de schéma YAML pour envoyer un travail
Modifiez le fichier job.yml pour qu’il contienne ce qui suit. Veillez à remplacer les valeurs affichées <IN-BRACKETS-AND-CAPS>
et à supprimer les crochets.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# the Rscript command goes in the command key below. Here you also specify
# which parameters are passed into the R script and can reference the input
# keys and values further below
# Modify any value shown below <IN-BRACKETS-AND-CAPS> (remove the brackets)
command: >
Rscript <NAME-OF-R-SCRIPT>.R
--data_file ${{inputs.datafile}}
--other_input_parameter ${{inputs.other}}
code: src # this is the code directory
inputs:
datafile: # this is a registered data asset
type: uri_file
path: azureml:<REGISTERED-DATA-ASSET>@latest
other: 1 # this is a sample parameter, which is the number 1 (as text)
environment: azureml:<R-ENVIRONMENT-NAME>@latest
compute: azureml:<COMPUTE-CLUSTER-OR-INSTANCE-NAME>
experiment_name: <NAME-OF-EXPERIMENT>
description: <DESCRIPTION>
Envoi du travail
Dans les commandes suivantes de cette section, il vous faudra peut-être connaître :
- Nom de l’espace de travail Azure Machine Learning
- Le nom du groupe de ressources où l’espace de travail se situe
- L’abonnement où l’espace de travail se situe
Vous trouvez ces valeurs dans Azure Machine Learning studio :
- Connectez-vous et ouvrez votre espace de travail.
- Dans la barre d’outils supérieure droite d’Azure Machine Learning Studio, sélectionnez le nom de votre espace de travail.
- Vous pouvez copier les valeurs de la section qui s’affiche.
Pour envoyer le travail, exécutez les commandes suivantes dans une fenêtre de terminal :
Remplacez les répertoires dans le
r-job-azureml
.cd r-job-azureml
Connectez-vous à Azure. Si vous effectuez cette opération à partir d’une instance de calcul Azure Machine Learning, utilisez :
az login --identity
Si vous n’êtes pas sur l’instance de calcul, omettez
--identity
et suivez l’invite pour ouvrir une fenêtre de navigateur et vous authentifier.Vérifiez que vous disposez des versions les plus récentes de l’interface CLI et de l’extension
ml
:az upgrade
Si vous avez plusieurs abonnements Azure, définissez l’abonnement actif sur celui que vous utilisez pour votre espace de travail. (Vous pouvez ignorer cette étape si vous n’avez accès qu’à un abonnement unique.) Remplacez
<SUBSCRIPTION-NAME>
par le nom de votre abonnement. Supprimez également les crochets<>
.az account set --subscription "<SUBSCRIPTION-NAME>"
Utilisez maintenant l’interface CLI pour envoyer le travail. Si vous effectuez cette opération sur une instance de calcul dans votre espace de travail, vous pouvez utiliser des variables d’environnement pour le nom de l’espace de travail et le groupe de ressources, comme indiqué dans le code suivant. Si vous n’êtes pas sur une instance de calcul, remplacez ces valeurs par le nom et le groupe de ressources de votre espace de travail.
az ml job create -f job.yml --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
Une fois que vous avez envoyé le travail, vous pouvez vérifier l’état et les résultats dans Studio :
- Connectez-vous à Azure Machine Learning Studio.
- Sélectionnez votre espace de travail s’il n’est pas déjà chargé.
- Dans le volet de navigation gauche, sélectionnez Travaux.
- Sélectionnez le nom de l’expérience que vous avez utilisé pour entraîner votre modèle.
- Sélectionnez le nom d’affichage du travail pour afficher les détails et les artefacts du travail, y compris les métriques, les images, les travaux enfants, les sorties, les journaux et le code utilisés dans le travail.
Inscrire le modèle
Enfin, une fois le travail d’entraînement terminé, inscrivez votre modèle si vous souhaitez le déployer. Démarrez dans le studio à partir de la page affichant les détails de votre travail.
Une fois votre travail terminé, sélectionnez Sorties + journaux pour afficher les sorties du travail.
Ouvrez le dossier modèles pour vérifier que crate.bin et MLmodel sont présents. Si ce n’est pas le cas, case activée les journaux pour voir s’il y a eu une erreur.
Dans la barre d’outils en haut, sélectionnez + Inscrire le modèle.
N’utilisez pas le type de modèle MLflow, même s’il est détecté. Remplacez le type de modèle MLflow par défaut par Type non spécifié. Le laisser comme MLflow entraînera une erreur.
Pour Sortie du travail, sélectionnez modèles, le dossier qui contient le modèle.
Sélectionnez Suivant.
Indiquez le nom que vous souhaitez utiliser pour votre modèle. Ajoutez une description, une version et des balises si vous le souhaitez.
Sélectionnez Suivant.
Passez en revue les informations.
Sélectionnez Inscription.
En haut de la page, vous verrez une confirmation que le modèle est inscrit. La confirmation ressemble à ceci :
Sélectionnez Cliquez ici pour accéder à ce modèle. si vous souhaitez afficher les détails du modèle inscrit.
Étapes suivantes
Maintenant que vous disposez d’un modèle inscrit, découvrez Comment déployer un modèle R sur un point de terminaison (en temps réel) en ligne.