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


PipelineStep Класс

Представляет этап выполнения в конвейере Машинного обучения Azure.

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

Класс PipelineStep — это базовый класс, который наследуют другие встроенные классы этапов для распространенных сценариев, такие как PythonScriptStep, DataTransferStep и HyperDriveStep.

Общие сведения о том, как связаны конвейеры и этапы, см. в статье Что такое конвейеры Машинного обучения Azure?.

Инициализация pipelineStep.

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

Конструктор

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

Параметры

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

Имя этапа конвейера.

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

Список входных данных этапа.

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

Список выходных данных этапа.

arguments

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

Default value: None
fix_port_name_collisions

Указывает, следует ли исправлять конфликты имен. Если значение True, и у входного и выходного параметров одинаковые имена, к имени входного параметра добавляется префикс INPUT. Значение по умолчанию — False.

Default value: False
resource_inputs

Необязательный список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения.

Default value: None
name
Обязательно
str

Имя этапа конвейера.

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

Тип выполнения класса модуля.

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

Входные привязки этапа.

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

Выходные привязки этапа.

param_defs

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

Default value: None
create_sequencing_ports

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

Default value: True
allow_reuse

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

Default value: True
version
str

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

Default value: None
module_type
str

Тип модуля, который будет создаваться подходящей службой. В настоящее время поддерживаются только два типа: None и BatchInferencing. module_type отличается от execution_type, где указывается, какой тип серверной службы используется для выполнения этого модуля.

Default value: None
arguments

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

Default value: None
runconfig
str

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

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

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

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

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

Список выходных данных этапа.