PipelineStep Класс

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

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

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

Общие сведения о том, как связаны конвейеры и pipelineSteps, см. в разделе "Что такое конвейеры машинного обучения".

Инициализация 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 предоставляют встроенные шаги для распространенных сценариев. Примеры см. в пакете stepsAutoMLStep и классе. Общие сведения о создании конвейера на основе предварительно созданных шагов см. в статье 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
Обязательно

Шаг конвейера, который необходимо выполнить перед этим шагом.

Комментарии

Если вы хотите выполнить шаг, например, шаг 3 после завершения шага 1 и шага2, можно использовать следующее:


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

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

static validate_arguments(arguments, inputs, outputs)

Параметры

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

Список аргументов шага.

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

Список входных данных шага.

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

Список выходных данных шага.