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

script
str
valeur par défaut: None

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.

arguments
list[str]
valeur par défaut: None

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

framework
str
valeur par défaut: None

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

communicator
str
valeur par défaut: None

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.

conda_dependencies
CondaDependencies
valeur par défaut: None

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.

auto_prepare_environment
bool
Obligatoire

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

command
list[str] ou str
valeur par défaut: None

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']

_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

environment
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
HistoryConfiguration

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

spark
SparkConfiguration

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
HdiConfiguration

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
DockerConfiguration

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

tensorflow
TensorflowConfiguration

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
MpiConfiguration

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
PyTorchConfiguration

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
ParallelTaskConfiguration

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
dict[str, DataReferenceConfiguration]

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
dict[str, 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
OutputData

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
AmlComputeConfiguration

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
KubernetesComputeConfiguration

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
dict[str, ApplicationEndpointConfiguration]

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

path
str
Obligatoire

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
str
Obligatoire

Nom du fichier de configuration.

Exceptions

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

path
str
Obligatoire

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
valeur par défaut: None

Nom du fichier de configuration.

Retours

Objet de configuration d’exécution.

Type de retour

Exceptions

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

separate_environment_yaml
bool
valeur par défaut: False

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

path
str
valeur par défaut: None

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.

name
str
valeur par défaut: None

[Obligatoire] Nom du fichier de configuration.

Type de retour

Exceptions

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

Variables de runtime

Type de retour

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

Nom de la cible

Type de retour

str