anhtld commited on
Commit
c5c8e8d
·
verified ·
1 Parent(s): f490075

Auto-sync: 2026-06-29 03:12:48 (part 3)

Browse files
scripts/eval_maniskill_policy_rollout.py CHANGED
@@ -150,6 +150,13 @@ def main(argv: list[str] | None = None) -> int:
150
  help="Scale for adding a train-source reward-score prior to each retrieved residual "
151
  "candidate before field selection. Score is progress plus terminal success.",
152
  )
 
 
 
 
 
 
 
153
  parser.add_argument(
154
  "--retrieval-residual-scale",
155
  type=float,
@@ -248,6 +255,7 @@ def main(argv: list[str] | None = None) -> int:
248
  retrieval_residual_source_score_bonus_scale=(
249
  args.retrieval_residual_source_score_bonus_scale
250
  ),
 
251
  retrieval_residual_scale=args.retrieval_residual_scale,
252
  retrieval_residual_scales=retrieval_residual_scales,
253
  retrieval_residual_anchor=args.retrieval_residual_anchor,
 
150
  help="Scale for adding a train-source reward-score prior to each retrieved residual "
151
  "candidate before field selection. Score is progress plus terminal success.",
152
  )
153
+ parser.add_argument(
154
+ "--retrieval-residual-action-l2-penalty",
155
+ type=float,
156
+ default=0.0,
157
+ help="Penalty scale subtracted from residual candidate field scores according to "
158
+ "mean squared action displacement from the policy mean.",
159
+ )
160
  parser.add_argument(
161
  "--retrieval-residual-scale",
162
  type=float,
 
255
  retrieval_residual_source_score_bonus_scale=(
256
  args.retrieval_residual_source_score_bonus_scale
257
  ),
258
+ retrieval_residual_action_l2_penalty=args.retrieval_residual_action_l2_penalty,
259
  retrieval_residual_scale=args.retrieval_residual_scale,
260
  retrieval_residual_scales=retrieval_residual_scales,
261
  retrieval_residual_anchor=args.retrieval_residual_anchor,
scripts/slurm/eval_maniskill_policy_rollout.sbatch CHANGED
@@ -56,6 +56,7 @@ RETRIEVAL_TYPE_MIN_SUCCESS="${RETRIEVAL_TYPE_MIN_SUCCESS:-0.0}"
56
  RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS="${RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS:-0.0}"
57
  RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE:-0.0}"
58
  RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE:-0.0}"
 
59
  RETRIEVAL_RESIDUAL_SCALE="${RETRIEVAL_RESIDUAL_SCALE:-1.0}"
60
  RETRIEVAL_RESIDUAL_SCALES="${RETRIEVAL_RESIDUAL_SCALES:-}"
61
  if [[ -n "${RETRIEVAL_RESIDUAL_SCALES_COLON:-}" ]]; then
@@ -124,6 +125,7 @@ apptainer exec --nv \
124
  --retrieval-residual-min-source-progress "$RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS" \
125
  --retrieval-residual-source-progress-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE" \
126
  --retrieval-residual-source-score-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE" \
 
127
  --retrieval-residual-scale "$RETRIEVAL_RESIDUAL_SCALE" \
128
  --retrieval-residual-scales "$RETRIEVAL_RESIDUAL_SCALES" \
129
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
 
56
  RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS="${RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS:-0.0}"
57
  RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE:-0.0}"
58
  RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE:-0.0}"
59
+ RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY="${RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY:-0.0}"
60
  RETRIEVAL_RESIDUAL_SCALE="${RETRIEVAL_RESIDUAL_SCALE:-1.0}"
61
  RETRIEVAL_RESIDUAL_SCALES="${RETRIEVAL_RESIDUAL_SCALES:-}"
62
  if [[ -n "${RETRIEVAL_RESIDUAL_SCALES_COLON:-}" ]]; then
 
125
  --retrieval-residual-min-source-progress "$RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS" \
126
  --retrieval-residual-source-progress-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE" \
127
  --retrieval-residual-source-score-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE" \
128
+ --retrieval-residual-action-l2-penalty "$RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY" \
129
  --retrieval-residual-scale "$RETRIEVAL_RESIDUAL_SCALE" \
130
  --retrieval-residual-scales "$RETRIEVAL_RESIDUAL_SCALES" \
