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

workspace
Workspace
Obligatoire

Objet d’espace de travail auquel ce module appartient.

module_id
str
Obligatoire

ID du module.

name
str
Obligatoire

Nom du module.

description
str
Obligatoire

Description du module.

status
str
Obligatoire

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

default_version
str
Obligatoire

Version par défaut du module.

module_version_list
list
Obligatoire

Liste des objets ModuleVersionDescriptor.

_module_provider
<xref:azureml.pipeline.core._aeva_provider._AzureMLModuleProvider>
valeur par défaut: None

(Utilisation interne uniquement.) Fournisseur de module.

_module_version_provider
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>
valeur par défaut: None

(Utilisation interne uniquement.) Fournisseur ModuleVersion.

workspace
Workspace
Obligatoire

Objet d’espace de travail auquel ce module appartient.

module_id
str
Obligatoire

ID du module.

name
str
Obligatoire

Nom du module.

description
str
Obligatoire

Description du module.

status
str
Obligatoire

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

default_version
str
Obligatoire

Version par défaut du module.

module_version_list
list
Obligatoire

Liste des objets ModuleVersionDescriptor.

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

Fournisseur de module.

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

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

workspace
Workspace
Obligatoire

Espace de travail dans lequel créer le module.

name
str
Obligatoire

Nom du module.

description
str
Obligatoire

Description du module.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valeur par défaut: None

(Utilisation interne uniquement.) Fournisseur de flux de travail.

Retours

Objet Module

Type de retour

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

workspace
Workspace
Obligatoire

Espace de travail dans lequel créer le module.

module_id
str
valeur par défaut: None

ID du module.

name
str
valeur par défaut: None

Nom du module.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valeur par défaut: None

(Utilisation interne uniquement.) Fournisseur de flux de travail.

Retours

Objet Module

Type de retour

get_default

Obtient la version par défaut du module.

get_default()

Retours

Version par défaut du module.

Type de retour

get_default_version

Obtient la version par défaut du module.

get_default_version()

Retours

Version par défaut du module.

Type de retour

str

get_versions

Obtient toutes les versions du module.

static get_versions(workspace, name, _workflow_provider=None)

Paramètres

workspace
Workspace
Obligatoire

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

name
str
Obligatoire

Nom du module.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valeur par défaut: None

(Utilisation interne uniquement.) Fournisseur de flux de travail.

Retours

Liste de ModuleVersionDescriptor

Type de retour

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

name
str
Obligatoire

Nom du module.

description
str
Obligatoire

Description du module.

execution_type
str
Obligatoire

Type d’exécution du module.

input_bindings
list
Obligatoire

Liaisons d’entrée du module.

output_bindings
list
Obligatoire

Liaisons de sortie du module.

param_defs
list
valeur par défaut: None

Définitions des paramètres du module.

create_sequencing_ports
bool
valeur par défaut: True

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

allow_reuse
bool
valeur par défaut: True

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

version
str
valeur par défaut: None

Version du module.

module_type
str
valeur par défaut: None

Type du module.

step_type
str
valeur par défaut: None

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

arguments
list
valeur par défaut: None

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

runconfig
str
valeur par défaut: None

Runconfig à utiliser pour python_script_step

cloud_settings
str
valeur par défaut: None

Paramètres à utiliser pour les clouds

Retours

Objet de définition de module.

Type de retour

Exceptions

module_version_list

Obtient la liste des versions du module.

module_version_list()

Retours

Liste de ModuleVersionDescriptor

Type de retour

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

name
str
Obligatoire

Nom de l'étape.

source_directory
str
Obligatoire

Répertoire source de l’étape.

script_name
str
Obligatoire

Nom du script de l’étape.

Retours

Répertoire source et chemins de hachage.

Type de retour

Exceptions

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

description
str
Obligatoire

Description du module.

execution_type
str
Obligatoire

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

inputs
list
Obligatoire

Entrées du module.

outputs
list
Obligatoire

Sorties du module.

param_defs
list
valeur par défaut: None

Définitions des paramètres du module.

create_sequencing_ports
bool
valeur par défaut: True

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

version
str
valeur par défaut: None

Version du module.

is_default
bool
valeur par défaut: False

Indique si la version publiée doit être la version par défaut.

content_path
str
valeur par défaut: None

directory

hash_paths
list
valeur par défaut: None

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.

category
str
valeur par défaut: None

Catégorie de la version du module

