データサイエンティストは、クラウドネイティブ AI スイートを使用して Jupyter および Visual Studio (VS) Code ノートブックを作成し、機械学習アルゴリズムを開発およびデバッグし、これらのアルゴリズムを Container Service for Kubernetes (ACK) クラスタに送信してモデルのトレーニングを行うことができます。クラウドネイティブ AI スイートを使用すると、オープンソースの JupyterLab、カスタム Juypter ノートブックイメージ、またはカスタム VS Code ノートブックイメージを ACK クラスタにデプロイすることで、AI 開発環境をセットアップできます。さらに、クラウドネイティブ AI スイートは自動的にパラメータを設定し、ACK の権限管理システムと統合します。このトピックでは、クラウドネイティブ AI スイートを使用してノートブックを作成および使用する方法について説明します。
前提条件
ACK マネージドクラスターを作成すること、およびクラスターの Kubernetes バージョンが 1.18 以降であること。
[AI 開発者コンソール] と [スケジューリングコンポーネント] が ACK Pro マネージドクラスターにインストールされており、ack-ai-dev-console コンポーネントのバージョンが最新であること。
クラスター管理者によって Resource Access Management (RAM) ユーザーが作成されていること。必要なクォータグループが追加され、RAM ユーザーに関連付けられていること。詳細については、「RAM ユーザーを作成する」および「ステップ 1: RAM ユーザーのクォータグループを作成する」をご参照ください。
トレーニングデータを準備します。詳細については、「トレーニングジョブのデータセットとソースコードリポジトリを設定する」をご参照ください。
永続ボリューム要求 (PVC) を作成します。詳細については、「コンソールで静的にプロビジョニングされた NAS ボリュームをマウントする」および「コンソールを使用して静的にプロビジョニングされた OSS ボリュームをマウントする」をご参照ください。
説明ほとんどの場合、モデルのトレーニングに使用されるデータは、Object Storage Service (OSS) ボリュームまたは File Storage NAS (NAS) ボリュームに保存されます。
ノートブックの概要
クラウドプラットフォームと深く統合された機械学習実験環境を提供します。この環境では、オンプレミスのマシンで機械学習モデルを開発、テスト、および前処理できます。
データのコピー、クリーニング、および前処理に使用できる組み込みのデータセット処理ツールを提供します。これにより、処理済みデータを永続ストレージに送信できます。ビッグデータツールを使用してデータセットを処理することもできます。
モデルテストやデータの前処理などの機械学習プロセスのための環境を提供します。この環境では、機械学習ジョブのコードを記述およびデバッグし、コードを
Docker イメージにパッケージ化し、後続のデプロイと使用のためにイメージをクラスターまたはリモート Container Registry リポジトリにプッシュできます。
ステップ 1: ノートブックを作成する
AI 開発者コンソールにログオンします。詳細については、「AI 開発者コンソールにログオンする」をご参照ください。
AI 開発者コンソールの左側のナビゲーションウィンドウで、[ノートブック] をクリックします。
[ノートブック] ページで、[ノートブックの作成] をクリックします。
[ノートブックメッセージ]、[ノートブックの設定]、および [詳細設定] セクションで、パラメータを設定し、[ノートブックの作成] をクリックします。

[ノートブックメッセージ] セクションで、次の操作を行います。
[ノートブック名]、[ノートブックイメージ]、および [名前空間] を設定します。選択した名前空間は、クラスター管理者が AI 開発用に作成したものと同じである必要があります。デフォルトのノートブックイメージまたはカスタムノートブックイメージを選択できます。要件に基づいて他のパラメータを設定します。
説明[ノートブックイメージ] を指定する場合は、要件を満たすノートブックイメージを選択します。Jupyter ノートブックの場合は Jupyter ノートブックイメージを選択し、VS Code ノートブックの場合は VS Code ノートブックイメージを選択する必要があります。そうしないと、ノートブックは正常に機能しません。
カスタムノートブックイメージは、現在のクラスターでのみ使用できます。カスタムノートブックイメージを他のクラスターまたはユーザーと共有することはできません。
[ワークスペース PVC] をオンにします。[ターゲット PVC] ドロップダウンリストから、ワークスペースに関連付けられた永続ボリューム要求 (PVC) を選択します。
[トークン] スイッチをオンにして、カスタムトークンをノートブックに挿入し、セキュリティを強化します。この機能は Jupyter ノートブックのみでサポートされています。
[ノートブックタイプ] を指定して、イメージの起動方法を選択します。ノートブックの種類によって必要な環境が異なります。たとえば、[ノートブックタイプ] が [Jupyter] に設定されている場合、Jupyter ノートブックが作成されます。
[ノートブックの設定] セクションで、[CPU (コア)]、[メモリ (GB)]、および [GPU (カード数)] を設定します。
[詳細設定] セクションでは、ノートブックの [ラベル]、[注釈]、[NodeSelector]、および [Toleration] を設定できます。
ノートブックが作成されたら、[ノートブック] ページに移動し、作成されたノートブックをクリックして詳細情報を表示します。
ステップ 2: Jupyter ノートブックを使用する
Jupyter ノートブックの作成と使用
[ノートブック] ページで、[実行中] [状態] の Jupyter ノートブックをクリックします。
表示されたページの Python 3[ノートブック] セクションで、 をクリックします。
説明ノートブックの作成ページで、ACK によって提供されるノートブックイメージは Python のみをサポートしています。他の言語を使用する場合は、Docker ファイルからカスタムノートブックイメージをビルドできます。詳細については、「カスタムノートブックイメージを作成する」をご参照ください。

