Partager via


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 comporter des scripts, des fichiers binaires ou tout autre fichier nécessaire à l’exécution sur la cible de calcul. L’interface du module décrit les entrées, les sorties et les définitions de paramètres. Elle ne les lie pas à des valeurs ou des données spécifiques. Un module est associé à une capture instantanée, qui capture la collection de fichiers définie pour le module.

Initialiser le module.

Héritage
builtins.object
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 ce module appartient.

module_id
Obligatoire
str

ID du module.

name
Obligatoire
str

Nom du module.

description
Obligatoire
str

Description du module.

status
Obligatoire
str

Nouvel état du module : « Actif », « Déprécié » ou « Désactivé ».

default_version
Obligatoire
str

Version par défaut du module.

module_version_list
Obligatoire

Liste des objets ModuleVersionDescriptor.

_module_provider
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>

(Utilisation interne uniquement.) Fournisseur de module.

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 ce module appartient.

module_id
Obligatoire
str

ID du module.

name
Obligatoire
str

Nom du module.

description
Obligatoire
str

Description du module.

status
Obligatoire
str

Nouvel état du module : « Actif », « Déprécié » ou « Désactivé ».

default_version
Obligatoire
str

Version par défaut du module.

module_version_list
Obligatoire

Liste des objets ModuleVersionDescriptor.

_module_provider
Obligatoire
<xref:<xref:_AevaMlModuleProvider object>>

Fournisseur de module.

_module_version_provider
Obligatoire
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

Fournisseur de ModuleVersion.

Remarques

Un module agit comme un conteneur de ses versions. Dans l’exemple suivant, un ModuleVersion est créé à partir de la méthode publish_python_script. Il a deux entrées et deux sorties. Le ModuleVersion créé représente 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")

Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Vous pouvez utiliser ce module au moment de la définition d’un pipeline, à des étapes différentes, à l’aide de ModuleStep.

L’exemple suivant montre comment relier les données utilisées dans le pipeline aux entrées et aux sorties d’un ModuleVersion à l’aide de PipelineData :


   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}

Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Vous pouvez ensuite utiliser le mappage au moment 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])

Un exemple complet est disponible sur 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 s’effectue au moment de la soumission selon le processus suivant :

  • Supprimer toutes les versions désactivées
  • Si une version spécifique a été indiquée, utiliser celle-ci, sinon
  • Si une version par défaut a été définie pour le module, utiliser celle-ci, sinon
  • Si toutes les versions suivent la gestion sémantique de versions sans lettres, prendre la valeur la plus élevée, sinon
  • Prendre la version du module qui a été mise à jour en dernier

Notez que dans la mesure où le mappage des entrées et sorties d’un nœud vers les entrées et sorties d’un module est défini au moment de la création du pipeline, si la version résolue au moment de la soumission a une interface distincte de la version résolue au moment de la création du pipeline, la soumission du pipeline échoue.

Vous pouvez mettre à jour le module sous-jacent avec de nouvelles versions tout en conservant la même version par défaut.

Les modules sont nommés de manière unique dans un espace de travail.

Méthodes

create

Crée le module.

deprecate

Affecte l’état « Déprécié » au module.

disable

Affecte l’état « Désactivé » au module.

enable

Affecte l’état « Actif » au module.

get

Obtient le module par son nom ou son ID. Lève une exception si aucune de ces valeurs n’est fournie.

get_default

Obtient la version par défaut du module.

get_default_version

Obtient la version par défaut du module.

get_versions

Obtient toutes les versions du module.

module_def_builder

Crée l’objet de définition de module qui décrit l’étape.

module_version_list

Obtient la liste des versions du module.

process_source_directory

Traite le répertoire source de l’étape et vérifie que le script existe.

publish

Crée un ModuleVersion et l’ajoute au module actuel.

publish_adla_script

Crée un ModuleVersion en fonction de ADLA (Azure Data Lake Analytics) et l’ajoute au module actuel.

publish_azure_batch

Crée un ModuleVersion qui utilise Azure Batch et l’ajoute au module actuel.

publish_python_script

Crée un ModuleVersion basé sur un script Python et l’ajoute au module actuel.

resolve

Résout et retourne le ModuleVersion approprié.

set_default_version

Définit le ModuleVersion par défaut du module.

set_description

Définit la description du module.

set_name

Définit le nom du module.

create

Crée 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
str

Nom du module.

description
Obligatoire
str

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

Affecte l’état « Déprécié » au module.

deprecate()

disable

Affecte l’état « Désactivé » au module.

disable()

enable

Affecte l’état « Actif » au module.

enable()

get

