如何在 Kubernetes 上部署模型

Kubernetes 是一个容器编排平台,用于管理容器化应用程序。 它是用于自动化容器管理过程的重要部分,例如:容器复制、扩展、监控和调度。 它是一个用 Google 的 Go 编程语言编写的开源平台。 Kubernetes 是最流行的容器管理系统之一,用于为许多不同的服务和平台提供支持。包括跨不同环境或在云网络托管服务器中运行移动应用程序。

Kubernetes 在机器学习的发展中日益发挥着重要作用。 容器化开发和部署正在成为机器学习模型的重要元素。 机器学习模型在容器化时可以轻松扩展和调度,并且工作负载性能的管理可以自动化。 容器化在不同的服务器或云环境中提供一致的状态。 开源的 Kubernetes 凭借强大的社区支持,它成为在容器内管理机器学习模型的最流行的方法之一。

它还开发了特定的工具包,比如:Kubeflow,这是专门为机器学习开发的Kubernetes工具包,使得在 Kubernetes 上部署机器学习模型的过程变得简单。 它提供了针对机器学习管道编排工具以及流行的机器学习框架和组件的简化访问。 机器学习生命周期的容器化为希望高效部署模型的组织带来了许多好处。 可扩展性和可移植性是机器学习部署的两个主要好处。

借助 Kubernetes,组织可以在容器中嵌入端到端机器学习工作流程。 本文将探讨在 Kubernetes 上部署机器学习模型,包括有关设置及其可能带来的好处的说明。

什么是 Kubernetes?

Kubernetes 是一个用于管理容器化应用程序的开源平台,最初由 Google 开发。 它是一个容器编排平台,并自动扩展、监控和调度集群内的容器。 容器是部署应用程序的虚拟环境,每个容器都与操作系统隔离部署。 这意味着容器化应用程序可以从各种不同来源(无论是本地网络还是云)获取资源,同时保持一致的环境。

尽管容器是一种轻量级解决方案,但每个容器的编排可能很复杂。 Kubernetes 用作编排工具来扩展和复制容器,并维护容器的运行状况。 它还可以自动化负载均衡和资源扩展等。 容器在加强机器学习开发和部署方面具有独特的优势,因为可扩展性和资源分配是升级机器学习模型不可或缺的一部分。 Kubernetes 能够实现 GPU 加速等元素的自动化,有助于提高机器学习实验和部署的效率。 Kubeflow 是专门为 Kubernetes 上的机器学习模型设计的工具包。

什么是Kubeflow?

Kubeflow 是一个开源工具包,包含专为 Kubernetes 上的机器学习模型开发的工具、组件和框架。 它旨在通过 Kubernetes 简化容器化环境中机器学习模型的开发、部署和持续管理。 其目标是为整个机器学习生命周期提供端到端平台。 它涵盖了训练、生产和部署,而不仅仅是机器学习生命周期的一个要素。 Kubeflow 由 Google 构建,作为在 Kubernetes 上部署机器学习模型的一种方式,然后作为开源平台发布。 重点是为端到端机器学习工作流程提供平台,并改进实际部署模型的过程。

Kubeflow 为整个机器学习管道提供了一个框架,它由不同的模块组成。 每个阶段都概述了机器学习生命周期,从数据清理和验证到模型训练和部署。 Kubeflow 提供了运行更广泛的机器学习工作流程的这些独立模块的能力,每个步骤都借鉴机器学习框架。 它是针对 Kubernetes 的机器学习的特定改进。 用户可以为机器学习管道中的每个步骤选择不同的组件。

实际上,这意味着可以从不同的设备和系统访问整个机器学习工作流程。 整个管道位于一系列容器内,这意味着该模型是可移植的。 容器也更容易扩展,在需要时可以利用更多 GPU 或 CPU 资源。 这与传统部署形成鲜明对比,传统部署会将机器学习管道部署在许多不同的状态和环境中。

Kubeflow 引入了模型、框架和存储等机器学习特定的管理,而 Kubernetes 则负责容器管理。

如何在 Kubernetes 上部署机器学习模型?

第一步是清晰地概述从实验阶段到生产和部署的机器学习工作流程。 可以通过概述机器学习工作流程的每个步骤来确定应在容器内部署的独特阶段。 至于在 Kubernetes 上部署模型的过程,有一些工具包和平台可用于简化该过程。 Kubernetes 专为编排容器化应用程序而设计,这些平台引入了特定于机器学习和深度学习的元素。

在 Kubernetes 上部署机器学习模型的主要平台是 Kubeflow。 与 Kubernetes 本身一样,Kubeflow 最初是由 Google 开发的。 它是一个专用工具包,专为在 Kubernetes 上端到端部署机器学习模型而设计。 另一个专为深度学习框架设计的平台是最初由 IBM 开发的 Fabric for Deep Learning (FfDL)。 这两个平台都允许用户添加不同的组件来自动化或管理机器学习工作流程的不同阶段。 例如,借助 Kubeflow,可以将 Jupyter Notebook 集成到工作流程的实验阶段,在该阶段数据科学家可以与数据交互并分析数据。 可以添加 Seldon Deploy 等组件来帮助自动化机器学习管道的生产阶段。

使用 Kubeflow 在 Kubernetes 上部署机器学习模型

