第2章 プロジェクトワークベンチの使用
2.1. ワークベンチの作成と IDE の選択
ワークベンチは、ML モデルを調べて操作できる隔離された領域です。データの準備やクリーンアップなど、データを操作したりプログラムを実行したりすることもできます。ワークベンチは、たとえば既存のモデルだけを処理する場合は不要です。しかし、データを処理するコードの記述やモデルのトレーニングなど、ほとんどのデータサイエンスワークフロータスクにはワークベンチが必要です。
ワークベンチを作成するときは、イメージ (IDE、パッケージ、その他の依存関係) を指定します。サポートされている IDE には、JupyterLab、code-server (テクノロジープレビュー)、RStudio (テクノロジープレビュー) などがあります。
IDE は、サーバー/クライアントアーキテクチャーをベースとしています。各 IDE は、OpenShift クラスター上のコンテナー内で実行されるサーバーを提供します。ユーザーインターフェイス (クライアント) は Web ブラウザーに表示されます。たとえば、Jupyter ノートブックサーバーは、Red Hat OpenShift クラスター上のコンテナー内で実行されます。クライアントは、ローカルコンピューターの Web ブラウザーで開く JupyterLab インターフェイスです。JupyterLab に入力したコマンドは、すべてノートブックサーバーによって実行されます。同様に、code-server や RStudio Server などの他の IDE も、OpenShift クラスター上のコンテナー内で実行されるサーバーを提供します。ユーザーインターフェイスは Web ブラウザーに表示されます。このアーキテクチャーにより、すべての処理がクラスター上で行われながら、ブラウザー環境でローカルコンピューターを介して対話できるようになります。処理されるデータがクラスターから外に出ることがないため、クラスターでは利用可能なリソースが大きくなり、セキュリティーが向上するという利点があります。
また、ワークベンチでは、データ接続 (モデルのトレーニング用の外部データにアクセスし、モデルをデプロイできるように保存するため) とクラスターストレージ (データを永続化するため) を設定します。同じプロジェクト内のワークベンチは、オブジェクトストレージを介して、データサイエンスパイプラインおよびモデルサーバーとモデルおよびデータを共有できます。
データ保持が必要なデータサイエンスプロジェクトの場合は、作成しているワークベンチにコンテナーストレージを追加できます。
ワークベンチは、プロジェクト内に複数作成できます。新しいワークベンチを作成するタイミングは、次のような要因によって異なります。
- ワークベンチの設定 (CPU、RAM、IDE など)。新しいタスクに対応するために既存のワークベンチの設定を編集することを避ける場合は、代わりに新しいワークベンチを作成できます。
- タスクまたはアクティビティーの分離。たとえば、あるワークベンチを大規模言語モデル (LLM) の実験アクティビティーに使用し、別のワークベンチをデモ専用に使用し、さらに別のワークベンチをテストに使用するといったことが可能です。
2.1.1. ワークベンチイメージについて
ワークベンチイメージ (ノートブックイメージと呼ばれることもあります) は、モデル開発に必要なツールとライブラリーを使用して最適化されています。提供されているワークベンチイメージを使用することも、OpenShift AI 管理ユーザーがニーズに合わせてカスタムワークベンチイメージを作成することもできます。
一貫性のある安定したモデル開発プラットフォームを実現するために、提供されている多くのワークベンチイメージには、同じバージョンの Python が含まれています。OpenShift AI で利用可能なワークベンチイメージのほとんどは、事前に構築されており、OpenShift AI をインストールまたはアップグレードした後すぐに使用できます。
ワークベンチイメージとパッケージに対する Red Hat のサポートについては、Red Hat OpenShift AI: サポートされる構成 を参照してください。
Red Hat OpenShift AI には、デフォルトで使用可能な以下のノートブックイメージが含まれています。
この表の (Technology Preview)
が付いているノートブックイメージは、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない可能性があります。Red Hat は、本番環境でテクノロジープレビュー機能を使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
イメージ名 | 説明 |
---|---|
CUDA | GPU サポートを必要とするコンピュート集約型データサイエンスモデルを使用している場合は、Compute Unified Device Architecture (CUDA) ノートブックイメージを使用して NVIDIA CUDA Toolkit にアクセスします。このツールキットを使用すると、GPU により高速化されたライブラリーと最適化ツールを使用して作業を最適化できます。 |
Standard Data Science | TensorFlow または PyTorch を必要としないモデルには、Standard Data Science ノートブックイメージを使用します。このイメージには、機械学習モデルの開発に役立つ、一般的に使用されるライブラリーが含まれています。 |
TensorFlow | TensorFlow は、機械学習のためのオープンソースプラットフォームです。TensorFlow を使用すると、マシンラーニングモデルを構築し、トレーニングし、デプロイできます。TensorFlow には、計算グラフの視覚化など、高度なデータ可視化機能が含まれています。また、モデルの進捗を簡単に監視し、追跡することもできます。 |
PyTorch | PyTorch は、ディープラーニング向けに最適化されたオープンソース機械学習ライブラリーです。コンピュータービジョンまたは自然言語処理モデルを使用している場合は、Pytorch ノートブックイメージを使用してください。 |
Minimal Python | 高度な機械学習機能や、計算量の多いデータサイエンス作業のための追加のリソースが必要ない場合は、Minimal Python イメージを使用してモデルを開発できます。 |
TrustyAI | TrustyAI ノートブックイメージを使用して、モデルの説明可能性、トレースと説明可能性、およびランタイム監視を使用したデータサイエンスの作業を活用します。 |
HabanaAI | HabanaAI ノートブックイメージは、Intel Gaudi AI アクセラレーターを使用して高性能ディープラーニング (DL) を最適化します。Intel Gaudi AI アクセラレーターは、DL トレーニングのワークロードの処理を高速化し、トレーニングのスループットと効率を最大化します。 |
code-server (テクノロジープレビュー) |
code-server ノートブックイメージを使用すると、さまざまな拡張機能を使用して新しい言語、テーマ、デバッガーを追加し、追加のサービスに接続することで、ノートブック環境をニーズに合わせてカスタマイズできます。構文の強調表示、自動インデント、括弧の一致、およびシームレスな自動化のための自動タスクランナーにより、データサイエンス作業の効率が向上します。詳細は、GitHub の code-server を参照してください。 注記 Elyra ベースのパイプラインは、code-server ノートブックイメージでは使用できません。 |
RStudio Server (テクノロジープレビュー) |
RStudio Server ノートブックイメージを使用して、統計コンピューティングおよびグラフィックス用のプログラミング言語である R の統合開発環境である RStudio IDE にアクセスします。詳細は、RStudio Server のサイト を参照してください。
RStudio Server ノートブックイメージを使用するには、まずシークレットを作成し、BuildConfig をトリガーしてイメージをビルドします。次に、 重要
免責事項: |
CUDA - RStudio Server (テクノロジープレビュー) | CUDA - RStudio Server ノートブックイメージを使用して、RStudio IDE および NVIDIA CUDA Toolkit にアクセスします。RStudio は、統計コンピューティングおよびグラフィックス用のプログラミング言語である R の統合開発環境です。NVIDIA CUDA Toolkit を使用すると、GPU により高速化されたライブラリーと最適化ツールを使用して作業を最適化できます。詳細は、RStudio Server のサイト を参照してください。
CUDA - RStudio Server ノートブックイメージを使用するには、まずシークレットを作成し、BuildConfig をトリガーしてイメージをビルドします。次に、 重要
免責事項: CUDA - RStudio Server ノートブックイメージには、NVIDIA CUDA テクノロジーが含まれています。CUDA のライセンス情報は https://docs.nvidia.com/cuda/ で入手できます。このサンプルワークベンチを使用する前に、ライセンス条項を確認してください。 |
2.1.2. ワークベンチの作成
ワークベンチを作成するときは、イメージ (IDE、パッケージ、その他の依存関係) を指定します。データ接続、クラスターストレージを設定し、コンテナーストレージを追加することもできます。
前提条件
- Red Hat OpenShift AI にログインしている。
-
特殊な OpenShift AI グループを使用する場合は、OpenShift のユーザーグループ、または、管理者グループ (
rhoai-users
、rhoai-admins
など) に属している。 - プロジェクトを作成した。
Red Hat OpenShift AI の外部で Simple Storage Service (S3) アカウントを作成済みで、既存の S3 ストレージバケットへのデータ接続を作成する場合は、ストレージバケットの次の認証情報を持っている。
- エンドポイント URL
- アクセスキー
- シークレットキー
- リージョン
- バケット名
AWS S3 に保存されているデータの使用に関する詳細は、S3 互換オブジェクトストアのデータの使用 を参照してください。
手順
- OpenShift AI ダッシュボードから、Data Science Projects をクリックします。
ワークベンチを追加するプロジェクトの名前をクリックします。
プロジェクトの Details ページが開きます。
- Workbenches セクションで、Create a workbench をクリックします。
Create workbench ページで、作成するワークベンチのプロパティーを設定します。
- Name フィールドに、ワークベンチの名前を入力します。
- オプション: Description フィールドに、ワークベンチを定義する説明を入力します。
Notebook image セクションで、フィールドに入力して、ワークベンチで使用するワークベンチイメージを指定します。
Image selection リストから、ユースケースに適したワークベンチイメージを選択します。ワークベンチイメージには、IDE と Python パッケージ (再利用可能なコード) が含まれています。必要に応じて、View package information オプションをクリックして、選択したイメージに含まれているパッケージのリストを表示します。
ワークベンチイメージに複数のバージョンがある場合は、Versions セクションから使用するワークベンチイメージのバージョンを選択します。最新のパッケージバージョンを使用するために、最後に追加されたイメージを使用することを推奨します。
注記ワークベンチを作成した後で、ワークベンチのイメージを変更できます。
- Deployment size セクションの Container size リストから、サーバーのコンテナーサイズを選択します。コンテナーサイズは、CPU の数、メモリーの量、コンテナーの最小および最大の要求容量を制御します。
オプション: 環境変数の値を選択して指定します。
ワークベンチの設定中に環境変数を設定すると、ノートブックのボディーや IDE コマンドラインインターフェイスで環境変数を定義する必要がなくなるため、後で時間を節約できます。
S3 互換ストレージを使用している場合は、次の推奨環境変数を追加します。
-
AWS_ACCESS_KEY_ID
は、Amazon Web Services のアクセスキー ID を指定します。 -
AWS_SECRET_ACCESS_KEY
は、AWS_ACCESS_KEY_ID
で指定されるアカウントのシークレットアクセスキーを指定します。
変数を追加するときに Secret を選択した場合、OpenShift AI が認証情報を Kubernetes シークレットとして保護された namespace に保存します。
-
ワークベンチのストレージを設定します。以下のオプションのいずれかを選択します。
- Create new persistent storage: ワークベンチのシャットダウン後も保持されるストレージを作成します。関連するフィールドに入力してストレージを定義します。
- Use existing persistent storage: 既存のストレージを再利用します。Persistent storage リストからストレージを選択します。
必要に応じて、ワークベンチにデータ接続を追加できます。データ接続は、データソースまたはオブジェクトストレージバケットに接続するために必要な設定パラメーターを含むリソースです。現在、S3 互換のデータ接続のみがサポートされています。ストレージバケットを使用して、データ、モデル、パイプラインアーティファクトを保存できます。データ接続を使用して、デプロイするモデルの場所を指定することもできます。
Data connections セクションで、Use a data connection チェックボックスをオンにします。
以下のように新しいデータ接続を作成します。
- Create new data connection を選択します。
- Name フィールドに、データ接続の一意の名前を入力します。
- Access key フィールドに、S3 互換オブジェクトストレージプロバイダーのアクセスキー ID を入力します。
- Secret key フィールドに、指定した S3 互換オブジェクトストレージアカウントのシークレットアクセスキーを入力します。
- Endpoint フィールドに、S3 互換オブジェクトストレージバケットのエンドポイントを入力します。
- Region フィールドに、S3 互換オブジェクトストレージアカウントのデフォルトのリージョンを入力します。
- Bucket フィールドに、S3 互換のオブジェクトストレージバケットの名前を入力します。
以下のように既存のデータ接続を使用します。
- Use existing data connection を選択します。
- Data connection リストから、以前に定義したデータ接続を選択します。
- Create workbench をクリックします。
検証
- 作成したワークベンチは、プロジェクトの Workbenches タブに表示されます。
- 作成プロセス中にワークベンチに関連付けたクラスターストレージは、プロジェクトの Cluster storage タブに表示されます。
- Workbenches タブの Status 列には、ワークベンチサーバーが起動している場合は Starting のステータスが表示され、ワークベンチが正常に起動された場合は Running のステータスが表示されます。
- 必要に応じて、Open リンクをクリックして、IDE を新しいウィンドウで開きます。