AWSのPhysical AI Scaffolding Kit (PASK)を試す② — HyperPodでNVIDIA Isaac GR00Tをファインチューニング
- URL: https://dev.classmethod.jp/articles/aws-pask-hyperpod-nvidia-isaac-gr00t-finetuning
- 日付: 2026-06-22
- Tier: Tier 2
- 要旨: AWS Physical AI Scaffolding Kit(PASK)で Amazon SageMaker HyperPod 上に NVIDIA Isaac GR00T(Vision-Language-Action VLA モデル)をファインチューニング。GR00T-N1.6-3B を cube_to_bowl タスクで学習。3 つのポイント:(1) GPU は「単一 L40S 48GB」選択(40GB+ VRAM 推奨・24GB は OOM)、(2) Isaac-GR00T checkout を n1.6-release に(mainはN1.7・モデルアーキテクチャ不一致エラー回避)、(3) OUTPUT_DIR の書き込み権限設定。Slurm + Enroot + Pyxis で Docker → SquashFS → GPU Node で実行・FSx 共有ストレージ・チェックポイント S3 自動同期。
詳細
AWS Physical AI Scaffolding Kit(PASK)で Amazon SageMaker HyperPod Slurm クラスタ上に NVIDIA Isaac GR00T-N1.6-3B(Vision-Language-Action VLA モデル・カメラ画像+言語指示→ロボット動作)をファインチューニング。学習タスク cube_to_bowl のデモデータ使用。事前の 3 つのポイント抑止がつまり防止に効果的:(1) GPU VRAM 要件「40GB+ 推奨・H100 or L40 nodes」 → 手頃なのは L40S 48GB(ml.g6e.4xlarge)。24GB(A10G/L4)だと optimizer state が載らず OOM。g6(L4 24GB)と g6e(L40S 48GB)は別物・e 付きを選択、(2) Isaac-GR00T git clone デフォルトは mainブランチ(N1.7 コード)だが sample 既定モデルは N1.6。そのままだと「model type Gr00tN1d6 not recognized」エラー。clone 後に git checkout n1.6-release で align、(3) OUTPUT_DIR 既定は /fsx/s3link/so100(S3 リンク領域)・ubuntu が書けるよう sudo chmod -R a+w /fsx/s3link。処理フロー 4 フェーズ:Phase 0(GPU Worker 追加・cdk.json g6e.4xlarge 指定・cdk deploy)→ Phase 1(Login Node 準備・git clone + Git LFS + git checkout n1.6-release)→ Phase 2(Docker ビルド ECR プッシュ・sbatch slurm_build_docker.sh・pytorch3d/flash-attn ソースビルド 30m-1h)→ Phase 3(Enroot インポート・.sqsh に変換・tmux で foreground 実行)→ Phase 4(学習・sbatch slurm_finetune_container.sh・loss 表示で学習確認・step 2000/2000 で完了・checkpoint-2000/に model-*.safetensors 保存)。なぜ Enroot/Pyxis か:通常 Docker は root 必須で HPC 共有環境に不適・Enroot(rootless)で .sqsh(SquashFS)に変換・Pyxis(Slurm plugin)経由で srun –container-image=… で compute node 実行。.sqsh・データ・ログ全ノード共有 FSx に配置で全ノードから同一参照。チェックポイント S3 リンク領域は cdk destroy 後も RETAIN で S3 データバケット保持・学習(高 VRAM GPU 必須)と評価(Isaac Sim 環境)を S3 介して別構成・別タイミングで可能(PASK 設計の良い点)。