AMD-PAVS-AI commited on
Commit
04448a3
·
verified ·
1 Parent(s): bbef02a

Add model card for ACT

Browse files
Files changed (1) hide show
  1. README.md +119 -0
README.md ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: lerobot
3
+ license: apache-2.0
4
+ tags:
5
+ - foundation
6
+ - amd
7
+ - rocm
8
+ - robotics
9
+ pipeline_tag: robotics
10
+ ---
11
+
12
+ ![](assets/ACT.jpg)
13
+
14
+ # ACT: Optimized for AMD ROCm
15
+
16
+ ACT (Action Chunking Transformer, Zhao et al.) is a vision-only behavior-cloning policy from HuggingFace LeRobot for 6-DOF robot arm control. There is no language input, no task prompt, and no flow-matching denoiser. This repository packages evaluation/inference for robot arm action prediction using PyTorch, exported and validated for **AMD ROCm** so it runs efficiently on AMD GPUs and CPUs.
17
+
18
+ This is based on the implementation of ACT found [here](https://huggingface.co/docs/lerobot/en/act).
19
+ This repository contains configurations and scripts optimized for **AMD® ROCm™** platforms. You can use the [AMD scripts](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/Act) to reproduce results or export with custom configurations. More details on model performance can be found [here](#performance-summary).
20
+
21
+ ---
22
+
23
+ ## Task Overview
24
+
25
+ **Task:** Robot arm action prediction (behavior cloning)
26
+
27
+ **Dataset:** BlankHead/so101_redcube_greencloth_3cams (LeRobot format)
28
+
29
+ **Output metrics:** MAE, RMSE (per-joint and per-episode)
30
+
31
+ > **Backend note:** CPU runs FP32; GPU runs BF16. No NPU (VitisAI) path is available — NPU targets print an informational note and exit cleanly.
32
+
33
+ ---
34
+
35
+ ## AMD ROCm Optimization
36
+
37
+ This model export has been adapted and validated for **AMD Instinct™ / Radeon™ GPUs** running **ROCm**, as well as AMD CPUs. Key points:
38
+
39
+ - Validated backends: **PyTorch** (native ROCm HIP kernels) — CPU (FP32) and GPU (BF16).
40
+ - No code changes required versus the upstream ACT/LeRobot implementation — only environment/runtime configuration differs.
41
+ - CPU fallback path supported for environments without a ROCm-capable GPU.
42
+ - No NPU (VitisAI) path is available for this model.
43
+
44
+ | Runtime | Precision | Backend | Hardware | Notes |
45
+ |---|---|---|---|---|
46
+ | CPU | FP32 | PyTorch | AMD CPU | `make benchmark-cpu` / `make evaluate-cpu` |
47
+ | GPU | BF16 | PyTorch (ROCm) | AMD Instinct™ / Radeon™ GPU | `make benchmark-gpu` / `make evaluate-gpu` |
48
+
49
+ ---
50
+
51
+ ## Getting Started
52
+
53
+ For setup instructions, evaluation scripts, and custom configuration options, see the [Act on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/Act).
54
+
55
+ ---
56
+
57
+ ## Model Details
58
+
59
+ **Model Type:** Vision-only behavior-cloning policy (Action Chunking Transformer)
60
+
61
+ **Base Model:** (ACT — Action Chunking Transformer, Zhao et al.)
62
+
63
+ **Model Stats:**
64
+ - Model variant: act-3cams-val (fine-tuned checkpoint, 3-camera SO-101 setup)
65
+ - Vision-only input (side, up, wrist cameras) — no language input, no task prompt, no flow-matching denoiser
66
+ - `chunk_size=100`, `n_action_steps=100`, `temporal_ensemble_coeff=null` (one chunk, all 100 actions consumed, no temporal ensemble)
67
+ - Number of parameters: `80M`
68
+ - Precision tested: FP32 (CPU), BF16 (GPU)
69
+
70
+ ---
71
+
72
+ ## Performance Summary
73
+
74
+ Lower MAE/RMSE indicates predicted joint actions more closely match the recorded ground-truth trajectory; both are computed per-joint and averaged across episodes.
75
+
76
+ ### Metrics Explained
77
+
78
+ | Metric | Description |
79
+ |--------|-------------|
80
+ | MAE | Mean Absolute Error — average absolute difference between predicted and ground-truth joint positions across all timesteps. Lower is better. |
81
+ | RMSE | Root Mean Squared Error — penalizes large deviations more heavily than MAE. Lower is better. |
82
+
83
+ ### Accuracy Results
84
+
85
+ **Full Dataset Evaluation (BlankHead/so101_redcube_greencloth_3cams, 1 episode, chunked mode, no temporal ensemble)** — filled from `runs/eval/<dataset_tag>/loss.json`; run `make evaluate-<device>` to refresh:
86
+
87
+ <!-- accuracy-table-start -->
88
+ | Device | Backend | Precision | Variant | Avg MAE | Avg RMSE |
89
+ |--------|---------|-----------|---------|---------|----------|
90
+ | CPU/GPU | PyTorch | FP32/BF16 | act-3cams-val | 1.6267 | 4.4198 |
91
+ <!-- accuracy-table-end -->
92
+
93
+ Per-joint breakdown:
94
+
95
+ | Joint | Avg MAE | Avg RMSE |
96
+ |-------|---------|----------|
97
+ | shoulder_pan | 1.6908 | 2.4138 |
98
+ | shoulder_lift | 3.6184 | 8.7557 |
99
+ | elbow_flex | 2.0769 | 5.3892 |
100
+ | wrist_flex | 1.0396 | 1.7437 |
101
+ | wrist_roll | 0.7511 | 1.0216 |
102
+ | gripper | 0.5832 | 1.2611 |
103
+
104
+ ---
105
+
106
+ ## Dig Deeper
107
+
108
+ Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples?
109
+
110
+ 📂 **[View the full project on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/Act)**
111
+
112
+ The GitHub repository includes:
113
+ - Setup and prerequisites for ROCm environments
114
+ - Scripts for the supported runners (`pipeline.py`, `evaluate_lerobot.py`, `benchmark_lerobot.py`)
115
+ - Additional model variants and datasets
116
+ - Benchmarking and reproduction instructions
117
+
118
+ ---
119
+