术语表

Kubernetes

了解 Kubernetes 如何通过可扩展的模型部署、分布式培训和高效资源管理来简化 AI/ML 工作负载。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

Kubernetes 通常缩写为 K8s,是一个开源平台,旨在自动部署、扩展和管理容器化应用程序。最初由 GoogleKubernetes 为弹性运行分布式系统提供了一个强大的框架。对于从事人工智能(AI)机器学习(ML)工作的人员来说,Kubernetes 提供了强大的工具来管理从训练部署推理的复杂模型生命周期。它有助于缩小开发 ML 模型与在生产环境中可靠运行模型之间的差距。

简化核心概念

Kubernetes 负责协调容器,容器是轻量级的独立软件包,包含软件及其依赖项。主要概念包括

  • PodsKubernetes 中最小的可部署单元,通常容纳一个或多个共享资源和网络的容器。可以将 Pod 视为 ML 应用程序或推理服务器容器的包装。
  • 节点:运行 Pod 的工作机(虚拟或物理)。Kubernetes 管理在可用节点上分发 Pod 的工作。
  • 服务:一种抽象概念,用于定义 Pod 的逻辑集和访问它们的策略,通常为动态 Pod 提供稳定的 IP 地址或 DNS 名称。对于暴露 ML 推理端点至关重要。
  • 部署:描述应用程序所需的状态,管理 ReplicaSets(相同 Pod 群组)以确保可用性并处理更新。有助于在不停机的情况下推出新的模型版本。

了解这些构件有助于设计可扩展、有弹性的 ML 系统。

人工智能和机器学习的相关性

Kubernetes 具有多种优势,已成为现代机器学习运营 (MLOps)的基石:

  • 可扩展性:训练大型模型或提供推理请求等 ML 任务往往对资源的需求不断变化。Kubernetes 可根据负载情况自动增减容器(Pod)的数量,确保高效利用GPU 等资源。
  • 资源管理:它允许对 CPU和内存分配的精细控制,防止资源争用并确保性能,这在跨多个实验或服务管理昂贵的GPU 资源时尤为重要。
  • 可移植性和一致性:Kubernetes 可为不同的基础设施提供一致的环境,无论是内部服务器还是各种云计算平台(如Amazon EKSGoogle GKEAzure AKS)。这简化了在开发、测试和生产之间移动 ML 工作流的过程。您通常可以从Docker 设置开始,然后使用 Kubernetes 进行扩展。
  • 自动化和协调:它能自动执行服务发现、负载平衡、自我修复(重启故障容器)和配置管理等复杂任务,减少了 ML 团队的人工开销。

真实世界的人工智能/移动语言应用

  1. 分布式模型训练:训练大型深度学习 (DL)模型,例如复杂的 Ultralytics YOLO变体等用于物体检测的大型深度学习(DL)模型的训练往往需要巨大的计算能力。Kubernetes 可以使用Kubeflow等框架管理用于分布式训练的机器集群,也可以与 PyTorchTensorFlow.它可以调度训练任务、管理数据访问,并在节点间高效分配 GPU。
  2. 可扩展的推理服务:部署用于实时推理的 ML 模型需要高可用性和低延迟。Kubernetes 可以在负载平衡器后面托管推理服务器(例如,使用NVIDIA Triton 推理服务器,该服务器与Ultralytics 模型集成,参见Triton 指南)。它会根据进入的流量自动调整推理服务器 Pod 的数量,即使在图像分类自然语言处理 (NLP) 等任务的峰值负载期间,也能确保响应速度。

Kubernetes 与相关技术

  • Kubernetes 与 Docker: Docker是一种用于创建、运输和运行单个容器(容器化)的工具。Kubernetes 是容器协调器,可以管理许多机器上成千上万的容器。它们可以协同工作:通常使用 Docker 构建容器映像,然后使用 Kubernetes 部署和管理它们。查看Docker 快速入门指南,了解容器基础知识。
  • Kubernetes 与无服务器计算: 无服务器平台(如 AWS Lambda 或Google Cloud Functions)完全抽象出服务器管理,专注于事件驱动功能。Kubernetes 提供了对底层基础设施的更多控制,更适合长期运行的应用或复杂的有状态服务,不过无服务器框架也可以在 Kubernetes 上运行(如Knative)。

工具和生态系统

Kubernetes 生态系统包括许多简化管理的工具:

  • HelmKubernetes 的软件包管理器,帮助定义、安装和升级复杂的应用程序。
  • Prometheus 和 Grafana:用于监控 Kubernetes 集群和应用程序的流行开源工具。
  • 云提供商集成:托管 Kubernetes 服务(EKS、GKE、AKS)简化了集群设置和维护。
  • ML 平台: Kubeflow等工具以 Kubernetes 为基础,提供特定于 ML 的工作流程。Ultralytics HUB等平台旨在简化部署管道,有时会抽象 Kubernetes 的复杂性,以简化模型部署

Kubernetes 为在不同环境中构建、部署和管理可扩展且可靠的 AI/ML 应用程序提供了强大的基础,使其成为 MLOps 领域的一项重要技能。

阅读全部