KubeCon NA 2024開催、前日の共催カンファレンスからAIワークロードのスケジューリングに関するセッションを紹介

KubeCon+CloudNativeCon North America 2024が2024年11月12日から15日までの4日間、ユタ州ソルトレークシティーで開催された。KubeCon自体は3日間の会期だが、前日にはCo-located Eventとしてさまざまなミニカンファレンスが開催される。その中からCloudNative AI Dayのセッションを紹介する。
最初に紹介するのはKubernetes上で機械学習ジョブのスケジューリングを行うKubeRayだ。これはマルチクラスター、マルチクラウドに拡張するためのスケジューリング機能を提供するオープンソースソフトウェアだ。セッションを行ったのはサンフランシスコのベンチャー、ElotlのAnn Holler氏だ。ElotlはOracleやVMwareで経験を積んだエンジニアのMadhuri Yechuri氏が創業した企業で、機械学習のスケジューリングに特化したソフトウェアを開発している。Elotlの公式ページを見ると、Lunaと呼ばれるオートスケーラーやマルチクラスターのコントロールプレーンであるNovaがプラットフォームとして紹介されている。ここからもオンプレミスでGPUクラスターを運用している企業などにとっては、魅力的なソリューションと映ることだろう。
●Elotlの公式ページ:https://www.elotl.co/
セッションの動画は以下のリンクから参照してほしい。
●動画:SkyRay: Seamlessly Extending KubeRay to Multi-Cluster Multi-Cloud Operation
セッションは、SkyRayのベースとなっているRayとKubeRayに関する説明からスタートした。ここではRayを機械学習のジョブをスケールさせるためのフレームワーク、KubeRayについては、Rayのジョブが実行されるクラスターをKubernetesの上に実装するための仕組みと説明し、その上でSkyRayはシングルのクラスターからマルチクラスター、マルチクラウドに拡張するためのツールであると解説した。
ここではKubernetesのクラスター上に展開されたRayのジョブを、一つ上の階層を設けてそこにFleet Managerと呼ばれる別のコントロールプレーンが存在してクラスター間のスケジューリングを行うという内容がスライドに表記されているのがわかる。
そしてElotlが開発するNovaというソフトウェアをFleet Managerとして採用し、ジョブに設定されたポリシーに従ってジョブをクラスターのCPUおよびGPUに展開するのがSkyRayの主な動作となる。ここではGang-Schedulerについて簡単に説明を行った。Gang-Schedulingは複数のジョブをクラスターに配置する際、すべてのジョブが要求するリソースが空いた時のみスケジューリングを行うというものだ。複数のジョブが並列処理される際にジョブの一部だけが実行され、任意のジョブの他のコンポーネントが、リソースが空くのを待たされることでジョブ内の同期が取れなくなるという状態を避けるために機械学習では良く用いられるスケジューリングアルゴリズムであるという。
クラスターをジョブの要求に従ってスケールさせる機能について、Fleet Managerとして使われるNovaはこれもElotlが開発するLunaというオートスケーラーと連携することで柔軟なスケジューリングが可能になると説明した。このスライドで使われている図にはBin-Packing、Bin-Selectionが記載されており、GPUのスケジューリングのためのテクニックが使われていることがわかる。
ここではKubernetesを拡張するための仕組み、Custom Resource Definition(CRD)を使って、上位のコントロールプレーンであるNovaを操作できることを説明。
機械学習やRAGのアプリケーションのための学習や推論に応用できることを紹介したスライドでは主なユースケースが紹介されているが、興味深いのはここでAnyScaleのブログに使われているイラストが使われていることだろう。AnyScaleもKubernetes上でRayのジョブのスケジューリングを行う「AnyScale Operator for Kubernetes」というKubernetesを拡張するオペレーターフレームワークに準拠した拡張機能を発表しており、AnyScaleのブログではKubeRayとの比較が解説されている。KubeRayはAnyScaleのオペレーターと比較してセキュリティや安定性に欠けるなどの欠点があることなどを解説しており、AnyScaleとしては自社のソフトウェアを推進したいという意図が見て取れる。
●参考:Anyscale on Kubernetes: Simplifying AI Workloads on User-Managed Infrastructure
ElotlがNovaやLunaという自社製のコンポーネントを推したいのと同様に、AnyScaleも自社が開発したコンポーネントにユーザーを誘導して囲い込みたいという発想だろう。オープンソースとは言ってもテストや相互運用性を考えれば自社開発のソフトウェアが最優先されるのは当たり前だ。どちらを選択するのかはユーザーの責任ということになる。
この後は実際にkubectlコマンドの実行結果を見せ、クラスター内でのジョブの遷移などを説明した。利用のシナリオとして対話型のLLMモデルであるRAG(Retrieval Augmented Generation)の例を挙げて解説を行った。
ここではデータを収集してベクターデータベースなどに格納する部分は、CPUだけを使うジョブとしてスタティックはジョブとして実行し、回答を生成する部分はダイナミックなジョブとしてニーズに応じてスケールする形で実行することが解説されている。ジョブのタイプに合わせてスケジューリングの設定を変えることの必要性を強調した。
最後にまとめとして、KubeRayをマルチ環境に展開するソリューションとしてのSkyRayを紹介。
AnyScaleがKubeRayの競合としてAnyScale Operator for Kubernetesを2024年10月に紹介していることを考えるとRayの開発元であるAnyScaleが考えるマルチクラスター、マルチクラウドへの展開、オーケストレーションはどうなっていくのかに注目したい。AnyScaleとしてはApache Airflowの商用版であるAstronomerとRayの商用版のRayTurboでマネージドサービスの方向に行きたいように見えるが、オープンソースであることが大命題のKubeConとは水が合わないのかもしれない。
いずれにせよ機械学習に最適化されたスケジューリング問題はプラットフォームであるKubernetesにとっては大きな課題であり、これからもさまざまなプレイヤーが現れるに違いない。引き続き注視していきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon Europe 2024開催。前日に開催されたAIに特化したミニカンファレンスを紹介
- KubeCon North America 2024からAIワークロードのスケジューリングに関するセッションを紹介
- KubeCon China 2024、GPUノードのテストツールKWOKを解説するセッションを紹介
- Red Hatの製品担当VPにインタビュー。機械学習のインフラとしてのOpenShiftとは
- KubeCon EU 2021でRed Hatが発表した複数のKubernetesを制御するkcpを紹介
- CloudNative Days Tokyo 2023から、DBaaSの現在とマルチクラウドの可能性を解説
- KubeCon EU 2022からバッチシステムをKubernetesで実装するVolcanoを紹介
- All Things OpenからSolo.ioのBrian Gracely氏にインタビュー。サイドカーレスサービスメッシュとは?
- KubeCon NA 2020、サービスメッシュのLinkerdの概要とユースケースを紹介
- KubeCon Europe 2024からサービスメッシュのLinkerdの最新情報を紹介