lilkm HF Staff commited on
Commit
db167a7
·
verified ·
1 Parent(s): f67394a

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. README.md +60 -0
  2. config.json +171 -0
  3. model.safetensors +3 -0
README.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ datasets: robometer/RBM-1M
3
+ library_name: lerobot
4
+ license: apache-2.0
5
+ model_name: robometer
6
+ pipeline_tag: robotics
7
+ tags:
8
+ - reward-model
9
+ - lerobot
10
+ - qwen3-vl
11
+ - robotics
12
+ - zero-shot
13
+ - robometer
14
+ - vision-language
15
+ ---
16
+
17
+ # Reward Model Card for robometer
18
+
19
+ <!-- Provide a quick summary of what the reward model is/does. -->
20
+
21
+
22
+ Robometer is a zero-shot general-purpose robotic reward model built on a fine-tuned Qwen3-VL backbone with progress, preference, and success heads. Given a video and a task description it outputs a per-frame progress signal in [0, 1] and a per-frame success probability — suitable for offline reward labelling and for low-frequency reward signals during RL fine-tuning of robot policies.
23
+
24
+
25
+ This reward model has been trained and pushed to the Hub using [LeRobot](https://github.com/huggingface/lerobot).
26
+ See the full documentation at [LeRobot Docs](https://huggingface.co/docs/lerobot/index).
27
+
28
+ ---
29
+
30
+ ## How to Get Started with the Reward Model
31
+
32
+ ### Train from scratch
33
+
34
+ ```bash
35
+ lerobot-train \
36
+ --dataset.repo_id=${HF_USER}/<dataset> \
37
+ --reward_model.type=robometer \
38
+ --output_dir=outputs/train/<desired_reward_model_repo_id> \
39
+ --job_name=lerobot_reward_training \
40
+ --reward_model.device=cuda \
41
+ --reward_model.repo_id=${HF_USER}/<desired_reward_model_repo_id> \
42
+ --wandb.enable=true
43
+ ```
44
+
45
+ _Writes checkpoints to `outputs/train/<desired_reward_model_repo_id>/checkpoints/`._
46
+
47
+ ### Load the reward model in Python
48
+
49
+ ```python
50
+ from lerobot.rewards import make_reward_model
51
+
52
+ reward_model = make_reward_model(pretrained_path="<hf_user>/<reward_model_repo_id>")
53
+ reward = reward_model.compute_reward(batch)
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Model Details
59
+
60
+ - **License:** apache-2.0
config.json ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "robometer",
3
+ "input_features": {
4
+ "observation.images.top": {
5
+ "type": "VISUAL",
6
+ "shape": [
7
+ 3,
8
+ 224,
9
+ 224
10
+ ]
11
+ }
12
+ },
13
+ "output_features": {
14
+ "progress": {
15
+ "type": "REWARD",
16
+ "shape": [
17
+ 1
18
+ ]
19
+ },
20
+ "success": {
21
+ "type": "REWARD",
22
+ "shape": [
23
+ 1
24
+ ]
25
+ }
26
+ },
27
+ "device": "cpu",
28
+ "pretrained_path": "robometer/Robometer-4B",
29
+ "push_to_hub": false,
30
+ "repo_id": null,
31
+ "license": "apache-2.0",
32
+ "tags": [
33
+ "reward-model",
34
+ "vision-language",
35
+ "qwen3-vl",
36
+ "zero-shot"
37
+ ],
38
+ "private": null,
39
+ "image_key": "observation.images.top",
40
+ "task_key": "task",
41
+ "default_task": null,
42
+ "max_frames": 8,
43
+ "reward_output": "progress",
44
+ "success_threshold": 0.5,
45
+ "base_model_id": "Qwen/Qwen3-VL-4B-Instruct",
46
+ "torch_dtype": "bfloat16",
47
+ "use_multi_image": true,
48
+ "use_per_frame_progress_token": true,
49
+ "average_temporal_patches": true,
50
+ "frame_pooling": "mean",
51
+ "frame_pooling_attn_temperature": 1.0,
52
+ "progress_loss_type": "discrete",
53
+ "progress_discrete_bins": 10,
54
+ "vlm_config": {
55
+ "transformers_version": "5.5.4",
56
+ "architectures": [
57
+ "Qwen3VLForConditionalGeneration"
58
+ ],
59
+ "output_hidden_states": false,
60
+ "return_dict": true,
61
+ "dtype": null,
62
+ "chunk_size_feed_forward": 0,
63
+ "is_encoder_decoder": false,
64
+ "id2label": {
65
+ "0": "LABEL_0",
66
+ "1": "LABEL_1"
67
+ },
68
+ "label2id": {
69
+ "LABEL_0": 0,
70
+ "LABEL_1": 1
71
+ },
72
+ "problem_type": null,
73
+ "text_config": {
74
+ "architectures": null,
75
+ "output_hidden_states": false,
76
+ "return_dict": true,
77
+ "dtype": "bfloat16",
78
+ "chunk_size_feed_forward": 0,
79
+ "is_encoder_decoder": false,
80
+ "id2label": {
81
+ "0": "LABEL_0",
82
+ "1": "LABEL_1"
83
+ },
84
+ "label2id": {
85
+ "LABEL_0": 0,
86
+ "LABEL_1": 1
87
+ },
88
+ "problem_type": null,
89
+ "vocab_size": 151674,
90
+ "hidden_size": 2560,
91
+ "intermediate_size": 9728,
92
+ "num_hidden_layers": 36,
93
+ "num_attention_heads": 32,
94
+ "num_key_value_heads": 8,
95
+ "head_dim": 128,
96
+ "hidden_act": "silu",
97
+ "max_position_embeddings": 262144,
98
+ "initializer_range": 0.02,
99
+ "rms_norm_eps": 1e-06,
100
+ "use_cache": true,
101
+ "rope_parameters": {
102
+ "mrope_interleaved": true,
103
+ "mrope_section": [
104
+ 24,
105
+ 20,
106
+ 20
107
+ ],
108
+ "rope_type": "default",
109
+ "rope_theta": 5000000
110
+ },
111
+ "attention_bias": false,
112
+ "attention_dropout": 0.0,
113
+ "pad_token_id": null,
114
+ "_name_or_path": "",
115
+ "bos_token_id": 151643,
116
+ "eos_token_id": 151645,
117
+ "model_type": "qwen3_vl_text",
118
+ "tie_word_embeddings": true,
119
+ "output_attentions": false
120
+ },
121
+ "vision_config": {
122
+ "architectures": null,
123
+ "output_hidden_states": false,
124
+ "return_dict": true,
125
+ "dtype": null,
126
+ "chunk_size_feed_forward": 0,
127
+ "is_encoder_decoder": false,
128
+ "id2label": {
129
+ "0": "LABEL_0",
130
+ "1": "LABEL_1"
131
+ },
132
+ "label2id": {
133
+ "LABEL_0": 0,
134
+ "LABEL_1": 1
135
+ },
136
+ "problem_type": null,
137
+ "depth": 24,
138
+ "hidden_size": 1024,
139
+ "hidden_act": "gelu_pytorch_tanh",
140
+ "intermediate_size": 4096,
141
+ "num_heads": 16,
142
+ "in_channels": 3,
143
+ "patch_size": 16,
144
+ "spatial_merge_size": 2,
145
+ "temporal_patch_size": 2,
146
+ "out_hidden_size": 2560,
147
+ "num_position_embeddings": 2304,
148
+ "deepstack_visual_indexes": [
149
+ 5,
150
+ 11,
151
+ 17
152
+ ],
153
+ "initializer_range": 0.02,
154
+ "_name_or_path": "",
155
+ "model_type": "qwen3_vl",
156
+ "output_attentions": false
157
+ },
158
+ "image_token_id": 151655,
159
+ "video_token_id": 151656,
160
+ "vision_start_token_id": 151652,
161
+ "vision_end_token_id": 151653,
162
+ "tie_word_embeddings": true,
163
+ "_name_or_path": "Qwen/Qwen3-VL-4B-Instruct",
164
+ "model_type": "qwen3_vl",
165
+ "output_attentions": false
166
+ },
167
+ "normalization_mapping": {
168
+ "VISUAL": "IDENTITY",
169
+ "REWARD": "IDENTITY"
170
+ }
171
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:013709f2ea0b67aa50385b5c5ae61843cf7f2932b8aab7f5e45e0747560d0c14
3
+ size 8894103800