このトピックでは、Platform for AI (PAI) 、Data Science Workshop (DSW) 、およびApsara File Storage NAS (NAS) のDeep Learning Containers (DLC) を使用して、PyTorchベースのオフライン移行トレーニングを実行する方法について説明します。
前提条件
一般的なNASファイルシステムは、リージョンに作成されます。 詳細については、「NASコンソールでの汎用NASファイルシステムの作成」をご参照ください。
制限事項
このトピックで説明する操作は、一般的なコンピューティングリソースを使用し、パブリックリソースグループにデプロイされているクラスターにのみ適用できます。
手順1: データセットの作成
[データセット] ページに移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
左側のナビゲーションウィンドウで、 を選択します。
データセット管理ページで、データセットの作成をクリックします。
[データセットの作成] パネルで、パラメーターを設定します。 下表にパラメーターを示します。
パラメーター
説明
名前
データセットの名前。
説明
データセットの説明。 説明は、データセットを他のデータセットと区別するのに役立ちます。
データストアの選択
[汎用NAS] を選択します。
ファイルシステムの選択
既存のNASファイルシステムのID。 NASコンソールにログインして、リージョン内のNASファイルシステムのIDを表示できます。 ドロップダウンリストからNASファイルシステムのIDを表示することもできます。
ファイルシステムパス
NASファイルシステムのマウントパス。 この例では、パラメーターを
/
に設定します。デフォルトのマウントパス
ジョブ内のNASデータのパス。 この例では、パラメーターを
/mnt/data
に設定します。重要DSWインスタンスのリージョンは、トレーニングデータとコードが格納されているNASファイルシステムのリージョンと同じである必要があります。
送信をクリックします。
手順2: DSWインスタンスの作成
DSWインスタンスを作成したら、[追加] をクリックして [環境情報] セクションの [データセット] を追加し、手順1で作成したNASデータセットを選択し、[マウントパス] を /mnt/data/
に設定します。 [作業ディレクトリ] をdataset-/mnt/data/
に設定します。
その他のパラメーターについては、「DSWインスタンスの作成」をご参照ください。
ステップ3: データを準備する
このトピックで使用されるデータは、パブリックアクセスで使用できます。 こちらをクリックしてデータをダウンロードし、データを解凍して使用できます。
DSWインスタンスの開発環境に移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。
ページの左上隅で、PAIを使用するリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
オプション: [Data Science Workshop (DSW)] ページで、検索ボックスにDSWインスタンスの名前またはキーワードを入力して、DSWインスタンスを検索します。
インスタンスのアクション列の開くをクリックします。
DSW開発環境で、上部のナビゲーションバーのノートタブをクリックします。
データをダウンロードします。
左上のツールバーのアイコンをクリックしてフォルダを作成します。 この例では、フォルダ名としてpytorch_transfer_learningが使用されています。
DSW開発環境で、上部のナビゲーションバーのターミナルタブをクリックします。
ターミナルタブで、次の図に示すようにコマンドを実行します。
cd
コマンドを使用して作成したフォルダーに移動し、wget
コマンドを使用してデータセットをダウンロードできます。cd /mnt/workspace/pytorch_transfer_learning/ wget https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/data.tar.gz
https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/data.tar.gz
は、データセットファイルをダウンロードするためのURLです。tar -xf。/data.tar.gz
コマンドを実行して、データセットを解凍します。[ノートブック] タブをクリックします。 pytorch_transfer_learningディレクトリに移動し、抽出したhymenoptera_dataフォルダを右クリックし、[名前の変更] をクリックして、ファイルの名前を入力として変更します。
ステップ4: トレーニングコードとモデル格納フォルダを準備する
DSWインスタンスの [ターミナル] タブで、
wget
コマンドを実行して、トレーニングコードをpytorch_transfer_learning
フォルダーにダウンロードします。cd /mnt/workspace/pytorch_transfer_learning/ wget https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/main.py
https://pai-public-data.oss-cn-beijing.aliyuncs.com/hol-pytorch-transfer-cv/main.py
は、トレーニングコードをダウンロードするためのURLです。pytorch_transfer_learningフォルダで、出力という名前のフォルダを作成してトレーニングされたモデルを保存します。
mkdir output
pytorch_transfer_learningフォルダーに含まれるコンテンツを見ます。
フォルダには次のコンテンツが含まれます。
input: トレーニングデータを格納するフォルダ。
main.py: トレーニングコードファイル。
output: トレーニング済みモデルを格納するフォルダー。
ステップ5: スケジュールされたジョブを作成する
[ジョブの作成] ページに移動します。
PAIコンソールにログインします。
左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 管理するワークスペースを見つけて、ワークスペースIDをクリックします。
[ワークスペース] ページの左側のナビゲーションウィンドウで、 を選択します。 [分散トレーニングジョブ] ページで、[ジョブの作成] をクリックします。 [ジョブの作成] ページが表示されます。
[ジョブの作成] ページで、必要なパラメーターを設定します。 次の表に、主要なパラメーターを示します。
セクション
パラメーター
説明
基本情報
ジョブ名
ジョブの名前を指定します。
ノードイメージ
[Alibaba Cloudイメージ] を選択し、ドロップダウンリストからPyTorchイメージを選択します。 この例では、
pytorch-training:1.12pai-gpu-py38-cu113-ubuntu20.04
イメージが使用されています。データセット
ステップ1で作成したNASデータセットを選択します。
コードビルド
このパラメーターを設定する必要はありません。
Startupコマンド
このパラメーターを
python /mnt/data/pytorch_transfer_learning/main.py -i /mnt/data/pytorch_transfer_learning/input -o /mnt/data/pytorch_transfer_learning/output
に設定します。サードパーティのライブラリ
[リストから選択] をクリックし、テキストボックスに次の内容を入力します。
numpy==1.16.4 absl-py==0.11.0
リソース設定
リソースクォータ
[パブリックリソース] を選択します。
フレームワーク
[PyTorch] を選択します。
求人リソース
インスタンスタイプを選択し、インスタンス数を指定します。 例: [リソースタイプ] ページの [CPU] タブで [ecs.g6.xlarge] を選択します。 [ノード] パラメーターを1に設定します。
OKをクリックします。
ステップ6: ジョブの詳細とログを表示する
[分散トレーニングジョブ] ページで、表示するジョブの名前をクリックします。
詳細ページで、ジョブの基本情報とリソースを見ます。
ジョブの詳細ページの下部に、インスタンスタブをクリックして、管理したいインスタンスを見つけて、アクション列のログをクリックしてログを見ます。
ログの例を次の図に示します。