KubernetesがどのようにAIワークフローを合理化し、シームレスなスケーリング、セルフヒーリング、クラウドネイティブなコンピューティングのための効率的なモデル展開を可能にするかをご覧ください。
Kubernetesは、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するために設計されたオープンソースのコンテナオーケストレーションプラットフォームである。元々はGoogle によって開発された Kubernetes は、現在 Cloud Native Computing Foundation (CNCF) によってメンテナンスされており、最新のクラウドネイティブなワークロードを管理するための業界標準となっている。
Kubernetesは、分散環境における複雑なアプリケーションの管理を簡素化する幅広い機能を提供する:
コンテナ化の入門については、Dockerの用語集ページを参照のこと。
Kubernetesは、分散されたリソース集約的なタスクの管理が不可欠なAIや機械学習のワークフローにおいて、重要な役割を果たしている。機械学習パイプラインのような複雑なシステムのデプロイを簡素化し、スケーラビリティと信頼性を確保します。
Kubernetesは、複数のGPU 対応ノードにまたがる機械学習モデルの分散トレーニングを管理するために使用できる。例えば、ディープラーニングモデルを PyTorchを使用してディープラーニングモデルをトレーニングするチームは、トレーニングジョブをKubernetesポッドとしてデプロイできる。これにより、効率的なリソース割り当てが保証され、ワークロード要件に基づいてトレーニングプロセスを動的にスケーリングできます。分散トレーニングとKubernetesによる促進方法の詳細については、こちらをご覧ください。
Kubernetesは、機械学習モデルをプロダクションにデプロイするために広く使われている。例えば Ultralytics YOLOをコンテナ化してKubernetes上にデプロイすることができる。このセットアップでは、ローリングアップデートやレプリケーションなどの機能によって高可用性を確保し、ダウンタイムを最小限に抑えてサービスの信頼性を維持する。
Kubernetesがコンテナのオーケストレーションに秀でているのに対し、Dockerのようなテクノロジーはコンテナ化そのものに重点を置いている。Dockerはコンテナを作成して実行するための基盤を提供するのに対し、Kubernetesはこれらのコンテナをオーケストレーションしてスケール管理する。より深く理解するには、コンテナ化とオーケストレーションの違いをご覧ください。
もう1つの関連概念は、インフラ管理を完全に抽象化するサーバーレス・コンピューティングだ。Kubernetesとは異なり、サーバーレス・プラットフォームはユーザーの介入なしに、イベント・ドリブン・トリガーに基づいてリソースを自動的にスケールする。サーバーレス・コンピューティングの詳細はこちら。
Kubernetesは、AIや機械学習のワークフローを効率化するために、さまざまな業界で活用されている:
AIプロジェクトにKubernetesを活用することに興味がある人にとって、Ultralytics HUBのようなツールはKubernetesとうまく統合し、シームレスなモデルトレーニングとデプロイを実現する。さらに、Google Kubernetes Engine(GKE)やAmazon Elastic Kubernetes Service(EKS)などのプラットフォームは、Kubernetesクラスタ管理を簡素化する。
AIモデルのスケール展開について詳しくは、モデル展開オプションガイドをご覧ください。
Kubernetesは、AIワークロードを効率的に管理・拡張することを可能にし、最新のクラウドネイティブなコンピューティングの要となっている。その堅牢な機能セットと広範な採用は、AIと機械学習のコミュニティにとって不可欠なツールであり続けることを保証します。