从装饰器构建的管道
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_one
、step_two
、step_three
和step_four
函数中定义的管道步骤,每个步骤都使用
@PipelineDecorator.component
装饰器进行包装,当管道执行时,该装饰器会为每个步骤创建一个ClearML管道步骤。
执行这些步骤并控制它们之间交互的逻辑在executing_pipeline
函数中实现。这个函数被@PipelineDecorator.pipeline
装饰器包裹,当它被执行时,会创建ClearML管道任务。
以下部分更详细地描述了管道控制器和步骤中发生的情况。
管道控制器
在这个例子中,管道控制器由executing_pipeline
函数实现。
使用@PipelineDecorator.pipeline
装饰器在函数执行时创建一个ClearML控制器任务。
有关详细信息,请参阅@PipelineDecorator.pipeline
。
在示例脚本中,控制器以下列方式定义管道步骤之间的交互:
- 控制器函数将其参数
pickle_url
传递给管道的第一个步骤(step_one
) - 第一步返回的数据,
data_frame
,被传递给step_two
- 从第二步的输出返回的数据,
X_train
和y_train
,被传递给step_three
- 从第二步的输出返回的数据,
X_test
和y_test
,以及第三步的输出model
被传递给step_four
。
在这个例子中,通过使用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
参数会覆盖为其指定的特定步骤的默认队列值。
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
流水线运行的页面包含流水线的结构、每个步骤的执行状态,以及运行的配置参数和输出。
要查看运行的完整信息,请点击运行信息面板底部的完整详情,这将打开管道的控制器任务页面。
点击一个步骤以查看其详细概述。
控制台和代码
点击详细信息查看管道控制器控制台输出的日志。
点击一个步骤以查看其控制台输出。您还可以通过点击控制台日志顶部的CODE来查看所选步骤的代码。