メインコンテンツまでスキップ
バージョン: v2603

ノーコードチューニングの実行例

demoプリセットを使用したノーコードチューニングの操作例を紹介します。

前提

aibooster-examplesintelligence/zenith_tune/nocode/fake_train.pyを使用します。 このスクリプトは--batch-size--num-workers、環境変数OMP_NUM_THREADSに応じて実行時間が変化するダミーの学習スクリプトです。

# 動作確認
python fake_train.py --epochs 3
Starting training: epochs=3, batch_size=32, num_workers=4, OMP_NUM_THREADS=(not set)
Epoch 1/3 completed in 0.330s
Epoch 2/3 completed in 0.323s
Epoch 3/3 completed in 0.337s
Total training time: 0.99s

1. 利用可能なプリセットを確認する

zenithtune optimize --list --dev
Presets:
dev:demo
Strategies:
grid
random
Evaluators:
duration

2. チューニングを実行する

demoプリセットで5回の試行を実行します。

zenithtune optimize --preset dev:demo --dev --n-trials 5 -- python fake_train.py --epochs 3

ベースライン(元のコマンドをそのまま実行)を含む計5回の試行が実行され、outputs/以下にスタディが保存されます。

3. チューニング結果を分析する

zenithtune analyze outputs/study_YYYYMMDD_HHMMSS/study.db

分析結果のグラフ(history.pngtimeline.pngimportances.png)がスタディディレクトリに出力されます。

4. 最適パラメータでコマンドを実行する

zenithtune apply --db-path outputs/study_YYYYMMDD_HHMMSS/study.db --preset dev:demo --dev -- python fake_train.py --epochs 10

チューニングで発見した最良のパラメータを適用してコマンドを実行します。 --epochs 10のようにチューニング時とは異なるオプションを指定して本番実行することもできます。

demoプリセットの中身

demoプリセットは以下の3つのパラメータを最適化します。

パラメータ適用先探索範囲
batch_size--batch-size8〜256(ステップ8)
num_workers--num-workers1〜16
omp_num_threads環境変数 OMP_NUM_THREADS1〜CPUコア数

RegexEvaluatorを使用し、標準出力からTotal training time: X.XXsを抽出して最小化します。