Module Класс

Представляет вычислительную единицу, используемую в конвейере Машинное обучение Azure.

Модуль — это коллекция файлов, которые будут выполняться в целевом объекте вычислений, и описание интерфейса. Коллекция файлов может быть скриптом, двоичными файлами или любыми другими файлами, необходимыми для выполнения в целевом объекте вычислений. Интерфейс модуля описывает входные и выходные данные, а также определения параметров. Он не привязывает их к конкретным значениям или данным. С модулем связан моментальный снимок, который фиксирует коллекцию файлов, определенных для модуля.

Инициализация модуля.

Наследование
builtins.object
Module

Конструктор

Module(workspace, module_id, name, description, status, default_version, module_version_list, _module_provider=None, _module_version_provider=None)

Параметры

Имя Описание
workspace
Обязательно

Объект рабочей области, которому принадлежит этот объект Module.

module_id
Обязательно
str

Идентификатор Module.

name
Обязательно
str

Имя Module.

description
Обязательно
str

Описание Module.

status
Обязательно
str

Новое состояние Module: Active, Deprecated или Disabled.

default_version
Обязательно
str

Версия Module по умолчанию.

module_version_list
Обязательно

Список объектов ModuleVersionDescriptor.

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

(Только для внутреннего использования.) Поставщик module.

значение по умолчанию: None
_module_version_provider
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

(Только для внутреннего использования.) Поставщик ModuleVersion.

значение по умолчанию: None
workspace
Обязательно

Объект рабочей области, которому принадлежит этот объект Module.

module_id
Обязательно
str

Идентификатор Module.

name
Обязательно
str

Имя Module.

description
Обязательно
str

Описание Module.

status
Обязательно
str

Новое состояние Module: Active, Deprecated или Disabled.

default_version
Обязательно
str

Версия Module по умолчанию.

module_version_list
Обязательно

Список объектов ModuleVersionDescriptor.

_module_provider
Обязательно
<xref:<xref:_AevaMlModuleProvider object>>

Поставщик Module.

_module_version_provider
Обязательно
<xref:azureml.pipeline.core._aeva_provider._AevaMlModuleVersionProvider>

Поставщик ModuleVersion.

Комментарии

Объект Module выступает в качестве контейнера его версий. В следующем примере ModuleVersion создается из метода publish_python_script и имеет два входных и два выходных значения. Созданный ModuleVersion является версией по умолчанию (is_default имеет значение 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")

Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Этот модуль можно использовать при определении конвейера на различных этапах с использованием ModuleStep.

В следующем примере показано, как подключить данные, используемые в конвейере, к входным и выходным данным ModuleVersion с помощью 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}

Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Затем при создании 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])

Полный пример можно найти здесь: https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-how-to-use-modulestep.ipynb

Разрешение используемой версии модуля происходит после отправки и выполняется следующим образом:

  • Удаление всех отключенных версий
  • Если указана определенная версия, используйте ее, иначе
  • Если для Module определена версия по умолчанию, используйте его, иначе
  • Если все версии соответствуют семантике управления версиями без букв, используйте максимальное значение, иначе
  • Используйте версию Module, которая была обновлена последней

Обратите внимание, что поскольку сопоставление входных и выходных данных узла с входными и выходными данными модуля определяется при создании конвейера, если разрешенная версия при отправке имеет интерфейс, отличный от того, который разрешается при создании конвейера, отправка конвейера завершится ошибкой.

Базовый модуль можно обновить в соответствии с новыми версиями, сохранив версию по умолчанию.

Модули имеют уникальные имена в рабочей области.

Методы

create

Создание объекта Module.

deprecate

Установка для состояния Module значения Deprecated.

disable

Установка для состояния Module значения Disabled.

enable

Установка для состояния Module значения Active.

get

Получение объекта Module по имени или по идентификатору. Если какое-либо значение не указано, порождается исключение.

get_default

Получение версии модуля по умолчанию.

get_default_version

Получение версии Module по умолчанию.

get_versions

Получение всех версий Module.

module_def_builder

Создание объекта определения модуля, описывающего этап.

module_version_list

