Module Classe
Représente une unité de calcul utilisée dans un pipeline Azure Machine Learning.
Un module est une collection de fichiers qui s’exécutent sur une cible de calcul et une description d’une interface. La collection de fichiers peut être un script, des fichiers binaires ou tout autre fichier requis pour s’exécuter sur la cible de calcul. L’interface de module décrit les entrées, les sorties et les définitions de paramètres. Elle ne les lie pas à des valeurs ou données spécifiques. Un module a un instantané associé à celui-ci, qui capture la collection de fichiers définis pour le module.
Initialiser le module.
Constructeur
Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Objet d’espace de travail auquel appartient ce module. |
module_id
Obligatoire
|
ID du module. |
name
Obligatoire
|
Nom du module. |
description
Obligatoire
|
Description du module. |
status
Obligatoire
|
Nouveau statut du module : « Actif », « Déconseillé » ou « Désactivé ». |
default_version
Obligatoire
|
Version par défaut du module. |
module_version_list
Obligatoire
|
Liste d’objets ModuleVersionDescriptor . |
_module_provider
|
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>
(Utilisation interne uniquement.) Fournisseur de modules. Valeur par défaut: None
|
_module_version_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
(Utilisation interne uniquement.) Fournisseur ModuleVersion. Valeur par défaut: None
|
workspace
Obligatoire
|
Objet d’espace de travail auquel appartient ce module. |
module_id
Obligatoire
|
ID du module. |
name
Obligatoire
|
Nom du module. |
description
Obligatoire
|
Description du module. |
status
Obligatoire
|
Nouveau statut du module : « Actif », « Déconseillé » ou « Désactivé ». |
default_version
Obligatoire
|
Version par défaut du module. |
module_version_list
Obligatoire
|
Liste d’objets ModuleVersionDescriptor . |
_module_provider
Obligatoire
|
<xref:<xref:_AevaMlModuleProvider object>>
Fournisseur de modules. |
_module_version_provider
Obligatoire
|
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
Fournisseur ModuleVersion. |
Remarques
Un module agit comme un conteneur de ses versions. Dans l’exemple suivant, un ModuleVersion est créé à partir de la publish_python_script méthode et a deux entrées et deux sorties. La création de ModuleVersion est la version par défaut (is_default
a la valeur True).
out_sum = OutputPortDef(name="out_sum", default_datastore_name=datastore.name, default_datastore_mode="mount",
label="Sum of two numbers")
out_prod = OutputPortDef(name="out_prod", default_datastore_name=datastore.name, default_datastore_mode="mount",
label="Product of two numbers")
entry_version = module.publish_python_script("calculate.py", "initial",
inputs=[], outputs=[out_sum, out_prod], params = {"initialNum":12},
version="1", source_directory="./calc")
L’exemple complet est disponible à partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
Ce module peut être utilisé lors de la définition d’un pipeline, en différentes étapes, à l’aide d’un ModuleStep.
L’exemple suivant montre comment connecter les données utilisées dans le pipeline aux entrées et sorties d’une ModuleVersion à l’aide PipelineDatade :
middle_step_input_wiring = {"in1":first_sum, "in2":first_prod}
middle_sum = PipelineData("middle_sum", datastore=datastore, output_mode="mount",is_directory=False)
middle_prod = PipelineData("middle_prod", datastore=datastore, output_mode="mount",is_directory=False)
middle_step_output_wiring = {"out_sum":middle_sum, "out_prod":middle_prod}
L’exemple complet est disponible à partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
Le mappage peut ensuite être utilisé lors de la création du ModuleStep :
middle_step = ModuleStep(module=module,
inputs_map= middle_step_input_wiring,
outputs_map= middle_step_output_wiring,
runconfig=RunConfiguration(), compute_target=aml_compute,
arguments = ["--file_num1", first_sum, "--file_num2", first_prod,
"--output_sum", middle_sum, "--output_product", middle_prod])
L’exemple complet est disponible à partir de https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb
La résolution de la version du module à utiliser se produit lors de la soumission et suit le processus suivant :
- Supprimer toutes les versions désactivées
- Si une version spécifique a été indiquée, utilisez-la, sinon
- Si une version par défaut a été définie sur le module, utilisez-la, sinon
- Si toutes les versions suivent le contrôle de version sémantique sans lettres, prenez la valeur la plus élevée, sinon
- Prenez la version du module qui a été mise à jour en dernier
Notez que, étant donné que le mappage des entrées et sorties d’un nœud à l’entrée et à la sortie d’un module est défini lors de la création du pipeline, si la version résolue lors de la soumission a une interface différente de celle résolue lors de la création du pipeline, la soumission du pipeline échoue.
Le module sous-jacent peut être mis à jour avec de nouvelles versions tout en conservant la version par défaut la même.
Les modules sont nommés de manière unique dans un espace de travail.
Méthodes
create |
Créez le module. |
deprecate |
Définissez le module sur « Déconseillé ». |
disable |
Définissez le module sur « Désactivé ». |
enable |
Définissez le module sur « Actif ». |
get |
Obtenir le module par nom ou par ID ; lève une exception si l’un ou l’autre n’est pas fourni. |
get_default |
Obtenez la version du module par défaut. |
get_default_version |
Obtenez la version par défaut du module. |
get_versions |
Obtenez toutes les versions du module. |
module_def_builder |
Créez l’objet de définition de module qui décrit l’étape. |
module_version_list |
Obtenez la liste des versions du module. |
process_source_directory |
Traitez le répertoire source de l’étape et vérifiez que le script existe. |
publish |
Créez un ModuleVersion et ajoutez-le au module actuel. |
publish_adla_script |
Créez une version ModuleVersion basée sur Azure Data Lake Analytics (ADLA) et ajoutez-la au module actuel. |
publish_azure_batch |
Créez une version ModuleVersion qui utilise Azure batch et ajoutez-la au module actuel. |
publish_python_script |
Créez un ModuleVersion basé sur un script Python et ajoutez-le au module actuel. |
resolve |
Résolvez et renvoyez le moduleVersion approprié. |
set_default_version |
Définissez la version module par défaut du module. |
set_description |
Définissez la description du module. |
set_name |
Définissez le nom du module. |
create
Créez le module.
static create(workspace, name, description, _workflow_provider=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel créer le module. |
name
Obligatoire
|
Nom du module. |
description
Obligatoire
|
Description du module. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Utilisation interne uniquement.) Fournisseur de flux de travail. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet Module |
deprecate
Définissez le module sur « Déconseillé ».
deprecate()
disable
Définissez le module sur « Désactivé ».
disable()
enable
Définissez le module sur « Actif ».
enable()
get
Obtenir le module par nom ou par ID ; lève une exception si l’un ou l’autre n’est pas fourni.
static get(workspace, module_id=None, name=None, _workflow_provider=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
Espace de travail dans lequel créer le module. |
module_id
|
ID du module. Valeur par défaut: None
|
name
|
Nom du module. Valeur par défaut: None
|
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Utilisation interne uniquement.) Fournisseur de flux de travail. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet Module |
get_default
Obtenez la version du module par défaut.
get_default()
Retours
Type | Description |
---|---|
Version du module par défaut. |
get_default_version
Obtenez la version par défaut du module.
get_default_version()
Retours
Type | Description |
---|---|
Version par défaut du module. |
get_versions
Obtenez toutes les versions du module.
static get_versions(workspace, name, _workflow_provider=None)
Paramètres
Nom | Description |
---|---|
workspace
Obligatoire
|
L’espace de travail sur lequel le module a été créé. |
name
Obligatoire
|
Nom du module. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
(Utilisation interne uniquement.) Fournisseur de flux de travail. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Liste des ModuleVersionDescriptor |
module_def_builder
Créez l’objet de définition de module qui décrit l’étape.
static module_def_builder(name, description, execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, step_type=None, arguments=None, runconfig=None, cloud_settings=None)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom du module. |
description
Obligatoire
|
Description du module. |
execution_type
Obligatoire
|
Type d’exécution du module. |
input_bindings
Obligatoire
|
Liaisons d’entrée de module. |
output_bindings
Obligatoire
|
Liaisons de sortie du module. |
param_defs
|
Définitions de l’analyseur de module. Valeur par défaut: None
|
create_sequencing_ports
|
Indique si les ports de séquencement seront créés pour le module. Valeur par défaut: True
|
allow_reuse
|
Indique s’il sera disponible pour être réutilisé. Valeur par défaut: True
|
version
|
Version du module. Valeur par défaut: None
|
module_type
|
Type de module. Valeur par défaut: None
|
step_type
|
Type d’étape associé à ce module, par exemple « PythonScriptStep », « HyperDriveStep », etc. Valeur par défaut: None
|
arguments
|
Liste d’arguments annotés à utiliser lors de l’appel de ce module Valeur par défaut: None
|
runconfig
|
Runconfig qui sera utilisé pour python_script_step Valeur par défaut: None
|
cloud_settings
|
Paramètres qui seront utilisés pour les clouds Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet def module. |
Exceptions
Type | Description |
---|---|
module_version_list
Obtenez la liste des versions du module.
module_version_list()
Retours
Type | Description |
---|---|
Liste des ModuleVersionDescriptor |
process_source_directory
Traitez le répertoire source de l’étape et vérifiez que le script existe.
static process_source_directory(name, source_directory, script_name)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de l’étape. |
source_directory
Obligatoire
|
Répertoire source de l’étape. |
script_name
Obligatoire
|
Nom du script de l’étape. |
Retours
Type | Description |
---|---|
Répertoire source et chemins de hachage. |
Exceptions
Type | Description |
---|---|
publish
Créez un ModuleVersion et ajoutez-le au module actuel.
publish(description, execution_type, inputs, outputs, param_defs=None, create_sequencing_ports=True, version=None, is_default=False, content_path=None, hash_paths=None, category=None, arguments=None, runconfig=None)
Paramètres
Nom | Description |
---|---|
description
Obligatoire
|
Description du module. |
execution_type
Obligatoire
|
Type d’exécution du module.
Les valeurs acceptables sont |
inputs
Obligatoire
|
Entrées du module. |
outputs
Obligatoire
|
Sorties du module. |
param_defs
|
Définitions des paramètres de module. Valeur par défaut: None
|
create_sequencing_ports
|
Indique si les ports de séquencement seront créés pour le module. Valeur par défaut: True
|
version
|
Version du module. Valeur par défaut: None
|
is_default
|
Indique si la version publiée doit être la version par défaut. Valeur par défaut: False
|
content_path
|
répertoire Valeur par défaut: None
|
hash_paths
|
Liste des chemins d’accès au hachage lors de la vérification des modifications apportées au contenu de l’étape. S’il n’y a aucune modification détectée, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu du Valeur par défaut: None
|
category
|
Catégorie de la version du module Valeur par défaut: None
|
arguments
|
Arguments à utiliser lors de l’appel du module. Les arguments peuvent être des chaînes, des références d’entrée (InputPortDef), des références de sortie (OutputPortDef) et des paramètres de pipeline (PipelineParameter). Valeur par défaut: None
|
runconfig
|
RunConfiguration facultatif. Une RunConfiguration peut être utilisée pour spécifier des exigences supplémentaires pour l’exécution, telles que les dépendances conda et une image Docker. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Exceptions
Type | Description |
---|---|
publish_adla_script
Créez une version ModuleVersion basée sur Azure Data Lake Analytics (ADLA) et ajoutez-la au module actuel.
publish_adla_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, degree_of_parallelism=None, priority=None, runtime_version=None, compute_target=None, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None)
Paramètres
Nom | Description |
---|---|
script_name
Obligatoire
|
Nom d’un script ADLA, relatif à |
description
Obligatoire
|
Description de la version du module. |
inputs
Obligatoire
|
Liaisons d’entrée de module. |
outputs
Obligatoire
|
Liaisons de sortie du module. |
params
|
Les paramètres ModuleVersion, en tant que paires nom-default_value. Valeur par défaut: None
|
create_sequencing_ports
|
Indique si les ports de séquencement seront créés pour le module. Valeur par défaut: True
|
degree_of_parallelism
|
Degré de parallélisme à utiliser pour ce travail. Valeur par défaut: None
|
priority
|
Valeur de priorité à utiliser pour le travail en cours. Valeur par défaut: None
|
runtime_version
|
Version d’exécution du moteur Azure Data Lake Analytics (ADLA). Valeur par défaut: None
|
compute_target
|
Calcul ADLA à utiliser pour ce travail. Valeur par défaut: None
|
version
|
Version du module. Valeur par défaut: None
|
is_default
|
Indique si la version publiée doit être la version par défaut. Valeur par défaut: False
|
source_directory
|
répertoire Valeur par défaut: None
|
hash_paths
|
hash_paths Valeur par défaut: None
|
category
|
Catégorie de la version du module Valeur par défaut: None
|
arguments
|
Arguments à utiliser lors de l’appel du module. Les arguments peuvent être des chaînes, des références d’entrée (InputPortDef), des références de sortie (OutputPortDef) et des paramètres de pipeline (PipelineParameter). Valeur par défaut: None
|
Retours
Type | Description |
---|---|
publish_azure_batch
Créez une version ModuleVersion qui utilise Azure batch et ajoutez-la au module actuel.
publish_azure_batch(description, compute_target, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, create_pool=False, pool_id=None, delete_batch_job_after_finish=False, delete_batch_pool_after_finish=False, is_positive_exit_code_failure=True, vm_image_urn='urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter', run_task_as_admin=False, target_compute_nodes=1, vm_size='standard_d1_v2', executable=None, source_directory=None, category=None, arguments=None)
Paramètres
Nom | Description |
---|---|
description
Obligatoire
|
Description de la version du module. |
compute_target
Obligatoire
|
BatchCompute ou
str
Cible de calcul BatchCompute. |
inputs
Obligatoire
|
Liaisons d’entrée de module. |
outputs
Obligatoire
|
Liaisons de sortie du module. |
params
|
Les paramètres ModuleVersion, en tant que paires nom-default_value. Valeur par défaut: None
|
create_sequencing_ports
|
Indique si les ports de séquencement seront créés pour le module. Valeur par défaut: True
|
version
|
Version du module. Valeur par défaut: None
|
is_default
|
Indique si la version publiée doit être la version par défaut. Valeur par défaut: False
|
create_pool
|
Indique s’il faut créer le pool avant d’exécuter les travaux. Valeur par défaut: False
|
pool_id
|
(Obligatoire) ID du pool dans lequel le travail s’exécutera. Valeur par défaut: None
|
delete_batch_job_after_finish
|
Indique s’il faut supprimer le travail du compte Batch une fois terminé. Valeur par défaut: False
|
delete_batch_pool_after_finish
|
Indique s’il faut supprimer le pool une fois le travail terminé. Valeur par défaut: False
|
is_positive_exit_code_failure
|
Indique s’il échoue si la tâche existe avec un code positif. Valeur par défaut: True
|
vm_image_urn
|
Si Valeur par défaut: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
|
run_task_as_admin
|
Indique si la tâche doit s’exécuter avec des privilèges d’administrateur. Valeur par défaut: False
|
target_compute_nodes
|
Si Valeur par défaut: 1
|
vm_size
|
Si Valeur par défaut: standard_d1_v2
|
executable
|
Nom de la commande/exécutable qui sera exécutée dans le cadre du travail. Valeur par défaut: None
|
source_directory
|
Répertoire source. Valeur par défaut: None
|
category
|
Catégorie de la version du module Valeur par défaut: None
|
arguments
|
Arguments à utiliser lors de l’appel du module. Les arguments peuvent être des chaînes, des références d’entrée (InputPortDef), des références de sortie (OutputPortDef) et des paramètres de pipeline (PipelineParameter). Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Exceptions
Type | Description |
---|---|
publish_python_script
Créez un ModuleVersion basé sur un script Python et ajoutez-le au module actuel.
publish_python_script(script_name, description, inputs, outputs, params=None, create_sequencing_ports=True, version=None, is_default=False, source_directory=None, hash_paths=None, category=None, arguments=None, runconfig=None)
Paramètres
Nom | Description |
---|---|
script_name
Obligatoire
|
Nom d’un script Python, relatif à |
description
Obligatoire
|
Description de la version du module. |
inputs
Obligatoire
|
Liaisons d’entrée de module. |
outputs
Obligatoire
|
Liaisons de sortie du module. |
params
|
Les paramètres ModuleVersion, en tant que paires nom-default_value. Valeur par défaut: None
|
create_sequencing_ports
|
Indique si les ports de séquencement seront créés pour le module. Valeur par défaut: True
|
version
|
Version du module. Valeur par défaut: None
|
is_default
|
Indique si la version publiée doit être la version par défaut. Valeur par défaut: False
|
source_directory
|
répertoire Valeur par défaut: None
|
hash_paths
|
Liste des chemins d’accès au hachage lors de la vérification des modifications apportées au contenu de l’étape. S’il n’y a aucune modification détectée, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu du Valeur par défaut: None
|
category
|
Catégorie de la version du module Valeur par défaut: None
|
arguments
|
Arguments à utiliser lors de l’appel du module. Les arguments peuvent être des chaînes, des références d’entrée (InputPortDef), des références de sortie (OutputPortDef) et des paramètres de pipeline (PipelineParameter). Valeur par défaut: None
|
runconfig
|
RunConfiguration facultatif. Une RunConfiguration peut être utilisée pour spécifier des exigences supplémentaires pour l’exécution, telles que les dépendances conda et une image Docker. Valeur par défaut: None
|
Retours
Type | Description |
---|---|
resolve
Résolvez et renvoyez le moduleVersion approprié.
resolve(version=None)
Paramètres
Nom | Description |
---|---|
version
|
Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Version du module à utiliser. |