依頼133 報告：位置ごとに10本そろえた50本（mecharm_redblock_box_deep_even10_v1）で π0.5 を base から新しく Runpod で学習する（Log27）

■ やったこと
1. lab_train.sh・lab_lib.sh・lab_start.sh に --model deep1 を足した（corr / corr2 / corr3 の流れは変えていない）
   - データ: mecharm_redblock_box_deep_even10_v1（KIOXIA datasets/ の tar 193,353,728 バイト・50本 / 7128コマ）
   - 設定: pi05_mecharm_deep_even10_lora（新しい pi05/openpi_addon/add_deep_config.py。add_trim_config.py と同じく trim の pi05_mecharm_trim_lora を写し、名前・データ名・num_train_steps だけ替える。LoRA・batch 32・学習率の予定 warmup 300 / peak 5e-5 / decay_steps 5,000 / decay_lr 5e-6・weight_loader は trim と同じ）
   - 初期の重み: π0.5 base（gs://openpi-assets/checkpoints/pi05_base/params）。3c で続きの元は取らない
   - 正規化: 新しい pi05/openpi_addon/pod_prep_deep.sh が Pod で tar を広げて 50本を確かめ、LeRobot 形式に変換し、compute_norm_stats.py --config-name pi05_mecharm_deep_even10_lora で測り直す。値は学習の前に lab/Log27/train/norm_stats.json へ持ち帰り、sha256 が Pod と同じかを確かめる（持ち帰れなければ学習のあとチェックポイントの assets から取り直す。sha256 が違えば成功にしない）
   - ステップ: 既定 3,000（保存は 1,000 ごと・最後は 2999）。exp 名 deep_even10_v1
   - 持ち帰り先: KIOXIA lab/Log27/train/ と checkpoints/pi05_mecharm_deep_even10_lora_v1/2999/。Hugging Face は非公開の PixelstoMotors/pi05-mecharm-deep-even10-lora-v1（2999 を assets ごと）
   - 由来 train_provenance.json: 入力に「pi05_base（gs://…・続きの学習ではない）」、データに tar の sha256、config.init_params=base、config.norm_stats に正規化の値の sha256・Pod の場所・lab の写し
   - lab_start.sh / lab_lib.sh の --model に deep1 を足した（Hugging Face から /workspace/ckpt/deep_v1_2999 に取り、add_deep_config.py --steps 3000 と assets を入れて serve_policy.py --policy.config=pi05_mecharm_deep_even10_lora で起動）。今日は立てていない
   - 上限の引数は今の lab_train.sh の名前 --limit-hours を使った（依頼文の --limit はない）

2. テスト（Pod は借りない偽物 lab_train_fakes.sh）
   - test_lab_train.sh: OK 234 / NG 0（前は 216。deep1 の 18件を足した：成功の流れ・3c を飛ばす・pod_prep_deep.sh・正規化の値の持ち帰り・2999・由来・見張り 7+1 時間・sha256 が返らない・持ち帰れない→チェックポイントから・中身が違う→失敗・KIOXIA に前からある 2999 の正規化の値が違う・--init を渡すと借りずに止まる・--stop で記録の deep1 から戻す）
   - test_lab_start.sh: OK 161 / NG 0（前は 153。deep1 で起動・別モデルのサーバーなら止まる・フォルダから名前）
   - pi05/test_merge_and_config.py: 30件 OK（add_deep_config.py が trim と同じで名前・データ・ステップだけ違う・二重に入れない・違うステップで止まる、pod_prep_deep.sh の中身）
   - 手を入れる前の corr〜corr3 のテストは全部通ったまま

3. codex のレビュー 3回
   - 1回目 必須2・推奨2:
     (必須) 4b の出力を $(...) に溜めていた → corr と同じく流しながら Mac 側にも写し（lab/Log27/train/prep_deep_mac.txt）を残す形に直した
     (必須) 正規化の値を持ち帰れなくても成功になる → 2回試し、だめならチェックポイントの assets から取り直し、それでもなければ終了コード 1・通知に出すよう直した
     (推奨) sha256 が違っても置けたことになる・前からある 2999 は見ていない → どちらも失敗にするよう直した
     (推奨) 4b の途中経過を Mac 側に残す → 上の写しで直した
   - 2回目: 直ったことを確認。残りは「親 PID にだけ TERM を送ると、前に出している ssh が返るまで片付けが遅れる」。codex 自身も corr を含む 3a〜4b に前からある共通の制約で今回の後退ではないとした
   - 3回目: 上を範囲の外（据え置き）とした判断を踏まえ「必須なし・推奨なし」
     （各 ssh には時間の上限があり、Pod 側の見張りが上限 +60分で Pod を消すので、Pod が残り続けることはない）

