ML ワークロードのための Kubernetes
Kubernetes は、マシンのクラスター全体でコンテナ化されたプログラムを自動的にスケジュール、スケーリング、再起動するオープンソース システムです。
概要
For machine learning, it lets teams pack GPU-hungry training jobs and latency-sensitive model servers onto shared hardware without babysitting individual servers.
ディープダイブ
もともと Web サービスを実行するために Google で構築された Kubernetes は、クラスターを CPU、メモリ、GPU の 1 つの大きなプールとして扱い、各コンテナーを実行するマシンを決定します。ワークロードは爆発的で高価であるため、ML チームはそれに頼っています。トレーニングの実行には 6 時間で 8 つの GPU が必要になるかもしれませんが、その後は何も必要ありません。 Kubernetes は、空き GPU を備えたノードにそのポッドをスケジュールし、ジョブが完了するとハードウェアを解放します。また、推論サーバーを稼働状態に保ち、クラッシュしたコンテナを再起動し、復元力を高めるためにマシン全体にレプリカを分散します。 Kubeflow、Ray、KServe などのその上に構築されたツールには、分散トレーニング オペレーター、ハイパーパラメーター調整、自動スケーリング モデル エンドポイントなどの ML 固有の要素が追加されるため、データ サイエンティストは生の YAML ではなく高レベルの抽象化を使用して作業できます。
技術的な洞察
Kubernetes は、nvidia.com/gpu などのリソースをアドバタイズするデバイス プラグインを通じて GPU を割り当てます。スケジューラーはポッドのリクエストと照合します。テイントと許容により、安価な CPU ジョブが高価な GPU ノードから遠ざけられる一方、ノード セレクターとアフィニティ ルールはトレーニングを特定のハードウェアに固定します。マルチ GPU トレーニングの場合、オペレーターは相互に検出し、PyTorch DDP や Horovod などのフレームワークを実行するポッドのグループを作成し、NCCL を使用してクラスター ネットワーク上で勾配を交換します。
戦略的影響
費用と予算
アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
より明確な判決
技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
品質管理
より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
ML ワークロードのための Kubernetes の将来
より緊密な ML 統合が期待されます。すべての分散トレーニング ポッドを一度に起動するかまったく起動しないギャング スケジューリング、複数のライト ジョブが 1 枚のカードを共有する部分的およびタイム スライスの GPU 共有、高速 NVLink 相互接続を尊重するトポロジを意識した配置などです。 Kubernetes でのサーバーレス推論は、リクエスト間でエンドポイントをゼロにスケーリングし、成熟しつつあります。モデルが拡大するにつれて、スケジューラーは複数のクラスターやクラウド間で調整することが増えており、Kueue や Volcano などのキューベースのフェアシェアリング システムが、不足している GPU 容量を管理するための標準になりつつあります。
現実世界の実装
ある研究ラボでは、Kubeflow Training Operator を使用して 4 つのノードにわたって 32 GPU の PyTorch 分散トレーニング ジョブを起動し、収束時に GPU を自動的に解放します。
ある電子商取引企業は、KServe を使用してレコメンデーション モデルを提供しています。KServe は、フラッシュ セール中にレプリカを自動スケールアップし、夜間にスケールダウンします。
銀行は夜間のバッチ スコアリング ジョブを Kubernetes CronJob として実行し、日中のサービス トラフィックと競合しないように予備の CPU ノードにジョブをキューに入れます。
あるスタートアップは、Kubernetes 上で Ray を使用してハイパーパラメータ スイープを並列実行し、スポット インスタンス上で数十の短期間のトライアル ポッドをスピンアップしてコストを削減しています。
リスクとガードレール
1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
インフラストラクチャとメンテナンスのコストは過小評価されがちです。
システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
実装ロードマップ
実装前にレイテンシ、品質、コストの目標を定義します。
現実的な負荷とデータ条件でのベンチマーク。
エラー、ドリフト、ユーザーへの影響を計測器で監視します。
スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Kubernetes for ML Workloads quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
次のガイド
ML モデルの A/B テスト
よくある質問
What is Kubernetes for ML Workloads?
Kubernetes は、マシンのクラスター全体でコンテナ化されたプログラムを自動的にスケジュール、スケーリング、再起動するオープンソース システムです。機械学習の場合、チームは、個々のサーバーを子守することなく、GPU を大量に消費するトレーニング ジョブと遅延に敏感なモデル サーバーを共有ハードウェアに詰め込むことができます。
ML ワークロードに対する Kubernetes スケジューラの主なジョブは何ですか?
スケジューラは、ポッドのリソース要求 (CPU、メモリ、GPU) を利用可能なノードと照合し、適切な場所にポッドを配置します。モデルコードやデータには触れません。
Kubernetes は通常、どのようにしてポッドで GPU を利用できるようにしますか?
デバイス プラグインは GPU をスケジュール可能なリソース (nvidia.com/gpu など) として公開し、ポッドが GPU をリクエストし、スケジューラーが可用性を追跡できるようにします。
ML クラスターで一般的に使用されるテイントと許容範囲は何ですか?
テイントはポッドをノードから遠ざけます。一致する許容値を持つポッドのみがそこに着陸できます。これにより、実際に GPU を必要とするジョブのために、希少な GPU ノードが予約されます。
Kubernetes 上に分散トレーニング オペレーターなどの ML 固有の機能を追加するツールはどれですか?
Kubeflow は、オペレーターのトレーニング、パイプライン、チューニングなどの ML ワークフローを Kubernetes 上に階層化するため、チームは低レベルのクラスター構成を手書きする必要がなくなります。
Kubernetes がバースト性の ML ワークロードに適しているのはなぜですか?
トレーニングは不安定です。一時的には GPU がたくさん使用されますが、その後はまったく使用されなくなります。 Kubernetes は、リソースが空いたときにジョブを配置し、完了時にジョブを解放するため、使用率が向上します。