roboops-act-pusht

教材「RoboOps ワークショップ」チャレンジ2-B(エポック数と成功率の関係測定)で学習した ACT policy を、エポック数ごとに3世代のrevisionとして積んだリポジトリです。 教材2章・6章の「ID+revisionによる管理」を、配布する側から実践したものです。

main の最新は e120 と同じ内容です。特定の世代は 必ずタグを指定して 取得してください。

revision表

チャレンジ2-Bの実測値です。評価条件は20エピソード・seed 1000起点・最大300ステップ。

revision epochs mean max reward success rate 学習所要秒
e30 30 0.470 0% 97.1
e60 60 0.686 10% 204.6
e120 120 0.696 5% 407.6

success rate は n=20 の測定であり、1エピソード=5% の解像度しかありません。 e60 と e120 の差は成功エピソード2本と1本の差で、この解像度では優劣を判定できません。

アーキテクチャ

LeRobot 公式 ACT(lerobot.policies.act.modeling_act.ACTPolicy)の state-only 構成です。 入力は observation.state(2次元)と observation.environment_state(16次元)、 出力は action(2次元)です。

設定 値
chunk_size 16
dim_model 64
n_heads 4
dim_feedforward 256
n_encoder_layers 2
n_decoder_layers 1
use_vae False
temporal_ensemble_coeff 0.01
dropout 0.1

n_action_steps=1・pre_norm=True・device="cpu" はビルダ側の固定値で、 設定ファイルからは変更していません。パラメータ数は 171,714 です。

データセット

  • ID: lerobot/pusht_keypoints
  • revision: ace8c161a68bc025c21a5f29f85b86a9a2c5e64b
  • 使用エピソード数: 206(このDatasetの全量)/フレーム数: 25,650

学習は batch_size 128・learning_rate 0.0003・weight_decay 0.0001・ validation_ratio 0.2・seed 42 で、CPU上で実行しました。 エポック数以外は3世代とも同一です。

取得例

revision にタグ名を渡すと、その世代のチェックポイントが得られます。

from lerobot.policies.act.modeling_act import ACTPolicy

# 30エポック版を取得する
policy = ACTPolicy.from_pretrained("beachcities/roboops-act-pusht", revision="e30")

# 60エポック版・120エポック版も同じ形で取得できる
policy_e60 = ACTPolicy.from_pretrained("beachcities/roboops-act-pusht", revision="e60")
policy_e120 = ACTPolicy.from_pretrained("beachcities/roboops-act-pusht", revision="e120")

正規化統計(normalization.npz)と学習記録(training_metrics.json)はモデル本体と 同じコミットに入っています。revision を揃えて取得してください。

from huggingface_hub import hf_hub_download

stats_path = hf_hub_download("beachcities/roboops-act-pusht", "normalization.npz", revision="e30")

注意

推論には学習時と同じ正規化が必要です。normalization.npz の mean/std で観測を正規化し、 出力された action を同じ統計で逆正規化してから環境へ渡してください。

Downloads last month
14
Safetensors
Model size
172k params
Tensor type
F32
·
Video Preview
loading