Kubeflow 1.1 提升了机器学习工作流的生产力、隔离性与安全性以及 GitOps
Kubeflow 1.1 博客文章
Kubeflow 社区发布的 Kubeflow 1.1 为用户提供了宝贵的机器学习工作流自动化能力,包括 Fairing 和 Kale,以及 MXNet 和 XGBoost 分布式训练算子。通过提供多用户管道、CVE 扫描以及对 Google Private GKE 和 Anthos 的支持,它增强了隔离性和安全性。1.1 还通过提供新的框架&算法,以及灵活的配置&调优选项,改进了 Katib 的超参数调优功能。1.1 为使用蓝图和 kpt 原语驱动的 GitOps 方法进行一致且可重复的安装和操作奠定了基础。
1.1 中的机器学习生产力增强包括使用 Fairing 和 Kale 的端到端工作流。Fairing 工作流使用户能够从笔记本构建、训练和部署模型,并且 Fairing 的改进包括支持配置环境变量和挂载 secrets。Fairing 还为部署器添加了配置映射,并修复了 TensorRTSpec 的 bug。通过 Kale 支持的工作流包括在笔记本中编写模型代码,然后自动构建一个 Kubeflow 管道,使用 Katib 和缓存的管道步骤高效地部署、训练和调优该模型。Kubeflow 1.1 还提供了 MXNet 和 XGBoost 算子的稳定版本,这简化了多节点上的分布式训练并加快了模型创建速度。
隔离性和安全性功能交付包括 Private GKE 和 Anthos 支持,支持多用户 Kubeflow Pipelines 的稳定版 Kubeflow Pipelines,以及一个用于 Kubeflow 容器镜像扫描、CVE 报告,以及一个用于创建无发行版镜像(distroless image)的可选流程。1.1 还包括认证和授权选项。这包括管理员关闭自助命名空间创建模式的选项,因为管理员可能有其他命名空间创建流程。社区还开发了一个最佳实践,使用 subject access review 在 Kubeflow Web 应用程序中构建用户授权。
1.1 Katib 的改进带来了新的框架&算法,以及灵活的配置&调优选项。新的框架&算法包括
- 将 goptuna 框架与 (CMA-ES) 协方差矩阵自适应进化策略算法集成。
- DARTS (可微分架构搜索) 算法实现。
- 更好地支持 HP 框架 (chocolate, hyperopt, skopt)。
Katib 还增加了这些灵活的配置&调优选项
- 实现了一个 Python SDK,用于从 Kubeflow 笔记本运行 Katib 实验。
- 使用户能够在未定义目标的情况下运行实验。
- 提供了一个新的 trial template UI 编辑器。
- 使用户能够在实验运行期间在 UI 中查看实验和 suggestion 状态。
- 为实验添加了 resume policy,以清理 suggestion 资源。
Kubeflow 的安装和操作已得到增强,以支持 GitOps 方法。一些 Kubeflow 平台提供商和软件支持供应商正在开发省时的 GitOps 流程,以简化 Kubeflow 1.1 硬件和软件堆栈中各个层的安装、配置和操作并将其代码化。下一节提供了一些示例。
更多详细信息和 1.1 教程
Kubeflow 1.1 包含了许多技术增强,这些增强正通过社区的发布流程交付。应用功能开发的详细信息可以在 1.1 看板和 Kubeflow 路线图中找到。随着 Kubeflow 应用改进的合并,平台团队(GCP、AWS、IBM、Red Hat、Azure 和 Arrikto MiniKF)正在努力在其各自的环境中验证这些功能改进。
Kubeflow 1.1 包含 KFServing v0.3,其重点是通过大量迁移到 KNative v1 API 来提供更高的稳定性。此外,我们为 PyTorch 模型服务器添加了 GPU 支持,并为 SKLearn 添加了 pickled 模型格式支持。在路由、有效载荷日志记录、bug 修复等方面还有其他增强,详情可在此处找到此处。
Kubeflow 1.1 演示脚本和工作流教程已由各平台验证并提供。请在下方查看
1.1 用户还可以利用其他几个 Kubeflow 生态系统工具,包括
- Seldon Core 1.1,可处理扩展到数千个生产机器学习模型的需求,并提供高级机器学习功能,包括高级指标、请求日志记录、解释器、异常检测器、A/B 测试、金丝雀发布等。
- Feast:一个特征商店,允许机器学习团队定义、管理、发现并将其机器学习特征提供给模型使用。
未来展望与参与方式
Kubeflow 社区已开始规划下一个版本。尽管我们有一系列待处理的问题,但我们的流程包括与用户和贡献者进行讨论和调查,以验证用例及其价值。
社区将继续完善其治理并修订这份提案,《Kubeflow 工作组指南/治理提案》。我们正在积极制定工作组章程、技术负责人、主席和成员。我们期待这种发展。
以下提供了一些对希望参与 Kubeflow 社区的人有帮助的链接
- 加入 Kubeflow Slack 频道
- 加入 kubeflow-discuss 邮件列表
- 参加 每周社区会议
如果您有问题或遇到困难,请利用 Slack 频道和/或通过 GitHub 上的 Kubeflow 提交 bug。感谢社区全体成员,我们期待您在使用 Kubeflow 1.1 时取得成功。
特别感谢 Yuan Tang (Ant Group), Josh Bottum (Arrikto), Constantinos Venetsanopoulos (Arrikto), Yannis Zarkadas (Arrikto), Jiaxin Shan (AWS), Dan Sun (Bloomberg), Andrey Velichkevich (Cisco), Krishna Durai (Cisco), Hamel Husain (GitHub), Willem Pienaar (GoJek), Yuan Gong (Google), Jeremy Lewi (Google), Animesh Singh (IBM) 和 Clive Cox (Seldon) 为本文提供的帮助。