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._AbstractRunConfigElementRunConfiguration
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
|
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
|
Framework cible utilisé dans l’exécution. Les frameworks Python, PySpark, TensorFlow et PyTorch sont pris en charge. Valeur par défaut: None
|
communicator
|
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 Valeur par défaut: None
|
auto_prepare_environment
Obligatoire
|
DÉPRÉCIÉ. Ce paramètre n’est plus utilisé. |
command
|
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
|
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
|
Nombre de nœuds à dédier au travail. |
priority
|
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 |
mpi
|
Section de configuration utilisée pour configurer les paramètres de travail MPI distribués.
Ce paramètre prend effet uniquement lorsque le |
pytorch
|
Section de configuration utilisée pour configurer les paramètres de travail PyTorch distribués.
Ce paramètre prend effet uniquement lorsque le |
paralleltask
|
Section de configuration utilisée pour configurer les paramètres de travail ParallelTask distribués.
Ce paramètre prend effet uniquement lorsque le |
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
|
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 Si |
save |
Enregistre RunConfiguration dans un fichier sur le disque. Une UserErrorException est levée lorsque :
Si Si 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
|
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
|
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
|
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
|
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
|
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
|
[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
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 |
---|---|
Nom de la cible |