Kubeflow 是一个流行的平台,用于为 Kubernetes 构建机器学习管道。 它提供了一种为 Kubernetes 映射和部署端到端机器学习管道的方法,并且是支持容器化机器学习模型的流行方法。 用户可以通过用户界面为机器学习工作流程的每个阶段选择组件,并修改配置文件以微调和调整机器学习管道。

使用 Kubeflow 在 Kubernetes 上部署机器学习模型的一个关键要素是 Kubeflow Pipelines。 它是一个允许端到端编排机器学习管道的平台。 它可以作为 Kubeflow 的一部分或作为独立平台使用。 它具有用于设计机器学习管道的仪表板和用户界面,因此对于针对不同工作流程执行实验非常有用。 然后,机器学习管道可以重复使用或适应新项目,以帮助简化整个流程。

在实践中,Kubeflow被用作整个机器学习工作流程的框架或脚手架。 每个阶段都可以添加流行的组件。 有多种方法可以安装和设置用于机器学习的 Kubeflow。

使用 Kubeflow 在 Kubernetes 上部署机器学习模型的一般流程包括:

  1. 下载 Kubeflow 部署二进制文件
  2. 检查 Kubeflow 与 Kubernetes 服务提供是否兼容。
  3. 为机器学习工作流程的每个阶段调整配置文件。
  4. 将容器部署到您的环境,包括设置集群大小。
  5. 为工作流程的每个阶段安装单独的组件。
  6. 集成在机器学习过程的实验阶段创建的 Jupyter notebooks。
  7. 使用 Kubeflow Pipelines UI 试验工作流程。
  8. 配置训练作业 operator 来训练机器学习模型。
  9. 将训练好的模型导出到 Kubernetes。
  10. 使用 Seldon Core 集成来部署机器学习模型。

使用 Fabric for Deep Learning (FfDL) 在 Kubernetes 上部署机器学习模型

Fabric for Deep Learning (FfDL) 是 IBM 开发的一个平台,用于在 Kubernetes 上运行深度学习框架。 深度学习算法通过多层网络架构模拟人脑。 模型通常用于处理原始模拟数据并自动提取原始数据的特征。

FfDL 主要用作提供深度学习模型即服务的组织的平台。目的是构建一个易于扩展的堆栈,并且可以在云中无缝使用。 这避免了需要本地高资源系统和机器来训练机器学习模型。 相反,用户可以利用云中的容器化深度学习框架。 流行的深度学习框架也可以在 FfDL 框架内选择和使用。

FfDL 由一系列用于机器学习工作流程各个部分的 Pod 组成,由 Kubernetes 管理。 与 Kubeflow 相比,FfDL 在某些领域受到限制,最明显的是具有更多基本的超参数优化选项。 因此,一般的机器学习模型可能更适合使用 Kubeflow。

使用 FfDL 部署机器学习模型的过程包括:

  1. 选择支持机器学习的框架,例如: Pytorch、TensorFlow 或 Caffe。
  2. 将模型管道转换为容器,从模型创建容器镜像。
  3. 上传容器化模型管道。
  4. 连接训练数据并配置训练作业。
  5. 使用 FfDL 用户界面训练模型。
  6. 使用 Seldon Core 将模型部署到 Kubernetes 集群。

在 Kubernetes 上部署机器学习模型的优势

机器学习生命周期由许多不同的元素组成,单独管理这些单独的元素可能非常耗时且资源密集。 例如,训练阶段将需要与最终部署不同的环境和资源。 容器化机器学习模型的好处在于,容器提供了可扩展的一致状态,无论在何处获取资源。 这意味着机器学习管道可以跨一系列设备或网络(例如本地或云服务器)进行部署和访问。

您可以在一处运行机器学习工作流程的所有元素,并在用户运行 Kubernetes 的任何地方进行访问。 Kubernetes 意味着机器学习管道的不同部分不是在不同的系统和服务器上托管和运行,而是全部位于同一个可访问的位置。 这意味着您可以从不同的设备以及本地或云服务器上访问整个机器学习工作流程。 机器学习工作负载的元素可以重复使用并重新用于新项目,从而进一步提高效率。

Kubernetes 的另一个优势是能够自动化部分机器学习过程。 Kubernetes 将自动管理和扩展资源、执行容器运行状况检查和扩展服务。 这消除了手动管理容器的需要,从而简化了机器学习生命周期的管理。 模型的自动部署也可以通过 Kubernetes 进行管理。 机器学习管道也可以修改和重用,进一步提高机器学习项目的效率。

在 Kubernetes 上部署机器学习的主要优势包括:

  1. 机器学习管道的自动化。
  2. 自动容器管理和健康检查,释放资源和时间。
  3. 特定阶段和节点可以逐步更新,从而减少总体停机时间。
  4. 改进了机器学习模型所有领域的访问和可移植性。
  5. 改进基于云的机器学习模型的管理。
  6. 自动扩展机器学习模型,例如在需要时自动加速 GPU 使用。

针对每个组织的机器学习部署方案 Seldon

Seldon 将机器学习从 POC 转移到生产和规模化,缩短了价值实现时间,使模型的运行速度提高了 85%。 在这个快速变化的环境中,Seldon 可以为您提供提升表现所需的优势。

借助 Seldon Deploy,您的企业可以有效地管理和监控机器学习、最大限度地降低风险并了解机器学习模型如何影响决策和业务流程。 这意味着您知道您的团队已经尽职尽责地创建了更公平的系统,同时提高了绩效。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

在这里插入图片描述

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取==🆓

在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