LeRobot 文件

ACT (Action Chunking with Transformers,基於 Transformer 的動作分塊模型)

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

ACT (Action Chunking with Transformers)

ACT 是一種輕量級且高效的模仿學習策略 (policy),特別適用於細粒度操作任務。由於其訓練時間短、計算需求低且效能強大,它是我們建議初學者使用 LeRobot 時的首選模型

觀看 LeRobot 團隊的教學影片,了解 ACT 的運作原理:LeRobot ACT 教學

模型概覽

Action Chunking with Transformers (ACT) 是由 Zhao 等人在論文 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware 中提出。此策略旨在利用經濟實惠的硬體和極少的示範數據,實現精確且具備高頻率接觸的操作任務。

為什麼 ACT 非常適合初學者

ACT 之所以成為絕佳起點,原因如下:

  • 訓練快速:在單個 GPU 上只需數小時即可完成訓練
  • 輕量化:僅約 80M 參數,使用起來高效且簡便
  • 數據效率高:通常僅需 50 次示範即可達到高成功率

架構

ACT 使用基於 Transformer 的架構,包含三個主要組件:

  1. 視覺主幹 (Vision Backbone):利用 ResNet-18 處理來自多個相機視角的影像
  2. Transformer 編碼器 (Encoder):整合來自相機特徵、關節位置以及學到的潛在變數資訊
  3. Transformer 解碼器 (Decoder):透過交叉注意力機制 (cross-attention) 生成連貫的動作序列

該策略的輸入包含:

  • 多個 RGB 影像(例如:手腕相機、前方/頂部相機)
  • 機器人當前的關節位置
  • 一個潛在風格變數 z(在訓練期間學習,推論時設為零)

並輸出包含 k 個未來動作序列的動作區塊 (chunk)。

安裝需求

  1. 請遵循我們的安裝指南來安裝 LeRobot。
  2. ACT 已包含在 LeRobot 的基礎安裝中,因此無需額外的依賴項!

訓練 ACT

ACT 可與標準 LeRobot 訓練流程無縫銜接。以下是在您的數據集上訓練 ACT 的完整範例:

lerobot-train \
  --dataset.repo_id=${HF_USER}/your_dataset \
  --policy.type=act \
  --output_dir=outputs/train/act_your_dataset \
  --job_name=act_your_dataset \
  --policy.device=cuda \
  --wandb.enable=true \
  --policy.repo_id=${HF_USER}/act_policy

訓練小撇步

  1. 從預設值開始:ACT 的預設超參數在大多數任務中都能良好運作
  2. 訓練時間:在單個 GPU 上進行 100k 訓練步數,預計需要數小時
  3. 批次大小 (Batch size):建議從 8 開始,並根據您的 GPU 記憶體進行調整

使用 Google Colab 訓練

如果您的本地電腦沒有高效能 GPU,您可以按照 ACT 訓練筆記本,利用 Google Colab 來訓練您的模型。

評估 ACT

訓練完成後,您可以使用 lerobot-record 指令並搭配您訓練好的策略來評估您的 ACT 策略。這將會執行推論並記錄評估情境 (episodes)。

lerobot-record \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_robot \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --display_data=true \
  --dataset.repo_id=${HF_USER}/eval_act_your_dataset \
  --dataset.num_episodes=10 \
  --dataset.single_task="Your task description" \
  --dataset.streaming_encoding=true \
  --dataset.encoder_threads=2 \
  # --dataset.vcodec=auto \
  --policy.path=${HF_USER}/act_policy
在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.