データサイエンティストは、クラウドネイティブのAIスイートを使用してJupyterおよびVisual Studio (VS) Codeノートブックを作成し、機械学習アルゴリズムを開発およびデバッグし、モデルトレーニングのためにこれらのアルゴリズムをContainer Service for Kubernetes (ACK) クラスターに提出できます。 クラウドネイティブAIスイートを使用すると、オープンソースのJupyterLab、カスタムJuypterノートブックイメージ、またはカスタムVS CodeノートブックイメージをACKクラスターにデプロイしてAI開発環境をセットアップし、クラウドネイティブAIスイートの構成をACKの権限管理システムと統合できます。 このトピックでは、クラウドネイティブAIスイートを使用してノートブックを作成および使用する方法について説明します。
前提条件
ACK Proクラスターが作成され、クラスターのKubernetesバージョンが1.18以降です。
AI開発者コンソールとスケジューリングコンポーネントはACK Proクラスターにインストールされており、ack-ai-dev-Consoleコンポーネントのバージョンは最新です。
RAM (Resource Access Management) ユーザーは、クラスター管理者によって作成されます。 必要なクォータグループが追加され、RAMユーザーに関連付けられます。 詳細については、「RAMユーザーの作成」および「手順1: RAMユーザーのクォータグループの作成」をご参照ください。
トレーニングデータを準備します。 詳細については、「Configure datasets and source code repositories for a training job」をご参照ください。
永続ボリュームクレーム (PVC) を作成します。 詳細については、「コンソールに静的にプロビジョニングされたNASボリュームをマウントする」および「コンソールを使用して静的にプロビジョニングされたOSSボリュームをマウントする」をご参照ください。
説明ほとんどの場合、モデルのトレーニングに使用されるデータは、Object Storage Service (OSS) ボリュームまたはApsara File Storage NAS (NAS) ボリュームに保存されます。
ノートブックの紹介
クラウドプラットフォームに統合できる機械学習実験環境を提供します。 この環境では、オンプレミスのマシンで機械学習モデルを開発できます。
データセットをコピーして処理するツールを提供します。 これにより、処理されたデータを永続ストレージに送信できます。 ビッグデータツールを使用してデータセットを処理することもできます。
モデルテストやデータの前処理などの機械学習プロセスの環境を提供します。 この環境では、機械学習ジョブのコードを作成およびデバッグし、コードを
Dockerイメージ
にパッケージ化して、イメージをクラスターまたはリモートのContainer Registryリポジトリにプッシュできます。
ステップ1: ノートブックを作成する
AI開発者コンソールにログインします。 詳細については、「AI開発者コンソールへのログイン」をご参照ください。
AI Developer Consoleの左側のナビゲーションウィンドウで、ノート.
On theノートページをクリックします。ノートブックの作成.
では、ノートメッセージ,ノートブックの構成、および高度な設定セクション、パラメータを設定し、ノートブックの作成.
[ノートブックメッセージ] セクション:
ノートブック名、ノートブックイメージ、および名前空間を設定します。 選択した名前空間は、クラスター管理者がAI開発用に作成した名前空間である必要があります。 デフォルトのノートブックイメージまたはカスタムノートブックイメージを選択できます。 要件に基づいて他のパラメーターを設定します。
説明ノートブックイメージを指定したら、要件を満たすノートブックイメージを選択します。 JupyterノートブックではJupyterノートブックイメージを選択し、VS CodeノートブックではVS Codeノートブックイメージを選択する必要があります。 そうしないと、ノートブックは通常どおり機能できません。
カスタムノートブックイメージは、現在のクラスターでのみ使用できます。 カスタムノートブックイメージを他のクラスターやユーザーに共有することはできません。
Workspace PVCをオンにします。 [ターゲットPVC] ドロップダウンリストから、ワークスペースに関連付けられている永続ボリューム要求 (PVC) を選択します。
[トークン] スイッチをオンにして、ノートブックにカスタムトークンを挿入し、セキュリティを強化します。 Jupyterノートブックのみがこの機能をサポートしています。
ノートブックタイプを指定して、イメージの起動方法を選択します。 異なるタイプのノートブックは異なる環境を必要とする。 たとえば、ノートブックタイプがJupyterに設定されている場合、Jupyterノートブックが作成されます。
では、ノートブックの構成セクション、セットCPU (コア),メモリ (GB)、およびGPU (カード番号).
[事前設定] セクションでは、ノートブックの [ラベル] 、[注釈] 、[NodeSelector] 、および [許容度] を設定できます。
ノートブックが作成されたら、ノートページをクリックし、作成したノートブックをクリックして詳細情報を表示します。
ステップ2: Jupyterノートブックを使用する
Jupyterノートブックの作成と使用
On theノートページにあるJupyterノートブックをクリックします。ランニング 状態.
表示されるページで、Python 3で、ノートセクションにアクセスします。
説明ノートブック作成ページでは、ACKが提供するノートブックイメージはPythonのみをサポートしています。 他の言語を使用する場合は、Dockerファイルからカスタムノートブックイメージを構築できます。 詳細については、「カスタムノートブックイメージの作成」をご参照ください。
Arenaを使用して、ノートブックでジョブを送信します。
方法1: Arena CLIを使用してジョブを送信する
方法2: Arena SDK for Pythonを使用してジョブを送信する
VSコードノートブックの使用
On theノートページでノートブックを選択します。ランニング 状態その名前をクリックします。
VSCodeページでは、オンプレミス環境と同じVSコードのような開発エクスペリエンスを提供します。 クラスターの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
# Download and install Arena SDK for Python.
RUN pip install arenasdk
# If you use other methods to install JupyterLab, you need to expose the Service through port 8888.
EXPOSE 8888
USER jovyan
カスタムVSコードノートブックイメージを作成する
さまざまな要件を満たすために、次の図に示すように、VS Code notebookのノートブックページでカスタムVS Codeノートブックイメージを作成できます。
次の手順を実行して、カスタムDockerファイルを作成し、イメージをビルドできます。
FROM ubuntu:18.04
ユーザールート
RUN aptアップデート&& \
aptインストール-yカール
ランcd /opt && \
wget https://aliacs-k8s-cn-hongkong.oss-cn-hongkong.aliyuncs.com/arena/install.sh && \
/opt/install.sh
イメージをビルドできるようにするには、選択したベースイメージに基づいてDockerファイルの内容を変更する必要があります。
ノートブックを画像として保存する
クラウドネイティブAIスイートのAI開発者コンソールでは、バージョン1.0.22以降のack-ai-dev-Consoleコンポーネントを使用すると、ノートブックをイメージとして送信してホストに保存できます。 これにより、ノートブックの開発環境を保存できます。
この機能は、バージョン1.0.22以降のack-ai-dev-consoleコンポーネントを使用して作成されたノートブックインスタンスのみをサポートします。 この操作は、既存のノートブックインスタンスでは実行できません。
ノートブックをイメージとして保存するには、次の手順を実行します。
Notebookでack-commit-agentコンポーネントのクライアントバイナリーツールをダウンロードします。 ツールをダウンロードするには、ここをクリックしてください。
Notebookで次のコマンドを実行して、クライアントをグローバルに実行可能にします。
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で取得したポッド名に設定します。[ノートブックの作成] をクリックします。 ノートブックを作成できる場合は、保存された画像が使用されます。