Partager via


RunConfiguration Classe

Représente la configuration des exécutions d’expériences ciblant différentes cibles de calcul dans Azure Machine Learning.

L’objet RunConfiguration encapsule les informations nécessaires pour soumettre une exécution d’entraînement dans une expérience. En règle générale, vous ne créez pas directement un objet RunConfiguration, mais obtenez-en un à partir d’une méthode qui la retourne, telle que la submit méthode de la Experiment classe.

RunConfiguration est une configuration d’environnement de base qui est également utilisée dans d’autres types d’étapes de configuration qui dépendent du type d’exécution que vous déclenchez. Par exemple, lors de la configuration d’un PythonScriptStep, vous pouvez accéder à l’objet RunConfiguration de l’étape et configurer les dépendances Conda ou accéder aux propriétés d’environnement pour l’exécution.

Pour obtenir des exemples de configurations d’exécution, consultez Sélectionner et utiliser une cible de calcul pour entraîner votre modèle.

Initialisez une RunConfiguration avec les paramètres par défaut.

Constructeur

RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)

Paramètres

Nom Description
script
str

Chemin d’accès relatif au fichier de script Python. Le chemin d’accès au fichier est relatif au répertoire source passé à submit.

Valeur par défaut: None
arguments

Arguments de ligne de commande pour le fichier de script Python.

Valeur par défaut: None
framework
str

Framework ciblé utilisé dans l’exécution. Les frameworks pris en charge sont Python, PySpark, TensorFlow et PyTorch.

Valeur par défaut: None
communicator
str

Communicator utilisé dans l’exécution. Les communicators pris en charge sont None, ParameterServer, OpenMpi et IntelMpi. N’oubliez pas que OpenMpi nécessite une image personnalisée avec OpenMpi installé. Utilisez ParameterServer ou OpenMpi pour les clusters AmlCompute. Utilisez IntelMpi pour les travaux d’entraînement distribués.

Valeur par défaut: None
conda_dependencies

Lorsqu’il est laissé à la valeur par défaut de False, le système crée un environnement Python, qui inclut les packages spécifiés dans conda_dependencies. Lorsque la valeur est true, un environnement Python existant peut être spécifié avec le paramètre python_interpreter.

Valeur par défaut: None
auto_prepare_environment
Obligatoire

OBSOLESCENT. Ce paramètre n’est plus utilisé.

command
list[str] ou str

Commande à envoyer pour l’exécution. La propriété de commande peut également être utilisée au lieu de script/arguments. Les propriétés de commande et de script/argument ne peuvent pas être utilisées ensemble pour envoyer une exécution. Pour envoyer un fichier de script à l’aide de la propriété de commande - ['python', 'train.py', '–arg1', arg1_val] Pour exécuter une commande réelle - ['ls']

Valeur par défaut: None
_history_enabled
Valeur par défaut: None
_path
Valeur par défaut: None
_name
Valeur par défaut: None

Remarques

Nous créons généralement des systèmes Machine Learning pour résoudre un problème spécifique. Par exemple, nous pourrions être intéressés par la recherche du meilleur modèle qui classe les pages web qui peuvent être servies en tant que résultats de recherche correspondant à une requête. Notre recherche pour le meilleur modèle Machine Learning peut nous obliger à tester différents algorithmes, ou à prendre en compte différents paramètres, etc.

Dans le Kit de développement logiciel (SDK) Azure Machine Learning, nous utilisons le concept d’une expérience pour capturer la notion selon laquelle différentes exécutions d’entraînement sont liées par le problème qu’ils tentent de résoudre. Il Experiment agit ensuite comme un conteneur logique pour ces exécutions d’entraînement, ce qui facilite le suivi de la progression entre les exécutions d’entraînement, comparez deux exécutions d’entraînement directement, etc.

RunConfiguration encapsule les paramètres d’environnement d’exécution nécessaires pour soumettre une exécution d’entraînement dans une expérience. Il capture à la fois la structure partagée des exécutions d’entraînement conçues pour résoudre le même problème d’apprentissage automatique, ainsi que les différences dans les paramètres de configuration (par exemple, taux d’apprentissage, fonction de perte, etc.) qui distinguent les exécutions d’entraînement distinctes les unes des autres.

Dans les scénarios d’apprentissage classiques, RunConfiguration est utilisé en créant un objet qui regroupe un ScriptRunConfig objet RunConfiguration et un script d’exécution pour l’entraînement.

La configuration de RunConfiguration inclut :

  • Regroupement du répertoire source de l’expérience, y compris le script soumis.

  • Définition des arguments de ligne de commande pour le script soumis.

  • Configuration du chemin d’accès de l’interpréteur Python.

  • Obtenez la configuration Conda pour gérer les dépendances d’application. Le processus de soumission de travaux peut utiliser la configuration pour provisionner un environnement Conda temporaire et lancer l’application. Les environnements temporaires sont mis en cache et réutilisés dans les exécutions suivantes.

  • Utilisation facultative des images de base Docker et personnalisées.

  • Choix facultatif de soumettre l’expérience à plusieurs types de calcul Azure.

  • Choix facultatif de configuration de la façon de matérialiser les entrées et de charger des sorties.

  • Paramètres d’exécution avancés pour les runtimes courants tels que spark et tensorflow.

