您不知道的 10 个开源 MLOps 项目
不要重复自己是计算机科学的一项基本原则。因此,软件工程师经常使用现成的代码或预先构建的解决方案来解决常见问题。因此,大型机器学习项目通常会依赖众多其他开源项目。例如,Transformers(一个常用于构建基于 Transformer 的模型的库)就依赖于数千个其他开源项目。
使用开源项目构建项目有利有弊。选择合适的开源项目可以加速产品的开发,而无需从头开始。然而,如果您选择的开源项目缺乏积极的开发或支持,您的项目可能会被推迟。
为了帮助您选择正确的项目,本博客探讨了可用于衡量开源项目可靠性的标准以及十个鲜为人知的开源项目,这些项目将极大地帮助您构建强大的机器学习产品。
衡量开源项目的可靠性
如果你访问GitHub,你会发现许多乍一看似乎很有用的开源项目。然而,并非所有项目都已经成熟,可以用于商业产品。要确定是否应该使用某个特定的开源库,你可以根据以下标准进行评估:
- 文档和支持:具有详细文档和快速支持(通过 GitHub、Slack 或 Discord)的项目比没有的项目更好。
- 活动:积极解决拉取请求和问题的开源项目可以被认为比存档或陈旧的项目更可靠。
- 赞助商:其他公司赞助的项目是可靠的,因为贡献者和维护者会获得报酬来积极构建和改进项目。
- 许可证:某些项目设有许可证,禁止用户分发和使用项目进行商业用途。因此,在将项目用于商业用途之前,最好仔细阅读“LICENSE”文件。
现在您已经了解了评估开源项目的标准,让我们来看看十个您可能没有听说过的有用的开源 MLOps 项目。
开源机器学习项目
-
KitOps
在机器学习项目中,数据工程师、数据科学家和机器学习工程师之间经常难以协作。交付工件(特征、模型、代码、数据集等)涉及一个复杂的软件流程,可能需要频繁开会或进行结对编程。许多人尝试将这一过程自动化,但这需要大量工具,而这些工具可能会带来额外的复杂性。KitOps通过将机器学习项目中的所有组件视为单个软件单元来消除这些复杂性。这使得组件的打包、版本控制和跟踪变得更加容易,从而实现不同利益相关者之间的顺畅交接。
此外,使用 KitOps,可以解压单个组件(数据、模型或代码)并对其进行操作。这简化了协作和依赖项管理。KitOps支持机器学习生态系统中的 大多数 工具,并提供易于初学者理解的文档,使其更容易切换。
KitOps 团队最近宣布了第二个项目 Jozu Hub,用于托管 ModelKit。您可以点击此处查看注册中心,并点击此处了解更多关于该 Hub 的信息。
-
EvalML
超参数调优和机器学习模型评估是机器学习产品开发不可或缺的一部分。EvalML 是一个 AutoML 库,旨在帮助工程师避免手动训练和调优模型,从而简化机器学习模型的构建、优化和评估流程。它还包含数据质量检查和交叉验证功能。 -
Burr
Burr 是一个专注于大型语言模型 (LLM) 应用的新库。Burr 使开发人员能够使用简单的 Python 构建块构建决策代理(聊天机器人和模拟器),并将其部署到自定义硬件上。它包含三个组件:- 一个 Python 库,使您能够使用简单的 Python 函数构建和管理状态机。
- 您可以用来进行自省和调试的UI 。
- 一组集成可帮助您将 Burr 与其他系统集成。
-
Evidently是一款由Evidently AI
构建的开源监控工具,旨在帮助数据科学家识别数据漂移、标记数据、模型性能变化并运行自定义测试。Evidently 适用于表格和文本数据,包括嵌入数据。简而言之,它是一款用于评估、测试和监控生产环境中机器学习模型的工具。Evidently 允许用户运行预定义测试或为其机器学习模型创建自定义测试。计算出的测试结果和指标可以显示在交互式仪表板中,该仪表板可以托管在公共云或私有云基础架构上。
-
Rerun
MLOps 领域中的大多数工具都专注于模型和基础架构。与这些工具不同,Rerun 专注于数据,而数据是任何机器学习项目不可或缺的一部分。Rerun 是一个时间序列数据库和可视化工具,用于时间和多模态数据。它可用于机器人技术、空间计算、二维/三维模拟和金融领域的验证、调试和解释。Rerun 提供 SDK(C++、Python 和 Rust)来记录图像、张量、点云和文本等数据。 -
Agenta
与列表中的其他库不同,Agenta 是一个端到端的 LLM 开发平台。它允许工程师协作处理提示、评估和监控 LLM 驱动的应用程序。它还协助整合人工反馈并部署基于 LLM 的应用程序。Agenta 与模型和库无关,允许工程师使用任何库和模型,从而使该工具更加通用且实用。 -
Marimo arimo
Jupyter Notebook 是一款用于实验机器学习模型的有效工具,但它也存在一些问题:Jupyter Notebook 难以部署和协作。marimo 是一款开源的 Python 响应式 Notebook。与 Jupyter Notebook 不同,marimo Notebook 具有可复现性、交互性、git 友好、易于协作,并且可以作为脚本或应用程序部署。因此,marimo Notebook 是构建类似模型比较工具等内部工具的理想选择。 -
Kedro
机器学习项目的一个严重问题是将模型从开发阶段推向生产阶段的复杂过程。Kedro 是一个开源工具,它通过采用软件工程最佳实践来解决这个问题,帮助您创建可重复、可维护且模块化的数据工程和数据科学流程。此外,kedro 还提供kedro-viz用于可视化机器学习工作流程。它还允许您创建项目模板来组织项目中的配置、源代码、测试、文档和笔记本。
-
Skypilot
LLM 目前非常热门;企业和个人都在使用它们来自动化枯燥的任务,提高效率和响应能力。然而,LLM 部署起来很繁琐,成本也很高。
Skypilot is an open source tool that helps engineers LLMs, AI models, or any batch jobs in the cloud while ensuring high availability. Its [autostop and autodown feature](https://skypilot.readthedocs.io/en/latest/reference/auto-stop.html) automatically stop and delete resources when they are not in use, resulting in low cloud bills.
- Featureform机器学习模型的成功取决于数据的质量,因此也取决于输入到模型的特征。然而,在大型组织中,一个团队的成员可能不知道组织中其他团队开发的优秀特征。特征存储通过提供一个中央特征存储库来帮助消除这个问题,该存储库可供组织内的所有团队和个人访问。
[Featureform is a virtual feature store](https://docs.featureform.com/getting-started/architecture-and-components#resource-and-feature-registry) that enables data scientists to define, manage, and serve their ML model's features. The virtual feature store sits on top of the existing data infrastructure and orchestrates it to work like a traditional feature store. Its benefits include easy collaboration, organized experimentation, easy deployment (of features), and increased reliability.
到目前为止,应该很清楚,机器学习项目依赖于众多开源项目来将模型从训练阶段推向生产阶段。因此,选择能够轻松与其他 MLOps 工具集成、拥有完善文档且学习曲线较浅的工具至关重要。KitOps就是这样的工具之一。除了所有这些功能外,它还易于安装、拥有丰富的教程,并包含Jozu的企业支持。
如果您发现这篇文章有帮助,请通过 GitHub Star 支持我们!