4. commit: 8db7028（git add は9ファイルを1つずつ指定）
   lab_train.sh, lab_lib.sh, lab_start.sh, lab_train_fakes.sh, test_lab_train.sh, test_lab_start.sh, pi05/test_merge_and_config.py, pi05/openpi_addon/add_deep_config.py（新）, pi05/openpi_addon/pod_prep_deep.sh（新）

5. 本番
   - 15:36:22 に `nohup ./lab_train.sh --log Log27 --model deep1 --steps 3000 --limit-hours 7` を新しいセッションで裏に回した（Log18・Log22 と同じ形。pid 8808）
   - Pod: id arn304g7xu5wfk・NVIDIA A40（46068 MiB）・1時間 0.59 ドル・15:36:26 に借り始め（ほかの GPU へは回っていない）
   - 15:37 に SSH が通った。Pod 側の見張りは 23:36 に Pod を消す（Mac 側の上限は 22:36）
   - Pod で 50本を確かめた。測り直した正規化の値は sha256 813fcb8cccd147c1d49e5c06e695587142d4535ff7c1f27b9fc94ea6aee66ce4 → lab/Log27/train/norm_stats.json に持ち帰り済み
   - 15:44:27 学習開始。最初の loss: 0.1015（Step 0 の行・15:54 の見守り）。15:59 に loss 0.0611（Step 50 の行・step 78/3000）
   - 速さ: 5分で 44 ステップ（1ステップ約 6.8 秒。RUNPOD_TRAIN.md の 6.6 秒とほぼ同じ）
   - 出力: /Volumes/KIOXIA/r2r2r-data/lab/Log27/train/lab_train_20261109_153622.txt（nohup 側の写し nohup_lab_train_20261109_153622.txt）。まとめは同じ所の result_*.txt

■ 終わる見込み
   - 学習が終わるのは 21:30 ごろ。Hugging Face へ上げる・ログを持ち帰る・Pod を消すまでで 21:35 前後、KIOXIA へ取り終わるのは 21:40 ごろ（Log22 では学習のあとの片付けが約 5分）
   - Mac 側の上限 22:36 まで 1時間ほど余裕がある
   - 費用の見込み: 約 6.0 時間 × 0.59 ドル = 約 3.5 ドル（約 560 円。1ドル=158円）。上限まで借りても 7 時間で約 4.1 ドル（約 650 円）
   - 終わったら lab_train.sh が Mac の通知を出し、result_*.txt にまとめる（成功・失敗とも Pod を消してから）

■ 決めてほしいこと
1. 実機推論の安全範囲: lab_start.sh は今どのモデルでも trim2 のお手本を --raw-dir にして、安全範囲を「関節範囲 ±10°」で作っている。今回の 50本は j2 の上限が 42.4°で、trim2 の 31.4°より 11°高い（trim2 からの範囲は 41.4°まで）。deep1 で動かすとき --raw-dir を deep_even10_v1 にするか、trim2 のままにするかを決めてほしい（今回は lab_start.sh のこの部分は変えていない）
2. 学習率の予定: 依頼のとおり trim と同じ（decay_steps 5,000）のまま 3,000 ステップで回している。3,000 で終わるので学習率は下げきる前（5e-6 まで下がらない）で止まる。次に回すとき decay_steps をステップ数に合わせるか
3. 2時間ごとの途中経過: この依頼の作業はここで終わるので、途中経過は lab_train.sh が5分おきに書くターミナルの記録（上の lab_train_*.txt）と、終わったときの Mac の通知・result_*.txt で見てほしい（私からの2時間ごとの知らせは出せない）

判定：合格