L’exemple suivant montre comment envoyer un script d’entraînement sur votre ordinateur local.


   from azureml.core import ScriptRunConfig, RunConfiguration, Experiment

   # create or load an experiment
   experiment = Experiment(workspace, "MyExperiment")
   # run a trial from the train.py code in your current directory
   config = ScriptRunConfig(source_directory='.', script='train.py',
       run_config=RunConfiguration())
   run = experiment.submit(config)

L’exemple suivant montre comment envoyer un script d’entraînement sur votre cluster à l’aide de la propriété de commande au lieu de script et d’arguments.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['python', 'train.py', '--arg1', arg1_val],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

L’exemple suivant montre comment exécuter une commande sur votre cluster.


   from azureml.core import ScriptRunConfig, Experiment
   # create or load an experiment
   experiment = Experiment(workspace, 'MyExperiment')
   # create or retrieve a compute target
   cluster = workspace.compute_targets['MyCluster']
   # create or retrieve an environment
   env = Environment.get(ws, name='MyEnvironment')
   # configure and submit your training run
   config = ScriptRunConfig(source_directory='.',
                            command=['ls', '-l'],
                            compute_target=cluster,
                            environment=env)
   script_run = experiment.submit(config)

Variables

Nom Description
environment

Définition de l’environnement. Ce champ configure l’environnement Python. Il peut être configuré pour utiliser un environnement Python existant ou configurer pour configurer un environnement temporaire pour l’expérience. La définition est également responsable de la définition des dépendances d’application requises.

max_run_duration_seconds
int

Durée maximale autorisée pour l’exécution. Le système tente d’annuler automatiquement l’exécution s’il a fallu plus de temps que cette valeur.

node_count
int

Nombre de nœuds à dédier au travail.

priority
int

Priorité du travail pour la stratégie de planification.

history

Section de configuration utilisée pour désactiver et activer les fonctionnalités de journalisation de l’historique des expériences.

spark

Lorsque la plateforme est définie sur PySpark, la section de configuration Spark est utilisée pour définir le SparkConf par défaut pour le travail soumis.

hdi

La section de configuration HDI prend effet uniquement lorsque la cible est définie sur un calcul Azure HDI. La configuration HDI est utilisée pour définir le mode de déploiement YARN. Le mode de déploiement par défaut est cluster.

docker

La section de configuration Docker est utilisée pour définir des variables pour l’environnement Docker.

tensorflow

Section de configuration utilisée pour configurer les paramètres TensorFlow distribués. Ce paramètre prend effet uniquement lorsque le framework paramètre est défini sur TensorFlow et sur communicator ParameterServer. AmlCompute est le seul calcul pris en charge pour cette configuration.

mpi

Section de configuration utilisée pour configurer les paramètres de travail MPI distribués. Ce paramètre prend effet uniquement lorsque le framework paramètre est défini sur Python et sur communicator OpenMpi ou IntelMpi. AmlCompute est le seul type de calcul pris en charge pour cette configuration.

pytorch

Section de configuration utilisée pour configurer les paramètres de travail PyTorch distribués. Ce paramètre prend effet uniquement lorsque le framework paramètre est défini sur PyTorch et sur communicator Nccl ou Gloo. AmlCompute est le seul type de calcul pris en charge pour cette configuration.

paralleltask

Section de configuration utilisée pour configurer les paramètres de travail paralleltask distribués. Ce paramètre prend effet uniquement lorsque le framework paramètre est défini sur Python et sur communicator ParallelTask. AmlCompute est le seul type de calcul pris en charge pour cette configuration.

data_references

Toutes les sources de données sont disponibles pour l’exécution pendant l’exécution en fonction de chaque configuration. Pour chaque élément du dictionnaire, la clé est un nom donné à la source de données et la valeur est DataReferenceConfiguration.

data

Toutes les données à mettre à la disposition de l’exécution pendant l’exécution.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Toutes les données permettant de rendre le datacache disponible pour l’exécution pendant l’exécution.

output_data

Toutes les sorties qui doivent être chargées et suivies pour cette exécution.

source_directory_data_store
str

Magasin de données de stockage pour le partage de projet.

amlcompute

Détails de la cible de calcul à créer pendant l’expérience. La configuration prend effet uniquement lorsque la cible de calcul est AmlCompute.

kubernetescompute

Détails de la cible de calcul à utiliser pendant l’expérience. La configuration prend effet uniquement lorsque la cible de calcul est KubernetesCompute.

services

Points de terminaison interactifs avec la ressource de calcul. Les points de terminaison autorisés sont Jupyter, JupyterLab, VS Code, Tensorboard, SSH et les ports personnalisés.

