Pipeline Класс
Представляет коллекцию этапов, которые могут выполняться как рабочий процесс Машинного обучения Azure для повторного использования.
Используйте конвейер для создания рабочих процессов, объединяющих различные этапы машинного обучения, и управления ими. Каждый этап машинного обучения, например подготовка данных и обучение модели, может состоять из одного или нескольких этапов в конвейере.
Общие сведения о том, почему и когда следует использовать конвейеры: https://aka.ms/pl-concept.
Общие сведения о построении конвейера: https://aka.ms/pl-first-pipeline.
Инициализация конвейера.
- Наследование
-
builtins.objectPipeline
Конструктор
Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область для отправки конвейера. |
steps
Обязательно
|
Список этапов, которые выполняются как часть конвейера. |
description
Обязательно
|
Описание конвейера. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию, которое используется для подключений к данным. |
default_source_directory
Обязательно
|
Каталог скриптов по умолчанию для этапов, выполняющих скрипт. |
resolve_closure
Обязательно
|
Следует ли разрешать закрытие (автоматический ввод зависимых этапов). |
workspace
Обязательно
|
Рабочая область для отправки конвейера. |
steps
Обязательно
|
Список этапов, которые выполняются как часть конвейера. |
description
Обязательно
|
Описание конвейера. |
default_datastore
Обязательно
|
Хранилище данных по умолчанию, которое используется для подключений к данным. |
default_source_directory
Обязательно
|
Каталог скриптов по умолчанию для этапов, выполняющих скрипт. |
resolve_closure
Обязательно
|
Указывает, разрешено ли закрытие (автоматический перенос зависимых шагов). |
_workflow_provider
Обязательно
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Поставщик рабочих процессов, если он не создан. |
_service_endpoint
Обязательно
|
Конечная точка службы, если значение Отсутствует, определяется с помощью рабочей области. |
kwargs
Обязательно
|
Пользовательские аргументы ключевого слова, зарезервированные для будущей разработки |
Комментарии
Конвейер создается со списком этапов и рабочей областью. Существует несколько типов этапов, которые можно использовать в конвейере. Вы выберете тип этапа, основываясь на сценарии машинного обучения.
Конвейеры Машинного обучения Azure предоставляют встроенные этапы для распространенных сценариев. Предварительно созданные этапы, производные от PipelineStep, — это этапы, которые используются в одном конвейере. Примеры см. в описании пакета steps и класса AutoMLStep.
Если вы применяете вызовы рабочего процесса машинного обучения для создания этапов, которые могут иметь версии и использоваться в разных конвейерах, используйте функциональные возможности модуля Module.
Отправка конвейера с помощью submit. При вызове метода Submit создается PipelineRun, который, в свою очередь, создает объекты StepRun для каждого этапа рабочего процесса. Для отслеживания выполнения используйте эти объекты.
Пример для отправки конвейера приведен ниже:
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline)
Существует ряд необязательных параметров для конвейера, которые можно указать при отправке в submit.
continue_on_step_failure: указывает, следует ли продолжать выполнение конвейера при сбое этапа. Значение по умолчанию — False. Если задано значение True, выполнение будет продолжено только для этапов, не имеющих зависимости от выходных данных этапа, на котором произошел сбой.
regenerate_outputs: указывает, следует ли принудительно пересоздавать все выходные данные этапа и запрещать повторное использование данных для этого выполнения. Значение по умолчанию — False.
pipeline_parameters: параметры для выполнения конвейера, словарь {имя: значение}. Дополнительные сведения см. в статье PipelineParameter.
parent_run_id: можно указать идентификатор выполнения, чтобы задать родительское выполнение для этого выполнения конвейера, которое отображается в RunHistory. Родительское выполнение должно относиться к тому же эксперименту, в который отправляется этот конвейер.
Пример отправки конвейера с использованием этих параметров выглядит следующим образом:
from azureml.pipeline.core import Pipeline
pipeline = Pipeline(workspace=ws, steps=steps)
pipeline_run = experiment.submit(pipeline,
continue_on_step_failure=True,
regenerate_outputs=True,
pipeline_parameters={"param1": "value1"},
parent_run_id="<run_id>")
Методы
load_yaml |
Загрузка конвейера из указанного файла YAML. Файл YAML можно использовать для описания конвейера, состоящего из ModuleSteps. |
publish |
Публикация конвейера и обеспечение его доступности для повторного выполнения. После публикации конвейера его можно отправить без кода Python, конструирующего конвейер. Возвращает созданный класс PublishedPipeline. |
service_endpoint |
Получение конечной точки службы, связанной с конвейером. |
submit |
Отправка выполнения конвейера. Это эквивалентно использованию submit. Возвращает отправленный PipelineRun. Используйте этот объект, чтобы отслеживать и просматривать сведения о выполнении. |
validate |
Проверьте конвейер и определите потенциальные ошибки, например неподключенные входные данные. |
load_yaml
Загрузка конвейера из указанного файла YAML.
Файл YAML можно использовать для описания конвейера, состоящего из ModuleSteps.
static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)
Параметры
Имя | Описание |
---|---|
workspace
Обязательно
|
Рабочая область для отправки конвейера. |
filename
Обязательно
|
Файл YAML, который описывает конвейер. |
_workflow_provider
|
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Поставщик рабочего процесса. Default value: None
|
_service_endpoint
|
Конечная точка службы. Если указано значение None, определяется с помощью рабочей области. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Построенный конвейер. |
Комментарии
Пример файла YAML см. ниже. YAML содержит имя, default_compute и списки параметров, ссылки на данные, а также этапы для конвейера. На каждом этапе следует указать модули, вычисление и параметры, входные и выходные привязки. Кроме того, при необходимости можно указать runconfig и аргументы этапа.
Примеры файла YAML:
pipeline:
description: SamplePipelineFromYaml
parameters:
NumIterationsParameter:
type: int
default: 40
DataPathParameter:
type: datapath
default:
datastore: workspaceblobstore
path_on_datastore: sample2.txt
NodeCountParameter:
type: int
default: 4
data_references:
DataReference:
datastore: workspaceblobstore
path_on_datastore: testfolder/sample.txt
Dataset:
dataset_name: 'titanic'
default_compute: aml-compute
steps:
PrepareStep:
type: ModuleStep
name: "TestModule"
compute: aml-compute2
runconfig: 'D:\.azureml\default_runconfig.yml'
arguments:
-'--input1'
-input:in1
-'--input2'
-input:in2
-'--input3'
-input:in3
-'--output'
-output:output_data
-'--param'
-parameter:NUM_ITERATIONS
parameters:
NUM_ITERATIONS:
source: NumIterationsParameter
inputs:
in1:
source: Dataset
bind_mode: mount
in2:
source: DataReference
in3:
source: DataPathParameter
outputs:
output_data:
destination: Output1
datastore: workspaceblobstore
bind_mode: mount
TrainStep:
type: ModuleStep
name: "TestModule2"
version: "2"
runconfig: 'D:\.azureml\default_runconfig.yml'
arguments:
-'--input'
-input:train_input
-'--output'
-output:result
-'--param'
-parameter:NUM_ITERATIONS
parameters:
NUM_ITERATIONS: 10
runconfig_parameters:
NodeCount:
source: NodeCountParameter
inputs:
train_input:
source: Output1
bind_mode: mount
outputs:
result:
destination: Output2
datastore: workspaceblobstore
bind_mode: mount
publish
Публикация конвейера и обеспечение его доступности для повторного выполнения.
После публикации конвейера его можно отправить без кода Python, конструирующего конвейер. Возвращает созданный класс PublishedPipeline.
publish(name=None, description=None, version=None, continue_on_step_failure=None)
Параметры
Имя | Описание |
---|---|
name
|
Имя опубликованного конвейера. Default value: None
|
description
|
Описание опубликованного конвейера. Default value: None
|
version
|
Версия опубликованного конвейера. Default value: None
|
continue_on_step_failure
|
Указывает, следует ли продолжить выполнение других этапов в PipelineRun при сбое этапа. Значение по умолчанию — False. Если задано значение True, выполнение будет продолжено только для этапов, не имеющих зависимости от выходных данных этапа, на котором произошел сбой. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Созданный опубликованный конвейер. |
service_endpoint
Получение конечной точки службы, связанной с конвейером.
service_endpoint()
Возвращаемое значение
Тип | Описание |
---|---|
Конечная точка службы. |
submit
Отправка выполнения конвейера. Это эквивалентно использованию submit.
Возвращает отправленный PipelineRun. Используйте этот объект, чтобы отслеживать и просматривать сведения о выполнении.
submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)
Параметры
Имя | Описание |
---|---|
experiment_name
Обязательно
|
Имя эксперимента, в который необходимо отправить конвейер. |
pipeline_parameters
|
Параметры для выполнения конвейера, словарь {имя: значение}. Дополнительные сведения см. в статье PipelineParameter. Default value: None
|
continue_on_step_failure
|
Указывает, следует ли продолжать выполнение конвейера в случае сбоя этапа. Если задано значение True, выполнение будет продолжено только для этапов, не имеющих зависимости от выходных данных этапа, на котором произошел сбой. Default value: False
|
regenerate_outputs
|
Указывает, следует ли принудительно пересоздавать все выходные данные этапа и запрещать повторное использование данных для этого выполнения. Если задано значение False, это выполнение может повторно использовать результаты из предыдущих выполнений, а последующие выполнения могут повторно использовать результаты этого выполнения. Default value: False
|
parent_run_id
|
Необязательный идентификатор выполнения, задаваемый для родительского выполнения этого выполнения конвейера, который отображается в RunHistory. Родительское выполнение должно относиться к тому же эксперименту, в который отправляется этот конвейер. Default value: None
|
credential_passthrough
|
Необязательно. Если этот флаг включен, удаленное задание конвейера будет использовать учетные данные пользователя, который инициировал задание. Эта функция доступна только в закрытой предварительной версии. Default value: None
|
Возвращаемое значение
Тип | Описание |
---|---|
Отправленное выполнение конвейера. |
validate
Проверьте конвейер и определите потенциальные ошибки, например неподключенные входные данные.
validate()
Возвращаемое значение
Тип | Описание |
---|---|
Список ошибок в конвейере. |
Комментарии
Примеры ошибок проверки:
отсутствующие или непредвиденные источники данных конвейера или типы этапов;
отсутствующие параметры или определения входных данных для источника данных или этапа конвейера;
неподключенные входные данные;
этапы конвейера, формирующие цикл.
Если проверка пройдена (возвращается пустой список), а конвейер не работает, см. статью Отладка и устранение неполадок с конвейерами машинного обучения.
Атрибуты
graph
Получение графа, связанного с конвейером. Этапы и входные данные отображаются в графе в виде узлов.
Возвращаемое значение
Тип | Описание |
---|---|
Граф. |