Получение списка версий Module.

process_source_directory

Обработка исходного каталога для этапа и проверка существования скрипта.

publish

Создание объекта ModuleVersion и его добавление в текущий Module.

publish_adla_script

Создание объекта ModuleVersion на основе Azure Data Lake Analytics (ADLA) и его добавление в текущий модуль.

publish_azure_batch

Создание ModuleVersion, использующего пакетную службу Azure, и его добавление ее в текущий Module.

publish_python_script

Создание ModuleVersion на основе скрипта Python и его добавление в текущий Module.

resolve

Разрешение и возврат правильного объекта ModuleVersion.

set_default_version

Задание ModuleVersion по умолчанию для Module.

set_description

Указание описания Module.

set_name

Указание имени Module.

create

Создание объекта Module.

static create(workspace, name, description, _workflow_provider=None)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область для создания Module.

name
Обязательно
str

Имя Module.

description
Обязательно
str

Описание Module.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Только для внутреннего использования.) Поставщик рабочих процессов.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Объект Module.

deprecate

Установка для состояния Module значения Deprecated.

deprecate()

disable

Установка для состояния Module значения Disabled.

disable()

enable

Установка для состояния Module значения Active.

enable()

get

Получение объекта Module по имени или по идентификатору. Если какое-либо значение не указано, порождается исключение.

static get(workspace, module_id=None, name=None, _workflow_provider=None)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область для создания Module.

module_id
str

Идентификатор Module.

значение по умолчанию: None
name
str

Имя Module.

значение по умолчанию: None
_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Только для внутреннего использования.) Поставщик рабочих процессов.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Объект Module.

get_default

Получение версии модуля по умолчанию.

get_default()

Возвращаемое значение

Тип Описание

Версия модуля по умолчанию.

get_default_version

Получение версии Module по умолчанию.

get_default_version()

Возвращаемое значение

Тип Описание
str

Версия Module по умолчанию.

get_versions

Получение всех версий Module.

static get_versions(workspace, name, _workflow_provider=None)

Параметры

Имя Описание
workspace
Обязательно

Рабочая область, в которой был создан объект Module.

name
Обязательно
str

Имя Module.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

(Только для внутреннего использования.) Поставщик рабочих процессов.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Список ModuleVersionDescriptor.

module_def_builder

Создание объекта определения модуля, описывающего этап.

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)

Параметры

Имя Описание
name
Обязательно
str

Имя Module.

description
Обязательно
str

Описание Module.

execution_type
Обязательно
str

Тип выполнения Module.

input_bindings
Обязательно

Входные привязки Module.

output_bindings
Обязательно

Выходные привязки Module.

param_defs

Определения параметров Module.

значение по умолчанию: None
create_sequencing_ports

Указывает, будут ли создаваться для Module порты виртуализации.

значение по умолчанию: True
allow_reuse

Указывает, будет ли Module доступен для многократного использования.

значение по умолчанию: True
version
str

Версия класса Module.

значение по умолчанию: None
module_type
str

Тип Module.

значение по умолчанию: None
step_type
str

Тип этапа, связанный с этим модулем, например, PythonScriptStep, HyperDriveStep и т. д.

значение по умолчанию: None
arguments

Список аргументов с заметками для использования при вызове этого модуля.

значение по умолчанию: None
runconfig
str

Файл runconfig, который будет использоваться для python_script_step.

значение по умолчанию: None
cloud_settings
str

Параметры, которые будут использоваться для облаков

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Объект определения Module.

Исключения

Тип Описание

module_version_list

Получение списка версий Module.

module_version_list()

Возвращаемое значение

Тип Описание

Список ModuleVersionDescriptor.

process_source_directory

Обработка исходного каталога для этапа и проверка существования скрипта.

static process_source_directory(name, source_directory, script_name)

Параметры

Имя Описание
name
Обязательно
str

Имя шага этапа.

source_directory
Обязательно
str

Исходный каталог для этапа.

script_name
Обязательно
str

Имя скрипта для этапа.

Возвращаемое значение

Тип Описание

Исходный каталог и хэш-пути.

Исключения

Тип Описание

