LeRobot 文件
ACT (Action Chunking with Transformers,基於 Transformer 的動作分塊模型)
立即開始
教學課程
機器人模仿學習使用自備策略 (Bring Your Own Policies)使用自備硬體 (Bring Your Own Hardware)以增強學習訓練機器人在模擬環境中訓練增強學習多 GPU 訓練人機協作 (Human-in-the-Loop) 資料收集使用 PEFT(例如 LoRA)進行訓練使用 Rename Map 與空白相機
資料集 (Datasets)
策略
獎勵模型
推論
模擬
基準測試 (Benchmarks)
機器人處理器
機器人
遙控操作員
感測器
支援的硬體
資源
關於
加入 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 的架構,包含三個主要組件:
- 視覺主幹 (Vision Backbone):利用 ResNet-18 處理來自多個相機視角的影像
- Transformer 編碼器 (Encoder):整合來自相機特徵、關節位置以及學到的潛在變數資訊
- Transformer 解碼器 (Decoder):透過交叉注意力機制 (cross-attention) 生成連貫的動作序列
該策略的輸入包含:
- 多個 RGB 影像(例如:手腕相機、前方/頂部相機)
- 機器人當前的關節位置
- 一個潛在風格變數
z(在訓練期間學習,推論時設為零)
並輸出包含 k 個未來動作序列的動作區塊 (chunk)。
安裝需求
- 請遵循我們的安裝指南來安裝 LeRobot。
- 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訓練小撇步
- 從預設值開始:ACT 的預設超參數在大多數任務中都能良好運作
- 訓練時間:在單個 GPU 上進行 100k 訓練步數,預計需要數小時
- 批次大小 (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