arguments
list
valeur par défaut: None

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

runconfig
RunConfiguration
valeur par défaut: None

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.

Type de retour

Exceptions

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

script_name
str
Obligatoire

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

description
str
Obligatoire

Description de la version du module.

inputs
list
Obligatoire

Liaisons d’entrée du module.

outputs
list
Obligatoire

Liaisons de sortie du module.

params
dict
valeur par défaut: None

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

create_sequencing_ports
bool
valeur par défaut: True

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

degree_of_parallelism
int
valeur par défaut: None

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

priority
int
valeur par défaut: None

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

runtime_version
str
valeur par défaut: None

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

compute_target
AdlaCompute, str
valeur par défaut: None

Calcul ADLA à utiliser pour ce travail.

version
str
valeur par défaut: None

Version du module.

is_default
bool
valeur par défaut: False

Indique si la version publiée doit être la version par défaut.

source_directory
str
valeur par défaut: None

directory

hash_paths
list
valeur par défaut: None

hash_paths

category
str
valeur par défaut: None

Catégorie de la version du module

arguments
list
valeur par défaut: None

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

Type de retour

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

description
str
Obligatoire

Description de la version du module.

compute_target
BatchCompute ou str
Obligatoire

Cible de calcul de BatchCompute.

inputs
list
Obligatoire

Liaisons d’entrée du module.

outputs
list
Obligatoire

Liaisons de sortie du module.

params
dict
valeur par défaut: None

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

create_sequencing_ports
bool
valeur par défaut: True

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

version
str
valeur par défaut: None

Version du module.

is_default
bool
valeur par défaut: False

Indique si la version publiée doit être la version par défaut.

create_pool
bool
valeur par défaut: False

Indique s’il est nécessaire de créer le pool avant d’exécuter les travaux.

pool_id
str
valeur par défaut: None

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

delete_batch_job_after_finish
bool
valeur par défaut: False

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

delete_batch_pool_after_finish
bool
valeur par défaut: False

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

is_positive_exit_code_failure
bool
valeur par défaut: True

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

vm_image_urn
str
valeur par défaut: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter

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.

run_task_as_admin
bool
valeur par défaut: False

Indique si la tâche doit s’exécuter avec des privilèges Administrateur.

target_compute_nodes
int
valeur par défaut: 1

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

vm_size
str
valeur par défaut: standard_d1_v2

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

executable
str
valeur par défaut: None

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

source_directory
str
valeur par défaut: None

Répertoire source.

category
str
valeur par défaut: None

Catégorie de la version du module

arguments
list
valeur par défaut: None

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

Type de retour

Exceptions

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

script_name
str
Obligatoire

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

description
str
Obligatoire

Description de la version du module.

inputs
list
Obligatoire

Liaisons d’entrée du module.

outputs
list
Obligatoire

Liaisons de sortie du module.

params
dict
valeur par défaut: None

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

create_sequencing_ports
bool
valeur par défaut: True

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

version
str
valeur par défaut: None

Version du module.

is_default
bool
valeur par défaut: False

Indique si la version publiée doit être la version par défaut.

source_directory
str
valeur par défaut: None

directory

hash_paths
list
valeur par défaut: None

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.

category
str
valeur par défaut: None

Catégorie de la version du module

arguments
list
valeur par défaut: None

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

runconfig
RunConfiguration
valeur par défaut: None

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.

Type de retour

resolve

Résout et retourne le ModuleVersion approprié.

resolve(version=None)

Paramètres

version
valeur par défaut: None

Retours

Version du module à utiliser.

Type de retour

set_default_version

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

set_default_version(version_id)

Paramètres

version_id
Obligatoire

Retours

Version par défaut.

Type de retour

str

Exceptions

set_description

Définit la description du module.

set_description(description)

Paramètres

description
str
Obligatoire

Description à définir.

Exceptions

set_name

Définit le nom du module.

set_name(name)

Paramètres

name
str
Obligatoire

Nom à définir.

Exceptions

Attributs

default_version

Obtient la version par défaut du module.

Retours

Chaîne de version par défaut.

Type de retour

str

description

Obtient la description du module.

Retours

Chaîne de description.

Type de retour

str

id

Obtient l’ID du module.

Retours

ID.

Type de retour

str

name

Obtient le nom du module.

Retours

Nom.

Type de retour

str

status

Obtient l’état du module.

Retours

Statut.

Type de retour

str