AMD-PAVS-AI commited on
Commit
49dc2bc
·
verified ·
1 Parent(s): 0a99571

Add model card for smolVLA

Browse files
Files changed (1) hide show
  1. README.md +113 -0
README.md ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: pytorch
3
+ license: apache-2.0
4
+ tags:
5
+ - foundation
6
+ - amd
7
+ - rocm
8
+ - robotics
9
+ pipeline_tag: robotics
10
+ ---
11
+
12
+ ![](assets/smolvla.png)
13
+
14
+ # SmolVLA: Optimized for AMD ROCm
15
+
16
+ SmolVLA (vision-language-action) is a behavior-cloning policy from Hugging Face LeRobot for 6-DOF robot arm control. This repository packages 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 SmolVLA found [here](https://huggingface.co/lerobot/smolvla_base).
19
+ This repository contains configurations and scripts optimized for **AMD® ROCm™** platforms. You can use the [smolVLA AMD scripts](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/smolVLA) to reproduce results or export with custom configurations. More details on model performance can be found [here](#accuracy-pipeline).
20
+
21
+ ---
22
+
23
+ ## Task Overview
24
+
25
+ **Task:** Robot arm action prediction (vision-language-action)
26
+
27
+ **Dataset:** BlankHead/so101_redcube_greencloth_3cams (LeRobot format)
28
+
29
+ **Output metrics:** MAE, RMSE (per-joint and per-episode)
30
+
31
+ > **PyTorch note:** CPU runs FP32; GPU runs BF16. No NPU (VitisAI) path is available — `make setup-npu`, `make benchmark-npu`, and `make evaluate-npu` 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 backend: **PyTorch** (native ROCm HIP kernels), FP32 on CPU, BF16 on GPU.
40
+ - No code changes required versus the upstream SmolVLA implementation — only environment/runtime configuration differs.
41
+ - No NPU (VitisAI) fallback path is available for this model.
42
+
43
+ | Runtime | Precision | Backend | Hardware | Notes |
44
+ |---|---|---|---|---|
45
+ | PyTorch | FP32 | HIP (ROCm) | AMD CPU | — |
46
+ | PyTorch | BF16 | HIP (ROCm) | AMD Instinct™ / Radeon™ GPU | No NPU path available |
47
+
48
+ ---
49
+
50
+ ## Getting Started
51
+
52
+ For setup instructions, evaluation scripts, and custom configuration options, see the [smolVLA on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/smolVLA).
53
+
54
+ ---
55
+
56
+ ## Model Details
57
+
58
+ **Model Type:** Vision-language-action policy for robot arm control
59
+
60
+ **Base Model:** `lerobot/smolvla_base`
61
+
62
+ **Model Stats:**
63
+ - Precision tested: FP32 (CPU), BF16 (GPU)
64
+ - Configurable runtime knobs: `rtc_config.enabled` (Real-Time Chunking), `num_steps` (flow-matching denoising passes per chunk), `n_action_steps` (actions consumed per chunk)
65
+
66
+ ---
67
+
68
+ ## Accuracy Pipeline
69
+
70
+ Open-loop offline evaluation is fully implemented: `make evaluate-<device>` runs inference on recorded dataset episodes and computes per-joint and per-episode MAE / RMSE against the recorded ground-truth actions. Lower is better for both metrics.
71
+
72
+ ### Metrics Explained
73
+
74
+ | Metric | Description |
75
+ |--------|-------------|
76
+ | MAE | Mean Absolute Error — average absolute difference between predicted and ground-truth joint positions across all timesteps. Lower is better. |
77
+ | RMSE | Root Mean Squared Error — penalizes large deviations more heavily than MAE. Lower is better. |
78
+
79
+ ### Accuracy Results
80
+
81
+ **Published Results** — Dataset: `BlankHead/so101_redcube_greencloth_3cams` (13 episodes, chunked_rtc mode):
82
+
83
+ <!-- accuracy-table-start -->
84
+ | Metric | Value |
85
+ |--------|-------|
86
+ | Average MAE | 3.9521 |
87
+ | Average RMSE | 7.7251 |
88
+ <!-- accuracy-table-end -->
89
+
90
+ **Per-joint breakdown:**
91
+
92
+ | Joint | Avg MAE | Avg RMSE |
93
+ |-------|---------|----------|
94
+ | shoulder_pan | 3.3654 | 5.1317 |
95
+ | shoulder_lift | 7.8224 | 14.0630 |
96
+ | elbow_flex | 4.9989 | 8.7409 |
97
+ | wrist_flex | 2.4138 | 3.4653 |
98
+ | wrist_roll | 2.6728 | 3.9475 |
99
+ | gripper | 2.4394 | 4.5340 |
100
+
101
+ ---
102
+
103
+ ## Dig Deeper
104
+
105
+ Want to explore the full evaluation scripts, config options, and other AMD-optimized model examples?
106
+
107
+ 📂 **[View the full project on GitHub](https://github.com/AMD-PAVS/physical_ai_sdk/blob/main/models/smolVLA)**
108
+
109
+ The GitHub repository includes:
110
+ - Setup and prerequisites for ROCm environments
111
+ - Open-loop dataset evaluation with trajectory plots and comparison videos
112
+ - Latency benchmarking with Chrome trace output
113
+ - PEFT/LoRA-aware checkpoint loading and runtime chunking configuration