有人问:生产那边怎么样?
工程师们:😊
我们先从基础讲起吧,因为你们中的一些人可能还不了解MLOps是什么,是吧?
MLOps,或机器学习运维,是一套实践方法和流程,旨在简化开发、部署和维护机器学习模型的流程。
简单来说,MLOps是DevOps的一个扩展。
以下将介绍前五名 MLOps 工具,这些工具全部开源,帮助你在其他产品上使用。
好的,开始吧。3... 2... 1... 🟢
1️⃣ KitOps 🦁 (注:数字前的符号可能在某些系统中无法正常显示)(注:这里的动物符号可能代表某种特定含义或风格)[KitOps (https://kitops.ml/)] 是一个创新的开源项目,旨在促进数据科学家、应用开发者和SRE们之间在集成或管理自有的AI/ML模型时的合作。
但是,为什么是Kitops⁉️
在AI/ML项目中,还没有统一的标准打包系统。
为了解决这个问题,创建了KitOps。其目标是成为您AI项目中版本化包的库,并存储在您企业现有的注册表中。
🪖 看来看为什么Kit的模型套件是更好的选择:
-
结合模型、数据集、代码以及团队需要集成、测试或部署的所有上下文:
-
训练代码
-
模型代码
-
已序列化模型
-
训练、验证和其他数据集
-
元数据
-
通过将所有内容打包为符合OCI标准的工件包,让团队可以重用现有的容器仓库。
-
支持仅将模型包的一部分解压到本地机器(节省时间和空间)。
-
通过使用不可变包来消除篡改风险。
- 通过包含模型和数据集的来源资料来降低风险。
使用 kit pack
命令打包你的 Jupyter notebook、序列化模型和数据集(基于 Kitfile,如下所示:Kitfile)。
然后用 kit push
推送到任何符合 OCI 规范的注册表,如私有注册表。
大多数人不需要所有东西,所以只需运行 kit unpack
,可以从远程注册表中获取仅模型、仅数据集,或仅笔记本。或者,如果你需要所有东西,则运行 kit pull
可以获取所有东西。
KitOps 包含什么?
🎁 ModelKit
KitOps的核心是ModelKit,这是一种符合OCI标准的打包格式,能够无缝共享人工智能/机器学习模型整个生命周期中所需的所有必要工件。
📄 Kitfile
与 ModelKit 相辅相成的是 Kitfile,它是一个基于 YAML 格式的配置文件,简化了模型、数据集和代码配置的共享过程。
🖥️ Kit CLI
Kit命令行接口(CLI)将所有内容整合在一起。Kit CLI是一个强大的工具,它让用户能够使用Kitfiles创建、管理、运行和部署ModelKits。
一些有用的链接 | |
---|---|
主题 | 链接 |
KitOps 初学者指南 📗 | https://kitops.ml/docs/get-started.html |
如何制作自己的 Kitfile 👷♂️ | https://kitops.ml/docs/next-steps.html |
KitOps 的应用场景 🛠️ | https://kitops.ml/docs/use-cases.html |
KitOps 与其他工具的不同之处 🙈 | https://kitops.ml/docs/versus.html |
KitOps Modelkit | https://kitops.ml/docs/modelkit/intro.html |
KitOps Kitfile | https://kitops.ml/docs/kitfile/kf-overview.html |
KitOps CI 参考资料 | https://kitops.ml/docs/cli/cli-reference.html |
别忘了加入KitOps 官方 Discord 服务器:https://discord.gg/EtmEN5gyV9
给KitOps点个星 ⭐/github.com/jozu-ai/kitops
zh: ……
2️⃣ Kubeflow 🌊Kubeflow 是一个基于 Kubernetes 的机器学习框架。
Kubeflow 是由 Google 引入的一个在 Kubernetes 上运行的机器学习和 MLOps 开源平台。Kubeflow 通过不同的软件组件来表示机器学习工作流程中的各个阶段,包括模型开发、训练、部署和自动化机器学习。
给Kubeflow在Github上点个星⭐](https://github.com/kubeflow/)
- Kubeflow 兼容云服务(AWS,GCP,Azure)和自行托管的服务。
- 它允许机器学习工程师集成各种 AI 框架以进行训练、调优、调度安排和部署模型。
- 它提供了一个集中的仪表板,用于监控和管理管道、通过 Jupyter Notebook 编辑代码、实验追踪、模型登记和工件存档。
一些有用的链接 | |
---|---|
主题 | 链接 |
KubeFlow简介 📗 | https://www.kubeflow.org/docs/started/introduction/ |
KubeFlow架构 👷♂️ | https://www.kubeflow.org/docs/started/architecture/ |
部署KubeFlow 🛠️ | https://www.kubeflow.org/docs/started/installing-kubeflow/ |
KubeFlow概念 🙈 | https://www.kubeflow.org/docs/concepts/ |
KubeFlow组件 | https://www.kubeflow.org/docs/components/ |
KubeFlow外部插件 | https://www.kubeflow.org/docs/components/ |
给KubeFlow在Github点个星⭐ https://github.com/kubeflow/
此处省略
3️⃣ 第三部分 MLflow (一个机器学习项目管理工具) 🐊 (像鳄鱼一样强壮的工具)MLflow 是一个开源平台,专门设计用来帮助机器学习领域的从业者和团队处理机器学习过程中的复杂问题。MLflow 专注于从开始到结束的机器学习项目的整个生命周期,确保每个阶段都是可管理、可追踪和可复现的。
通常用来追踪实验和记录日志。随着时间的推移,它已经发展成为一种端到端的MLOps工具,适用于所有类型的机器学习模型,包括大型语言模型(LLM)。
你可以通过 CLI、Python、R、Java 和 REST API 来管理整个机器学习生态。REST API 是英文缩写。
MLFlow(以下简称MLFlow)有 6 个核心组件:
- 跟踪:跟踪版本、商店参数、代码、指标和输出文件。它还提供交互式指标和参数可视化。
- 项目:打包数据科学源代码,以实现代码的重用性和可重复性。
- 模型:以标准格式存储机器学习模型及其元数据,以便后续工具使用。它还提供模型服务和部署选项。
- 模型注册表:一个集中的模型仓库,用于管理MLflow模型的整个生命周期。它提供版本控制、模型血统、模型别名/别名、模型标签和注释。
- 食谱(管道):机器学习管道,帮助快速训练高质量模型并部署到生产环境中。
- 大规模模型:提供对大规模模型的评估、提示工程、跟踪和部署的支持。
一些有用的链接 | |
---|---|
主题 | 链接 |
MLflow 概览 📗 | https://mlflow.org/docs/latest/index.html |
开始使用 MLflow (动手指南) 👷♂️ | https://mlflow.org/docs/latest/tracking.html |
MLflow 追踪 🛠️ | https://mlflow.org/docs/latest/llms/tracing/index.html |
MLflow 模型 🙈 | https://mlflow.org/docs/latest/models.html |
MLflow 跟踪 | https://mlflow.org/docs/latest/tracking.html |
MLflow 模型注册 | https://mlflow.org/docs/latest/models.html |
MLflow 配方 | https://mlflow.org/docs/latest/recipes.html |
MLflow 项目 | https://mlflow.org/docs/latest/projects.html |
zh: 此处省略内容
4️⃣ MetaFlow 🐍 一个用于构建和管理机器学习流程的强大工具 🐍MetaFlow 是一个人性化的 Python 库,它使得开发、部署和运行各种数据密集型应用变得简单,特别是与数据科学、机器学习和人工智能相关的应用。MetaFlow 最初是由 Netflix 开发的,旨在提高数据科学家的工作效率,他们从事各种项目,从经典统计学到当今最前沿的深度学习。
Metaflow 最初由 Netflix 开发,旨在提升数据科学家的工作效率。现在它已开源,这样每个人都能从中受益。
它为数据管理、版本管理和编排及调度、模型训练和部署以及计算提供了一个统一的API接口。它兼容主流云提供商和机器学习框架。
一些有用的链接 | |
---|---|
主题(Topic) | 链接 |
MetaFlow Python 文档 📗 | https://docs.metaflow.org/ |
MetaFlow R 文档 👷♂️ | https://docs.metaflow.org/v/r |
MetaFlow 管理文档 🛠️ | https://docs.outerbounds.com/engineering/welcome/ |
zh: ……
5️⃣ MLRun 🦏 一个超棒的开源机器学习运行平台哦MLRun 是一个开源的AI编排框架,用于管理机器学习和生成式人工智能应用程序从开发到部署的整个生命周期。它自动化了数据准备、模型调优、定制、验证和优化机器学习模型、大语言模型以及实时AI应用程序的流程,这些流程都是在弹性计算资源上进行的。MLRun支持快速部署可扩展的实时服务和应用管道,并提供内置的可观测性和灵活的部署选项,支持多云、混合云和本地环境。
🔖 核心组件:
- 项目管理:一个集中的中心,管理各种项目资产,如数据、功能、作业、工作流、密钥(secrets)等。
- 数据和工件:连接各种数据源,管理元数据,编目和版本控制工件。
- 特征存储:存储、准备、编目和提供模型特征以供训练和部署。
- 批处理运行和工作流:运行一个或多个功能(functions),并收集、跟踪和比较所有结果和工件。
- 实时服务管道:快速部署可扩展的数据和机器学习管道。
- 实时监控:实时监控数据、模型、资源和生产组件。
一些有用链接 | |
---|---|
主题 | 链接 |
MLRun 架构 📗 | https://docs.mlrun.org/en/stable/architecture.html |
MLRun 教程和示例 👷♂️ | https://docs.mlrun.org/en/stable/tutorials/index.html |
MLRun 安装与设置指南 🛠️ | https://docs.mlrun.org/en/stable/install.html |
MLRun GenAI 开发流程 | https://docs.mlrun.org/en/stable/genai/genai-flow.html |
MLRun MLOps 开发流程 | https://docs.mlrun.org/en/stable/mlops-dev-flow.html |
zh: *
哎,拖到最后啦... 🥹每个项目既有相似之处也有不同之处。每个产品又各有不同,因此需求也不同。
如果你是开源的爱好者,并且对MLOps/DevOps有一定兴趣和了解,你可以为这些Awesome项目库贡献力量。
就像我常说的,谢谢你们读到这儿
你真棒!祝你一天愉快...💖
GIF 动图