了解 Kubernetes 如何通过可扩展的模型部署、分布式训练和高效的资源管理来简化 AI/ML 工作负载。
Kubernetes 通常缩写为 K8s,是一个开源容器编排系统,可自动 的部署、扩展和管理。该系统最初Google 工程师设计,现在由云本地计算基金会(CN Kubernetes已发展成为运行有弹性、可扩展和可管理的容器应用程序的行业标准。 已发展成为运行弹性分布式软件系统的行业标准。在快速发展的 人工智能(AI)和 机器学习(ML)领域中,它是一个 在快速发展的人工智能(AI)和机器学习(ML)领域,它是一个基础架构层,使工程团队能够高效地管理复杂模型从实验开发到大规模生产的整个生命周期。 模型从实验开发到大规模生产的整个生命周期。
Kubernetes 的核心是管理运行容器化工作负载的计算机器集群(称为节点)。它 在很大程度上依赖于容器化技术--一种将代码及其 技术,以确保应用程序能在不同环境中一致运行。 环境中运行一致。Kubernetes 引入了 "Pod "等抽象概念,"Pod "是最小的可部署单元、 和 "部署 "等抽象概念,它们可以保持应用程序的理想状态。通过将软件与 通过将软件与底层硬件解耦,它允许 计算机视觉工程师可以专注于模型 性能,而不是服务器维护。 亚马逊 EKS或 Google Kubernetes 引擎 (GKE) 等托管服务。
对于 对于机器学习运营 (MLOps) 而言,Kubernetes 是不可或缺的,因为它解决了可扩展性这一关键挑战。 可扩展性。现代人工智能工作负载,尤其是涉及深度学习的工作负载 需要大量计算资源。 计算资源。Kubernetes 分布式训练 调度多个节点上的训练作业,从而促进分布式训练。 图形处理器(GPU)的多个节点上智能调度训练作业,从而促进分布式训练。 在模型部署阶段,K8s 可确保 在模型部署阶段,K8s 可确保推理 API 的高可用性,根据实时流量需求自动增减运行 pod 的数量,从而优化性能和成本。 流量需求,从而优化性能和成本。
了解 Kubernetes 与其他常见基础架构工具的区别很有帮助:
Kubernetes 生态系统非常庞大,包括用于软件包管理的Helm和用于监控集群健康状况的 用于监控集群健康状况的Prometheus等工具。对于专门的 ML 工作流,像 Kubeflow 这样的平台 等平台在Kubernetes上运行,以简化端到端管道。 展望未来,即将推出的Ultralytics 平台旨在 平台旨在进一步简化这些流程,为数据管理和模型训练提供一个全面的环境,抽象出底层基础架构的复杂性。 抽象出底层基础设施的复杂性。
要在 Kubernetes 上部署模型,首先需要一个执行推理的脚本。这个Python 代码段演示了 加载YOLO11 模型,然后将其封装在 Docker 容器中并由 K8s 调度。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image source
# This script would typically run inside a Kubernetes Pod
results = model("https://ultralytics.com/images/bus.jpg")
# Print the detected class names
for result in results:
for cls_id in result.boxes.cls:
print(f"Detected: {result.names[int(cls_id)]}")

