Kubernetesが、スケーラブルなモデルのデプロイ、分散トレーニング、効率的なリソース管理により、AI/MLワークロードをどのように効率化するかを発見してください。
Kubernetesは、しばしばK8sと略され、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのコンテナ・オーケストレーション・システムである。 コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのコンテナ・オーケストレーション・システムだ。もともとはGoogle エンジニアによって設計され、現在は クラウド・ネイティブ・コンピューティング・ファウンデーション(CNCF)によって保守されているKubernetesは、弾力性のあるアプリケーションを運用するための業界標準へと発展した。 弾力性のある分散ソフトウェアシステムを運用するための業界標準へと発展した。急速に進歩する 人工知能(AI)と 機械学習(ML)の分野では、Kubernetesは基本的なインフラ層として機能している。 エンジニアリングチームが複雑なモデルの実験的な開発から大規模な生産に至るまで、完全なライフサイクルを効率的に管理できるようにします。 実験的な開発から大規模な生産まで、複雑なモデルのライフサイクル全体を効率的に管理できるようにします。
その中核となるKubernetesは、コンテナ化されたワークロードを実行するノードと呼ばれるコンピューティングマシンのクラスタを管理する。Kubernetesは コンテナ化に大きく依存している。 依存関係とともにコードをパッケージ化する技術であるコンテナ化に大きく依存している。 に大きく依存している。Kubernetesは、デプロイ可能な最小単位である「ポッド(Pod)」や「デプロイメント(Deployments)」といった抽象化を導入している、 アプリケーションの望ましい状態を維持する「デプロイメント」。ソフトウェアを基礎となるハードウェアから切り離すことで ハードウェアから切り離すことで コンピュータ・ビジョンのエンジニアは、サーバーのメンテナンスよりもモデルのパフォーマンスに集中することができる。 のようなマネージド・サービスを利用することができる。 Amazon EKSや Google Kubernetes Engine (GKE)のようなマネージド・サービスを利用します。
機械学習オペレーション 機械学習オペレーション(MLOps)にとって、Kubernetesは不可欠だ。 スケーラビリティ最新のAIワークロード、特に 特にディープラーニングを含む最新のAIワークロードには 計算リソースが必要です。Kubernetesは以下を容易にします。 分散学習を容易にします。 を搭載した複数のノードにまたがってトレーニングジョブをスケジューリングすることで、分散トレーニングを容易にします。 グラフィックス・プロセッシング・ユニット(GPU)を搭載した複数のノードにトレーニング・ジョブをインテリジェントにスケジューリングすることで、分散トレーニングを容易にします。 モデルのデプロイ段階において、K8sは推論APIの高可用性を保証します。 推論APIの高可用性を保証し、リアルタイムのトラフィック需要に基づいて実行ポッド数を自動的に増減させます。 これにより、パフォーマンスとコストの両方が最適化されます。
Kubernetesが他の一般的なインフラストラクチャーツールとどのように異なるかを理解することは有益だ:
Kubernetesのエコシステムは広大で、パッケージ管理用のHelmや、クラスタの健全性を監視するPrometheusなどのツールがある。 クラスタの健全性を監視するPrometheusなどのツールがある。専門的なMLワークフローでは、Kubeflowのようなプラットフォームが KubeflowのようなプラットフォームがKubernetesの上で動作し、エンドツーエンドのパイプラインを合理化する。 将来的には、Ultralytics Platformがこれらのプロセスをさらに簡素化するように設計されています。 データ管理とモデルトレーニングのための包括的な環境を提供し、基本的なインフラストラクチャの複雑さを抽象化します。 インフラストラクチャの複雑さを抽象化します。
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)]}")