- 概要
- スタートアップガイド
- ユーザガイド
-
リファレンス
-
ABEJA Platform CLI
- CONFIG COMMAND
- DATALAKE COMMAND
- DATASET COMMAND
- TRAINING COMMAND
-
MODEL COMMAND
- check-endpoint-image
- check-endpoint-json
- create-deployment
- create-endpoint
- create-model
- create-service
- create-trigger
- create-version
- delete-deployment
- delete-endpoint
- delete-model
- delete-service
- delete-version
- describe-deployments
- describe-endpoints
- describe-models
- describe-service-logs
- describe-services
- describe-versions
- download-versions
- run-local
- run-local-server
- start-service
- stop-service
- submit-run
- update-endpoint
- startapp command
-
ABEJA Platform CLI
- FAQ
- Appendix
debug-local
説明
本コマンドを実行すると、 --image
で指定した環境をローカル上に構築し、ローカルに存在するモデルをその環境上で一度だけ実行します。
--input
で指定したファイルの中身をモデルの入力として実行し、その結果を出力します。
※ debug-local
コマンドを使用するためには、 docker がインストールされている必要があります。
概要
$ abeja training debug-local --help
Usage: abeja training debug-local [OPTIONS]
Local train commands
Options:
-h, --handler TEXT Training handler [required]
-i, --image TEXT Specify base image name and tag in the
"name:tag" format [required]
-o, --organization_id, --organization-id TEXT
Organization ID, organization_id of current
credential organization is used by default
[required]
--datasets DATASETPARAMSTRING Datasets name
-e, --environment ENVIRONMENTSTRING
Environment variables
-v, --volume VOLUMEPARAMSTRING Volume driver options, ex) /path/source/on/h
ost:/path/destination/on/container
--no-cache, --no_cache Not use built cache
--v1 Specify if you use old custom runtime image
--runtime TEXT Runtime, equivalent to docker run
`--runtime` option
--build-only Build a docker image only. Not run train
command.
-q, --quiet Suppress info logs
--config PATH Read Configuration from PATH. By default
read from `training.yaml`
--help Show this message and exit.
オプション
-h
, --handler
呼び出す関数のパスを指定します。
--handler main:handler
とした場合には、 main.py
のファイル内に定義されている handler
を呼び出します。
呼び出すファイルが src ディレクトリ直下に置かれている場合は、 src.main:handler
になります。
-i
, --image
使用するイメージを指定します。 各イメージについてはこちらを参照して下さい。
-o
, --organization_id
, --organization-id
オーガニゼーションIDを指定します。ここで指定したオーガニゼーションIDは、ABEJA_ORGANIZATION_ID
というキーで環境変数に登録され、実行する学習コードから参照可能になります。
--datasets
使用するデータセットを次のフォーマットにて指定します。 {dataset_name}:{dataset_id}
登録されたデータセットは学習コードの引数として与えられるコンテキストから参照できるようになります。
( バージョン 0.14.0
以降 ) training.yaml
が存在すれば、 training.yaml
の datasets
の値が使用されます。
このオプションで training.yaml
の datasets
に定義されている環境変数を上書きすることができます。
-e
, --environment
環境変数を指定します。登録された環境変数はコードから参照できるようになります。 例)IMAGE_WIDTH:100
ユーザーの指定可能な環境変数についての詳細は、こちらを参照ください。
( バージョン 0.14.0
以降 ) training.yaml
が存在すれば、 training.yaml
の environment
( params
) の値が使用されます。
このオプションで training.yaml
の environment
に定義されている環境変数を上書きすることができます。
-v
, --volume
docker run コマンドの --volume
オプションに相当します。
--volume /path/source/on/host:/path/destination/on/container
の形式で、マウント元となるホスト側のパスとマウント先となるコンテナ側のパスを指定します。
複数指定することも可能です。
なお、 docker run コマンドの --read-only
オプションには対応していません。
--runtime
docker run コマンドの --runtime
オプションに相当します。
debug-local
コマンドでは学習ジョブをコンテナとして実行します。
--runtime
オプションでは、そのコンテナを起動するランタイムを指定します。
例えば、コマンドを実行する環境に nvidia-docker2 がインストールされていることを前提に、 --runtime nvidia
と指定することで GPU を使用する学習を実行することが出来ます。
--build-only
image のビルドだけを行い、学習自体は実行されません。
ビルドされた image は [指定した image 名]/[指定した image のタグ]/train-local-model
という名前になります。
--v1
18.10
系のカスタムイメージを使用する際にはこのオプションを与える必要があります。
--no_cache
, --no-cache
再ビルドを行い、イメージを作り直します。
-q
, --quiet
info ログの出力を抑制します。
-d
オプションはバージョン 1.1.0 以降からは使用できなくなりました。
例
学習をローカルでデバッグする
前提:
- 以下のような状態になっているものとします。
$ cat main.py
def handler(context):
dataset_alias = context.datasets
dataset_id = dataset_alias['dataset_name']
...
コマンド:
$ abeja training debug-local \
-h main:handler \
-i abeja/all-cpu:18.10 \
--organization_id 1234567890123 \
--datasets dataset_1:1000000000
出力:
[info] preparing image : abeja/all-cpu:18.10
[info] building image
INFO: start installing packages from requirements.txt
INFO: packages are installed from requirements.txt
...
ハンドラーの環境変数
debug-local
で実行したハンドラー関数では、以下の環境変数を使用することが可能です。
環境変数名 | 説明 |
---|---|
ABEJA_ORGANIZATION_ID | オーガニゼーションのID デフォルトでは ~/.abeja/config に設定されているオーガニゼーションのオーガニゼーションID が設定されています--organization_id で指定することで別のオーガニゼーションID を設定することが可能です |
HANDLER | ハンドラー関数へのパス |
DATASETS | データセット情報 |
ABEJA_PLATFORM_USER_ID | ユーザID デフォルトでは ~/.abeja/config に設定されている abeja-platform-user のユーザID が設定されます ( バージョン 0.12.4 以降 )--environment で ABEJA_PLATFORM_USER_ID に別のユーザ ID を設定することが可能です |
ABEJA_PLATFORM_PERSONAL_ACCESS_TOKEN | ユーザID デフォルトでは ~/.abeja/config に設定されている personal-access-token のパーソナルアクセストークンが設定されます ( バージョン 0.12.4 以降 )--environment で ABEJA_PLATFORM_PERSONAL_ACCESS_TOKEN に別のパーソナルアクセストークンを設定することが可能です |