Kubeflow 显著简化了安全机器学习模型和大语言模型(LLMs)的开发、调优和管理。亮点包括:
-
模型注册表:集中管理机器学习模型、版本和制品。
-
LLMs 微调 API:简化使用自定义数据集微调 LLMs 的过程。
-
流水线:整合了 Tekton 和 Argo Workflows 后端,提高灵活性。
-
安全增强:网络策略、Oauth2 代理和 CVE 扫描。
-
集成升级:与 Ray、Seldon、BentoML 和 KServe 的集成优化,支持 LLM 的 GPU 优化。
-
安装和文档:简化安装,更新平台依赖,改进文档。
这些更新旨在简化工作流程,改善集成依赖,并为企业规模提供 Kubernetes 原生的操作效率、安全性和隔离性。
模型注册表
模型注册表为机器学习模型开发者提供了一个中央目录,以管理模型、版本和制品元数据。它填补了模型实验和生产活动之间的空白。模型注册表为机器学习生命周期中的所有利益相关者提供了一个中央接口,促进对模型的协作。社区早已期待这一功能,我们很高兴将其引入 Kubeflow 生态系统。
这一初步版本包括 REST API 和 Python SDK,用于跟踪模型制品和元数据,采用标准化格式,可以在 Kubeflow 组件中重用,例如部署推理服务器。你可以通过 Kubeflow 网站上的模型注册表教程入门,或观看模型注册表的短演示视频。
这只是一个开始。我们正在进行 Alpha 版本,希望收到反馈。模型注册表工作组每两周开会,你可以通过参加会议或直接在代码库中提供反馈。
LLMs 微调 API
在快速发展的机器学习/人工智能领域,微调预训练模型的能力为实现定制解决方案提供了重要的突破。使用自定义数据集进行微调,允许实践者根据具体需求调整大型语言模型(LLMs)。
然而,微调任务通常需要大量的手动干预,包括配置训练环境和跨节点分配数据。新的微调 API 旨在简化这一过程,提供易于使用的 Python 接口,抽象掉在分布式系统上设置和执行微调任务的复杂性。
通过提供该 API,训练操作器不仅简化了机器学习实践者的用户体验,还利用了现有的分布式训练基础设施。你可以利用 Kubernetes 动态调度 GPU,从而节省计算资源和成本。训练操作器还为你提供容错保证,保护训练过程免受集群节点故障的影响。
流水线
v1 功能对齐
我们在 KFPv1 功能对齐方面取得了重大进展,添加了更多 Kubernetes 资源到 Pipelines 代码中,推出了新的 kfp-kubernetes 1.2.0 Python 包。我们鼓励每位 KFP 用户测试新 V2 功能,并规划从 V1 到 V2 的迁移。仍有一些待迁移的功能,请通过在 KFP 代码库中打开新问题来帮助我们识别缺失的部分。
Argo Workflows 和 Tekton 后端整合
Pipelines 的 Tekton 后端已合并到 Kubeflow Pipelines 主代码库中。你现在可以从同一 Pipelines 版本中选择工作流引擎。这证明了 KFP v2 架构的可扩展性和灵活性,鼓励其他贡献者支持其他工作流引擎。
Argo Workflows 和 Tekton 各有独特优势。Argo Workflows 以其简单易用而受到许多用户的青睐。Tekton 则提供了丰富的自定义选项,通过流水线定义和可重用组件,适合各种 CI/CD 系统的集成。根据具体需求和偏好,你可以利用 Argo Workflows 或 Tekton 的优势来优化机器学习工作流。
在这篇博客文章[1]中,你可以找到有关使用 Tekton 或 Argo Workflows 运行 KFP 的更多细节。
Argo Workflows 升级
Kubeflow Pipelines 的 Argo Workflows 后端已升级至 3.4.16。此次升级将支持的版本更接近最新上游版本,并解决了许多 CVE 问题。之前的小版本不再由 Argo 社区修补,因此积累了不少安全问题。
Katib
Kubeflow 1.9 包含 Katib 0.17,正式支持 ARM64,使我们更接近全面支持 ARM64。
对于使用 Python SDK 提交训练作业的数据科学家,现在可以从调优方法中设置算法设置和环境变量。之前,你必须直接依赖 Kubernetes CRD 提交。你还可以利用 TensorFlow 2.16 和 PyTorch 2.2 的最新功能。团队还解决了环境冲突,允许 Katib Python SDK 与 Kubeflow Python SDK 同时安装。
还有许多其他改进和 bug 修复。请查看完整的更改日志[2]。
中央仪表板
此版本对 Kubeflow 中央仪表板进行了多项改进,包括:
-
侧边栏的样式改进,将所有 Kubeflow Pipelines 链接分组,减少杂乱。
-
“管理贡献者”页面的显著改进,包括能够管理你拥有的所有配置文件的贡献者,并查看你可以访问的配置文件,即使你不是所有者。
-
允许外部服务通过向非 iframe 应用程序发送命名空间选择器值来解析当前配置文件(命名空间)。
-
对依赖项进行了重大更新,以减少 CVE。
笔记本
KServe
我们升级到 KServe 0.13。此版本包括:
-
增强的 Hugging Face 运行时支持:支持 Hugging Face 模型,实施了 KServe Hugging Face Serving Runtime。当前支持的任务包括序列分类、标记分类、填充掩码、文本生成和文本到文本生成。
-
vLLM 支持:现在包括针对 vLLM 的专用运行时支持,简化了 LLMs 的部署过程。
-
OpenAI 模式集成:KServe 现在支持生成性变换器模型的端点,遵循 OpenAI 协议。这使 KServe 可以直接与 OpenAI 的客户端库或第三方工具(如 LangChain 和 LlamaIndex)一起使用。
Trivy 对清单主分支进行自动 CVE 扫描。我们感谢社区对减少 CVE 数量的贡献,安全工作组需要帮助以构建更安全的平台。你可以在此处找到有关我们的安全扫描过程和披露政策的更多详细信息。以下是 6 月 25 日的总结:
你可以在此处[7]找到详细的安全工作组路线图
文档
MLOps 是一个复杂的主题,用户希望有清晰、最新和全面的文档。我们很高兴地宣布,我们开始了重组过程,以更好地对齐各组件的文档结构。我们正在改进文档,以更好地符合用户期望,并组织技术文档。我们将继续提高文档的质量和完整性,新增用户指南、教程和参考架构主题。
我们正在寻找新成员,帮助我们撰写完整且高质量的文档。请通过在 Kubeflow 网站上打开和审核 PR 参与其中。
参考
Kubeflow 1.9:模型管理和训练优化的新工具
[1]博客文章: https://developer.ibm.com/blogs/awb-tekton-optimizations-for-kubeflow-pipelines-2-0/
[2]更改日志: https://github.com/kubeflow/katib/blob/master/CHANGELOG.md
[3]更改日志: https://github.com/kubeflow/kubeflow/releases/tag/v1.9.0
[4]此处: https://github.com/kubeflow/kubeflow/issues/7156
[5]此处: https://github.com/kubeflow/manifests/tree/master/common/networkpolicies
[6]此处: https://github.com/kubeflow/manifests/tree/master/common/oidc-client/oauth2-proxy
[7]此处: https://github.com/kubeflow/manifests/issues/2598
[8]此处: https://github.com/kubeflow/manifests/issues/2592
[9]公告博客: https://blog.kubeflow.org/operators/2024/04/15/kubeflow-spark-operator.html
[10]此页面: https://summerofcode.withgoogle.com/programs/2024/organizations/kubeflow
[11]发布页面: https://www.kubeflow.org/docs/releases/kubeflow-1.9/
[12]入门: https://www.kubeflow.org/docs/started/
[13]此处: https://www.kubeflow.org/docs/started/installing-kubeflow/#packaged-distributions
[14]Kubeflow 网站: https://www.kubeflow.org/docs/about/community/
[15]Kubeflow Slack 频道: https://www.kubeflow.org/docs/about/community/
[16]kubeflow-discuss: https://groups.google.com/g/kubeflow-discuss
[17]社区会议: https://www.kubeflow.org/docs/about/community/#kubeflow-community-call