RunConfiguration Classe

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

L’objet RunConfiguration encapsule les informations nécessaires pour soumettre une exécution de formation dans une expérience. En général, vous ne créez pas d’objet RunConfiguration directement. Vous l’obtenez à partir d’une méthode qui le renvoie, comme la méthode submit de la classe Experiment.

RunConfiguration est une configuration d’environnement de base, é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, lorsque vous configurez une étape PythonScriptStep, vous pouvez accéder à l’objet RunConfiguration de l’étape, et configurer des dépendances Conda ou accéder aux propriétés d’environnement de l’exécution.

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

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

Héritage
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElement
RunConfiguration

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 du fichier est relatif au répertoire source transmis à 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 cible utilisé dans l’exécution. Les frameworks Python, PySpark, TensorFlow et PyTorch sont pris en charge.

Valeur par défaut: None
communicator
str

Communicator utilisé dans l’exécution. Les communicators None, ParameterServer, OpenMpi et IntelMpi sont pris en charge. Gardez à l’esprit que OpenMpi requiert une image personnalisée avec OpenMpi installé. Utilise ParameterServer ou OpenMpi pour les clusters AmlCompute. Utilise IntelMpi pour les travaux de formation distribués.

Valeur par défaut: None
conda_dependencies

Lorsque la valeur par défaut False est définie, le système crée un environnement Python, qui comprend les packages spécifiés dans conda_dependencies. Lorsque la valeur est définie sur True, un environnement Python existant peut être spécifié avec le paramètre python_interpreter.

Valeur par défaut: None
auto_prepare_environment
Obligatoire

DÉPRÉCIÉ. Ce paramètre n’est plus utilisé.

command
list[str] ou str

Commande à envoyer pour l’exécution. La propriété Command peut également être utilisée à la place de script/arguments. Les propriétés Command et 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é Command-['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 générons les systèmes Machine Learning généralement pour résoudre un problème spécifique. Par exemple, il peut être intéressant de trouver le meilleur modèle qui classe les pages Web pouvant être servies comme résultats de recherche correspondant à une requête. Notre recherche du meilleur modèle Machine Learning peut nécessiter l’essai de différents algorithmes ou l’utilisation de différents paramètres, etc.

Dans le Kit de développement logiciel (SDK) Azure Machine Learning, nous utilisons le concept d’expérience pour capturer la notion selon laquelle les différentes exécutions de formation sont liées par le problème qu’elles tentent de résoudre. Une Experiment agit ensuite comme un conteneur logique pour ces exécutions de formation, ce qui facilite le suivi de la progression au cours des exécutions de formation, la comparaison directe de deux exécutions de formation, etc.

RunConfiguration encapsule les paramètres de l’environnement d’exécution nécessaires pour soumettre une exécution de formation 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 de Machine Learning, 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 de formation classiques, RunConfiguration est utilisée en créant un objet ScriptRunConfig qui regroupe un objet RunConfiguration et un script d’exécution pour la formation.

La configuration de RunConfiguration inclut ce qui suit :

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

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

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

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

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

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

  • Choix facultatif de la configuration de la matérialisation des entrées et du chargement des sorties.

  • Paramètres d’exécution avancés pour les exécutions courantes telles que Spark et TensorFlow.

L’exemple suivant montre comment envoyer un script de formation 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 de formation sur votre cluster à l’aide de la propriété Command au lieu de Script et 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 pour configurer un environnement temporaire pour l’expérience. La définition est également chargée de définir les dépendances d’application nécessaires.

max_run_duration_seconds
int

Durée maximale autorisée pour l’exécution. Le système tente d’annuler automatiquement l’exécution si elle prend 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 la valeur SparkConf par défaut pour le travail envoyé.

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 cluster est utilisé par défaut.

docker

La section de configuration de 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 est défini sur TensorFlow et le communicator sur 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 est défini sur Python, et le communicator sur 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 est défini sur PyTorch, et le communicator sur 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 est défini sur Python, et le communicator sur 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 lorsqu’elle est en cours sur la base de chaque configuration. Pour chaque élément du dictionnaire, la clé est un nom donné à la source de données et la valeur est une DataReferenceConfiguration.

data

Toutes les données à mettre à la disposition de l’exécution lorsqu’elle est en cours.

datacaches
<xref:buildin.list>[DatacacheConfiguration]

Toutes les données à mettre à la disposition de l’exécution dans le cache de données lorsqu’elle est en cours.

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 pour l’interactivité avec la ressource de calcul. Les points de terminaison Jupyter, JupyterLab, VS Code, Tensorboard, SSH et les ports personnalisés sont autorisés.

Méthodes

delete

Supprime un fichier de configuration d’exécution.

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

load

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

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

Si path pointe vers un répertoire (lequel doit être un répertoire de projet), RunConfiguration est chargé à partir de <chemin d’accès>/.azureml/<nom> ou <chemin d’accès>/aml_config/<nom>.

save

Enregistre RunConfiguration dans un fichier sur le disque.

Une UserErrorException est levée lorsque :

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

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

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

Si path est au format <chemin_répertoire>/<nom_fichier>, où <chemin_répertoire> est un répertoire valide, RunConfiguration est enregistré dans <chemin_répertoire>/<nom_fichier>.

Si path pointe vers un répertoire (lequel doit être un répertoire de projet), RunConfiguration est enregistré dans <chemin d’accès>/.azureml/<nom> ou <chemin d’accès>/aml_config/<nom>.

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

Supprime un fichier de configuration d’exécution.

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

static delete(path, name)

Paramètres

Nom Description
path
Obligatoire
str

Répertoire racine sélectionné par un utilisateur pour les configurations d’exécution. Il s’agit généralement du référentiel 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

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

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

Si path pointe vers un répertoire (lequel doit être un répertoire de projet), RunConfiguration est chargé à partir de <chemin d’accès>/.azureml/<nom> ou <chemin d’accès>/aml_config/<nom>.

static load(path, name=None)

Paramètres

Nom Description
path
Obligatoire
str

Répertoire racine sélectionné par un utilisateur pour les configurations d’exécution. Il s’agit généralement du référentiel Git ou du répertoire racine du projet Python. Pour la compatibilité descendante, la configuration est également chargée à partir du sous-répertoire .azureml ou aml_config. Si le fichier ne se trouve pas dans ces répertoires, il 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.

Exceptions

Type Description
UserErrorException

save

Enregistre RunConfiguration dans un fichier sur le disque.

Une UserErrorException est levée lorsque :

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

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

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

Si path est au format <chemin_répertoire>/<nom_fichier>, où <chemin_répertoire> est un répertoire valide, RunConfiguration est enregistré dans <chemin_répertoire>/<nom_fichier>.

Si path pointe vers un répertoire (lequel doit être un répertoire de projet), RunConfiguration est enregistré dans <chemin d’accès>/.azureml/<nom> ou <chemin d’accès>/aml_config/<nom>.

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 un utilisateur pour les configurations d’exécution. Il s’agit généralement du référentiel 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

Exceptions

Type Description
UserErrorException

Attributs

auto_prepare_environment

Obtient le paramètre auto_prepare_environment. Ce paramètre déconseillé n’est pas utilisé.

environment_variables

Variables d’environnement de runtime.

Retours

Type Description

Variables de runtime

target

Obtient la cible de calcul où l’exécution du travail est planifiée.

La cible par défaut est « local » (fait référence à l’ordinateur local). Les cibles de calcul cloud disponibles peuvent être trouvées à l’aide de la fonction compute_targets.

Retours

Type Description
str

Nom de la cible