Поделиться через


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
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
list
Обязательно

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

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

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

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

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

workspace
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
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
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
Workspace
Обязательно

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

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

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

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

Имя Module.

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

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

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

Объект Module.

Возвращаемый тип

get_default

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

get_default()

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

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

Возвращаемый тип

get_default_version

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

get_default_version()

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

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

Возвращаемый тип

str

get_versions

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

static get_versions(workspace, name, _workflow_provider=None)

Параметры

workspace
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
list
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

Тип Module.

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

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

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

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

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

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

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
list
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

directory.

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

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

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

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

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

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

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

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

Возвращаемый тип

Исключения

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
list
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

directory.

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

hash_paths

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

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

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

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

Возвращаемый тип

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
list
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращаемый тип

Исключения

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
list
Обязательно

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

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

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

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

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

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

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

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

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

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

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

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

directory.

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

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

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

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

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

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

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

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

Возвращаемый тип

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