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


Pipeline Класс

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

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

Общие сведения о том, почему и когда следует использовать конвейеры: https://aka.ms/pl-concept.

Общие сведения о построении конвейера: https://aka.ms/pl-first-pipeline.

Инициализация конвейера.

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

Конструктор

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

Описание конвейера.

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

Хранилище данных по умолчанию, которое используется для подключений к данным.

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

Каталог скриптов по умолчанию для этапов, выполняющих скрипт.

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

Следует ли разрешать закрытие (автоматический ввод зависимых этапов).

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

Рабочая область для отправки конвейера.

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

Список этапов, которые выполняются как часть конвейера.

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

Описание конвейера.

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

Хранилище данных по умолчанию, которое используется для подключений к данным.

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

Каталог скриптов по умолчанию для этапов, выполняющих скрипт.

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

Указывает, разрешено ли закрытие (автоматический перенос зависимых шагов).

_workflow_provider
Обязательно
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

Поставщик рабочих процессов, если он не создан.

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

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

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

Файл YAML, который описывает конвейер.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>

Поставщик рабочего процесса.

Default value: None
_service_endpoint
str

Конечная точка службы. Если указано значение 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
str

Имя опубликованного конвейера.

Default value: None
description
str

Описание опубликованного конвейера.

Default value: None
version
str

Версия опубликованного конвейера.

Default value: None
continue_on_step_failure

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

Default value: None

Возвращаемое значение

Тип Описание

Созданный опубликованный конвейер.

service_endpoint

Получение конечной точки службы, связанной с конвейером.

service_endpoint()

Возвращаемое значение

Тип Описание
str

Конечная точка службы.

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

Имя эксперимента, в который необходимо отправить конвейер.

pipeline_parameters

Параметры для выполнения конвейера, словарь {имя: значение}. Дополнительные сведения см. в статье PipelineParameter.

Default value: None
continue_on_step_failure

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

Default value: False
regenerate_outputs

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

Default value: False
parent_run_id
str

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

Default value: None
credential_passthrough

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

Default value: None

Возвращаемое значение

Тип Описание

Отправленное выполнение конвейера.

validate

Проверьте конвейер и определите потенциальные ошибки, например неподключенные входные данные.

validate()

Возвращаемое значение

Тип Описание

Список ошибок в конвейере.

Комментарии

Примеры ошибок проверки:

  • отсутствующие или непредвиденные источники данных конвейера или типы этапов;

  • отсутствующие параметры или определения входных данных для источника данных или этапа конвейера;

  • неподключенные входные данные;

  • этапы конвейера, формирующие цикл.

Если проверка пройдена (возвращается пустой список), а конвейер не работает, см. статью Отладка и устранение неполадок с конвейерами машинного обучения.

Атрибуты

graph

Получение графа, связанного с конвейером. Этапы и входные данные отображаются в графе в виде узлов.

Возвращаемое значение

Тип Описание

Граф.