KubernetesがAIモデルのデプロイとスケーリングをどのように自動化するかを探ります。高性能なコンピュータービジョンを実現するために、K8s上でUltralytics YOLO26をオーケストレーションする方法を学びましょう。
K8sとも呼ばれるKubernetesは、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するために設計されたオープンソースプラットフォームです。元々はGoogleによって開発され、現在はCloud Native Computing Foundation (CNCF)によって維持されており、Kubernetesはクラウドにおけるソフトウェアオーケストレーションの標準となっています。人工知能 (AI)と機械学習 (ML)の文脈では、分散学習から高可用性本番推論まで、エンジニアリングチームが複雑なワークフローを管理できるようにする重要なインフラストラクチャ層として機能します。基盤となるハードウェアを抽象化することで、Kubernetesはアプリケーションがオンプレミスでホストされているか、パブリッククラウドプロバイダーを介しているかに関わらず、信頼性高く効率的に実行されることを保証します。
Kubernetesの核心は、ノードと呼ばれるワーカーマシンのセットで構成されるクラスターアーキテクチャで動作することです。これらのノードはコンテナ化されたワークロードを実行し、コントロールプレーンがクラスター全体の状態を管理します。Kubernetesでデプロイ可能な最小単位は「Pod」であり、ストレージとネットワークリソースを共有する1つ以上のコンテナをカプセル化します。この抽象化は、開発者がGraphics Processing Units (GPUs)用の特定のCUDAライブラリなどの依存関係を一貫した環境にパッケージ化できるため、コンピュータービジョンアプリケーションにとって不可欠です。Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE)などの主要なクラウドサービスは、このアーキテクチャのマネージドバージョンを提供し、データサイエンスチームのメンテナンス負担を軽減します。
Machine Learning Operations (MLOps)におけるKubernetesの主な価値は、動的なワークロードを処理する能力にあります。AIモデルは、トレーニング中に大規模な計算能力を必要とし、デプロイ時には低いinference latencyが求められることがよくあります。
Kubernetesは、さまざまな産業における多くの大規模AI実装の基盤です:
KubernetesとDockerの関係は、よく混同される点です。これらは競合するものではなく、むしろ補完的な技術です。Dockerは個々のコンテナを作成・実行するためのツール(アプリケーションのパッケージ化)であるのに対し、Kubernetesは複数のマシンにわたってそれらのコンテナ群を管理するためのツールです。Dockerを使用してモデルウェイトとコードをイメージにビルドし、Kubernetesを使用してそのイメージが本番環境でどこで、いつ、いくつ実行されるかを決定します。
Kubernetesにモデルをデプロイする場合、開発者は通常、コンテナのエントリポイントとして機能するpythonスクリプトから始めます。以下のコードは、Ultralytics YOLO26モデルを使用したシンプルな推論タスクを示しています。このスクリプトはpod内で実行され、受信リクエストを処理します。
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")
Kubernetesエコシステムには、データサイエンス向けに調整された膨大なツール群が含まれています。Kubeflowは、Kubernetes上でのMLワークフローのデプロイをシンプル、ポータブル、スケーラブルにするための人気のあるツールキットです。クラスターの健全性やアプリケーションメトリクスの監視には、エンジニアはしばしばPrometheusに依存します。これらの環境へのモデルのトレーニングとデプロイの複雑さをさらに簡素化するために、Ultralytics Platformは、データセット管理とモデルトレーニングを自動化する統合インターフェースを提供し、ユーザーがクラウドコンピューティングクラスター向けに準備されたモデルをエクスポートできるようにします。さらに、Helmのようなパッケージマネージャーは、再利用可能なチャートを通じて複雑なKubernetesアプリケーションの管理を支援します。

未来の機械学習で、新たな一歩を踏み出しましょう。