Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenShift AIに含まれるOSSについて解説

OpenShift AIに含まれるOSSについて解説

OpenShift.Run 2024で発表した資料です

jpishikawa

March 28, 2024
Tweet

More Decks by jpishikawa

Other Decks in Technology

Transcript

  1. Red Hat OpenShift AI コンテナ環境でのAI/ML活用を推進するHybrid MLOps Platform オンプレミス、クラウドを 問わず、標準化された AI/MLモデルの学習・推論

    環境をOpenShift上で展開 モデルの学習から提供まで、 AIアプリケーションの ライフサイクル全体を サポートするMLOpsを実現 LLMのサービングや、 複数GPUノードを利用した分 散学習を実施する基盤環境を 提供 Model development データサイエンティストがセルフサービスで利用 できるコンテナ化された実験環境 作成したAI/MLモデルをAPIサービスとして提 供し外部から利用可能に Model serving & monitoring Operatorを使用したGPU環境構築、 設定の自動化 Hardware acceleration MLOps Platform
  2. OpenShift AI の立ち位置 クラウド オンプレミス オープン ソース プロプラ イエタリ 特にオンプレミス環境

    でサポートされた OSS ツールを利用できる点 が強み 専業AI/分析ベンダ AI関連の複数のOSSツールを統合し、クラウド、オンプレミスで一貫した開発/運用体験を提供します クラウドマネージドサービス
  3. OpenShift AIソフトウェアスタック 推論 学習 実験的学習環境 バッチ学習環境 パイプライン 分散学習環境 推論API提供 LLM

    サービング AIモデル監視 ・JupyterLab ・PyTorch/TensorFlow/Scikit-learn(コンテナイメージ) ・Kueue ・CodeFlare ・Ray ・CodeFlare ・KServe (ModelMesh) ・KServe ・Caikit ・TGIS Serving ・KubeFlow Pipelines リソース管理 ・TrustyAI ・Prometheus ・GPU Operator ・Device Plugin 環境(オンプレ、クラウド)を問わず統合されたOSSツール群をすぐに利用することができます
  4. Upstream projects Product Community projects CodeFlare OpenShift AI の機能開発 OpenShift

    AIの機能開発はアップストリームの各プロジェクト、及びコミュニティプロジェクトであるOpen Data Hubで進められて います。Open Data Hubで安定して利用可能となったツールをプロダクトへ導入しています。
  5. OpenShift AIによる学習/推論プロセス データストリーミング データ 準備 モデル 作成 モデル 検証 データサイエンスパイプライン(バッチ学習)

    データストア パイプライン化 データソース モデル レジストリ モデル サービング API提供 モデルAPI モデル モニタリング 再学習 アプリケーション データ サイエンティスト ML エンジニア アプリ開発者 クラスタ管理 インフラ エンジニア 学習済みモデル
  6. OpenShift AIソフトウェアスタック 推論 学習 実験的学習環境 バッチ学習環境 パイプライン 分散学習環境 推論API提供 LLM

    サービング AIモデル監視 ・JupyterLab ・PyTorch/TensorFlow/Scikit-learn(コンテナイメージ) ・Kueue ・CodeFlare ・Ray ・CodeFlare ・KServe (ModelMesh) ・KServe ・Caikit ・TGIS Serving ・KubeFlow Pipelines リソース管理 ・TrustyAI ・Prometheus ・GPU Operator ・Device Plugin 環境(オンプレ、クラウド)を問わず統合されたOSSツール群をすぐに利用することができます
  7. Kueueとは • KubernetesのBatch Working GroupのScheduling SIGの中で開発が進められているOSSプロジェクト。Kubernetes環 境におけるジョブ実行の管理や、クオータ割り当て、プリエンプションなどの機能有する。 現在の最新バージョンはv0.6.1 (2024/3/25時点) •

    主な機能としては以下。 ◦ ジョブキューイング ▪ 設定により二つのキューイング方法が選択可能(StrictFIFO、BestEffortFIFO) ◦ クオータ管理 ▪ チーム毎にクラスタ内の利用可能なリソース上限を設定可能 ▪ 別チームがリソースを使用していない場合、設定によりリソースの貸与が可能 ◦ プリエンプション ▪ ワークロードの優先度を設定し、優先度の低いジョブを取り消し、優先度の高いジョブを実行可能 ◦ 複数のジョブ実行方法とのインテグレーション ▪ Kubernetesの標準Jobリソースに加え、KubeFlow Training Operatorや、Ray Jobとの連携が可能 • スケジューラーの機能は持たないため、Gang SchedulingやBin Packingなど実施したい場合は、それを可能とするスケ ジューラーを準備する必要がある。 https://kueue.sigs.k8s.io/docs/overview/
  8. Kueueのカスタムリソース Cohort Cluster Queue Cluster Queue Local Queue Local Queue

    Workload Workload Workload Workload Local Queue Local Queue Workload Workload Workload Workload Cohort - クラスタ単位 ・基本的に一つのKuberenetesクラスタに一つ設定。同じ Cohortに属する ClusterQueue間でリソースの貸し借りが設定可能。 Cluster Queue - チーム単位 ・複数のチームが一つのクラスタを利用する場合、チーム毎に一つの Cluster Queueを設定する。Cluster Queue毎に利用可能な ResourceFlavor(CPU, Memory, GPU)と上限、また別のClusterQueueか ら借受するリソースを設定する。 Resource Flavor ・ノードに付与された Labelからリソースの種類を定義する。例えば一つのク ラスターに異なる種類の GPUデバイスがある場合、それぞれ ResourceFlavorを定義し、別々にClusterQueueに設定することができる。 Local Queue - 利用者単位 ・チーム内のリソース利用者が自身のジョブを実行する際に NameSpace単 位で作成する。Workloadに紐付ける。 Workload ・Queueにおけるジョブを表すリソース。 WorkloadのPriorityを設定すること が可能で、Preemptionの動作に影響する。
  9. コンテナによるモデル提供パターン コンテナとして学習済みモデルを提供する場合、ビルトインパターンとモデルロードパターンの2つが存在します。(OpenShift AIでは後者を採用) ビルトイン モデルロード 学習済みモデル MLライブラリ群 コンテナビルド時に学習済みのモデルとそれを実行するため に必要なライブラリ群をインストールする。モデルの API提供

    のためPythonのフレームワーク(FastAPIなど)を使用し、自 ら実装する必要がある。通常一つのコンテナには一つのモデ ルのみ。 コンテナ上でモデルのランタイムサーバーを実行しておき、推 論を実行するタイミングでオブジェクトストレージに保存したモ デルをロードする。 ビルトインと比較し、ライブラリの管理を行う手間がなく、複数 モデルを一コンテナ内にロード可能。またデプロイしたモデル の入れ替えなども容易にできる。 ランタイムサーバー • OpenVino Model Server (Intel) * • Triton (Nvidia) • ML Server (Seldon) *: OpenShift AIではOpenVinoをサポート。その他のランタイムに関してはセルフサポートにて追加可能。
  10. KServe (Model Mesh Serving) ServingRuntime Model Mesh Controller watch create

    ❶ServingRuntime CRの作成 Deployment Replicas: 0 ServingRuntimeを作成した時点では、 Deploymentのみ作成され、 Podは作成されない 利用するServingRuntimeによりロード可能な モデルの形式が異なる。 [1] GUI等からServingRuntimeのテンプレートを追加 可能。[2] [1]: https://github.com/kserve/modelmesh-serving/tree/main/docs/model-formats [2]: https://access.redhat.com/documentation/ja-jp/red_hat_openshift_data_science_self-managed/2.4/html/working_on_data_science_projects/configuring_model_servers#adding-a-custom-model-serving-runtime_nb-server
  11. KServe (Model Mesh Serving) Inference Service Model Mesh Controller watch

    scale ❷InferenceService CRの作成 Deployment Replicas: 0 -> 1 create Load model ModelMesh Serving Pod InferenceServiceが作成されると、Deployment のReplicasを変更し、Serving用のPodが作成さ れる。 そこに学習済みモデルを保存したストレージからモ デルをダウンロードし、 モデルのロード、推論を行う。 InferenceServiceを追加で作成することで同じ Podに対し複数のモデルをロードできる。
  12. Timeline 21 1H ‘24 Next Future 2H’24 This is an

    uncommitted roadmap and Red Hat reserves the right to change it. ▸ MLOps ∙ Model registry (GA) ∙ Enhance OOTB model monitoring ∙ Model deployments to edge locations (GA) ∙ Distributed workloads integration with DS Pipelines ▸ Model development ∙ Local IDE plugins (eg. VS Code) ∙ Feature store (tech preview) ▸ Platform/integrations ∙ Expand admin UI config capabilities ∙ Fractional GPUs for training & inference ∙ Continue to expand accelerator support ▸ MLOps ∙ Data Science Pipelines v2 incl. experiment tracking ∙ Enhance OOTB model monitoring - perf & ops metrics ∙ Enhance support for LLM serving ∙ Model deployments to near-edge locations (tech preview) ▸ Model development ∙ Distributed workloads GA ∙ VS Code OOTB support ∙ Update OOTB workbench images ▸ Platform / integrations ∙ Support AMD GPUs ∙ Vector DB partner solution
  13. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading

    provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you