OpenShift AIでAI/MLもOpenShiftにおまかせ!

こんにちは、Red Hatでソリューションアーキテクトをしている石川です。 5月末に行われたRed Hat Summitの中でRed Hat OpenShift AIが発表となりました。 www.redhat.com

上記リンクのニュースリリースにもあるように、OpenShift AIではOpenShift上でAI/MLモデルの学習/提供基盤環境を実現することを目指しています。その一方で、既にOpenShiftにはOpenShift Data Scienceというアドオン製品も存在しており、それらがどういった関係になるのか疑問を持たれた方もいらっしゃるかも知れません。
今回のブログではその辺りの情報を補足しつつ、現在予定されている幾つかの機能について解説していきたいと思います。

OpenShift AIの位置付け

まず始めにOpenShift AIとはそもそも何なのかという点についてです。
こちらについて一言で表すならばOpenShift上で利用可能なAI/MLのプロダクトポートフォリオとなります。つまりOpenShift AIそのものは製品やサービスではなく、そうしたものを取りまとめる総称だと捉えて頂くと良いです。
ではこのOpenShift AIに含まれる製品が何かというと、Red Hat OpenShift Data Science(RHODS)になります。

RHODSはAI/MLの開発ライフサイクルをサポートする様々なOSSを統合して提供する製品で、OpenShiftのアドオンとして利用することが可能となっています。 インストール方法や機能の詳しい紹介については以前のブログについても合わせて参照下さい。 rheb.hatenablog.com rheb.hatenablog.com

現在OpenShift AIに含まれるのはRHODSのみとなりますが、今回Red Hat Summitの中であえてこうした発表を行なったのは、今後この領域に対してRed Hatがより注力していくことの表れとも言えるでしょう。今後の更なる発表にもご期待ください。

OpenShift Data Scienceに新たに追加された機能

今回のRed Hat Summitの中で、RHODSに対する新たな機能追加としてData Science Pipelinesの提供が発表されました。

Data Science PipelinesはOSSのKubeflow PipelinesをRHODSの一機能として利用可能としたものです。データの取得や前処理、学習、検証といったデータサイエンスの各プロセスをコンポーネント化しパイプラインとして定義することで、繰り返し行う作業の自動化やコードの再利用性を高めることが可能となります。

アップストリームのKubeflow Pipelinesでは、実際のパイプライン実行を行うワークフローエンジンとしてArgo WorkflowとTekton Pipelinesのどちらかを選択する形となりますが、RHODSのData Science PipelinesではOpenShift Pipelinesと連携し、Tektonでの実行がサポートされています。

またこのData Science PipelinesではElyraというツールを使ってGUIを使ってパイプラインを定義することも可能となっています。既にあるPythonスクリプトやNotebookファイルを組み合わせてパイプラインを組むことができるため、ツール導入に伴う学習コストを下げることができます。

大規模モデル学習への対応

今回のSummitの発表の中で生成AIを利用したサービスとしてAnsible Lightspeedが発表されました。
このサービスで利用されているモデルはIBMが提供予定である基盤モデルをAnsibleのコード生成用にカスタマイズ(転移学習)したものです。実は元となる基盤モデルの学習や転移学習はOpenShiftとRHODSのアップストリームであるOpen Data Hubプロジェクトを利用して行われています。


(画像はIBM ResearchのBlogより)

基盤モデルのような大規模モデルを学習させる場合、一つのGPUだけではモデルのパラメータ等の情報を保持するための必要なメモリが足りないため、複数のGPUによる分散学習を行う必要があります。
CodeFlareはOpen Data Hubの一部となる分散学習のためのプロジェクトで、以下のツール群を包含します。
・CodeFlare SDK: Code Flareの各ツールをPythonで利用するためのSDK。
・MCAD: バッチ処理を効率的に行うためのPodのスケジューリング機能(e.g. Gang Scheduling)を提供。
・InstaScale: ジョブ要求に応じてオンデマンドにクラスタにGPUノードを追加。
・KubeRay: K8s上に分散処理を行うためのRayクラスタを構築。

現在(2023年7月時点)はこれらの機能はRHODSでは提供されていませんが、今年の下半期中には機能追加が行われる予定です。

まとめ

本記事ではOpenShift AIについて紹介させて頂きました。今後もRHODSに対する更なる機能追加や、RHODS以外の新規の製品、サービスの発表が期待されます。是非OpenShift AIに注目して見て下さい。

最後にデモ動画を紹介します。以下ではHugging Faceより取得してきたモデルを元に転移学習を行い、モデルのサービングまで実施しています。面白い内容なので良ければチェックしてみて下さい。
www.youtube.com

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。