https://mp.weixin.qq.com/s/UA1n3eCdus_OOEQHrR3HjQ
Kubernetes 不再只是一个运行工作负载(如 Web 应用和微服务)的工具;对于大语言模型(LLM)等人工智能(AI)和机器学习(ML)工作负载,Kubernetes 是端到端全生命周期管理的理想平台。
根据 The Data on Kubernetes Community 2022 调查报告,90% 的受访者认为 Kubernetes 已经可以很好支持数据库、大数据分析和 AI 等有状态应用,其中 70% 的受访者已经将其运行在生产环境。Gartner 提到 2023 年,70% 的 AI 任务会通过容器、Serverless 等计算模型构建。预计今年会更高。由此可见,Kubernetes 必将成为数字化、智能化应用的选择。
这个现象已经渗透到了各个行业:从 OpenAI 等最前沿的创新公司,到 CoreWeave 等人工智能云服务提供商,再到 Shell 和 Spotify 等知名品牌。这些企业组织都依赖 Kubernetes 来支持其 AI/ML 分布式工作负载。
在本文中,我们将探讨为什么 Kubernetes 在 AI/ML 创新和应用的每个生命周期阶段都能提供独特的支持。
众所周知,**Kubernetes 是分布式计算环境中一个高效的容器编排和管理平台。**它最初是由 Google 开发的开源项目,用于管理其内部海量应用。开源之后,它已成为各种环境下部署、扩展和管理容器化应用的实际标准。
最近,Kubernetes 经证实对于一些新兴使用场景也非常有用:那些寻求高效开发、训练和部署 LLM 的企业组织已开始利用这一工具。它为 LLM 整个生命周期中的全面支持提供了众多优势,无需在不同技术栈中集成复杂框架。从模型预训练到模型部署,再到微调实验和应用构建,Kubernetes 可以为 LLM 全生命周期的每个阶段。
在模型预训练阶段,Kubernetes 凭借其无与伦比的可扩展性和韧性,为模型训练提供了坚实的基础。**Kubernetes 根据资源需求自动扩缩的能力是优势之一,这正是 AI/ML 工作负载在面对海量算力需求时所急需的特性。**Kubernetes 通过自动化管理 Pod 的生命周期来实现这一点:如果某个 Pod 出错,它将被自动终止并重启。换句话说,Pod 拥有了自愈能力。
Kubernetes 还可以按需轻松添加或减少 Pod 和节点,从而实现动态扩展,以满足不断变化的工作负载需求。其声明式基础架构方法便于用户们交流需求,从而简化管理流程。这些都是使用 Slurm 等其他工具时无法获得的强大开发特性。这意味着您无需手动处理基础设施问题,可以拥有更高的产出量,更高效地训练模型。
Jupyter Notebooks 和 VS Code 等工具对于 LLM 实验和提示工程来说是必需的,而 Kubernetes 网络抽象使数据科学家能够非常轻松地创建开发环境,并完成与这些工具的集成。此外,端口转发和配置管理是自动进行的,这简化了最终用户的工作空间配置以及集群管理员的环境和网络管理。
虽然 Kubernetes 拥有开发 LLM 所需的所有工具,但如今许多企业并非从头开始构建大语言模型,而是选用现有的一些模型,根据企业特定环境对模型进行定制和微调。在这种场景下,当您想对现有模型进行微调时,Kubernetes 也是理想的选择,因为它具有动态性。与 Slurm 不同,**Kubernetes 可以并行处理多个工作负载,这使得整个训练过程更加高效。**另一个优势体现在 Kubernetes 为模型训练构建了丰富的工具生态。比如 Kubeflow(专为 Pytorch、Tensorflow 和 MPI 设计的 Operator)、KubeRay Operator 和 MLflow。