ステージ5:モデル訓練(Linux)
本ステージでは収集したデータセットを用いてポリシー(ACT など)を訓練し、デプロイ可能なモデルを生成します。Linux は GPU 訓練に最適な環境です——CUDA 版 torch の依存関係が自動的に解決され、手動設定は不要です。
前提条件
ステージ4:データ収集 を完了している
NVIDIA GPU(推奨)、CUDA ドライバ(
nvidia-smiで確認可能)データセットを記録済み(ローカルキャッシュで確認可能)
ステップ 1:GPU 環境の確認
# CUDA ドライバの確認
nvidia-smi
# torch が CUDA を利用可能か確認
python -c "import torch; print('CUDA:', torch.cuda.is_available(), '| GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'N/A')"期待される出力:CUDA: True | GPU: <your_gpu_name>
⚠️ 注意(CUDA torch):
CUDA: Falseの場合は、CPU 版の torch がインストールされています。CUDA 版を再インストールしてください:
# 公式ソース(海外ネットワーク)
pip install torch --index-url https://download.pytorch.org/whl/cu128
# 中国本土ネットワークでは阿里雲ミラーを優先
pip install torch --index-url https://mirrors.aliyun.com/pytorch-wheels/cu128または CPU で訓練します(
--policy.device=cpu、ただし速度は大幅に遅くなります)。
💡 ヒント:
pip install -e ".[amazinghand]"は Linux では通常、GPU 版 torch を解決します(CUDA 環境が検出された場合)。そうでない場合は、上記のコマンドで再インストールしてください。
ステップ 2:訓練
lerobot-train \
--dataset.repo_id=soarm_amazing_hand_pick \
--dataset.root=~/lerobot_data \
--policy.type=act \
--output_dir=outputs/train/soarm_amazing_hand_pick \
--job_name=soarm_amazing_hand_pick \
--policy.device=cuda \
--wandb.enable=false \
--policy.push_to_hub=false \
--steps=60000💡 説明:
--dataset.repo_idと--dataset.rootはステージ4 の記録時と完全に一致させる必要があります(repo_id=soarm_amazing_hand_pick、root=~/lerobot_data)。これでローカルデータセットを読み込め、HF ログインは不要です。
パラメータ説明
| パラメータ | 説明 |
|---|---|
--dataset.repo_id | データセット名(記録時と一致) |
--dataset.root | データセットのローカルパス(記録時と一致) |
--policy.type | ポリシーの種類。act が一般的な選択 |
--output_dir | 訓練の出力ディレクトリ(checkpoints、ログ) |
--job_name | ジョブ名(ログの識別用) |
--policy.device | cuda(GPU)または cpu |
--wandb.enable | 重みのログ。false で無効(wandb アカウント不要) |
--policy.push_to_hub | モデルを HF へプッシュするか。false はローカルのみ |
--steps | 訓練ステップ数 |
訓練プロセスの説明
checkpoints:各ステップで自動的に
outputs/train/soarm_amazing_hand_pick/checkpoints/に保存されますログ:ターミナルに loss などの指標をリアルタイム表示します
所要時間:60000 ステップはコンシューマー向け GPU で通常数時間です(グラフィックカードによります)
⚠️ 注意 1(ステップ数の調整):
--steps=60000は ACT の典型的な値です。単純なタスクなら 30000 に減らし、複雑なタスクなら 100000+ に増やせます。loss の収束を観察してください。
⚠️ 注意 2(訓練中断からの再開):中断後に同じパラメータのコマンドを再実行すると、最後の checkpoint から再開します。
⚠️ 注意 3(wandb):loss 曲線を可視化したい場合は
--wandb.enable=trueを有効にできます(wandb loginが必要)。デフォルトは無効です。
⚠️ 注意 4(ヘッドレスサーバー):SSH/ディスプレイなしのサーバーで訓練する場合は、GUI に依存しないようにしてください(訓練自体にディスプレイは不要です)。
--display_data関連の引数を使用する場合はディスプレイサーバーが必要です。
⚠️ 注意 5(バックグラウンド訓練):長時間の訓練では
nohup ... &やtmuxでプロセスを維持し、SSH 切断による中断を避けることを推奨します:
tmux new -s train
lerobot-train --dataset.repo_id=...
# Ctrl+B の後に D でデタッチ;tmux attach -t train で再入本ステージを完了したら、ステージ6:デプロイと評価 に進みます。
トラブルシューティング
| 現象 | 原因 | 解決 |
|---|---|---|
CUDA: False | CPU 版 torch | CUDA 版 torch を再インストール |
| VRAM 不足(OOM) | バッチサイズが大きすぎる | --policy.batch_size=8 またはそれ以下 |
| データセットが見つからない | repo_id/root が不一致 | 記録時と --dataset.repo_id および --dataset.root が完全に一致するか確認 |
| 訓練中に SSH が切断 | プロセスが強制終了 | tmux/nohup でバックグラウンド訓練 |
wandb がエラー | 未ログイン | --wandb.enable=false または wandb login |