Méthodes

delete

Supprimez un fichier de configuration d’exécution.

Déclenche une UserErrorException erreur si le fichier de configuration est introuvable.

load

Chargez un fichier de configuration d’exécution enregistré précédemment à partir d’un fichier sur disque.

Si path elle pointe vers un fichier, RunConfiguration est chargée à partir de ce fichier.

Si path pointe vers un répertoire, qui doit être un répertoire de projet, runConfiguration est chargé à partir du <chemin>/.azureml/<name> ou <path>/aml_config/<name>.

save

Enregistrez RunConfiguration dans un fichier sur le disque.

A UserErrorException est déclenché lorsque :

  • RunConfiguration ne peut pas être enregistré avec le nom spécifié.

  • Aucun paramètre n’a name été spécifié.

  • Le path paramètre n’est pas valide.

S’il path s’agit du format <dir_path>/<file_name>, où <dir_path> est un répertoire valide, runConfiguration est enregistré à <dir_path>/<file_name>.

Si path elle pointe vers un répertoire, qui doit être un répertoire de projet, runConfiguration est enregistrée à l’adresse <path>/.azureml/<name> ou <path>/aml_config/<name>.

Cette méthode est utile lors de la modification manuelle de la configuration ou lors du partage de la configuration avec l’interface CLI.

delete

Supprimez un fichier de configuration d’exécution.

Déclenche une UserErrorException erreur si le fichier de configuration est introuvable.

static delete(path, name)

Paramètres

Nom Description
path
Obligatoire
str

Répertoire racine sélectionné par l’utilisateur pour les configurations d’exécution. En règle générale, il s’agit du dépôt Git ou du répertoire racine du projet Python. La configuration est supprimée d’un sous-répertoire nommé .azureml.

name
Obligatoire
str

Nom du fichier de configuration.

Exceptions

Type Description
UserErrorException

load

Chargez un fichier de configuration d’exécution enregistré précédemment à partir d’un fichier sur disque.

Si path elle pointe vers un fichier, RunConfiguration est chargée à partir de ce fichier.

Si path pointe vers un répertoire, qui doit être un répertoire de projet, runConfiguration est chargé à partir du <chemin>/.azureml/<name> ou <path>/aml_config/<name>.

static load(path, name=None)

Paramètres

Nom Description
path
Obligatoire
str

Répertoire racine sélectionné par l’utilisateur pour les configurations d’exécution. En règle générale, il s’agit du dépôt Git ou du répertoire racine du projet Python. Pour une compatibilité descendante, la configuration sera également chargée à partir de .azureml ou de aml_config sous-répertoire. Si le fichier n’est pas dans ces répertoires, le fichier est chargé à partir du chemin d’accès spécifié.

name
str

Nom du fichier de configuration.

Valeur par défaut: None

Retours

Type Description

Objet de configuration d’exécution.

save

Enregistrez RunConfiguration dans un fichier sur le disque.

A UserErrorException est déclenché lorsque :

  • RunConfiguration ne peut pas être enregistré avec le nom spécifié.

  • Aucun paramètre n’a name été spécifié.

  • Le path paramètre n’est pas valide.

S’il path s’agit du format <dir_path>/<file_name>, où <dir_path> est un répertoire valide, runConfiguration est enregistré à <dir_path>/<file_name>.

Si path elle pointe vers un répertoire, qui doit être un répertoire de projet, runConfiguration est enregistrée à l’adresse <path>/.azureml/<name> ou <path>/aml_config/<name>.

Cette méthode est utile lors de la modification manuelle de la configuration ou lors du partage de la configuration avec l’interface CLI.

save(path=None, name=None, separate_environment_yaml=False)

Paramètres

Nom Description
separate_environment_yaml

Indique s’il faut enregistrer la configuration de l’environnement Conda. Si la valeur est True, la configuration de l’environnement Conda est enregistrée dans un fichier YAML nommé « environment.yml ».

Valeur par défaut: False
path
str

Répertoire racine sélectionné par l’utilisateur pour les configurations d’exécution. En règle générale, il s’agit du dépôt Git ou du répertoire racine du projet Python. La configuration est enregistrée dans un sous-répertoire nommé .azureml.

Valeur par défaut: None
name
str

[Obligatoire] Nom du fichier de configuration.

Valeur par défaut: None

Retours

Type Description

Attributs

auto_prepare_environment

Obtenez le auto_prepare_environment paramètre. Il s’agit d’un paramètre déconseillé et inutilisé.

environment_variables

Variables d’environnement d’exécution.

Retours

Type Description

Variables d’exécution

target

Obtenir la cible de calcul où le travail est planifié pour l’exécution.

La cible par défaut est « locale » faisant référence à l’ordinateur local. Vous trouverez des cibles de calcul cloud disponibles à l’aide de la fonction compute_targets.

Retours

Type Description
str

Nom de la cible