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
|
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
|
Framework ciblé utilisé dans l’exécution. Les frameworks pris en charge sont Python, PySpark, TensorFlow et PyTorch. Valeur par défaut: None
|
|
communicator
|
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 Valeur par défaut: None
|
|
auto_prepare_environment
Obligatoire
|
OBSOLESCENT. Ce paramètre n’est plus utilisé. |
|
command
|
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
|
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
|
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 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 |
|
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 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
|
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 Si |
| save |
Enregistrez RunConfiguration dans un fichier sur le disque. A UserErrorException est déclenché lorsque :
S’il 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
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
|
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
|
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
|
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
|
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
pathparamè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
|
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
|
[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
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 |
|---|---|
|
Nom de la cible |