- 概要
- スタートアップガイド
- ユーザガイド
-
リファレンス
-
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
ローカル学習
本頁では、 ローカル学習 ( train-local ) の利用方法について説明します。
※利用の前提として、ABEJA Platform CLIとDockerのインストールが必須となります。ABEJA Platform CLIのインストール方法はこちら
ローカル学習とは
学習はローカル環境の機械学習環境(GPUマシンなど)で実施、モデル管理やAPI提供をABEJA Platformで実施といった既存のリソースを有効活用できる機能となります。
training.yaml
の作成
ローカル学習には「training.yaml」 が必須となります。以下のコマンドを実行し、training.yaml
を作成します。
$ abeja training init [学習ジョブ名]
コマンドを実行後、ディレクトリ上に training.yaml
が作成されますので、以下サンプルを参考に、必要に応じて編集してください。
training.yaml
の記載方法はこちらをご参考ください。
■training.yaml (サンプル)
name: train-local-demo
handler: train:handler
image: abeja-inc/all-cpu:18.10
params:
NUM_EPOCHS: '1'
C: '1'
MODEL_FILENAME: model.pkls
学習ジョブ定義の作成
training.yaml
がある状態で以下のコマンドを実行します。
$ abeja training create-job-definition
~/.abeja/config にて設定されているオーガニゼーションに training.yaml
で定義した学習ジョブ定義が作成されます。
学習ジョブ定義バージョンの作成
学習コードに handler
関数を作成します。handler
についての説明はこちら
学習コードが作成できたら次は学習ジョブ定義バージョンの作成をします。
$ abeja training create-version
ローカルで学習ジョブを実行
$ abeja training train-local --help
Usage: abeja training train-local [OPTIONS]
Local train commands
Options:
-o, --organization_id, --organization-id TEXT
Organization ID, organization_id of current
credential organization is used by default
[required]
--name TEXT Training Job Definition Name [required]
--version TEXT Training Job Definition Version [required]
--description TEXT Training Job description
-d, --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
--v1 Specify if you use old custom runtime image
--runtime TEXT Runtime, equivalent to docker run
`--runtime` option
--config PATH Read Configuration from PATH. By default
read from `training.yaml`
--help Show this message and exit.
( コマンド実行するディレクトリにtraining.yaml
が存在する場合、 training.yaml
に定義されている値が優先されて使用されます。 )
■コマンド例
■training.yaml が定義された状態で存在する場合
$ abeja training train-local --version 1 --environment NUM_EPOCHS:100 --environment C:3
上記のコマンドを実行した後は、実行した学習ジョブ・ログ・学習結果などが管理コンソールにて確認できるようになります。
( --environment で学習ジョブ定義バージョンに設定されているバージョンを上書きすることができます
■ローカルのデータを使用する場合
$ abeja training train-local --version 1 --volume `pwd`:/data --environment NUM_EPOCHS:100 --environment C:3
# 例えばカレントディレクトリにデータが存在して、学習ジョブ内の /data に配置したい場合
上記のコマンドで実行するとコマンドを実行する(ホスト側の)環境のデータを学習ジョブが実行される環境(コンテナ)にマウントすることができます。
注意点
- ログは現時点ではコンソールにリアルタイムで送信されません
- ローカル学習の場合には TensorBoard が利用できません
--volume
オプションでマウントするディレクトリは read only にはできません- 今までの train-local は
debug-local
に名前が変更されています