publish

Создание объекта ModuleVersion и его добавление в текущий Module.

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)

Параметры

Имя Описание
description
Обязательно
str

Описание Module.

execution_type
Обязательно
str

Тип выполнения класса Module. Допустимые значения — esCloud, adlcloud и AzureBatchCloud

inputs
Обязательно

Входные данные класса Module.

outputs
Обязательно

Выходные данные Module.

param_defs

Определения параметров Module.

значение по умолчанию: None
create_sequencing_ports

Указывает, будут ли создаваться для Module порты виртуализации.

значение по умолчанию: True
version
str

Версия класса Module.

значение по умолчанию: None
is_default

Указывает, является ли опубликованная версия версией по умолчанию.

значение по умолчанию: False
content_path
str

directory.

значение по умолчанию: None
hash_paths

Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое source_directory хэшируется (кроме файлов, перечисленных в .amlignore или .gitignore). НЕ РЕКОМЕНДУЕТСЯ: больше не требуется.

значение по умолчанию: None
category
str

Категория версии модуля.

значение по умолчанию: None
arguments

Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter).

значение по умолчанию: None
runconfig

Необязательный RunConfiguration. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Исключения

Тип Описание

publish_adla_script

Создание объекта ModuleVersion на основе Azure Data Lake Analytics (ADLA) и его добавление в текущий модуль.

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)

Параметры

Имя Описание
script_name
Обязательно
str

Имя скрипта ADLA относительно source_directory.

description
Обязательно
str

Описание версии Module.

inputs
Обязательно

Входные привязки Module.

outputs
Обязательно

Выходные привязки Module.

params

Параметры ModuleVersion в виде пар name-default_value.

значение по умолчанию: None
create_sequencing_ports

Указывает, будут ли создаваться для Module порты виртуализации.

значение по умолчанию: True
degree_of_parallelism
int

Степень параллелизации, используемая для этого задания.

значение по умолчанию: None
priority
int

Значение приоритета, используемое для текущего задания.

значение по умолчанию: None
runtime_version
str

Версия среды выполнения обработчика Azure Data Lake Analytics (ADLA).

значение по умолчанию: None
compute_target

Служба вычислений ADLA, используемая для этого задания.

значение по умолчанию: None
version
str

Версия модуля.

значение по умолчанию: None
is_default

Указывает, является ли опубликованная версия версией по умолчанию.

значение по умолчанию: False
source_directory
str

directory.

значение по умолчанию: None
hash_paths

hash_paths

значение по умолчанию: None
category
str

Категория версии модуля.

значение по умолчанию: None
arguments

Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter).

значение по умолчанию: None

Возвращаемое значение

Тип Описание

publish_azure_batch

Создание ModuleVersion, использующего пакетную службу Azure, и его добавление ее в текущий Module.

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)

Параметры

Имя Описание
description
Обязательно
str

Описание версии Module.

compute_target
Обязательно
BatchCompute или str

Целевой объект вычислений BatchCompute.

inputs
Обязательно

Входные привязки Module.

outputs
Обязательно

Выходные привязки Module.

params

Параметры ModuleVersion в виде пар name-default_value.

значение по умолчанию: None
create_sequencing_ports

Указывает, будут ли создаваться для Module порты виртуализации.

значение по умолчанию: True
version
str

Версия класса Module.

значение по умолчанию: None
is_default

Указывает, является ли опубликованная версия версией по умолчанию.

значение по умолчанию: False
create_pool

Указывает, следует ли создавать пул перед выполнением заданий.

значение по умолчанию: False
pool_id
str

(Обязательно) Идентификатор пула, в котором будет выполняться задание.

значение по умолчанию: None
delete_batch_job_after_finish

Указывает, следует ли удалять задание из учетной записи пакетной службы после его завершения.

значение по умолчанию: False
delete_batch_pool_after_finish

Указывает, следует ли удалять пул после завершения задания.

значение по умолчанию: False
is_positive_exit_code_failure

Указывает, завершается ли задание ошибкой, если существует задача с положительным кодом.

значение по умолчанию: True
vm_image_urn
str

