anhtld commited on
Commit
cd39378
·
verified ·
1 Parent(s): 8bca145

Auto-sync: 2026-06-30 20:06:30 (part 3)

Browse files
scripts/slurm/summarize_h16_policy_ckpt.sbatch CHANGED
@@ -112,6 +112,9 @@ for result_path in sorted(base_dir.glob(f"seed_*/{out_name}")):
112
  "retrieval_residual_challenger_margin": data.get(
113
  "retrieval_residual_challenger_margin", 0.0
114
  ),
 
 
 
115
  "retrieval_residual_challenger_tasks": data.get(
116
  "retrieval_residual_challenger_tasks", []
117
  ),
@@ -406,6 +409,16 @@ for row in rows:
406
  else ""
407
  )
408
  challenger_type_tasks = row.get("retrieval_residual_challenger_type_tasks") or {}
 
 
 
 
 
 
 
 
 
 
409
  challenger_type_task_suffix = (
410
  " with "
411
  + ";".join(
@@ -454,6 +467,7 @@ for row in rows:
454
  )
455
  + challenger_task_suffix
456
  + challenger_type_task_suffix
 
457
  + f"@{row.get('retrieval_residual_challenger_margin') or 0.0:.2f}"
458
  if row.get("retrieval_residual_challenger_types")
459
  else ""
 
112
  "retrieval_residual_challenger_margin": data.get(
113
  "retrieval_residual_challenger_margin", 0.0
114
  ),
115
+ "retrieval_residual_challenger_type_margins": data.get(
116
+ "retrieval_residual_challenger_type_margins", {}
117
+ ),
118
  "retrieval_residual_challenger_tasks": data.get(
119
  "retrieval_residual_challenger_tasks", []
120
  ),
 
409
  else ""
410
  )
411
  challenger_type_tasks = row.get("retrieval_residual_challenger_type_tasks") or {}
412
+ challenger_type_margins = row.get("retrieval_residual_challenger_type_margins") or {}
413
+ challenger_type_margin_suffix = (
414
+ " margins "
415
+ + ",".join(
416
+ f"{candidate_type}={float(margin):.2f}"
417
+ for candidate_type, margin in sorted(challenger_type_margins.items())
418
+ )
419
+ if challenger_type_margins
420
+ else ""
421
+ )
422
  challenger_type_task_suffix = (
423
  " with "
424
  + ";".join(
 
467
  )
468
  + challenger_task_suffix
469
  + challenger_type_task_suffix
470
+ + challenger_type_margin_suffix
471
  + f"@{row.get('retrieval_residual_challenger_margin') or 0.0:.2f}"
472
  if row.get("retrieval_residual_challenger_types")
473
  else ""
tests/test_maniskill_policy_rollout.py CHANGED
@@ -401,6 +401,36 @@ def test_retrieval_residual_challenger_can_override_primary_anchor() -> None:
401
  assert index.tolist() == [2]
402
 
403
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  def test_candidate_oracle_prefix_keeps_deployed_candidate_first() -> None:
405
  import torch
406
 
 
401
  assert index.tolist() == [2]
402
 
403
 
404
+ def test_retrieval_residual_challenger_can_use_candidate_margins() -> None:
405
+ import torch
406
+
407
+ mean = torch.zeros(1, 1, 1)
408
+ offset = torch.full_like(mean, 0.4)
409
+ model = _StubModel(torch, mean, best_offset=offset)
410
+ residuals = torch.tensor([[[[0.0]], [[0.1]], [[0.4]]]], dtype=torch.float32)
411
+
412
+ actions, index = _select_action_chunk(
413
+ model,
414
+ observations=torch.zeros(1, 3),
415
+ instructions=["a"],
416
+ torch=torch,
417
+ selection_mode="retrieval_residual",
418
+ num_candidates=1,
419
+ candidate_sigma=0.0,
420
+ selection_seed=0,
421
+ selection_margin=1.0,
422
+ action_candidates=residuals,
423
+ challenger_mask=torch.tensor([[False, False, True]]),
424
+ challenger_margin=0.05,
425
+ retrieval_residual_challenger_margin_by_candidate=torch.tensor(
426
+ [[0.05, 0.05, 0.2]]
427
+ ),
428
+ )
429
+
430
+ assert torch.allclose(actions, mean)
431
+ assert index.tolist() == [0]
432
+
433
+
434
  def test_candidate_oracle_prefix_keeps_deployed_candidate_first() -> None:
435
  import torch
436