PipelineStep Класс
Представляет этап выполнения в конвейере Машинного обучения Azure.
Конвейеры состоят из нескольких этапов, которые являются отдельными вычислительными единицами. Каждый шаг может выполняться независимо и использовать изолированные вычислительные ресурсы. У каждого этапа обычно есть собственные именованные входные и выходные данные, а также параметры.
Класс PipelineStep — это базовый класс, который наследуют другие встроенные классы этапов для распространенных сценариев, такие как PythonScriptStep, DataTransferStep и HyperDriveStep.
Общие сведения о том, как связаны конвейеры и этапы, см. в статье Что такое конвейеры Машинного обучения Azure?.
Инициализация pipelineStep.
- Наследование
-
builtins.objectPipelineStep
Конструктор
PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)
Параметры
- arguments
- list
Необязательный список аргументов для передачи в скрипт, который используется на этапе.
- fix_port_name_collisions
- bool
Указывает, следует ли исправлять конфликты имен. Если значение True, и у входного и выходного параметров одинаковые имена, к имени входного параметра добавляется префикс INPUT. Значение по умолчанию — False.
- resource_inputs
- list
Необязательный список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения.
- arguments
- list
Необязательный список аргументов для передачи в скрипт, который используется на этапе.
- fix_port_name_collisions
- bool
Указывает, следует ли исправлять конфликты имен. Если значение True, и у входного и выходного параметров одинаковые имена, к имени входного параметра добавляется префикс INPUT. Значение по умолчанию — False.
- resource_inputs
- list
Необязательный список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения.
Комментарии
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)
Параметры
- default_datastore
- AbstractAzureStorageDatastore или AzureDataLakeDatastore
Хранилище данных по умолчанию.
- resource_inputs
- list
Список входных данных, которые используются как ресурсы. Ресурсы загружаются в папку сценариев и позволяют изменять поведение сценария во время выполнения.
Возвращаемое значение
Кортеж входных и выходных привязок.
Возвращаемый тип
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)
Параметры
- create_sequencing_ports
- bool
Указывает, будут ли порты виртуализации создаваться для модуля.
- allow_reuse
- bool
Указывает, будет ли модуль доступен для повторного использования в будущих конвейерах.
- module_type
- str
Тип модуля, который будет создаваться подходящей службой. В настоящее время поддерживаются только два типа: None и BatchInferencing. module_type
отличается от execution_type
, где указывается, какой тип серверной службы используется для выполнения этого модуля.
- arguments
- list
Список аргументов с заметками для использования при вызове этого модуля
- runconfig
- str
Файл runconfig, который будет использоваться для python_script_step.
- cloud_settings
- <xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
Параметры, которые будут использоваться для облаков
Возвращаемое значение
Объект определения модуля.
Возвращаемый тип
create_node
Создание узла для графа конвейера на основе этого этапа.
abstract create_node(graph, default_datastore, context)
Параметры
- default_datastore
- AbstractAzureStorageDatastore или AzureDataLakeDatastore
Хранилище данных по умолчанию, которое используется для этого этапа.
- context
- <xref:azureml.pipeline.core._GraphContext>
Объект контекста графа.
Возвращаемое значение
Созданный узел.
Возвращаемый тип
get_source_directory
Получение исходного каталога для этапа и проверка существования скрипта.
get_source_directory(context, source_directory, script_name)
Параметры
- context
- <xref:azureml.pipeline.core._GraphContext>
Объект контекста графа.
Возвращаемое значение
Исходный каталог и хэш-пути.
Возвращаемый тип
resolve_input_arguments
Сопоставление входных и выходных данных с аргументами для формирования строки аргумента.
static resolve_input_arguments(arguments, inputs, outputs, params)
Параметры
Возвращаемое значение
Возвращает кортеж из двух элементов. Первый — это неструктурированный список элементов для обработанных аргументов. Второй — список структурированных аргументов (_InputArgument, _OutputArgument, _ParameterArgument и _StringArgument).
Возвращаемый тип
run_after
Выполнение этого этапа после указанного этапа.
run_after(step)
Параметры
Комментарии
Если после завершения этапов 1 и 2 нужно выполнить, скажем, этап 3, можно использовать следующее:
step3.run_after(step1)
step3.run_after(step2)
validate_arguments
Убедитесь, что входные и выходные данные этапа, указанные в аргументах, находятся в списках входных и выходных данных.
static validate_arguments(arguments, inputs, outputs)
Параметры
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по