趋近智
许多机器学习 (machine learning)流水线在初期可以设计为单个脚本。然而,生产系统很少以这种方式运行。一个典型的机器学习工作流由多个相互关联的阶段组成:数据验证、预处理、模型训练、评估和部署。如果“数据验证”步骤失败,则不应继续进行“模型训练”。如果“训练”成功,则希望自动触发“评估”。管理这种顺序、处理失败以及安排运行,需要的不仅仅是一个简单的脚本。编排工具正是为了实现这一功能。
编排工具充当机器学习流水线的指挥家。它本身并不执行具体任务,如数据处理或模型训练。相反,它指导应该运行哪个任务、何时运行,以及在任务成功或失败时该怎么做。它管理从开始到结束的整个工作流。
没有编排器的自动化流水线就像一条没有中央控制系统的工厂装配线。每个站点可能都在工作,但整体流程是脆弱且难以管理的。编排器提供的控制系统使流水线变得可靠且易于扩展。
以下是它们解决的主要问题:
编排工具使用一种称为有向无环图(DAG)的结构来定义工作流。这听起来可能有点抽象,但想法其实很直观。DAG 只是描述一组任务及其之间依赖关系的一种方式。
让我们将一个简单的机器学习 (machine learning)流水线可视化为 DAG。
代表机器学习流水线的有向无环图 (DAG)。每个框代表一个任务,箭头定义了执行顺序。
在此图中,编排器明白必须先完成“数据接入”,然后是“数据验证”,依此类推。在数据成功处理之前,它不会尝试训练模型。从“模型评估”到“模型部署”的虚线代表条件逻辑:模型只有在通过评估标准后才会被部署。
有几种工具可用于编排流水线。虽然它们都使用 DAG 结构,但在设计和主要用途上有所不同。
Apache Airflow 是一个成熟的开源平台,用于编排通用工作流。它并非专门为机器学习 (machine learning)设计,但由于其灵活性,在这一领域得到了广泛使用。
Kubeflow 是一个致力于使 Kubernetes 上的机器学习工作流变得简单、可移植且易于扩展的项目。Kubeflow Pipelines 是负责编排的组件。
正如你在我们的动手实践中将看到的,像 GitHub Actions 这样的工具也可以作为轻量级编排器。虽然它不是像 Airflow 或 Kubeflow 那样的专用编排平台,但它是执行 CI/CD 和简单的事件驱动流水线的出色工具。
git push 或拉取请求 (pull request)。选择哪种工具取决于项目的规模和团队的环境。对于简单的 CI 任务,GitHub Actions 就足够了。对于复杂的、有计划的重新训练流水线,像 Airflow 或 Kubeflow 这样的专用工具可以提供更多关于调度、监控和恢复的功能。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•