Arena を使用してノートブックでジョブを送信します。
方法 1: Arena CLI を使用してジョブを送信する

方法 2: Python 用 Arena SDK を使用してジョブを送信する

VS Code ノートブックを使用する
[ノートブック] ページで、[実行中] [状態] のノートブックを選択し、その名前をクリックします。
[VSCode] ページは、オンプレミス環境と同じ VS Code のような開発エクスペリエンスを提供します。クラスターの kubeconfig ファイルがノートブックに挿入され、環境変数をカスタマイズできます。

カスタムノートブックイメージを作成する
カスタムノートブックイメージを作成する前に、Jupyter ノートブックまたは VS Code ノートブックに最新の Arena コンポーネントバージョンをインストールする必要があります。これにより、ノートブックでデモを実行できます。Arena コンポーネントのインストール方法の詳細については、「Arena クライアントを設定する」をご参照ください。
カスタムノートブックイメージは、現在のクラスターでのみ使用できます。カスタムノートブックイメージを他のクラスターまたはユーザーと共有することはできません。
カスタム Jupyter ノートブックイメージを作成する
さまざまな要件を満たすために、次の図に示すように、Jupyter Notebook の [ノートブック] ページでカスタム Jupyter ノートブックイメージを作成できます。

次の手順を実行して、Docker ファイルを作成し、イメージをビルドできます。
イメージにインストールされている JupyterLab のバージョンは 3.0.0 以降である必要があります。
FROM tensorflow/tensorflow:1.15.5-gpu
USER root
RUN pip install jupyter && \
pip install ipywidgets && \
jupyter nbextension enable --py widgetsnbextension && \
pip install jupyterlab && jupyter serverextension enable --py jupyterlab
# Arena SDK for Python をダウンロードしてインストールします。
RUN pip install arenasdk
# 他の方法で JupyterLab をインストールする場合は、ポート 8888 を介してサービスを公開する必要があります。
EXPOSE 8888
USER jovyanカスタム VS Code ノートブックイメージを作成する
次の図に示すように、VS Code Notebook の [ノートブック] ページでカスタム VS Code ノートブックイメージを作成できます。

次の手順を実行して、カスタム Docker ファイルを作成し、イメージをビルドできます。
FROM ubuntu:18.04
USER root
RUN apt update && \
apt install -y curl
RUN cd /opt && \
wget https://aliacs-k8s-cn-hongkong.oss-cn-hongkong.aliyuncs.com/arena/install.sh && \
/opt/install.sh
イメージをビルドできるように、選択したベースイメージに基づいて Docker ファイルの内容を変更する必要があります。
ノートブックをイメージとして保存する
バージョン 1.0.22 以降の ack-ai-dev-console コンポーネントでは、ノートブックをイメージとして保存できます。これにより、ノートブックの開発環境を保存できます。
この機能は、バージョン 1.0.22 以降の ack-ai-dev-console コンポーネントを使用して作成されたノートブックインスタンスのみをサポートしています。既存のノートブックインスタンスでは、この操作を実行できません。
ノートブックをイメージとして保存するには、次の手順を実行します。
ノートブックで ack-commit-agent コンポーネントのクライアントバイナリツールをダウンロードします。こちらをクリックしてツールをダウンロードします。
ノートブックで次のコマンドを実行して、クライアントをグローバルに実行可能にします。
chmod +x ack-commit-ctl mv ack-commit-ctl /usr/bin/このツールを使用して、ノートブックを送信し、イメージとして保存します。次の例は、イメージを送信する方法を示しています。
ack-commit-ctl commit image-commit-sample:v0.1.0-test INFO[0000] container id: xxx INFO[0002] Container save success, image: image-commit-sample:v0.1.0-testノートブックの送信後に上記の出力が表示された場合、ノートブックはイメージとして保存されています。
次のコマンドを実行して、イメージリポジトリのユーザー名とパスワードを指定し、イメージをイメージリポジトリにプッシュします。
ack-commit-ctl push image-commit-sample:v0.1.0-test --username=username --password=password INFO[0000] Start pushing the image: image-commit-sample:v0.1.0-test INFO[0000] Waiting... INFO[0003] Image pushed successfully: image-commit-sample:v0.1.0-test上記の出力が表示された場合、イメージはイメージリポジトリにプッシュされています。
保存済みイメージを使用する
ack-ai-dev-console コンポーネントが 1.0.21 以降に更新されていることを確認します。
ACK コンソール にログオンします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のウィンドウで、 を選択します。
[ポッド] ページで、イメージとして保存されているノートブックのポッドを見つけ、ポッドの名前をクリックします。ポッドの詳細ページで、ポッドがデプロイされているノードの名前を取得できます。
[ノートブック] ページでノートブックを作成します。
[イメージプルシークレット] セクションで、作成したノートブックイメージ を選択します。右側の [詳細設定] セクションで、[NodeSelector] を設定します。NodeSelector のキーを
kubernetes.io/hostnameに設定し、値を ステップ 4 で取得したポッド名に設定します。[ノートブックの作成] をクリックします。ノートブックを作成できる場合、保存されたイメージが使用されます。