Obtient le module par son nom ou son ID. Lève une exception si aucune de ces valeurs n’est fournie.

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
str

ID du module.

valeur par défaut: None
name
str

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

Obtient la version par défaut du module.

get_default()

Retours

Type Description

Version par défaut du module.

get_default_version

Obtient la version par défaut du module.

get_default_version()

Retours

Type Description
str

Version par défaut du module.

get_versions

Obtient toutes les versions du module.

static get_versions(workspace, name, _workflow_provider=None)

Paramètres

Nom Description
workspace
Obligatoire

Espace de travail dans lequel le module a été créé.

name
Obligatoire
str

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 de ModuleVersionDescriptor

module_def_builder

Crée 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
str

Nom du module.

description
Obligatoire
str

Description du module.

execution_type
Obligatoire
str

Type d’exécution du module.

input_bindings
Obligatoire

Liaisons d’entrée du module.

output_bindings
Obligatoire

Liaisons de sortie du module.

param_defs

Définitions des paramètres du module.

valeur par défaut: None
create_sequencing_ports

Indique si des ports de séquencement doivent être créés pour le module.

valeur par défaut: True
allow_reuse

Indique si le module peut être réutilisé.

valeur par défaut: True
version
str

Version du module.

valeur par défaut: None
module_type
str

Type du module.

valeur par défaut: None
step_type
str

Type d’étape associé à ce module, par exemple « PythonScriptStep », « HyperDriveStep », etc.

valeur par défaut: None
arguments

Liste d’arguments annotés à utiliser au moment de l’appel de ce module

valeur par défaut: None
runconfig
str

Runconfig à utiliser pour python_script_step

valeur par défaut: None
cloud_settings
str

Paramètres à utiliser pour les clouds

valeur par défaut: None

Retours

Type Description

Objet de définition de module.

Exceptions

Type Description

module_version_list

Obtient la liste des versions du module.

module_version_list()

Retours

Type Description

Liste de ModuleVersionDescriptor

process_source_directory

Traite le répertoire source de l’étape et vérifie que le script existe.

static process_source_directory(name, source_directory, script_name)

Paramètres

Nom Description
name
Obligatoire
str

Nom de l'étape.

source_directory
Obligatoire
str

Répertoire source de l’étape.

script_name
Obligatoire
str

Nom du script de l’étape.

Retours

Type Description

Répertoire source et chemins de hachage.

Exceptions

Type Description

publish

Crée un ModuleVersion et l’ajoute 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
str

Description du module.

execution_type
Obligatoire
str

Type d’exécution du module. Les valeurs possibles sont esCloud, adlcloud et AzureBatchCloud

inputs
Obligatoire

Entrées du module.

outputs
Obligatoire

Sorties du module.

param_defs

Définitions des paramètres du module.

valeur par défaut: None
create_sequencing_ports

Indique si des ports de séquencement doivent être créés pour le module.

valeur par défaut: True
version
str

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
str

directory

valeur par défaut: None
hash_paths

Liste de chemins à hacher au moment de la recherche des changements apportés au contenu de l’étape. Si aucun changement n’est détecté, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu de source_directory est haché (à l’exception des fichiers listés dans .amlignore ou .gitignore). DÉPRÉCIÉ : n’est plus nécessaire.

valeur par défaut: None
category
str

Catégorie de la version du module

valeur par défaut: None
arguments

Arguments à utiliser au moment 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 facultative. Une RunConfiguration permet de spécifier des conditions supplémentaires pour l’exécution, par exemple des dépendances Conda et une image Docker.

valeur par défaut: None

Retours

Type Description

Exceptions

Type Description

publish_adla_script

Crée un ModuleVersion en fonction de ADLA (Azure Data Lake Analytics) et l’ajoute 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
str

Nom d’un script ADLA, par rapport à source_directory.

description
Obligatoire
str

Description de la version du module.

inputs
Obligatoire

Liaisons d’entrée du module.

outputs
Obligatoire

Liaisons de sortie du module.

params

Paramètres de ModuleVersion, sous la forme de paires name-default_value.

valeur par défaut: None
create_sequencing_ports

Indique si des ports de séquencement doivent être créés pour le module.

valeur par défaut: True
degree_of_parallelism
int

Degré de parallélisme à utiliser pour ce travail.

valeur par défaut: None
priority
int

Valeur de priorité à utiliser pour le travail en cours.

valeur par défaut: None
runtime_version
str

Version du runtime du moteur ADLA (Azure Data Lake Analytics).

valeur par défaut: None
compute_target

Calcul ADLA à utiliser pour ce travail.

valeur par défaut: None
version
str

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
str

directory

valeur par défaut: None
hash_paths

