Robotics
LeRobot
Safetensors
smolvla
jadechoghari HF Staff commited on
Commit
6721902
·
verified ·
1 Parent(s): bed1a02

Migrate policy to PolicyProcessorPipeline system

Browse files
README.md ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: lerobot/smolvla_base
3
+ datasets: unknown
4
+ library_name: lerobot
5
+ license: apache-2.0
6
+ model_name: smolvla
7
+ pipeline_tag: robotics
8
+ tags:
9
+ - robotics
10
+ - lerobot
11
+ - smolvla
12
+ ---
13
+
14
+ # Model Card for smolvla
15
+
16
+ <!-- Provide a quick summary of what the model is/does. -->
17
+
18
+
19
+ [SmolVLA](https://huggingface.co/papers/2506.01844) is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware.
20
+
21
+
22
+ This policy has been trained and pushed to the Hub using [LeRobot](https://github.com/huggingface/lerobot).
23
+ See the full documentation at [LeRobot Docs](https://huggingface.co/docs/lerobot/index).
24
+
25
+ ---
26
+
27
+ ## How to Get Started with the Model
28
+
29
+ For a complete walkthrough, see the [training guide](https://huggingface.co/docs/lerobot/il_robots#train-a-policy).
30
+ Below is the short version on how to train and run inference/eval:
31
+
32
+ ### Train from scratch
33
+
34
+ ```bash
35
+ lerobot-train \
36
+ --dataset.repo_id=${HF_USER}/<dataset> \
37
+ --policy.type=act \
38
+ --output_dir=outputs/train/<desired_policy_repo_id> \
39
+ --job_name=lerobot_training \
40
+ --policy.device=cuda \
41
+ --policy.repo_id=${HF_USER}/<desired_policy_repo_id>
42
+ --wandb.enable=true
43
+ ```
44
+
45
+ _Writes checkpoints to `outputs/train/<desired_policy_repo_id>/checkpoints/`._
46
+
47
+ ### Evaluate the policy/run inference
48
+
49
+ ```bash
50
+ lerobot-record \
51
+ --robot.type=so100_follower \
52
+ --dataset.repo_id=<hf_user>/eval_<dataset> \
53
+ --policy.path=<hf_user>/<desired_policy_repo_id> \
54
+ --episodes=10
55
+ ```
56
+
57
+ Prefix the dataset repo with **eval\_** and supply `--policy.path` pointing to a local or hub checkpoint.
58
+
59
+ ---
60
+
61
+ ## Model Details
62
+
63
+ - **License:** apache-2.0
config.json ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "smolvla",
3
+ "n_obs_steps": 1,
4
+ "input_features": {
5
+ "observation.images.image": {
6
+ "type": "VISUAL",
7
+ "shape": [
8
+ 3,
9
+ 256,
10
+ 256
11
+ ]
12
+ },
13
+ "observation.images.image2": {
14
+ "type": "VISUAL",
15
+ "shape": [
16
+ 3,
17
+ 256,
18
+ 256
19
+ ]
20
+ },
21
+ "observation.state": {
22
+ "type": "STATE",
23
+ "shape": [
24
+ 8
25
+ ]
26
+ }
27
+ },
28
+ "output_features": {
29
+ "action": {
30
+ "type": "ACTION",
31
+ "shape": [
32
+ 7
33
+ ]
34
+ }
35
+ },
36
+ "device": "cuda",
37
+ "use_amp": false,
38
+ "push_to_hub": true,
39
+ "repo_id": "None",
40
+ "private": null,
41
+ "tags": null,
42
+ "license": null,
43
+ "chunk_size": 50,
44
+ "n_action_steps": 1,
45
+ "normalization_mapping": {
46
+ "VISUAL": "IDENTITY",
47
+ "STATE": "MEAN_STD",
48
+ "ACTION": "MEAN_STD"
49
+ },
50
+ "max_state_dim": 32,
51
+ "max_action_dim": 32,
52
+ "resize_imgs_with_padding": [
53
+ 512,
54
+ 512
55
+ ],
56
+ "empty_cameras": 0,
57
+ "adapt_to_pi_aloha": false,
58
+ "use_delta_joint_actions_aloha": false,
59
+ "tokenizer_max_length": 48,
60
+ "num_steps": 10,
61
+ "use_cache": true,
62
+ "freeze_vision_encoder": true,
63
+ "train_expert_only": true,
64
+ "train_state_proj": true,
65
+ "optimizer_lr": 0.0001,
66
+ "optimizer_betas": [
67
+ 0.9,
68
+ 0.95
69
+ ],
70
+ "optimizer_eps": 1e-08,
71
+ "optimizer_weight_decay": 1e-10,
72
+ "optimizer_grad_clip_norm": 10,
73
+ "scheduler_warmup_steps": 1000,
74
+ "scheduler_decay_steps": 30000,
75
+ "scheduler_decay_lr": 2.5e-06,
76
+ "vlm_model_name": "HuggingFaceTB/SmolVLM2-500M-Instruct",
77
+ "load_vlm_weights": true,
78
+ "add_image_special_tokens": false,
79
+ "attention_mode": "cross_attn",
80
+ "prefix_length": 0,
81
+ "pad_language_to": "longest",
82
+ "num_expert_layers": -1,
83
+ "num_vlm_layers": 0,
84
+ "self_attn_every_n_layers": 2,
85
+ "expert_width_multiplier": 0.5,
86
+ "min_period": 0.004,
87
+ "max_period": 4.0
88
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:71d9563c8295284acba8fc2d5c19de000d6fe9ba58a406832af7ef3d221ed52f
3
+ size 1218047032
policy_postprocessor.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_postprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "device_processor",
6
+ "config": {
7
+ "device": "cpu",
8
+ "float_dtype": null
9
+ }
10
+ },
11
+ {
12
+ "registry_name": "unnormalizer_processor",
13
+ "config": {
14
+ "eps": 1e-08,
15
+ "features": {
16
+ "action": {
17
+ "type": "ACTION",
18
+ "shape": [
19
+ 7
20
+ ]
21
+ }
22
+ },
23
+ "norm_map": {
24
+ "VISUAL": "IDENTITY",
25
+ "STATE": "MEAN_STD",
26
+ "ACTION": "MEAN_STD"
27
+ }
28
+ },
29
+ "state_file": "policy_postprocessor_step_1_unnormalizer_processor.safetensors"
30
+ }
31
+ ]
32
+ }
policy_postprocessor_step_1_unnormalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7008ba73c73887e5a7e631d478de9563ec5a0c51b7f0327f2530d7326c4b039e
3
+ size 416
policy_preprocessor.json ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "policy_preprocessor",
3
+ "steps": [
4
+ {
5
+ "registry_name": "rename_observations_processor",
6
+ "config": {
7
+ "rename_map": {}
8
+ }
9
+ },
10
+ {
11
+ "registry_name": "to_batch_processor",
12
+ "config": {}
13
+ },
14
+ {
15
+ "registry_name": "smolvla_new_line_processor",
16
+ "config": {}
17
+ },
18
+ {
19
+ "registry_name": "tokenizer_processor",
20
+ "config": {
21
+ "max_length": 48,
22
+ "task_key": "task",
23
+ "padding_side": "right",
24
+ "padding": "longest",
25
+ "truncation": true,
26
+ "tokenizer_name": "HuggingFaceTB/SmolVLM2-500M-Instruct"
27
+ }
28
+ },
29
+ {
30
+ "registry_name": "device_processor",
31
+ "config": {
32
+ "device": "cuda",
33
+ "float_dtype": null
34
+ }
35
+ },
36
+ {
37
+ "registry_name": "normalizer_processor",
38
+ "config": {
39
+ "eps": 1e-08,
40
+ "features": {
41
+ "observation.images.image": {
42
+ "type": "VISUAL",
43
+ "shape": [
44
+ 3,
45
+ 256,
46
+ 256
47
+ ]
48
+ },
49
+ "observation.images.image2": {
50
+ "type": "VISUAL",
51
+ "shape": [
52
+ 3,
53
+ 256,
54
+ 256
55
+ ]
56
+ },
57
+ "observation.state": {
58
+ "type": "STATE",
59
+ "shape": [
60
+ 8
61
+ ]
62
+ },
63
+ "action": {
64
+ "type": "ACTION",
65
+ "shape": [
66
+ 7
67
+ ]
68
+ }
69
+ },
70
+ "norm_map": {
71
+ "VISUAL": "IDENTITY",
72
+ "STATE": "MEAN_STD",
73
+ "ACTION": "MEAN_STD"
74
+ }
75
+ },
76
+ "state_file": "policy_preprocessor_step_5_normalizer_processor.safetensors"
77
+ }
78
+ ]
79
+ }
policy_preprocessor_step_5_normalizer_processor.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7008ba73c73887e5a7e631d478de9563ec5a0c51b7f0327f2530d7326c4b039e
3
+ size 416