メインコンテンツまでスキップ

ACT モデルのトレーニング

ACT(Action Chunking with Transformers)は ALOHA の研究に由来し、公式実装は tonyzhaozh/act にあります。プラットフォームはモデル識別子 act でこのポリシーを登録し、入力は LeRobot v2 または v3 のデータセットです。トレーニングでは、コンテナ内で LeRobot データを ACT の HDF5 episode に変換してから実行します。

対象ロールと前提条件​

対象ロール​

役割利用シーン依存
アルゴリズムエンジニア単一タスクまたは類似タスク向けに ACT ポリシーをファインチューニングトレーニングとデータセットのモジュール権限
プロジェクトマネージャーACT トレーニングタスクの進捗と成果物を追跡トレーニングタスクの閲覧権限
データ提供者フィールドと次元の要件を満たすデータセットを提供データエクスポートのモジュール権限

前提条件​

項目要件
データセットバージョンLeRobot v2 または v3
データセット構造meta/info.json を含み、data/ 配下に parquet があり、動画フィールドは videos/ に配置
データフィールドobservation.state と action を含み、両者の次元が一致
カメラフィールドfeatures で dtype が video のフィールドが視覚入力となり、camera_keys で指定可能
トレーニングフレームワークACT ネイティブ(PyTorch)または LeRobot。既定は ACT ネイティブ
計算リソースGPU コンテナ。VRAM 要件は batch_size とカメラ数で変化し、プラットフォームは固定のしきい値を設けない
実行名run_name に対応する出力ディレクトリが空であること

トレーニングタスクの作成とパラメータ​

手順​

  1. トレーニングページで新しいトレーニングタスクを作成し、モデルに act を選択します。
  2. データソース(プラットフォームのエクスポート記録、外部 URL、アップロードした LeRobot データセット)を選択します。
  3. データセットの実際の形式に合わせて、データセットバージョン v2 または v3 を選択します。
  4. パラメータを設定します。run_name と camera_keys は明示的に入力することが推奨されます。
  5. 計算リソースを選択し、タスクを送信します。

トレーニングパラメータ​

パラメータの既定値と取り得る範囲:

パラメータ説明既定値取り得る範囲
batch_sizeバッチサイズ64≥ 1
num_epochsトレーニングのエポック数12000≥ 0。0 より大きい場合はこちらを優先
stepsnum_epochs の別名0≥ 0。num_epochs が 0 かつ steps が 0 より大きい場合のみ有効
learning_rate主学習率5e-5> 0
save_intervalエポック単位の保存間隔6000≥ 1。既定値の場合は num_epochs の半分
seed乱数シード42整数
num_workersDataLoader の worker 数0≥ 0。コンテナ内では 0 を推奨
policy_classポリシー種別ACTACT 固定
kl_weightKL 項の重み10≥ 0
chunk_size動作 chunk の長さ100≥ 1
hidden_dimTransformer の隠れ次元512≥ 1
dim_feedforwardFFN の隠れ次元3200≥ 1
task_nameタスク名autoauto または文字列
run_name実行名空。タイムスタンプ名を自動生成英字、数字、ドット、アンダースコア、ハイフン。長さは 128 以内
camera_keysLeRobot の視覚フィールド空。自動推論カンマ区切りのフィールド名
camera_namesACT のカメラ名空。camera_keys から生成camera_keys と数が一致し、重複がない
episode_lenepisode 長の上書き0≥ 0。0 は自動検出
idle_threshold静止フレームのフィルターしきい値1e-4≥ 0
max_episodes先頭 N 個の episode のみ変換0≥ 0。0 は全量
convert_workers変換の並行 worker 数0≥ 0。0 は自動戦略で上限は 8
keep_converted_hdf5中間 HDF5 を保持falseブール

マルチ GPU トレーニングでは batch_mode は fixed_global に固定され、個別には公開されません。データ経路を初めて検証する場合は、最小構成で送信します。num_epochs を 1、batch_size を 8、max_episodes を 2 に設定します。

結果の確認​

トレーニングの監視​

トレーニングログは Epoch N と Val loss: X を出力します。プラットフォームは epoch をトレーニングステップ、検証損失を loss として記録し、トレーニング詳細ページの損失カーブに使用します。

指標意味
Epoch現在のトレーニングエポック
Val loss検証損失

確認チェックリスト​

確認項目合格基準
チェックポイントディレクトリcheckpoints/<run_name>/ が生成される
チェックポイントファイルpolicy_last.ckpt、policy_best.ckpt を含む。save_interval に従って policy_epoch_<epoch>_seed_<seed>.ckpt を生成
データセット統計dataset_stats.pkl が生成される
実行マニフェストmanifest.json の state_dim、num_episodes、camera_keys、camera_names が選択したデータセットと一致
損失カーブVal loss がトレーニングに伴って低下
中間生成物keep_converted_hdf5 を有効にしない場合、変換で生成された HDF5 はトレーニング終了後に削除される

エラー時の対処​

現象考えられる原因対処責任者
起動時に実行名の重複を報告出力ディレクトリ配下の同名 run_name ディレクトリが空でないrun_name を変更して再試行トレーニング設定担当
カメラ名とカメラフィールド数の不一致を報告camera_names と camera_keys の数が異なる、またはカメラ名が重複両者の数を一致させ、名前を一意にするトレーニング設定担当
状態と動作の次元の不一致を報告データセットの observation.state と action の次元が異なるデータセットを修正し、両者の次元を一致させるデータ提供者
カメラフィールドが見つからないと報告features に使用可能な video フィールドがない、または camera_keys の指定が誤りmeta/info.json の features を確認し、camera_keys を明示的に指定データ提供者、トレーニング設定担当
データセットに必須列がないと報告parquet に episode_index、frame_index、observation.state、action のいずれかがないデータセットの列を補完して再エクスポートデータ提供者
VRAM 不足batch_size とカメラ数が大きすぎるbatch_size を下げるトレーニング設定担当
マルチ GPU トレーニングが不安定変換段階のディスクとメモリの負荷num_workers を 0 に保ち、convert_workers を下げるトレーニング設定担当

関連ページ​

ページ用途
モデルトレーニングトレーニングタスクの作成、監視、割り当て
LeRobot データセットとトレーニングデータエクスポートとトレーニングの概要
LeRobot v2 と v3 の形式差異2 つのデータ形式の違いと移行
データエクスポートLeRobot トレーニングパッケージの生成