131
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
scripts/slurm/eval_maniskill_policy_rollout_cpu_smoke.sbatch CHANGED
@@ -55,6 +55,7 @@ RETRIEVAL_TYPE_MIN_SUCCESS="${RETRIEVAL_TYPE_MIN_SUCCESS:-0.0}"
55
  RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS="${RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS:-0.0}"
56
  RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE:-0.0}"
57
  RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE:-0.0}"
 
58
  RETRIEVAL_RESIDUAL_SCALE="${RETRIEVAL_RESIDUAL_SCALE:-1.0}"
59
  RETRIEVAL_RESIDUAL_SCALES="${RETRIEVAL_RESIDUAL_SCALES:-}"
60
  if [[ -n "${RETRIEVAL_RESIDUAL_SCALES_COLON:-}" ]]; then
@@ -120,6 +121,7 @@ apptainer exec \
120
  --retrieval-residual-min-source-progress "$RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS" \
121
  --retrieval-residual-source-progress-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE" \
122
  --retrieval-residual-source-score-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE" \
 
123
  --retrieval-residual-scale "$RETRIEVAL_RESIDUAL_SCALE" \
124
  --retrieval-residual-scales "$RETRIEVAL_RESIDUAL_SCALES" \
125
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
 
55
  RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS="${RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS:-0.0}"
56
  RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE:-0.0}"
57
  RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE="${RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE:-0.0}"
58
+ RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY="${RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY:-0.0}"
59
  RETRIEVAL_RESIDUAL_SCALE="${RETRIEVAL_RESIDUAL_SCALE:-1.0}"
60
  RETRIEVAL_RESIDUAL_SCALES="${RETRIEVAL_RESIDUAL_SCALES:-}"
61
  if [[ -n "${RETRIEVAL_RESIDUAL_SCALES_COLON:-}" ]]; then
 
121
  --retrieval-residual-min-source-progress "$RETRIEVAL_RESIDUAL_MIN_SOURCE_PROGRESS" \
122
  --retrieval-residual-source-progress-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_PROGRESS_BONUS_SCALE" \
123
  --retrieval-residual-source-score-bonus-scale "$RETRIEVAL_RESIDUAL_SOURCE_SCORE_BONUS_SCALE" \
124
+ --retrieval-residual-action-l2-penalty "$RETRIEVAL_RESIDUAL_ACTION_L2_PENALTY" \
125
  --retrieval-residual-scale "$RETRIEVAL_RESIDUAL_SCALE" \
126
  --retrieval-residual-scales "$RETRIEVAL_RESIDUAL_SCALES" \
127
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
tests/test_maniskill_policy_rollout.py CHANGED
@@ -615,6 +615,32 @@ def test_retrieval_residual_candidate_type_bonus_repeats_over_scale_grid() -> No
615
  assert index.tolist() == [1]
616
 
617
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
618
  def test_retrieval_residual_field_softmax_builds_field_weighted_tangent() -> None:
619
  import torch
620
 
 
615
  assert index.tolist() == [1]
616
 
617
 
618
+ def test_retrieval_residual_action_l2_penalty_prefers_shorter_tangent() -> None:
619
+ import torch
620
+
621
+ mean = torch.zeros(1, 1, 1)
622
+ residual = torch.ones_like(mean)
623
+ model = _StubModel(torch, mean, best_offset=0.5 * residual)
624
+ residuals = torch.stack([torch.zeros_like(mean), residual], dim=1)
625
+ actions, index = _select_action_chunk(
626
+ model,
627
+ observations=torch.zeros(1, 3),
628
+ instructions=["a"],
629
+ torch=torch,
630
+ selection_mode="retrieval_residual",
631
+ num_candidates=1,
632
+ candidate_sigma=0.0,
633
+ selection_seed=0,
634
+ action_candidates=residuals,
635
+ retrieval_residual_scale=1.0,
636
+ retrieval_residual_scales=(0.25, 0.5),
637
+ retrieval_residual_action_l2_penalty=2.0,
638
+ )
639
+
640
+ assert torch.allclose(actions, mean + 0.25 * residual)
641
+ assert index.tolist() == [1]
642
+
643
+
644
  def test_retrieval_residual_field_softmax_builds_field_weighted_tangent() -> None:
645
  import torch
646