Skip to content

学習

GPU 上で動く DLManaka 学習器 tideborn.trainer の使い方です。教師データの内容と生成方法は 教師データ を参照してください。

実行

sh
uv sync --extra cpu     # GPU マシンでは --extra cu129
uv run python -m tideborn.trainer summary --config configs/smoke.toml
uv run python -m tideborn.trainer train   --config configs/smoke.toml

configs/smoke.toml は配線確認用です。合成データで 2ブロック × 32チャネルの小さいネットワークを 20ステップ動かし、GPU も教師データも不要です。CI も同じ経路を通ります。

本番学習は数時間かかるため、端末から切り離して実行します。tideborn/tools/train_run がログ・PID・異常検出を管理します。

sh
python -m tideborn.tools.train_run start  --config configs/rtx4070ti.toml
python -m tideborn.tools.train_run status --out-dir runs/ckpt/rtx4070ti
python -m tideborn.tools.train_run stop   --out-dir runs/ckpt/rtx4070ti

status は進捗と異常候補を表示し、問題があれば非 0 で終了します。NaN、損失の発散、プロセス消失、15 分以上の無出力、OOM / CUDA error / traceback を監視します。学習そのものを勝手に停止はしません。

watch は 1 行 1 イベントで出力します。

torchcpu / cu129 の追加依存に分けています。通常の uv sync だけでは torch を入れません。開発環境では nvidia-smi の有無を見て適切な追加依存を選びます。

設定

共通の --type / --network / --mode と設定一覧は 学習 にまとめています。このページでは DLManaka 学習器固有の内容だけ扱います。

設定は TOML から読み込み、--set で上書きできます。

sh
uv run python -m tideborn.trainer train --config configs/rtx4070ti.toml \
  --set runtime.max_steps=5000 --set optim.lr=1e-3

python -m tideborn.trainer config で解決後の設定を JSON 表示できます。同じ設定は各チェックポイントにも保存されるため、重み単体から学習条件を追跡できます。

複数 GPU

PyTorch DDP を使います。単一 GPU ではプロセスグループを作らないため、同じコードで 1 GPU と 8 GPU の両方を動かせます。

sh
torchrun --standalone --nproc-per-node 8 -m tideborn.trainer train --config configs/a100x8.toml

optim.accumulation_steps を使う場合、最後以外のマイクロバッチは no_sync() 内で実行し、不要な勾配集約(all-reduce)を避けます。

再開

チェックポイントは runtime.out_dirstep-XXXXXXXXX.pt として安全に保存します。既定では最新チェックポイントから再開します。--resume <path> で明示指定でき、--fresh を付けると ステップ 0 から始めます。