Créer et gérer une instance de calcul Azure Machine Learning avec CLI v1

S’APPLIQUE À :extension Azure CLI ml v1Kit de développement logiciel (SDK) Python azureml v1

Découvrez comment créer et gérer une instance de calcul dans votre espace de travail Azure Machine Learning avec CLI v1.

Utilisez une instance de calcul comme environnement de développement complètement configuré et managé dans le cloud. Pour le développement et le test, vous pouvez également utiliser l’instance en tant que cible de calcul d’entraînement ou pour une cible d’inférence. Une instance de calcul peut exécuter plusieurs travaux en parallèle et dispose d’une file d’attente de travaux. Parce qu’il s’agit d’un environnement de développement, une instance de calcul ne peut pas être partagée avec d’autres utilisateurs dans votre espace de travail.

Les instances de calcul peuvent exécuter des travaux en toute sécurité dans un environnement de réseau virtuel, sans qu’il soit nécessaire pour les entreprises d’ouvrir des ports SSH. Le travail s’exécute dans un environnement conteneurisé et empaquette les dépendances de votre modèle dans un conteneur Docker.

Dans cet article, vous apprendrez comment :

  • Créer une instance de calcul
  • Gérer (démarrer, arrêter, redémarrer, supprimer) une instance de calcul

Notes

Cet article explique uniquement comment effectuer ces tâches à l’aide de l’interface CLI v1. Pour obtenir des méthodes plus récentes de gestion d’une instance de calcul, consultez Créer un cluster de calcul Azure Machine Learning.

Prérequis

Créer

Important

Les éléments marqués (préversion) ci-dessous sont actuellement en préversion publique. La préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail en production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Durée estimée : 5 minutes environ.

La création d’une instance de calcul est un processus unique pour votre espace de travail. Vous pouvez réutiliser le calcul en tant que station de travail de développement ou en tant que cible de calcul pour l’entraînement. Plusieurs instances de calcul peuvent être attachées à votre espace de travail.

Le quota de cœurs dédiés par région par famille de machine virtuelle et le quota régional total, qui s’appliquent à la création d’une instance de calcul, sont unifiés et partagés avec le quota de clusters de calcul d’entraînement Azure Machine Learning. L’arrêt de l’instance de calcul ne libère pas le quota pour vous permettre de la redémarrer. Vous ne pouvez pas changer la taille de machine virtuelle de l’instance de calcul après sa création.

L’exemple suivant montre comment créer une instance de calcul :

S’APPLIQUE À : SDK Python azureml v1

import datetime
import time

from azureml.core.compute import ComputeTarget, ComputeInstance
from azureml.core.compute_target import ComputeTargetException

# Choose a name for your instance
# Compute instance name should be unique across the azure region
compute_name = "ci{}".format(ws._workspace_id)[:10]

# Verify that instance does not exist already
try:
    instance = ComputeInstance(workspace=ws, name=compute_name)
    print('Found existing instance, use it.')
except ComputeTargetException:
    compute_config = ComputeInstance.provisioning_configuration(
        vm_size='STANDARD_D3_V2',
        ssh_public_access=False,
        # vnet_resourcegroup_name='<my-resource-group>',
        # vnet_name='<my-vnet-name>',
        # subnet_name='default',
        # admin_user_ssh_public_key='<my-sshkey>'
    )
    instance = ComputeInstance.create(ws, compute_name, compute_config)
    instance.wait_for_completion(show_output=True)

Pour plus d’informations sur les classes, les méthodes et les paramètres utilisés dans cet exemple, consultez les documents de référence suivants :

Gérer

Démarrez, arrêtez, redémarrez et supprimez une instance de calcul. Comme une instance de calcul ne fait pas automatiquement de scale-down, veillez à arrêter la ressource pour éviter les frais courants. L’arrêt d’une instance de calcul a pour effet de la libérer. Ensuite, redémarrez-la quand vous en avez besoin. Si l’arrêt de l’instance de calcul met fin à la facturation des heures de calcul, vous êtes encore facturé pour le disque, l’IP publique et l’équilibreur de charge standard.

Conseil

L’instance de calcul a un disque de système d’exploitation de 120 Go. Si vous ne disposez pas de suffisamment d’espace disque, utilisez le terminal pour effacer au moins 1 à 2 Go avant d’arrêter ou redémarrer l’instance de calcul. N’arrêtez pas l’instance de calcul en émettant la commande sudo shutdown depuis le terminal. La taille du disque temporaire sur l’instance de calcul dépend de la taille de machine virtuelle choisie et est montée sur/mnt.

S’APPLIQUE À : SDK Python azureml v1

Dans les exemples ci-dessous, le nom de l’instance de calcul est instance.

  • Obtenir l’état

    # get_status() gets the latest status of the ComputeInstance target
    instance.get_status()
    
  • Arrêter

    # stop() is used to stop the ComputeInstance
    # Stopping ComputeInstance will stop the billing meter and persist the state on the disk.
    # Available Quota will not be changed with this operation.
    instance.stop(wait_for_completion=True, show_output=True)
    
  • Démarrer

    # start() is used to start the ComputeInstance if it is in stopped state
    instance.start(wait_for_completion=True, show_output=True)
    
  • Redémarrer

    # restart() is used to restart the ComputeInstance
    instance.restart(wait_for_completion=True, show_output=True)
    
  • Supprimer

    # delete() is used to delete the ComputeInstance target. Useful if you want to re-use the compute name
    instance.delete(wait_for_completion=True, show_output=True)
    

Le contrôle d'accès en fonction du rôle Azure (Azure RBAC) vous permet de contrôler les utilisateurs de l'espace de travail qui peuvent créer, supprimer, démarrer ou arrêter une instance de calcul. Tous les utilisateurs ayant les rôles Contributeur et Propriétaire dans l’espace de travail sont autorisés à créer, supprimer, démarrer, arrêter et redémarrer des instances de calcul dans tout l’espace de travail. Toutefois, seul le créateur d’une instance de calcul spécifique, ou l’utilisateur affecté si elle a été créée en son nom, est autorisé à accéder à Jupyter, JupyterLab, RStudio et Posit Workbench (anciennement RStudio Workbench) et sur cette instance de calcul. Une instance de calcul est dédiée à un seul utilisateur qui a un accès racine. Cet utilisateur a accès à Jupyter/JupyterLab/RStudio/Posit Workbench s’exécutant sur l’instance. L’instance de calcul utilise une connexion utilisateur unique et toutes les actions utilisent l’identité de cet utilisateur pour le contrôle d’accès en fonction du rôle Azure (RBAC) et l’attribution des exécutions d’expériences. L’accès SSH est contrôlé par le biais d’un mécanisme de clé publique/privée.

Ces actions peuvent être contrôlées par Azure RBAC :

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/delete
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

Pour créer une instance de calcul, vous avez besoin d’autorisations pour les actions suivantes :

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

Étapes suivantes