Arenaは、Kubernetesベースの機械学習タスクを管理するために使用される軽量クライアントです。 Arenaを使用すると、機械学習のライフサイクル全体を通して、データ準備、モデル開発、モデルトレーニング、モデル予測を合理化できます。 これにより、データサイエンティストの作業効率が向上します。 また、ArenaはAlibaba Cloudの基本サービスと深く統合されています。 GPU共有とクラウドParalleled File System (CPFS) をサポートしています。 Arenaは、Alibaba Cloudによって最適化された深層学習フレームワークで実行できます。 これにより、Alibaba Cloudが提供する異種コンピューティングリソースのパフォーマンスと使用率が最大化されます。 このトピックでは、Arenaクライアントを設定する方法について説明します。
前提条件
GPU高速化ノードを含むContainer Service for Kubernetes (ACK) クラスターが作成されます。 詳細については、「GPU高速化ノードを使用したACKクラスターの作成」または「GPU高速化ノードを使用したACK専用クラスターの作成」をご参照ください。
クラスター内のノードはインターネットにアクセスできます。
Arenaコンポーネントがインストールされています。 詳細については、「クラウドネイティブAIスイートのデプロイ」をご参照ください。
手順1: Arenaクライアントの設定
クラスターに接続します。
ACK管理クラスター
ACK管理クラスターにはマスターノードは含まれません。 そのため、macOSを実行するコンピューターなど、オンプレミスのコンピューターにArenaクライアントをインストールする必要があります。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
ACK専用クラスター
SSHを使用してACK専用クラスターのマスターノードにログインし、そのノードで
arena
コマンドを実行します。 詳細については、「SSHを使用したACK専用クラスターのマスターノードへの接続」をご参照ください。説明kubectl get nodesコマンドを実行して、
kubeconfig
ファイルの設定が正しいかどうかを確認できます。Arenaクライアントをインストールするには、オペレーティングシステムの種類 (LinuxまたはmacOS) とプロセッサアーキテクチャ (amd64またはarm64) に応じて、対応するコマンドを実行します。
Linux/amd64
# Download the Arena installation package. wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-amd64.tar.gz # Decompress the installation package. tar -zxvf arena-installer-0.12.0-linux-amd64.tar.gz # Install Arena. cd arena-installer-0.12.0-linux-amd64 bash install.sh --only-binary
Linux/arm64
# Download the Arena installation package. wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-linux-arm64.tar.gz # Decompress the installation package. tar -zxvf arena-installer-0.12.0-linux-arm64.tar.gz # Install Arena. cd arena-installer-0.12.0-linux-arm64 bash install.sh --only-binary
macOS/amd64
# Download the Arena installation package. wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-amd64.tar.gz # Decompress the installation package. tar -zxvf arena-installer-0.12.0-darwin-amd64.tar.gz # Install Arena. cd arena-installer-0.12.0-darwin-amd64 bash install.sh --only-binary
macOS/arm64
# Download the Arena installation package. wget https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/arena/arena-installer-0.12.0-darwin-arm64.tar.gz # Decompress the installation package. tar -zxvf arena-installer-0.12.0-darwin-arm64.tar.gz # Install Arena. cd arena-installer-0.12.0-darwin-arm64 bash install.sh --only-binary
オプション: bash-completionをインストールします。 bash-completionの自動補完機能は、部分的に入力されたコマンドを自動的に入力できます。 bash-completionをインストールしたら、CLIでTabを押して、部分的に入力されたコマンドを自動的に完了できます。
bash-completionをインストールします。
bash-CentOSまたはLinuxの完了
sudo yum install bash-completion -y
bash-DebianまたはUbuntuの完了
sudo apt-get install bash-completion
macOS
brew install bash-completion@2
プロファイルファイルで自動補完機能を有効にします。
Linux
echo "source <(arena completion bash)" >> ~/.bashrc chmod u+x ~/.bashrc
macOS
echo "source $(brew --prefix)/etc/profile.d/bash_completion.sh" >> ~/.bashrc
ステップ2: アリーナが期待どおりに機能するかどうかをテストする
アリーナが期待どおりに機能するかどうかを確認するには、次の手順を実行します。
次のコマンドを実行して、クラスターで使用可能なGPUリソースを照会します。
arena top node
出力には、ノードとGPUに関する情報が表示されます。 これは、アリーナが期待どおりに機能することを示しています。
NAME IPADDRESS ROLE STATUS GPU(Total) GPU(Allocated) cn-huhehaote.192.168.X.XXX 192.168.0.117 <none> ready 8 0 cn-huhehaote.192.168.X.XXX 192.168.0.118 <none> ready 8 0 cn-huhehaote.192.168.X.XXX 192.168.0.119 <none> ready 8 0 cn-huhehaote.192.169.X.XXX 192.168.0.120 <none> ready 8 0 ----------------------------------------------------------------------------------------- Allocated/Total GPUs In Cluster: 0/32 (0%)
アリーナを使用してトレーニングジョブを送信します。 出力は、ジョブが送信されたことを示します。
arena submit tf \ --name=firstjob \ --gpus=1 \ --image=registry.cn-hangzhou.aliyuncs.com/tensorflow-samples/tf-mnist-standalone:gpu \ "python /app/main.py"
期待される出力:
configmap/firstjob-tfjob created configmap/firstjob-tfjob labeled tfjob.kubeflow.org/firstjob created INFO[0001] The Job firstjob has been submitted successfully INFO[0001] You can run `arena get firstjob --type tfjob` to check the job status
次のコマンドを実行して、すべてのジョブを照会します。
arena list
期待される出力:
NAME STATUS TRAINER AGE NODE firstjob RUNNING TFJOB 5s 192.168.X.XXX
次のコマンドを実行して、送信されたジョブのステータスを照会します。
arena get firstjob
期待される出力:
STATUS: SUCCEEDED NAMESPACE: default PRIORITY: N/A TRAINING DURATION: 52s NAME STATUS TRAINER AGE INSTANCE NODE firstjob SUCCEEDED TFJOB 14m firstjob-chief-0 192.168.X.XXX
次のコマンドを実行して、ジョブのログを照会します。
arena logs --tail=10 firstjob
期待される出力:
Accuracy at step 910: 0.9694 Accuracy at step 920: 0.9687 Accuracy at step 930: 0.9676 Accuracy at step 940: 0.9678 Accuracy at step 950: 0.9704 Accuracy at step 960: 0.9692 Accuracy at step 970: 0.9721 Accuracy at step 980: 0.9696 Accuracy at step 990: 0.9675 Adding run metadata for 999