Optuna - 最適化履歴の可視化 (optuna-dashboard)
1. 概要
optuna-dashboard は、Optuna の Study をブラウザ上で可視化・操作するための Web ダッシュボードである。
コマンドラインから起動し、指定したストレージ(RDBStorage または JournalStorage)に保存された Study の情報を読み取り、以下のような機能を提供する。
- 各 Trial の一覧表示(目的関数値・ハイパーパラメータ・状態など)
- 最適化履歴(objective の推移)の可視化
- ハイパーパラメータの重要度・分布・相関の可視化
- Study 間の切り替え
- Trial のフィルタリングやソート
特に JournalStorage(JournalFileBackend)と組み合わせることで、
NFS/NAS 上のジャーナルログファイルを可視化しつつ、
クラスター上で走っている分散ハイパーパラメータ探索の進行状況を、
ブラウザから一元的にモニタリングできる。
JournalStorage を利用している場合、Python 側で
from optuna.storages import JournalStorage from optuna.storages.journal import JournalFileBackend LOG_PATH = "/mnt/nas/optuna/turning.log" storage = JournalStorage(JournalFileBackend(LOG_PATH)) study = optuna.create_study( study_name="turning_study", storage=storage, direction="maximize", load_if_exists=True, )
のように設定していれば、LOG_PATH を optuna-dashboard に渡すことで
その Study 群をブラウザで確認できる。
VENV=/mnt/nas/HTCondor/Python_VirtualEnviroments/optuna-dashboard-venv "$VENV/bin/optuna-dashboard" \ /mnt/nas/optuna/turning.log
コマンド実行後、ターミナルに
* Running on http://127.0.0.1:8080 (Press CTRL+C to quit)
のようなメッセージが出るので、ブラウザから該当 URL にアクセスする。
optuna-dashboard はバックエンドストレージ(RDB / JournalFileBackend)を一定間隔でポーリングし、
新しい Trial や更新された情報を自動的に反映する設計になっている。
実行中のハイパーパラメータ探索に対してダッシュボードを開いておけば、
Trial が順次追加されていく様子をほぼリアルタイムに確認できる。
2. よく使うオプション(ポート番号の変更)
デフォルトではポート 8080 が使用されるが、
同時に複数のダッシュボードを起動したい場合や、既に 8080 番ポートが使用中の場合には、
--port オプションでポート番号を変更できる。
# ログファイル1をポート8080で表示 "$VENV/bin/optuna-dashboard" \ --port 8080 \ /mnt/nas/optuna/turning.log # 別のログファイル(あるいは同じログファイル)をポート8081で表示 "$VENV/bin/optuna-dashboard" \ --port 8081 \ /mnt/nas/optuna/turning_2.log
ブラウザ側では例えば
http://127.0.0.1:8080http://127.0.0.1:8081
と URL を分けることで、複数の Study やログファイルを並行して比較・監視できる。
3. まとめ
optuna-dashboardは、Optuna の Study をブラウザ上でインタラクティブに可視化するためのツールであり、 RDBStorage および JournalStorage(特に JournalFileBackend)と組み合わせて利用できる。- NFS/NAS を前提としたクラスター環境では、JournalStorage のジャーナルログファイルを
optuna-dashboardに渡すことで、分散ハイパーパラメータ探索の状況を一元的にモニタリング可能となる。 - 複数の Study あるいはログファイルを同時に確認したい場合には、
--portオプションでポート番号を変えて 複数のダッシュボードプロセスを立ち上げ、ブラウザで別々の URL としてアクセスすればよい。