Exécuter un travail R pour entraîner un modèle

S’APPLIQUE À :Extension Azure ML 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

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 :

  1. Connectez-vous et ouvrez votre espace de travail.
  2. Dans la barre d’outils supérieure droite d’Azure Machine Learning Studio, sélectionnez le nom de votre espace de travail.
  3. Vous pouvez copier les valeurs de la section qui s’affiche.

Capture d’écran : Recherchez les valeurs à utiliser dans votre commande CLI.

Pour envoyer le travail, exécutez les commandes suivantes dans une fenêtre de terminal :

  1. Remplacez les répertoires dans le r-job-azureml.

    cd r-job-azureml
    
  2. 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.

  3. Vérifiez que vous disposez des versions les plus récentes de l’interface CLI et de l’extension ml :

    az upgrade
    
  4. 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>"
    
  5. 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 :

  1. Connectez-vous à Azure Machine Learning Studio.
  2. Sélectionnez votre espace de travail s’il n’est pas déjà chargé.
  3. Dans le volet de navigation gauche, sélectionnez Travaux.
  4. Sélectionnez le nom de l’expérience que vous avez utilisé pour entraîner votre modèle.
  5. 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.

  1. Une fois votre travail terminé, sélectionnez Sorties + journaux pour afficher les sorties du travail.

  2. 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.

  3. Dans la barre d’outils en haut, sélectionnez + Inscrire le modèle.

    Capture d’écran montrant la section Travail de Studio avec la section Sorties ouverte.

  4. N’utilisez pas le type de modèle MLflow, même s’il est détecté. Remplacez le type de modèleMLflow par défaut par Type non spécifié. Le laisser comme MLflow entraînera une erreur.

  5. Pour Sortie du travail, sélectionnez modèles, le dossier qui contient le modèle.

  6. Sélectionnez Suivant.

  7. Indiquez le nom que vous souhaitez utiliser pour votre modèle. Ajoutez une description, une version et des balises si vous le souhaitez.

  8. Sélectionnez Suivant.

  9. Passez en revue les informations.

  10. Sélectionnez Inscription.

En haut de la page, vous verrez une confirmation que le modèle est inscrit. La confirmation ressemble à ceci :

Capture d'écran montrant un exemple d’inscription réussie.

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.