hash_paths

valeur par défaut: None
category
str

Catégorie de la version du module

valeur par défaut: None
arguments

Arguments à utiliser au moment 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ée un ModuleVersion qui utilise Azure Batch et l’ajoute 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
str

Description de la version du module.

compute_target
Obligatoire

Cible de calcul de BatchCompute.

inputs
Obligatoire

Liaisons d’entrée du module.

outputs
Obligatoire

Liaisons de sortie du module.

params

Paramètres de ModuleVersion, sous la forme de paires name-default_value.

valeur par défaut: None
create_sequencing_ports

Indique si des ports de séquencement doivent être créés pour le module.

valeur par défaut: True
version
str

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 est nécessaire de créer le pool avant d’exécuter les travaux.

valeur par défaut: False
pool_id
str

(Obligatoire) ID du pool dans lequel le travail va s’exécuter.

valeur par défaut: None
delete_batch_job_after_finish

Indique s’il est nécessaire de supprimer le travail du compte Batch, une fois qu’il a été achevé.

valeur par défaut: False
delete_batch_pool_after_finish

Indique s’il est nécessaire de supprimer le pool, une fois le travail achevé.

valeur par défaut: False
is_positive_exit_code_failure

Indique si le travail doit échouer quand la tâche existe avec un code positif.

valeur par défaut: True
vm_image_urn
str

Si create_pool a la valeur True et si la machine virtuelle utilise VirtualMachineConfiguration, ce paramètre indique l’image de machine virtuelle à utiliser. Format de la valeur : urn:publisher:offer:sku. Exemple : urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter.

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

valeur par défaut: False
target_compute_nodes
int

Si create_pool a la valeur True, indique le nombre de nœuds de calcul à ajouter au pool.

valeur par défaut: 1
vm_size
str

Si create_pool a la valeur True, indique la taille de machine virtuelle des nœuds de calcul.

valeur par défaut: standard_d1_v2
executable
str

Nom de la commande/de l’exécutable à exécuter dans le cadre du travail.

valeur par défaut: None
source_directory
str

Répertoire source.

valeur par défaut: None
category
str

Catégorie de la version du module

valeur par défaut: None
arguments

Arguments à utiliser au moment 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ée un ModuleVersion basé sur un script Python et l’ajoute 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
str

Nom d’un script Python, par rapport à source_directory.

description
Obligatoire
str

Description de la version du module.

inputs
Obligatoire

Liaisons d’entrée du module.

outputs
Obligatoire

Liaisons de sortie du module.

params

Paramètres de ModuleVersion, sous la forme de paires name-default_value.

valeur par défaut: None
create_sequencing_ports

Indique si des ports de séquencement doivent être créés pour le module.

valeur par défaut: True
version
str

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
str

directory

valeur par défaut: None
hash_paths

Liste de chemins à hacher au moment de la recherche des changements apportés au contenu de l’étape. Si aucun changement n’est détecté, le pipeline réutilise le contenu de l’étape à partir d’une exécution précédente. Par défaut, le contenu de source_directory est haché (à l’exception des fichiers listés dans .amlignore ou .gitignore). DÉPRÉCIÉ : n’est plus nécessaire.

valeur par défaut: None
category
str

Catégorie de la version du module

valeur par défaut: None
arguments

Arguments à utiliser au moment 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 facultative. Une RunConfiguration permet de spécifier des conditions supplémentaires pour l’exécution, par exemple des dépendances Conda et une image Docker.

valeur par défaut: None

Retours

Type Description

resolve

Résout et retourne le ModuleVersion approprié.

resolve(version=None)

Paramètres

Nom Description
version
valeur par défaut: None

Retours

Type Description

Version du module à utiliser.

set_default_version

Définit le ModuleVersion par défaut du module.

set_default_version(version_id)

Paramètres

Nom Description
version_id
Obligatoire

Retours

Type Description
str

Version par défaut.

Exceptions

Type Description

set_description

Définit la description du module.

set_description(description)

Paramètres

Nom Description
description
Obligatoire
str

Description à définir.

Exceptions

Type Description

set_name

Définit le nom du module.

set_name(name)

Paramètres

Nom Description
name
Obligatoire
str

Nom à définir.

Exceptions

Type Description

Attributs

default_version

Obtient la version par défaut du module.

Retours

Type Description
str

Chaîne de version par défaut.

description

Obtient la description du module.

Retours

Type Description
str

Chaîne de description.

id

Obtient l’ID du module.

Retours

Type Description
str

ID.

name

Obtient le nom du module.

Retours

Type Description
str

Nom.

status

Obtient l’état du module.

Retours

Type Description
str

Statut.