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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

kwargs
dict
Обязательно

Пользовательские аргументы ключевого слова, зарезервированные для будущей разработки

Комментарии

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

  • Конвейеры Машинного обучения 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
Workspace
Обязательно

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

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

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

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
значение по умолчанию: None

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

_service_endpoint
str
значение по умолчанию: None

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

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

description
str
значение по умолчанию: None

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

version
str
значение по умолчанию: None

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

continue_on_step_failure
bool
значение по умолчанию: None

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

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

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

Возвращаемый тип

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
dict
значение по умолчанию: None

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

continue_on_step_failure
bool
значение по умолчанию: False

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

regenerate_outputs
bool
значение по умолчанию: False

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

parent_run_id
str
значение по умолчанию: None

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

credential_passthrough
значение по умолчанию: None

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

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

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

Возвращаемый тип

validate

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

validate()

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

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

Возвращаемый тип

Комментарии

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

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

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

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

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

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

Атрибуты

graph

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

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

Граф.

Возвращаемый тип