HuanxinSheng's picture
Card: use the JevAny-* repository names (renamed 2026-10-17); data files unchanged
41e3cd9 verified
|
Raw History Blame Contribute Delete
9.08 kB
---
base_model: Qwen/Qwen3.5-4B
library_name: peft
license: apache-2.0
tags:
- jevany
- lora
- decision-model
- pointer
- robotics
- reward-model
- judge
datasets:
- SimpleJev/JevAny-Robotics-Train-v0.2
---
# JevAny-Robotics-4B-LoRA (v0.2, SFT)
A 4B robot judge / reward model: a robotics continuation of [`SimpleJev/JevAny-Qwen3.5-4B-LoRA`](https://huggingface.co/SimpleJev/JevAny-Qwen3.5-4B-LoRA)
(pointer readout on [`Qwen/Qwen3.5-4B`](https://huggingface.co/Qwen/Qwen3.5-4B)), fine-tuned on [`SimpleJev/JevAny-Robotics-Train-v0.2`](https://huggingface.co/datasets/SimpleJev/JevAny-Robotics-Train-v0.2) β€” 184,942 judgement questions over
real and simulated robot images and videos (task progress, 1–5 rollout scores, execution success, failure mode, plan checking,
failure localisation, trajectory preference), built only from train-side splits and decontaminated against every test set below.
**Highlights** (all models run by us in the same harness, on the same items with the same media protocol):
- **RoboPulse: 71.1% accuracy / 0.806 AUROC** β€” best of every judge we ran, including 27B models (OneJev-27B 60.4% / 0.651, JevAny-27B 56.6% / 0.627); +18.3 points over its parent.
- **RoboRewardBench: MAE 0.443** β€” lower than every model we ran (OneJev-27B 0.805, JevAny-27B 0.692, Intern-Decision-4B 0.820) and than the best entry of the paper leaderboard (RoboReward-8B 0.665, their protocol); paired MAE difference vs the best 27B model βˆ’0.249 [βˆ’0.374, βˆ’0.220].
- **RoboPulse++: best AUROC (0.728)** and balanced accuracy among 4B models (65.9 vs Intern-Decision-4B 60.5); at the level of the best 27B model (OneJev-27B 0.700 AUROC, paired +0.028 [βˆ’0.004, +0.063]).
- **JevAny-Robotics-Public: skill_role 0.567, micro accuracy 80.4% (highest of all models)** β€” 4Γ— its parent, +0.14 over OneJev-4B, statistically tied with the strongest 27B judge (OneJev-27B 0.605, paired βˆ’0.038 [βˆ’0.081, +0.006]).
- Same 4B backbone and speed as the parent (median 161 ms per JevAny-Robotics-Public item on an A100).
## Robot benchmarks
| Model | Size | RoboPulse acc ↑ | RoboPulse AUROC ↑ | RoboPulse++ AUROC ↑ | RoboPulse++ bal. acc ↑ | RoboRewardBench MAE ↓ | JevAny-Robotics-Public skill_role ↑ |
|---|---:|---:|---:|---:|---:|---:|---:|
| **JevAny-Robotics-4B-LoRA (this model)** | 4B | **71.1** | **0.806** | **0.728** | **65.9** | **0.443** | 0.567 |
| JevAny-Qwen3.5-4B-LoRA (parent) | 4B | 52.7 | 0.588 | 0.641 | 59.1 | 1.057 | 0.149 |
| Qwen3.5-4B zero-shot (constrained choice) | 4B | 49.9 | 0.519 | 0.592 | 50.0 | 1.261 | 0.203 |
| OneJev-4B | 4B | 53.9 | 0.586 | 0.617 | 58.3 | 1.005 | 0.425 |
| Intern-Decision-4B | 4B | 51.6 | 0.547 | 0.653 | 60.5 | 0.820 | 0.303 |
| OmniJev-4B | 4B | 49.7 | 0.536 | 0.556 | 54.6 | 0.811* | 0.264 |
| OneJev-9B | 9B | 57.6 | 0.595 | 0.564 | 54.0 | 0.927 | 0.442 |
| Jev-Omni-12B | 12B | 49.4 | 0.492 | 0.537 | 52.3 | 1.085 | 0.194 |
| Qwen3.8-27B zero-shot (constrained choice) | 27B | 56.7 | 0.604 | 0.569 | 55.2 | 0.992 | 0.472 |
| JevAny-Qwen3.8-27B-LoRA | 27B | 56.6 | 0.627 | 0.692 | 55.7 | 0.692 | 0.549 |
| OneJev-27B | 27B | 60.4 | 0.651 | 0.700 | 62.7 | 0.805 | **0.605** |
RoboPulse: 1,800 pairs, native image resolution. RoboPulse++: 7,720 consecutive-step pairs, native resolution. RoboRewardBench: 2,831 videos, full media,
official group-wise MAE (RoboArena 0.687 / OXE subsets 0.432 for this model). JevAny-Robotics-Public v0.1: 3,990 items, skill_role is the role-balanced
chance-corrected skill. *OmniJev-4B's training data overlaps RoboRewardBench. Every model answered every item.
**Paired comparisons** (this model minus baseline, 95% cluster-bootstrap CI over episodes / task groups):
| Baseline | RoboPulse acc | RoboPulse++ AUROC | RoboRewardBench MAE | JevAny-Robotics-Public skill_role |
|---|---:|---:|---:|---:|
| Parent JevAny-4B | +18.3 [+15.1, +21.4] | +0.087 [+0.049, +0.131] | βˆ’0.614 [βˆ’0.725, βˆ’0.554] | +0.419 [+0.365, +0.463] |
| Qwen3.5-4B zero-shot | +21.2 [+18.1, +24.4] | +0.136 [+0.091, +0.187] | βˆ’0.817 [βˆ’0.875, βˆ’0.732] | +0.364 [+0.318, +0.411] |
| OneJev-4B | +17.2 [+14.1, +20.1] | +0.111 [+0.072, +0.151] | βˆ’0.562 [βˆ’0.811, βˆ’0.541] | +0.142 [+0.100, +0.189] |
| Intern-Decision-4B | +19.4 [+16.5, +22.5] | +0.075 [+0.047, +0.104] | βˆ’0.376 [βˆ’0.518, βˆ’0.341] | +0.264 [+0.218, +0.312] |
| JevAny-27B | +14.4 [+11.4, +17.0] | +0.036 [βˆ’0.003, +0.076] | βˆ’0.249 [βˆ’0.374, βˆ’0.220] | +0.019 [βˆ’0.027, +0.052] |
| OneJev-27B | +10.7 [+8.0, +13.3] | +0.028 [βˆ’0.004, +0.063] | βˆ’0.362 [βˆ’0.488, βˆ’0.336] | βˆ’0.038 [βˆ’0.081, +0.006] |
Every difference in favour of this model is significant except RoboPulse++ AUROC and JevAny-Robotics-Public against the two 27B judges (ties).
Per-benchmark reports with all slices are in `eval/comparison/`.
For reference, published numbers under the benchmarks' own protocols: RoboRewardBench leaderboard β€” RoboReward-8B 0.665, GPT-5 mini 0.691,
GPT-5 0.811, RoboReward-4B 0.845, Gemini 3 Pro (preview) 0.851, Qwen3-VL-8B 0.892; RoboPulse paper β€” Gemini 3 Pro Preview 0.66, Qwen3-VL-8B 0.59,
Qwen3-VL-4B 0.56.
### Baselines
- **Zero-shot Qwen3.5-4B / Qwen3.8-27B (constrained choice)**: the untrained base VLM with the same judge prompt; options are lettered and the answer is
restricted to the option letters (one forward pass, probabilities = softmax over the letter logits). This is the same scoring as vLLM
structured-output choice decoding (`structured_outputs.choice` + letter logprobs); the robot suites were run with the transformers implementation,
JevAny-Multimodal-agentic-Public with vLLM.
- **OneJev / Intern-Decision / OmniJev / Jev-Omni**: released checkpoints run with their own inference code inside the same harness and items.
- **JevAny-Qwen3.8-27B-LoRA** and the parent **JevAny-Qwen3.5-4B-LoRA**: released JevAny checkpoints, same media settings as this model.
## General judgement (retention)
| Benchmark | Qwen3.5-4B zero-shot (vLLM choice) | Parent JevAny-4B | This model | This βˆ’ parent |
|---|---:|---:|---:|---|
| Transfer v9 (1,046) acc / NLL | β€” | 78.68% / 0.587 | 78.39% / 0.664 | acc βˆ’0.29 [βˆ’1.75, +1.05] |
| JevBench public (local rebuild, 231) acc | β€” | 77.92% | 77.92% | 0.00 [βˆ’3.10, +2.64] |
| JevAny-Multimodal-agentic-Public v0.4 (3,208) skill_role / acc | 0.223 / 53.6% | 0.201 / 52.6% | 0.176 / 51.4% | acc βˆ’1.2 (n.s., McNemar p = 0.12) |
Accuracy on general (non-robot) judgement is retained within noise; probabilities become over-confident outside robotics
(NLL +0.077 on Transfer, +0.163 on JevAny-Multimodal-agentic-Public), so recalibrate before using them there. For general-purpose judging use the parent
checkpoint; this one is specialised for robotics. The JevBench number is on a local rebuild of the public suite (same 231 items, different
manifest hash) and is not directly comparable to the official 80.09%.
## Training
- Init: LoRA adapter + pointer head of `SimpleJev/JevAny-Qwen3.5-4B-LoRA` (delta mode); base revision `851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`.
- 1 epoch, 5,780 optimizer steps, global batch 32, lr 1e-5 (OneCycle), LoRA r=8 on all projection modules, head dim 256 + residual 256, bf16.
- Full media: images at native resolution, every frame of the derived video clips (β‰ˆ1–2 fps, 8–32 frames), up to 16,384 packed tokens.
- `training_config.json` / `training_metrics.json` hold the exact arguments; `eval/training_eval_history.jsonl` the in-training evaluations.
| step | development acc / NLL (3,026) | calibration acc / NLL (2,228) |
|---:|---:|---:|
| 0 (parent) | 0.463 / 1.069 | 0.496 / 0.969 |
| 1,000 | 0.640 / 0.757 | 0.688 / 0.633 |
| 3,000 | 0.723 / 0.650 | 0.778 / 0.499 |
| 5,780 (this checkpoint) | 0.733 / 0.638 | 0.786 / 0.475 |
## Limits
- **Source overlap.** RoboPulse and RoboRewardBench draw on the same public robot datasets as parts of the training data (GRM, RoboReward train).
Training data were decontaminated against all test sets (episode blocklists + perceptual-hash frame dedup), but scenes and robots overlap.
- **RoboPulse++ threshold.** Training balanced rising/falling 1:1, while the RoboPulse++ test is 81% rising; at the default 0.5 threshold the model
under-predicts "rising" (accuracy 60.4% vs 69.9% for the parent; a constant "rising" answer scores 81.1%). Ranking quality (AUROC) and balanced
accuracy are the meaningful metrics here and both improve; set the threshold on your own data. Multi-view (2–3 camera) items and long, slow-progress
intervals remain the weakest cases.
- **Calibration outside robotics** (see above).
## Usage
```bash
pip install -e '.[serve,multimodal]'
jevany serve --checkpoint SimpleJev/JevAny-Robotics-4B-LoRA --device cuda --dtype bf16
```
For video inputs use the same media handling as training/evaluation (native resolution, all frames of short derived clips).
The repository contains LoRA adapter weights and JevAny readout metadata, not the base weights; the base model's license and
access terms also apply, as do the licenses of the training data sources listed in the dataset card.