PipelineStep Класс
Представляет этап выполнения в конвейере Машинного обучения Azure.
Конвейеры состоят из нескольких этапов, которые являются отдельными вычислительными единицами. Каждый шаг может выполняться независимо и использовать изолированные вычислительные ресурсы. У каждого этапа обычно есть собственные именованные входные и выходные данные, а также параметры.
Класс PipelineStep — это базовый класс, который наследуют другие встроенные классы этапов для распространенных сценариев, такие как PythonScriptStep, DataTransferStep и HyperDriveStep.
Общие сведения о том, как связаны конвейеры и этапы, см. в статье Что такое конвейеры Машинного обучения Azure?.
Инициализация pipelineStep.
- Наследование
-
builtins.objectPipelineStep
Конструктор
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
Параметры
Имя | Описание |
---|---|
name
Обязательно
|
Имя этапа конвейера. |
inputs
Обязательно
|
Список входных данных этапа. |
outputs
Обязательно
|
Список выходных данных этапа. |
arguments
|
Необязательный список аргументов для передачи в скрипт, который используется на этапе. Default value: None
|
fix_port_name_collisions
|
Указывает, следует ли исправлять конфликты имен. Если значение True, и у входного и выходного параметров одинаковые имена, к имени входного параметра добавляется префикс INPUT. Значение по умолчанию — False. Default value: False
|
resource_inputs
|
Необязательный список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения. Default value: None
|
name
Обязательно
|
Имя этапа конвейера. |
inputs
Обязательно
|
Список входных данных этапа. |
outputs
Обязательно
|
Список выходных данных этапа. |
arguments
Обязательно
|
Необязательный список аргументов для передачи в скрипт, который используется на этапе. |
fix_port_name_collisions
Обязательно
|
Указывает, следует ли исправлять конфликты имен. Если значение True, и у входного и выходного параметров одинаковые имена, к имени входного параметра добавляется префикс INPUT. Значение по умолчанию — False. |
resource_inputs
Обязательно
|
Необязательный список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения. |
Комментарии
PipelineStep — это единица выполнения, для которой обычно требуется цель выполнения (целевой объект вычислений), сценарий с необязательными аргументами и входными данными, и которая может формировать выходные данные. Для этапа также можно передавать ряд других специальных параметров.
Этапы конвейера можно настроить вместе, чтобы создать класс Pipeline, который представляет собой общий и многократно используемый рабочий процесс Машинного обучения Azure. На каждом этапе конвейера можно настроить повторное использование результатов предыдущих выполнений, если содержимое этапа (скрипты и зависимости), а также входные данные и параметры не меняются. При повторном использовании этапа вместо отправки задания для вычисления немедленно предоставляются результаты предыдущего выполнения для последующих этапов.
Конвейеры Машинного обучения Azure предоставляют встроенные действия для распространенных сценариев. Примеры см. в описании пакета steps и класса AutoMLStep. Общие сведения о создании конвейера на основе предварительно сформированных этапов см. в статье https://aka.ms/pl-first-pipeline.
Предварительно сформированные этапы, производные от PipelineStep, — это этапы, которые используются в одном конвейере. Если рабочий процесс использования машинного обучения применяется для создания этапов, которые можно использовать для управления версиями и в разных конвейерах, применяйте класс Module.
При работе с этапами конвейера, входными и выходными данными и многократном использовании этапов учитывайте следующее.
Для отдельных этапов рекомендуется использовать отдельные расположения source_directory. Если все скрипты для этапов конвейера находятся в одном каталоге, хэш этого каталога изменяется каждый раз, когда изменяется один из сценариев. Это приводит к повторному выполнению всех этапов. Пример использования отдельных каталогов для разных этапов см. в статье https://aka.ms/pl-get-started.
Поддержка отдельных папок для сценариев и зависимых файлов для каждого этапа помогает уменьшить размер моментального снимка, создаваемого для каждого этапа, так как в таком снимке сохраняется только определенная папка. Поскольку изменение любого файла в каталоге source_directory этапа запускают повторную отправку моментального снимка, ведение отдельных папок для этапов помогает повторно использовать этапы в конвейере, так как при отсутствии изменений в каталоге source_directory этапа используется предыдущее выполнение этого этапа.
Если данные, используемые в этапе, находятся в хранилище данных, а у параметра allow_reuse значение True, изменение данных не будет обнаружено. Если данные отправляются в составе моментального снимка (в каталог source_directory шага), хэш изменится и будет запущено повторное выполнение. Поэтому такой способ не рекомендуется.
Методы
create_input_output_bindings |
Создание входных и выходных привязок из входных и выходных данных этапа. |
create_module_def |
Создание объекта определения модуля, описывающего этап. |
create_node |
Создание узла для графа конвейера на основе этого этапа. |
get_source_directory |
Получение исходного каталога для этапа и проверка существования скрипта. |
resolve_input_arguments |
Сопоставление входных и выходных данных с аргументами для формирования строки аргумента. |
run_after |
Выполнение этого этапа после указанного этапа. |
validate_arguments |
Убедитесь, что входные и выходные данные этапа, указанные в аргументах, находятся в списках входных и выходных данных. |
create_input_output_bindings
Создание входных и выходных привязок из входных и выходных данных этапа.
create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)
Параметры
Имя | Описание |
---|---|
inputs
Обязательно
|
Список входных данных этапа. |
outputs
Обязательно
|
Список выходных данных этапа. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию. |
resource_inputs
|
Список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Кортеж входных и выходных привязок. |
create_module_def
Создание объекта определения модуля, описывающего этап.
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)
Параметры
Имя | Описание |
---|---|
execution_type
Обязательно
|
Тип выполнения класса модуля. |
input_bindings
Обязательно
|
Входные привязки этапа. |
output_bindings
Обязательно
|
Выходные привязки этапа. |
param_defs
|
Определения параметров этапа. Default value: None
|
create_sequencing_ports
|
Указывает, будут ли порты виртуализации создаваться для модуля. Default value: True
|
allow_reuse
|
Указывает, будет ли модуль доступен для повторного использования в будущих конвейерах. Default value: True
|
version
|
Версия модуля. Default value: None
|
module_type
|
Тип модуля, который будет создаваться подходящей службой. В настоящее время поддерживаются только два типа: None и BatchInferencing.
Default value: None
|
arguments
|
Список аргументов с заметками для использования при вызове этого модуля Default value: None
|
runconfig
|
Файл runconfig, который будет использоваться для python_script_step. Default value: None
|
cloud_settings
|
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
Параметры, которые будут использоваться для облаков Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Объект определения модуля. |
create_node
Создание узла для графа конвейера на основе этого этапа.
abstract create_node(graph, default_datastore, context)
Параметры
Имя | Описание |
---|---|
graph
Обязательно
|
Граф, в который добавляется узел. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию, которое используется для этого этапа. |
context
Обязательно
|
<xref:azureml.pipeline.core._GraphContext>
Объект контекста графа. |
Возвращаемое значение
Тип | Описание |
---|---|
Созданный узел. |
get_source_directory
Получение исходного каталога для этапа и проверка существования скрипта.
get_source_directory(context, source_directory, script_name)
Параметры
Имя | Описание |
---|---|
context
Обязательно
|
<xref:azureml.pipeline.core._GraphContext>
Объект контекста графа. |
source_directory
Обязательно
|
Исходный каталог для этапа. |
script_name
Обязательно
|
Имя скрипта для этапа. |
hash_paths
Обязательно
|
Хэш-пути, которые используются при определении отпечатка модуля. |
Возвращаемое значение
Тип | Описание |
---|---|
Исходный каталог и хэш-пути. |
resolve_input_arguments
Сопоставление входных и выходных данных с аргументами для формирования строки аргумента.
static resolve_input_arguments(arguments, inputs, outputs, params)
Параметры
Имя | Описание |
---|---|
arguments
Обязательно
|
Список аргументов скрипта. |
inputs
Обязательно
|
Список входных данных этапа. |
outputs
Обязательно
|
Список выходных данных этапа. |
params
Обязательно
|
Список параметров этапа. |
Возвращаемое значение
Тип | Описание |
---|---|
Возвращает кортеж из двух элементов. Первый — это неструктурированный список элементов для обработанных аргументов. Второй — список структурированных аргументов (_InputArgument, _OutputArgument, _ParameterArgument и _StringArgument). |
run_after
Выполнение этого этапа после указанного этапа.
run_after(step)
Параметры
Имя | Описание |
---|---|
step
Обязательно
|
Этап конвейера, который необходимо выполнить перед этим этапом. |
Комментарии
Если после завершения этапов 1 и 2 нужно выполнить, скажем, этап 3, можно использовать следующее:
step3.run_after(step1)
step3.run_after(step2)
validate_arguments
Убедитесь, что входные и выходные данные этапа, указанные в аргументах, находятся в списках входных и выходных данных.
static validate_arguments(arguments, inputs, outputs)
Параметры
Имя | Описание |
---|---|
arguments
Обязательно
|
Список аргументов этапа. |
inputs
Обязательно
|
Список входных данных этапа. |
outputs
Обязательно
|
Список выходных данных этапа. |