Если create_pool имеет значение True и виртуальная машина использует VirtualMachineConfiguration, этот параметр указывает, какой образ виртуальной машины следует использовать. Формат значения: urn:publisher:offer:sku. Например, urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter.

значение по умолчанию: urn:MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter
run_task_as_admin

Указывает, должна ли задача выполняться с правами администратора.

значение по умолчанию: False
target_compute_nodes
int

Если create_pool имеет значение True, указывает, сколько кластерных узлов будет добавлено в пул.

значение по умолчанию: 1
vm_size
str

Если create_pool имеет значение True, указывает размер виртуальной машины для вычислительных узлов.

значение по умолчанию: standard_d1_v2
executable
str

Имя команды или исполняемого файла, которые будут выполняться в рамках этого задания.

значение по умолчанию: None
source_directory
str

Исходный каталог.

значение по умолчанию: None
category
str

Категория версии модуля.

значение по умолчанию: None
arguments

Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter).

значение по умолчанию: None

Возвращаемое значение

Тип Описание

Исключения

Тип Описание

publish_python_script

Создание ModuleVersion на основе скрипта Python и его добавление в текущий Module.

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)

Параметры

Имя Описание
script_name
Обязательно
str

Имя скрипта Python (относительно source_directory).

description
Обязательно
str

Описание версии Module.

inputs
Обязательно

Входные привязки Module.

outputs
Обязательно

Выходные привязки Module.

params

Параметры ModuleVersion в виде пар name-default_value.

значение по умолчанию: None
create_sequencing_ports

Указывает, будут ли создаваться для Module порты виртуализации.

значение по умолчанию: True
version
str

Версия класса Module.

значение по умолчанию: None
is_default

Указывает, является ли опубликованная версия версией по умолчанию.

значение по умолчанию: False
source_directory
str

directory.

значение по умолчанию: None
hash_paths

Список путей для хэширования при проверке изменений в содержимом шага. Если изменения не обнаружены, конвейер будет повторно использовать содержимое этапа из предыдущего выполнения. По умолчанию содержимое source_directory хэшируется (кроме файлов, перечисленных в .amlignore или .gitignore). НЕ РЕКОМЕНДУЕТСЯ: больше не требуется.

значение по умолчанию: None
category
str

Категория версии модуля.

значение по умолчанию: None
arguments

Аргументы, используемые при вызове модуля. Аргументы могут быть строками, входными ссылками (InputPortDef), выходными ссылками (OutputPortDef) и параметрами конвейера (PipelineParameter).

значение по умолчанию: None
runconfig

Необязательный RunConfiguration. RunConfiguration можно использовать для указания дополнительных требований для выполнения, таких как зависимости Conda и образ Docker.

значение по умолчанию: None

Возвращаемое значение

Тип Описание

resolve

Разрешение и возврат правильного объекта ModuleVersion.

resolve(version=None)

Параметры

Имя Описание
version
значение по умолчанию: None

Возвращаемое значение

Тип Описание

Используемая версия Module.

set_default_version

Задание ModuleVersion по умолчанию для Module.

set_default_version(version_id)

Параметры

Имя Описание
version_id
Обязательно

Возвращаемое значение

Тип Описание
str

Версия по умолчанию.

Исключения

Тип Описание

set_description

Указание описания Module.

set_description(description)

Параметры

Имя Описание
description
Обязательно
str

Указываемое описание.

Исключения

Тип Описание

set_name

Указание имени Module.

set_name(name)

Параметры

Имя Описание
name
Обязательно
str

Указываемое имя.

Исключения

Тип Описание

Атрибуты

default_version

Получение версии Module по умолчанию.

Возвращаемое значение

Тип Описание
str

Строка версии по умолчанию.

description

Получение описания Module.

Возвращаемое значение

Тип Описание
str

Строка описания.

id

Получение идентификатора Module.

Возвращаемое значение

Тип Описание
str

Идентификатор.

name

Получение имени Module.

Возвращаемое значение

Тип Описание
str

Имя.

status

Получение состояния Module.

Возвращаемое значение

Тип Описание
str

Состояние.