更快地开发和部署解决方案已成为当今创新的标准。然而,对于人工智能(AI)和机器学习(ML)团队而言,扩展工作流程并快速提供价值面临着独特的挑战,包括复杂的架构、人工流程和效率低下的问题。平台工程可以通过内部开发平台(IDPs)来优化这些工作流并自动化重复性任务,从而让团队能够专注于最重要的事情:提供有影响力的AI/ML解决方案。
《2024 Dora Report》突出了平台工程的重要影响,比如部署频率提高了60%,开发人员的生产力提高了8%,以及整个团队的表现提升了10%。这些开源平台工程工具可以帮助你在AI/ML项目中取得类似的效果。
TL;DR. 顶开源的AI/ML平台工程工具推荐
以下是我推荐的一些简化AI/ML工作流程并减少基础设施复杂度的平台工程工具的简要清单:
- KitOps: 所有AI/ML项目的集中版本控制。
- Kubeflow: 在Kubernetes上实现更简洁的机器学习工作流管理。
- DVC: 通过跟踪数据集、代码和实验来确保可重复性。
- Seldon Core: Kubernetes原生工具,用于部署和监控机器学习模型。
- BentoML: 简化模型的打包和部署。
- Apache Airflow: 自动化、监控和调度机器学习管道。
- Prometheus: 实时监控基础设施和机器学习部署。
- Comet: 跟踪机器学习实验,并提供关于模型性能的洞察。
- MLflow: 管理整个生命周期,包括跟踪、部署和版本控制。
- Feast: 一个集中式的特征存储库,用于实时管理特征数据。
KitOps 通过可重用组件、集中版本管理和安全的 ModelKit 打包格式来简化 ML 工作流。它与 Docker、Terraform 和 Kubernetes 等工具无缝集成,以自动化部署并从而加速开发迭代。KitOps 还简化了 Jupyter Notebook 从开发到生产环境的过渡,如下面的图所示。
此外,KitOps 为工程师提供了一个集中且不可篡改的记录,以增强透明度。它还提供了一个安全且即用的包,名为 ModelKit,用于打包、版本管理和跟踪项目组件,包括代码、数据集、模型 和 元数据(如图所示)。
Kubeflow 是一个专为 Kubernetes 设计的开源平台,简化了在 Kubernetes 上管理机器学习工作流。它处理容器化带来的复杂性,并支持端到端的管道自动化和大型数据集的分布式训练,因此非常适合构建生产级别的机器学习系统。
具有实验跟踪、模型版本管理等功能,Kubeflow 确保了无论是在本地、云还是混合基础设施中,各个团队之间的可重复性、一致性和协作。
数据版本控制系统 是一个专为机器学习工作流设计的强大版本控制工具。它通过跟踪和共享数据、管线、实验和模型来确保工作的可复现性。凭借其类似 Git 的界面,它可以与现有的 Git 仓库无缝集成。它支持多种云端存储,如 AWS S3 和 Azure Blob,从而可以在不增大 Git 仓库的情况下对大型数据集进行版本管理。
DVC 还可以与 CI/CD 管道集成,让在整个机器学习生命周期中自动化测试以及模型部署变得更容易。
4. 索eldon核心.Seldon Core 简化了 Kubernetes 的复杂性,这在最近由 Cloud Native Computing Foundation (CNCF) 进行的一项调查中,有超过 40% 的工程师 报告过。它使 ML 工程师可以在没有 Kubernetes 专长的情况下大规模部署模型,支持从 A/B 测试、金丝雀部署、请求日志到异常值检测和多臂赌博机等高级部署策略——使其成为优化工作流程和确保部署灵活性的理想工具。
除了具备部署能力之外,Seldon Core 还提供了强大的监控工具来持续追踪模型在生产中的性能。
5. BentoMLBentonML(在中文技术社区中可能更常用的等效名称)
BentoML 是一个平台工程工具,旨在大规模部署机器学习模型并构建生产级的AI系统。它通过利用一个标准化框架创建一个名为Bento的可移植包,该包包含了模型、依赖项和配置。这种方法简化了模型管理,使得模型的部署和集成在不同环境中更加无缝,确保在整个构建过程中保持一致性。
6. Apache Airflow(Apache任务调度工具)Apache Airflow(https://airflow.apache.org/)在使用Python调度、编写和监控机器学习工作流方面提供了简单性。该工具最大的优势在于它能与您运行的任何系统或流程无缝对接。这也减少了手动干预,提升了团队的工作效率,符合平台工程工具的理念。
除了调度管理工作流之外,Apache Airflow 还支持多种工具和服务,从而增强了平台的定制功能。这使得团队能够更有效地管理机器学习基础设施。
7. 普罗米修斯(Prometheus)希腊神话中的盗火者
Prometheus 负责处理与您的指标相关的告警和监控任务。作为款开源监控平台,它允许 AI 开发者和 ML 工程师更好地了解其基础设施,他们可以创建自定义仪表板,并实时监控他们的 ML 工作流程。
它还支持高级图形功能,并与 Grafana 等可视化工具集成,以解释和展示数据。Prometheus 的强大查询语言可以切片、切块和操作时序数据,并且支持与 Docker 和 JMX 等第三方来源(如 Docker 和 JMX)指标的集成。
8. 彗星
Comet 是一个端到端的ML平台,旨在评估大规模语言模型 (LLM),追踪实验并在生产环境中监控模型。它支持自托管和云端部署的设置,允许开发人员实时记录指标、输出和超参数值。凭借其强大的仪表板和可视化工具,团队可以直观地展示见解,从而更容易地分析和理解模型的表现。
由于 Comet 与生态系统中的各种工具集成,它具备灵活性。这种灵活性有助于开发人员简化工作流,优化 AI/ML 流程,并在整个模型生命周期中保持效率。
MLflow 为开发者提供了全方位的工具来管理机器学习的整个生命周期。其四个主要组件——跟踪、模型、项目 和 模型注册表——促进了高效、可重复和可扩展的机器学习流水线构建。
这些组件都有各种功能(如下所示)来简化ML生命周期。
- 跟踪 让开发人员能够记录和比较参数、结果和指标。
- 模型 相关部分负责处理、管理和部署模型。
- 项目 包中的代码在机器学习项目中用于实现可重复性。
- 注册表 让开发人员能够集中管理模型存储,以进行生命周期跟踪和版本控制。
与其它工具相比,Feast 不同,它解决了一个不同的问题:管理机器学习特征数据。Feast 通过存储和管理用于生成机器学习特征的代码来简化特征管理,并促进这些特征到生产环境的部署。通常,它会与您的数据源集成,以便简化管理。
这个工具特别是在你的机器学习模型需要经常重新训练以部署应用程序时特别重要。
结尾最好的开始使用平台工程工具的时间是昨天,其次是现在。忽视平台工程工具的使用会妨碍你的快速构建,并降低团队和开发人员的效率。幸好,这份列表显示有许多可供选择的开源平台工程工具。
无论你是在构建可扩展的流水线、跟踪实验进展,还是将模型部署到生产中,KitOps 都能应对机器学习项目和模型开发中的复杂问题,同时让你的工作流程保持高效、用户友好且稳健。
如果你看到这里,你就已经完成了大半。通过加入我们的 Discord 与同行 ML 和平台工程师交流,或今天查看我们的入门指南,开始你的旅程。你觉得这个列表有帮助吗?如果有帮助,不妨分享给你的朋友们!
共同学习,写下你的评论
评论加载中...
作者其他优质文章