train-local

本ページはバージョン0.11以降を利用しているユーザーにのみ有効です。 バージョン 0.11 以前の train-local コマンドは 0.11 以降から debug-local に名称が変更しました。ご利用のユーザーは debug-local を参照ください。

説明

本コマンドを実行すると、 --version で指定した学習ジョブ定義バージョンをローカル環境上で実行します。

train-local コマンドを使用するためには、 docker がインストールされている必要があります。

概要

$ abeja training train-local --organization_id <value> \
                             --name <value>            \
                             --version <value>         \
                             --description <value>     \
                             --datasets <value>        \
                             --environment <value>     \
                             --volume <value>          \
                             --runtime <value>         \
                             --v1                      \
                             --config <value>
[--help]

オプション

--organization_id

オーガニゼーションIDを指定します。ここで指定したオーガニゼーションIDは、ABEJA_ORGANIZATION_ID というキーで環境変数に登録され、実行する学習コードから参照可能になります。

--name

学習ジョブ定義名を指定します。

--version

呼び出す関数のパスを指定します。 --handler main:handler とした場合には、 main.py のファイル内に定義されている handler を呼び出します。 呼び出すファイルが src ディレクトリ直下に置かれている場合は、 src.main:handler になります。

--description

学習ジョブの説明です。

--datasets

使用するデータセットを次のフォーマットにて指定します。 {dataset_name}:{dataset_id} 登録されたデータセットは学習コードの引数として与えられるコンテキストから参照できるようになります。

--environment

環境変数を指定します。登録された環境変数はコードから参照できるようになります。 例)IMAGE_WIDTH:100

--volume

docker run コマンドの --volume オプションに相当します。 --volume /path/source/on/host:/path/destination/on/container の形式で、マウント元となるホスト側のパスとマウント先となるコンテナ側のパスを指定します。 複数指定することも可能です。 なお、 docker run コマンドの --read-only オプションには対応しておりません。

--runtime

docker run コマンドの --runtime オプションに相当します。

train-local コマンドでは学習ジョブをコンテナとして実行します。 --runtime オプションでは、そのコンテナを起動するランタイムを指定します。

例えば、コマンドを実行する環境に nvidia-docker2 がインストールされていることを前提に、 --runtime nvidia と指定することで GPU を使用する学習を実行することが出来ます。

--v1

18.10 系のカスタムイメージを使用する際にはこのオプションを与える必要があります。

--config

設定ファイルを指定します。 デフォルトではカレントディレクトリに存在する training.yaml を参照します。

学習をローカル実行する

前提:オーガニゼーション 1234567890123 に “cats_dogs” という名前の学習ジョブ定義と、その学習ジョブ定義バージョン 1 が登録されているものとします。

コマンド:

$ abeja training train-local \
    --organization_id 1234567890123 \
    --name cats_dogs \
    --version 1

出力:

[info] preparing ...
[info] start training job
{"log_id": "2e56cf01-8dee-444b-84f0-719bc5543c80", "log_level": "INFO", "timestamp": "2019-07-09T04:17:55.796421+00:00", "source": "model:run.download_training_source_code.80", "requester_id": "-", "message": "downloading training source code", "exc_info": null}
{"log_id": "7eefd9b3-56d9-4925-b5c2-aab77d77ff06", "log_level": "INFO", "timestamp": "2019-07-09T04:17:57.518125+00:00", "source": "model:run.download_training_source_code.89", "requester_id": "-", "message": "successfully downloaded training source code", "exc_info": null}
INFO: start installing packages from requirements.txt
INFO: requirements.txt not found, skipping
...