Poke &Wiggle
Papers
Paper

CUPID

CUPID: Curating Data your Robot Loves with Influence Functions

Claim tested: CUPID's performance-influence filtering of existing demonstrations improves real-robot task success over random filtering.

Tested

Paper
arXiv⁠ (opens in a new tab)
Code
GitHub⁠ (opens in a new tab)
Venue
CoRL 2025
Authors
Christopher Agia et al.
Farm tasks
5
Evaluation
480 episodes (240 for baseline, 240 for method)

Result

Improvement over baseline

Inconclusive

Reported
+36 pts
Ours
+8 pts
−200+20+40+60
  • Gain vs baseline
  • 95% CI, −9 pts to +25 pts
  • Paper's reported gain
  • No difference

Success rate

Reported
84%
Ours
48%
0%20%40%60%80%100%
  • Measured on our stations
  • 95% CI, 36%–61%
  • Reported in the paper

Across iterations

  1. Iteration 1vs Random filtering−11 pts
  2. Iteration 2vs Random filtering−14 pts
  3. Iteration 3vs Random filtering+8 pts
−200+20+40+60

By task

TaskBaselineRandom filteringMethodCUPIDImprovement
e01Place spray bottles upright, nozzle forward (bimanual handover)80%24/3097%29/30+17 pts0 to +34
e02Sort screws into bins0%0/300%0/300 pts−11 to +11
All tasks40%24/6048%29/60+8 pts−9 to +25
Reported in the paper48%84%+36 pts

Rollouts

One clip per environment from this entry's evaluation, beside where each evaluation episode placed the environment's objects, coloured by its rating. Use the button beside each environment to open its evaluation dataset in the dataset viewer.

Implementation Details

What we changed

We implemented CUPID’s performance-influence scoring on two tasks, spraying and screw sorting, each with a fixed set of 300 demonstrations. A base policy trained on all 300 demonstrations was evaluated on 30 placements, and CUPID scored every demonstration from those rollouts and kept the top-scoring 150. The control keeps a random 150, and all three arms train the same platform Diffusion Policy and are evaluated on the same 30 placements. Differences from the paper:

  • Same placements. CUPID scored the same 30 placements later used for the final evals, which favours CUPID.
  • One-sided scores. The base spray policy succeeded on all 30 rollouts and the base screw policy on none, so spray was scored on successes only and screws on failures only, without the contrast between the two that the method relies on.
  • Natural data. The datasets hold naturally collected demonstrations, about 80 to 90 percent rated excellent and the rest ok, not the paper’s deliberately mixed-quality sets, which leaves less to filter out.
  • Two robots per dataset. Each dataset mixes demonstrations from two robots, and on spray CUPID kept more demonstrations from the evaluation station’s robot than random did (100 against 71 of 150).
  • Floor on screws. No arm completed the screw task, so we also report screws placed per episode.
  • Dropped task. A third task, putting tools in a toolbox, was dropped before CUPID scoring because its base and random policies both scored 0 of 30.
  • Approximations for local compute. Training frames were sampled on a stride, and a sparse random projection replaced TRAK’s dense one. Both add noise but no bias.
  • Platform policy. All arms use the platform’s three-camera Diffusion Policy with its overlapping-chunk runtime instead of the paper’s implementation.
  • Corrected scorer. An earlier round used a squared inverse in its scores and is withdrawn; this round uses the fixed scorer.

See the code changes on GitHub⁠ (opens in a new tab)

Prompt summary

Run a second experiment on datasets 1645, 1649 and 1650: train and evaluate a base model on each full dataset, use its rollouts for CUPID selection, and compare base, same-size random and CUPID subsets. Drop the toolbox CUPID arm (base and random both at 0/30 with no subtask segments). Keep full success as the primary metric and add screws placed and picked per episode as a secondary screws metric.

Response summary

Spray: CUPID 29/30 vs random 24/31 vs base 30/30, with CUPID - random +18.3 pp SR (p = 0.031). Screws: all three arms 0/30, and placed per episode was CUPID 0.03 vs random 0.07 vs base 0.70 (CUPID - random p = 1.0). Pooled CUPID - random over the two tasks was +9.2 pp SR (p = 0.031) and +4.9 pp AP (p = 0.08).

Conclusion

CUPID beat random on spray (+18 pp) but screws stayed at 0 for every arm. Next: test the paper's actual setting, mixed-quality data, where there are bad demos to filter.