dsl Пакет

Функции

pipeline

Создайте конвейер, содержащий все узлы компонентов, определенные в этой функции.

pipeline(func: Callable[[P], T] | None = None, *, name: str | None = None, version: str | None = None, display_name: str | None = None, description: str | None = None, experiment_name: str | None = None, tags: Dict[str, str] | None = None, **kwargs) -> Callable[[Callable[[P], T]], Callable[[P], PipelineJob]] | Callable[[P], PipelineJob]

Параметры

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

Функция пользовательского конвейера, для оформления.

name
str

Имя компонента конвейера по умолчанию — имя функции.

version
str

Версия компонента конвейера по умолчанию — "1".

display_name
str

Отображаемое имя компонента конвейера по умолчанию — имя функции.

description
str

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

experiment_name
str

Имя эксперимента, в который будет создано задание, если указано значение None, для эксперимента будет задан текущий каталог.

tags
dict[str, str]

Теги компонента конвейера.

kwargs
dict

Словарь дополнительных параметров конфигурации.

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

Можно использовать

  • Декоратор, если func имеет значение None
  • Украшенный функ

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

Примеры

Показано, как создать конвейер с помощью этого декоратора.


   from azure.ai.ml import load_component
   from azure.ai.ml.dsl import pipeline

   component_func = load_component(
       source="./sdk/ml/azure-ai-ml/tests/test_configs/components/helloworld_component.yml"
   )

   # Define a pipeline with decorator
   @pipeline(name="sample_pipeline", description="pipeline description")
   def sample_pipeline_func(pipeline_input1, pipeline_input2):
       # component1 and component2 will be added into the current pipeline
       component1 = component_func(component_in_number=pipeline_input1, component_in_path=uri_file_input)
       component2 = component_func(component_in_number=pipeline_input2, component_in_path=uri_file_input)
       # A decorated pipeline function needs to return outputs.
       # In this case, the pipeline has two outputs: component1's output1 and component2's output1,
       # and let's rename them to 'pipeline_output1' and 'pipeline_output2'
       return {
           "pipeline_output1": component1.outputs.component_out_path,
           "pipeline_output2": component2.outputs.component_out_path,
       }

   # E.g.: This call returns a pipeline job with nodes=[component1, component2],
   pipeline_job = sample_pipeline_func(
       pipeline_input1=1.0,
       pipeline_input2=2.0,
   )
   ml_client.jobs.create_or_update(pipeline_job, experiment_name="pipeline_samples", compute="cpu-cluster")