OpenShift AI を導入してみた

はじめに

こんにちはサイオステクノロジーの小野です。前回はOpenShiftでGPUを利用するための設定方法について解説しました。今回はいよいよOpenShift AIを導入してJupyterNotebookを起動するところまでを解説します。

OpenShift AIの4つの主な機能

OpenShift AIのトップ画面は以下のようになります。

OpenShift AIのトップ画面

OpenShift AIには大きく4つの機能があります。

  • Data Science Projects
    • データサイエンスのプロジェクトを作成することができます。プロジェクト内ではワークベンチの作成、パイプラインの作成(MLOps)、モデルのデプロイ、ストレージの作成、データ接続の設定、権限設定が行えます。
  • Data Science Pipelines
    • パイプラインの管理、設定を行います。ここでMLOpsにおけるデータの収集からモデルの評価までを自動化できます。
  • Distributed Workload Metrics
    • 分散ワークロードの管理、設定を行います。分散ワークロードとはモデルの学習や推論を行う際に、複数のマシンやクラスターに分散して処理を行うことです。これによって大規模なモデルでも高速な処理が可能になります。
  • Model Serving
    • モデルのサービングの管理、設定を行います。推論用にモデルをデプロイ、​管理、​公開し、​未知のデータに対して推論サービスとして使用できるようにします。

OpenShift AI構築方法

前提条件

バージョン

  • OpenShift:4.17
  • OpenShift AI:2.13.1

構築に必要なもの1

  • リソース
    • ノード数:2つ
    • CPU:8CPU
    • RAM:32GiB
      • 今回はAWSのインスタンスタイプm6a.2xlargeを2つ使用
  • サブスクリプション
    • Red Hat OpenShift AI Self-Managed のサブスクリプション

機能に応じて利用するもの

  • GPUノード(AIの学習や推論に使用)
  • IDP設定(セキュリティ管理に使用)
  • S3互換のオブジェクトストレージ(モデルの保存やパイプラインの作成に使用)
  • モデルサービング用のOperator
    • Red Hat OpenShift Service Mesh
    • Red Hat OpenShift Serverless

導入手順

OpenShift AI オペレータインストール

最初にOperator > OperatorHubで「OpenShift AI」と検索します。

OperatorHubで「OpenShift AI」と検索

「Red Hat OpenShift AI」を選択してインストールを押します。

「Red Hat OpenShift AI」のインストールを押す

インストール時の設定はデフォルトと同じく以下のように設定します。設定したらインストールを押します。

更新チャネル stable
バージョン 2.13.1
インストールモード クラスターのすべてのnamespace
インストール済みのnamespace Operator推奨のnamespace:redhat-ods-operator
更新の承認 自動

インストールの設定を行う

インストール済みのOperatorでRed Hat OpenShift AIのステータスがSuccessedになっていたらインストール完了です。

Red Hat OpenShift AIのインストール確認

CR(DataScienceCluster)設定

OpenShift AIオペレータの詳細画面に移動し、「DataScienceCluster」のインスタンスを作成します。

DataScienceClusterの作成

公式ドキュメント2に従い、必要なコンポーネントをManagedに設定します。

コンポーネントは以下の10種類あります。

  • codeflare
    • 分散ワークロードに利用されます。
  • kserve
    • 大規模モデルのサービングに利用されます。OpenShift Service MeshとOpenShift Serverlessをインストールしている必要があります。
  • trustyai
    • モデルのモニタリングを行います。OpenShift AI 2.13でテクノロジープレビュー(2.7以前で利用した機能は削除)
  • ray
    • 分散ワークロードに利用されます。
  • kueue
    • 分散ワークロードに利用されます。
  • workbenches
    • ワークベンチの作成に利用されます。
  • dashboard
    • ダッシュボードを使用可能にするために利用されます。
  • modelmeshserving
    • 中小規模モデルのサービングに利用されます。
  • datasciencepipelines
    • MLOpsのパイプラインを作成するために利用されます。
  • trainingoperator
    • 分散ワークロードに利用されます。

