Kubernetes 上で人工知能 (AI) および機械学習 (ML) モデルのトレーニングと推論を実行する場合、動的なスケールアップとスケールダウンが重要な要素になります。 AI モデルのトレーニングには、データを取り込むために高帯域幅のストレージとネットワークが必要になるだけでなく、主に GPU やその他の特殊なプロセッサからの大量の (そして高価な) コンピューティングも必要です。 事前トレーニング済みのモデルを活用する場合でも、モデルの提供や本番環境での微調整などのタスクは、ほとんどのエンタープライズ ワークロードよりも計算負荷が高くなります。
クラウドネイティブの Kubernetes は、迅速なスケーラビリティ (拡張と縮小) を実現するように設計されています。 また、ハイブリッド マルチクラウド環境全体の動的なワークロードに対して、より俊敏でコスト効率の高いリソース使用を実現するように設計されています。
このブログでは、Kubernetes 上で AI/ML ワークロードをスケーリングする最も一般的な 3 つの方法について説明します。これにより、最適なパフォーマンス、コスト削減、多様な環境での動的なスケーリングへの適応性を実現できます。
Kubernetes がワークロードをスケーリングする一般的な 3 つの方法は、水平ポッドオートスケーラー (HPA)、垂直ポッドオートスケーラー (VPA)、およびクラスターオートスケーラーです。
これら 3 つの方法の詳細は次のとおりです。
各モダリティにはモデルのトレーニングと推論にメリットがあり、以下のユースケースでそのメリットを確認できます。
多くの場合、分散 AI モデルのトレーニングと推論ワークロードは水平方向にスケーリングできます (つまり、ポッドを追加してトレーニング プロセスやリクエスト処理を高速化できます)。 これにより、ワークロードは HPA のメリットを享受できるようになり、CPU やメモリ使用量などのメトリック、さらにはワークロードに関連するカスタム メトリックや外部メトリックに基づいてポッドの数をスケールアウトできるようになります。 ワークロードが時間の経過とともに変化するシナリオでは、HPA はポッドの数を動的に調整して、最適なリソース使用率を確保できます。
Kubernetes で AI ワークロードを水平スケーリングするもう 1 つの側面は、負荷分散です。 最適なパフォーマンスとタイムリーなリクエスト処理を確保するには、受信リクエストを複数のインスタンスまたはポッドに分散する必要があります。 このため、HPA と組み合わせて使用できる理想的なツールの 1 つはIngress コントローラーです。
AI モデルのトレーニング タスクは多くの場合リソースを大量に消費し、大量の CPU、GPU、メモリ リソースを必要とします。 VPA はこれらのリソース割り当てを動的に調整できます。 これにより、各ポッドにトレーニング ワークロードを効率的に処理するのに十分なリソースが確保され、割り当てられたすべてのポッドに計算を実行するのに十分なコンピューティング能力が確保されます。 さらに、大規模なモデルのトレーニング中にメモリ要件が大幅に変動する可能性があります。 VPA は、必要に応じてメモリ割り当てを増やすことで、メモリ不足エラーを防ぐのに役立ちます。
HPA と VPA の両方を一緒に使用することは技術的には可能ですが、同じワークロードを異なる方法 (つまり、水平方向と垂直方向) でスケーリングしようとする可能性があるため、競合を回避するために慎重な構成が必要です。 各オートスケーラーの境界を明確に定義し、それらが互いに競合するのではなく補完するようにすることが重要です。 新しいアプローチは、異なるスコープで両方を使用することです。たとえば、ワークロードに基づいて複数のポッドにわたってスケーリングするための HPA と、HPA によって設定された制限内で各ポッドのリソース割り当てを微調整するための VPA です。
Cluster Autoscaler は、AI / ML ワークロードの需要を満たすために、クラスター全体で利用可能なコンピューティング、ストレージ、ネットワーク インフラストラクチャ リソースの全体的なプールを動的に調整するのに役立ちます。 現在の需要に基づいてクラスター内のノードの数を調整することにより、組織はマクロ レベルで負荷分散を行うことができます。 AI/ML ワークロードは予期せず大量の計算リソースを要求する可能性があるため、これは最適なパフォーマンスを確保するために必要です。
まとめると、Kubernetes の自動スケーリングが機能し、AI ワークロードにメリットをもたらす 3 つの方法は次のとおりです。
HPA、VPA、Cluster Autoscaler は、Kubernetes での AI/ML ワークロードの管理において相互に補完します。 Cluster Autoscaler はワークロードの需要を満たすのに十分なノードがあることを確認し、HPA は複数のポッドにワークロードを効率的に分散し、VPA はこれらのポッドのリソース割り当てを最適化します。 これらを組み合わせることで、Kubernetes 環境の AI/ML アプリケーション向けの包括的なスケーリングおよびリソース管理ソリューションが提供されます。
F5 と NGINX が AI/ML ワークロードの提供、保護、最適化にどのように役立つかについて詳しくは、 「AI ジャーニーの強化と保護」ページをご覧ください。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"