docs: HF model card for OpenRAL/rskill-robometer_4b-any-general-nf4 v0.1.0
Browse files
README.md
CHANGED
|
@@ -1,26 +1,31 @@
|
|
| 1 |
---
|
| 2 |
-
tags:
|
| 3 |
-
- OpenRAL
|
| 4 |
-
- rskill
|
| 5 |
-
- reward
|
| 6 |
-
- reward-model
|
| 7 |
-
- robot-learning
|
| 8 |
-
- progress-estimation
|
| 9 |
-
- success-detection
|
| 10 |
-
- qwen3-vl
|
| 11 |
-
- nf4
|
| 12 |
-
- bitsandbytes
|
| 13 |
-
license: apache-2.0
|
| 14 |
language:
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
base_model:
|
| 17 |
-
|
|
|
|
|
|
|
| 18 |
---
|
| 19 |
|
| 20 |
-
# rskill-
|
| 21 |
|
| 22 |
> **OpenRAL rSkill** — Robometer-4B (Qwen3-VL-4B robotic **reward foundation
|
| 23 |
-
> model**) packaged as an NF4 bitsandbytes `reward` rSkill
|
| 24 |
> rollout's RGB frames plus the task instruction, it emits **per-frame
|
| 25 |
> normalized progress (0–1)** and **per-frame success probability**, queried on
|
| 26 |
> demand by the Reasoner. **No actuators. Advisory-only.** Apache-2.0.
|
|
@@ -45,12 +50,13 @@ bowl is grasped and placed:
|
|
| 45 |
> **[`media/progress.mp4`](media/progress.mp4)** (20 frames, downloadable).
|
| 46 |
>
|
| 47 |
> Runs the lerobot 0.6.0 in-tree `RobometerRewardModel` (plain `transformers`,
|
| 48 |
-
> no `robometer` git package, no `transformers==4.57.1` pin) —
|
|
|
|
| 49 |
|
| 50 |
## Quick Start
|
| 51 |
|
| 52 |
```bash
|
| 53 |
-
ral skill install hf://OpenRAL/rskill-
|
| 54 |
```
|
| 55 |
|
| 56 |
```python
|
|
@@ -94,11 +100,10 @@ failing rollout triggers replanning instead of running to a timeout.
|
|
| 94 |
Robometer-4B finetunes `Qwen/Qwen3-VL-4B-Instruct` (`model_type: qwen3_vl`)
|
| 95 |
with three prediction heads — `progress_head`, `success_head`, `preference_head`
|
| 96 |
— on top of a frame-pooled attention readout (`frame_pool_attn`). The on-disk
|
| 97 |
-
HF `config.json` advertises `architectures: ["RFM"]`
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
(`robometer.utils.save.load_model_from_hf`).
|
| 102 |
|
| 103 |
## Runtime
|
| 104 |
|
|
@@ -106,13 +111,11 @@ The `kind: reward` runtime is implemented as a read-only Reasoner tool
|
|
| 106 |
(`QueryTaskProgressTool`), **not** an `ExecuteSkill` (a reward monitor produces
|
| 107 |
scalars, not actions):
|
| 108 |
|
| 109 |
-
- **
|
| 110 |
-
model in
|
| 111 |
-
(`frame_window_s`), and answers windowed progress/success queries. It loads
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
and the `robometer` package pinned to commit `a669dffc`.
|
| 115 |
-
- **Frame source**: abstracted for **sim and real**. The sidecar consumes the
|
| 116 |
same `sensor_msgs/Image` camera topic the co-active VLA uses — fed by the
|
| 117 |
GStreamer perception tee on real hardware, or by the sim HAL camera publisher
|
| 118 |
in `deploy-sim` (which has no GStreamer). In `deploy-sim` only camera-rendering
|
|
@@ -132,19 +135,18 @@ raw, unnormalized regression values instead. Default sampling is 3 fps.
|
|
| 132 |
|
| 133 |
### Validated live
|
| 134 |
|
| 135 |
-
End-to-end on an **NVIDIA RTX 4070 Laptop (8 GB)**
|
| 136 |
|
| 137 |
- **NF4 quantization**: 236 `Linear` modules → `Linear4bit`; **8.91 GB bf16 →
|
| 138 |
3.33 GB resident**, **3.56 GB peak** including an 8-frame forward — **4.44 GB
|
| 139 |
headroom** for a co-resident small NF4 VLA.
|
| 140 |
-
- **Working
|
| 141 |
-
brown bowl") through the
|
| 142 |
**success spiked to 0.90 exactly at task completion**, then eased — exactly
|
| 143 |
the Reasoner signal intended.
|
| 144 |
|
| 145 |
Run with `PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True`. The model loads via
|
| 146 |
-
|
| 147 |
-
`transformers==4.57.1`.
|
| 148 |
|
| 149 |
## Benchmark Numbers
|
| 150 |
|
|
@@ -177,16 +179,16 @@ The model emits no action chunks and has no proprioception contract.
|
|
| 177 |
|
| 178 |
| Field | Value |
|
| 179 |
|---|---|
|
| 180 |
-
| `name` | `OpenRAL/rskill-
|
| 181 |
| `version` | `0.1.0` |
|
| 182 |
| `license` | `apache-2.0` |
|
| 183 |
| `role` / `kind` | `s2` / `reward` |
|
| 184 |
| `runtime` | `pytorch` |
|
| 185 |
| `quantization.dtype` / `scheme` | `int4` / `nf4` |
|
| 186 |
-
| `weights_uri` | `hf://OpenRAL/rskill-
|
| 187 |
| `min_vram_gb.bf16` | 9.0 GB |
|
| 188 |
| `min_vram_gb.int4` | 3.6 GB |
|
| 189 |
-
| `reward.frame_window_s` / `target_fps` | 40.0 s / 3.0 fps (
|
| 190 |
| `reward.progress_range` / `success_threshold` | `[0,1]` / 0.5 |
|
| 191 |
| `latency_budget.per_chunk_ms` | 3000 ms |
|
| 192 |
| `actions` | `monitor` |
|
|
@@ -196,6 +198,5 @@ The model emits no action chunks and has no proprioception contract.
|
|
| 196 |
The rSkill package metadata and README are OpenRAL project files under
|
| 197 |
Apache-2.0. The wrapped Robometer-4B weights are released under **Apache-2.0**,
|
| 198 |
permitting commercial use. No `OPENRAL_ALLOW_NONCOMMERCIAL=1` flag is needed.
|
| 199 |
-
The
|
| 200 |
-
|
| 201 |
-
**not** an OpenRAL-trusted org (see `_vendor/PROVENANCE.md`).
|
|
|
|
| 1 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
language:
|
| 3 |
+
- en
|
| 4 |
+
license: apache-2.0
|
| 5 |
+
pipeline_tag: robotics
|
| 6 |
+
tags:
|
| 7 |
+
- OpenRAL
|
| 8 |
+
- rskill
|
| 9 |
+
- nf4
|
| 10 |
+
- 4-bit
|
| 11 |
+
- any
|
| 12 |
+
- reward
|
| 13 |
+
- reward-model
|
| 14 |
+
- robot-learning
|
| 15 |
+
- progress-estimation
|
| 16 |
+
- success-detection
|
| 17 |
+
- qwen3-vl
|
| 18 |
+
- bitsandbytes
|
| 19 |
base_model:
|
| 20 |
+
- robometer/Robometer-4B
|
| 21 |
+
base_model_relation: quantized
|
| 22 |
+
inference: false
|
| 23 |
---
|
| 24 |
|
| 25 |
+
# rskill-robometer_4b-any-general-nf4
|
| 26 |
|
| 27 |
> **OpenRAL rSkill** — Robometer-4B (Qwen3-VL-4B robotic **reward foundation
|
| 28 |
+
> model**) packaged as an NF4 bitsandbytes `reward` rSkill. Given a
|
| 29 |
> rollout's RGB frames plus the task instruction, it emits **per-frame
|
| 30 |
> normalized progress (0–1)** and **per-frame success probability**, queried on
|
| 31 |
> demand by the Reasoner. **No actuators. Advisory-only.** Apache-2.0.
|
|
|
|
| 50 |
> **[`media/progress.mp4`](media/progress.mp4)** (20 frames, downloadable).
|
| 51 |
>
|
| 52 |
> Runs the lerobot 0.6.0 in-tree `RobometerRewardModel` (plain `transformers`,
|
| 53 |
+
> no `robometer` git package, no `transformers==4.57.1` pin) — a lighter
|
| 54 |
+
> native-integration path than the original vendored-loader recipe (amended).
|
| 55 |
|
| 56 |
## Quick Start
|
| 57 |
|
| 58 |
```bash
|
| 59 |
+
ral skill install hf://OpenRAL/rskill-robometer_4b-any-general-nf4
|
| 60 |
```
|
| 61 |
|
| 62 |
```python
|
|
|
|
| 100 |
Robometer-4B finetunes `Qwen/Qwen3-VL-4B-Instruct` (`model_type: qwen3_vl`)
|
| 101 |
with three prediction heads — `progress_head`, `success_head`, `preference_head`
|
| 102 |
— on top of a frame-pooled attention readout (`frame_pool_attn`). The on-disk
|
| 103 |
+
HF `config.json` advertises `architectures: ["RFM"]`; OpenRAL loads it through
|
| 104 |
+
lerobot's in-tree `lerobot.rewards.robometer.RobometerRewardModel` and the
|
| 105 |
+
pre-quantized OpenRAL NF4 checkpoint, without executing the old upstream
|
| 106 |
+
`robometer` runtime package.
|
|
|
|
| 107 |
|
| 108 |
## Runtime
|
| 109 |
|
|
|
|
| 111 |
(`QueryTaskProgressTool`), **not** an `ExecuteSkill` (a reward monitor produces
|
| 112 |
scalars, not actions):
|
| 113 |
|
| 114 |
+
- **Reward monitor node**: `openral_perception_ros.reward_monitor_node` boots the
|
| 115 |
+
NF4 model in-process, maintains a rolling time-indexed frame buffer
|
| 116 |
+
(`frame_window_s`), and answers windowed progress/success queries. It loads via
|
| 117 |
+
lerobot's in-tree `RobometerRewardModel` with plain `transformers`.
|
| 118 |
+
- **Frame source**: abstracted for **sim and real**. The reward monitor consumes the
|
|
|
|
|
|
|
| 119 |
same `sensor_msgs/Image` camera topic the co-active VLA uses — fed by the
|
| 120 |
GStreamer perception tee on real hardware, or by the sim HAL camera publisher
|
| 121 |
in `deploy-sim` (which has no GStreamer). In `deploy-sim` only camera-rendering
|
|
|
|
| 135 |
|
| 136 |
### Validated live
|
| 137 |
|
| 138 |
+
End-to-end on an **NVIDIA RTX 4070 Laptop (8 GB)**:
|
| 139 |
|
| 140 |
- **NF4 quantization**: 236 `Linear` modules → `Linear4bit`; **8.91 GB bf16 →
|
| 141 |
3.33 GB resident**, **3.56 GB peak** including an 8-frame forward — **4.44 GB
|
| 142 |
headroom** for a co-resident small NF4 VLA.
|
| 143 |
+
- **Working monitor**: streaming a real rollout video ("Put green stick in
|
| 144 |
+
brown bowl") through the reward monitor, **progress ramped 0.21 → 0.88** and
|
| 145 |
**success spiked to 0.90 exactly at task completion**, then eased — exactly
|
| 146 |
the Reasoner signal intended.
|
| 147 |
|
| 148 |
Run with `PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True`. The model loads via
|
| 149 |
+
lerobot's in-tree Robometer module with plain `transformers`.
|
|
|
|
| 150 |
|
| 151 |
## Benchmark Numbers
|
| 152 |
|
|
|
|
| 179 |
|
| 180 |
| Field | Value |
|
| 181 |
|---|---|
|
| 182 |
+
| `name` | `OpenRAL/rskill-robometer_4b-any-general-nf4` |
|
| 183 |
| `version` | `0.1.0` |
|
| 184 |
| `license` | `apache-2.0` |
|
| 185 |
| `role` / `kind` | `s2` / `reward` |
|
| 186 |
| `runtime` | `pytorch` |
|
| 187 |
| `quantization.dtype` / `scheme` | `int4` / `nf4` |
|
| 188 |
+
| `weights_uri` | `hf://OpenRAL/rskill-robometer_4b-any-general-nf4` (pre-quantized NF4, meta-loadable; built from the SHA-pinned upstream `source_repo`) |
|
| 189 |
| `min_vram_gb.bf16` | 9.0 GB |
|
| 190 |
| `min_vram_gb.int4` | 3.6 GB |
|
| 191 |
+
| `reward.frame_window_s` / `target_fps` | 40.0 s / 3.0 fps (a later reward-window amendment — scores the whole attempt start→now, not an 8 s trailing slice) |
|
| 192 |
| `reward.progress_range` / `success_threshold` | `[0,1]` / 0.5 |
|
| 193 |
| `latency_budget.per_chunk_ms` | 3000 ms |
|
| 194 |
| `actions` | `monitor` |
|
|
|
|
| 198 |
The rSkill package metadata and README are OpenRAL project files under
|
| 199 |
Apache-2.0. The wrapped Robometer-4B weights are released under **Apache-2.0**,
|
| 200 |
permitting commercial use. No `OPENRAL_ALLOW_NONCOMMERCIAL=1` flag is needed.
|
| 201 |
+
The reward model now loads through lerobot's in-tree Robometer module with plain
|
| 202 |
+
`transformers`; no pinned upstream `robometer` runtime package is executed.
|
|
|