
292
|
第
6
章
开发与生产管道
当我们从开发阶段转向生产阶段时,管道调用的方式通常会发生变化。我们可能想
要从
notebook
构建和原型化我们的管道,我们可以通过运行
notebook
单元、调试错
误以及从相同的环境更新代码来重新调用我们的管道。一旦我们准备好生产,我们
可以将组件代码和管道定义移动到单个脚本中。使用我们在脚本中定义的管道,我
们将能够安排运行,并使我们组织中的其他人更容易以可复现的方式调用管道。
Kale
是一个可以用于生产管道的工具(
https://github.com/kubeflow-kale/kale
),它使用
Kubeflow Pipelines API
将
Jupyter notebook
代码转换为脚本。
生产管道还允许对机器学习工作流进行编排。编排指的是向管道中添加逻辑,以确
定将执行哪些步骤,以及这些步骤的结果会是什么。例如,我们可能决定只将具
有
95%
或更高精度的模型部署到生产环境中。当新的可用数据触发管道运行并训练
一个更新的模型时,我们可以添加逻辑来检查我们评估组件的输出,如果精度高于
阈值就执行部署组件,否则就终止管道运行。正如本节前面讨论过的,
Airflow
和
Kubeflow Pipelines
为管道编排提供了
API
。
机器学习管道中的族系跟踪
管道的另一个特性是使用它们来跟踪模型元数据和工件,也称为族系跟踪(
lineage
tracking
)。每次我们调用一个管道,就会生成一系列的工件。这些工件可能包括数
据集摘要、导出的模型、模型评估结果、特定管道调用的元数据等。族系跟踪让我们 ...