今回はYAMLビューを選択し、以下のように設定しました。

spec:
  components:
    codeflare:
      managementState: Managed
    kserve:
      serving:
        ingressGateway:
          certificate:
            type: OpenshiftDefaultIngress
        managementState: Managed
        name: knative-serving
      managementState: Removed
    trustyai:
      managementState: Removed
    ray:
      managementState: Managed
    kueue:
      managementState: Managed
    workbenches:
      managementState: Managed
    dashboard:
      managementState: Managed
    modelmeshserving:
      managementState: Managed
    datasciencepipelines:
      managementState: Managed
    trainingoperator:
      managementState: Removed

DataScienceClusterの設定

Red Hat OpenShift AI の詳細画面のData Science Clusterタブに移動して、作成したインスタンスのステータスが「Phase:Ready」になっていれば作成完了です。

DataScienceCluster作成確認

正常性確認

OpenShift AIの正常性確認としてWebログイン、プロジェクトを作成、ワークベンチ作成、JupyterNotebookを起動するまでを行います。

webログイン

OpenShiftコンソール画面の右上の格子状のアイコンを選択し、Red Hat OpenShift AIを開きます。

OpenShift AIの開き方

ログインを求められるのでKubeadmin or IDP設定したuserでログインします。

Data Science Projects作成

OpenShift AIコンソール画面の左のData Science Projectsを開きます。

右上のCreate data science projectを押します。

プロジェクト作成

プロジェクトの名前を記入してCreateを押せばプロジェクトを作成できます。

プロジェクトの名前設定

プロジェクトの詳細画面

ワークベンチ作成

作成したプロジェクトの画面から、Workbenchesタブに移動します。

Create workbenchを選択します。

ワークベンチの作成

以下の項目を設定して、Create Workbenchを選択します。

Name ワークベンチ名
Image selection ノートブックで扱いたいライブラリを選択3
Container size ワークベンチのサイズ
Accelerator GPUを用いる場合:NVIDIA GPU
Cluster storage 新しく作るか既存のものを選択

ワークベンチの設定➀

ワークベンチの設定②

作成したワークベンチのStatusがRunning になって、Openのリンクが押せるようになったらワークベンチ作成完了です。

ワークベンチの作成を確認

JupyterNotebook起動

作成したワークベンチのOpenのリンクを開きます。

ログインを求められるのでログインします。

Authorize Accessという画面が出てくるので、Allow selected permissionsを押します。

JupyterNotebookにログインするときの認証

JupyterLabの画面が表示されればJupyterNotebookの起動が完了です。

JupyterLabの画面

最後に

以上の手順によりJupyterNotebookを起動することができました。これによりOpenShift上で機械学習を行うことができます。しかしながら、ここまではMLOpsの前半にすぎません。次回からはMLOpsで重要なパイプラインの設定やサービングの設定について解説する予定なので楽しみにしてください。

参考

  1. OpenShift AIの要件:https://docs.redhat.com/ja/documentation/red_hat_openshift_ai_self-managed/2.13/html/installing_and_uninstalling_openshift_ai_self-managed/installing-and-deploying-openshift-ai_install#installing-and-deploying-openshift-ai_install
  2. コンポーネント設定:https://docs.redhat.com/ja/documentation/red_hat_openshift_ai_self-managed/2.13/html/installing_and_uninstalling_openshift_ai_self-managed/installing-and-managing-openshift-ai-components_component-install
  3. ノートブックのライブラリ:https://docs.redhat.com/ja/documentation/red_hat_openshift_ai_self-managed/2.13/html/working_on_data_science_projects/using-project-workbenches_projects#creating-a-workbench-select-ide_projects
  4. OpenShiftのGPU設定の方法について:https://tech-lab.sios.jp/archives/44040
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です