Skip to main content

从装饰器构建的管道

pipeline_from_decorator.py 示例演示了如何使用PipelineDecorator 类在ClearML中创建管道。

这个示例创建了一个包含四个任务的管道,每个任务都是使用自定义装饰器从Python函数创建的:

  • executing_pipeline - 实现管道控制器,定义管道结构和执行逻辑。
  • step_one - Download and process data.
  • step_two - 进一步处理来自 step_one 的数据。
  • step_three - 使用来自 step_two 的处理数据来训练模型。
  • step_four - 使用来自step_two的数据和来自step_three的模型进行预测。

step_onestep_twostep_threestep_four函数中定义的管道步骤,每个步骤都使用 @PipelineDecorator.component 装饰器进行包装,当管道执行时,该装饰器会为每个步骤创建一个ClearML管道步骤。

执行这些步骤并控制它们之间交互的逻辑在executing_pipeline函数中实现。这个函数被@PipelineDecorator.pipeline装饰器包裹,当它被执行时,会创建ClearML管道任务。

以下部分更详细地描述了管道控制器和步骤中发生的情况。

管道控制器

在这个例子中,管道控制器由executing_pipeline函数实现。

使用@PipelineDecorator.pipeline装饰器在函数执行时创建一个ClearML控制器任务。 有关详细信息,请参阅@PipelineDecorator.pipeline

在示例脚本中,控制器以下列方式定义管道步骤之间的交互:

  1. 控制器函数将其参数pickle_url传递给管道的第一个步骤(step_one
  2. 第一步返回的数据,data_frame,被传递给step_two
  3. 从第二步的输出返回的数据,X_trainy_train,被传递给 step_three
  4. 从第二步的输出返回的数据,X_testy_test,以及第三步的输出 model 被传递给 step_four
Local Execution

在这个例子中,通过使用PipelineDecorator.run_locally方法,管道被设置为在本地模式下运行,然后再调用管道函数。有关管道执行选项的更多信息,请参见这里

管道步骤

使用@PipelineDecorator.component装饰器将使函数成为一个可以从管道控制器调用的管道组件,该控制器实现了管道的执行逻辑。有关详细信息,请参阅@PipelineDecorator.component

当管道控制器调用管道步骤时,将创建一个相应的ClearML任务。请注意,函数内部的所有包导入将自动记录为管道执行步骤所需的包。

管道执行

PipelineDecorator.set_default_execution_queue('default')

# PipelineDecorator.debug_pipeline()

executing_pipeline(
pickle_url='https://github.com/allegroai/events/raw/master/odsc20-east/generic/iris_dataset.pkl',
)

默认情况下,管道控制器和管道步骤通过ClearML 队列启动。 使用 PipelineDecorator.set_default_execution_queue 方法指定所有管道步骤的执行队列。@PipelineDecorator.component装饰器的execution_queue参数会覆盖为其指定的特定步骤的默认队列值。

Execution Modes

ClearML 提供了不同的管道执行模式以适应开发和生产用例。有关更多详细信息,请参阅 执行模式

要运行管道,请调用管道控制器函数。

WebApp

当实验执行时,控制台输出显示任务ID,并链接到管道控制器任务页面和管道页面。

ClearML Task: created new task id=bc93610688f242ecbbe70f413ff2cf5f
ClearML results page: https://app.clear.ml/projects/462f48dba7b441ffb34bddb783711da7/experiments/bc93610688f242ecbbe70f413ff2cf5f/output/log
ClearML pipeline page: https://app.clear.ml/pipelines/462f48dba7b441ffb34bddb783711da7/experiments/bc93610688f242ecbbe70f413ff2cf5f

流水线运行的页面包含流水线的结构、每个步骤的执行状态,以及运行的配置参数和输出。

Pipeline DAG

要查看运行的完整信息,请点击运行信息面板底部的完整详情,这将打开管道的控制器任务页面

点击一个步骤以查看其详细概述。

管道步骤信息

控制台和代码

点击详细信息查看管道控制器控制台输出的日志。

管道控制台

点击一个步骤以查看其控制台输出。您还可以通过点击控制台日志顶部的CODE来查看所选步骤的代码。

Pipeline步骤代码