anhtld commited on
Commit
43bf215
·
verified ·
1 Parent(s): 7dd85e3

Auto-sync: 2026-06-29 06:36:52

Browse files
dovla_cil/eval/maniskill_policy_rollout.py CHANGED
@@ -82,8 +82,10 @@ def evaluate_maniskill_policy_rollout(
82
  retrieval_metric: str = "raw",
83
  retrieval_type_min_success: float = 0.0,
84
  retrieval_residual_min_source_progress: float = 0.0,
 
85
  retrieval_residual_source_progress_bonus_scale: float = 0.0,
86
  retrieval_residual_source_score_bonus_scale: float = 0.0,
 
87
  retrieval_residual_action_l2_penalty: float = 0.0,
88
  retrieval_residual_scale: float = 1.0,
89
  retrieval_residual_scales: tuple[float, ...] = (),
@@ -191,6 +193,8 @@ def evaluate_maniskill_policy_rollout(
191
  raise ValueError("retrieval_residual_source_progress_bonus_scale must be non-negative")
192
  if retrieval_residual_source_score_bonus_scale < 0:
193
  raise ValueError("retrieval_residual_source_score_bonus_scale must be non-negative")
 
 
194
  if retrieval_residual_action_l2_penalty < 0:
195
  raise ValueError("retrieval_residual_action_l2_penalty must be non-negative")
196
  if retrieval_residual_scale < 0:
@@ -261,12 +265,18 @@ def evaluate_maniskill_policy_rollout(
261
  retrieval_metric=retrieval_metric,
262
  retrieval_type_min_success=retrieval_type_min_success,
263
  retrieval_residual_min_source_progress=retrieval_residual_min_source_progress,
 
 
 
264
  retrieval_residual_source_progress_bonus_scale=(
265
  retrieval_residual_source_progress_bonus_scale
266
  ),
267
  retrieval_residual_source_score_bonus_scale=(
268
  retrieval_residual_source_score_bonus_scale
269
  ),
 
 
 
270
  retrieval_residual_anchor=retrieval_residual_anchor,
271
  retrieval_residual_reduce=retrieval_residual_reduce,
272
  )
@@ -358,6 +368,11 @@ def evaluate_maniskill_policy_rollout(
358
  "retrieval_residual_min_source_progress": retrieval_residual_min_source_progress
359
  if selection_mode == "retrieval_residual"
360
  else 0.0,
 
 
 
 
 
361
  "retrieval_residual_source_progress_bonus_scale": (
362
  retrieval_residual_source_progress_bonus_scale
363
  if selection_mode == "retrieval_residual"
@@ -368,6 +383,11 @@ def evaluate_maniskill_policy_rollout(
368
  if selection_mode == "retrieval_residual"
369
  else 0.0
370
  ),
 
 
 
 
 
371
  "retrieval_residual_action_l2_penalty": (
372
  retrieval_residual_action_l2_penalty
373
  if selection_mode == "retrieval_residual"
@@ -556,8 +576,10 @@ def _attach_retrieved_residual_candidates(
556
  retrieval_metric: str = "raw",
557
  retrieval_type_min_success: float = 0.0,
558
  retrieval_residual_min_source_progress: float = 0.0,
 
559
  retrieval_residual_source_progress_bonus_scale: float = 0.0,
560
  retrieval_residual_source_score_bonus_scale: float = 0.0,
 
561
  retrieval_residual_anchor: str = "expert",
562
  retrieval_residual_reduce: str = "none",
563
  ) -> list[_RolloutCase]:
@@ -567,6 +589,7 @@ def _attach_retrieved_residual_candidates(
567
  uses_source_bonus = (
568
  retrieval_residual_source_progress_bonus_scale > 0
569
  or retrieval_residual_source_score_bonus_scale > 0
 
570
  )
571
  type_success_rates = _candidate_type_success_rates(dataset, heldout_group_ids=heldout)
572
  bank: dict[
@@ -597,6 +620,9 @@ def _attach_retrieved_residual_candidates(
597
  if anchor is None:
598
  anchor = next((record for record in records if record.candidate_type == "expert"), records[0])
599
  anchor_action = np.asarray(_numeric_action_values(anchor), dtype=np.float32)
 
 
 
600
  residuals: list[list[list[float]]] = [np.zeros_like(anchor_action).tolist()]
601
  candidate_types = ["policy_residual"]
602
  residual_bonuses = [0.0]
@@ -609,14 +635,18 @@ def _attach_retrieved_residual_candidates(
609
  reward = getattr(record, "reward", None)
610
  source_progress = float(getattr(reward, "progress", 0.0))
611
  source_score = _source_reward_score(reward, progress=source_progress)
 
612
  if source_progress < retrieval_residual_min_source_progress:
613
  continue
 
 
614
  residual = np.asarray(_numeric_action_values(record), dtype=np.float32) - anchor_action
615
  residuals.append(residual.tolist())
616
  candidate_types.append(f"residual_{record.candidate_type}")
617
  residual_bonuses.append(
618
  float(retrieval_residual_source_progress_bonus_scale) * source_progress
619
  + float(retrieval_residual_source_score_bonus_scale) * source_score
 
620
  )
621
  feature = np.asarray(
622
  vectorize_toy_observation(records[0].observation_inline or {}, obs_dim=obs_dim),
 
82
  retrieval_metric: str = "raw",
83
  retrieval_type_min_success: float = 0.0,
84
  retrieval_residual_min_source_progress: float = 0.0,
85
+ retrieval_residual_min_source_advantage: float = -1.0e9,
86
  retrieval_residual_source_progress_bonus_scale: float = 0.0,
87
  retrieval_residual_source_score_bonus_scale: float = 0.0,
88
+ retrieval_residual_source_advantage_bonus_scale: float = 0.0,
89
  retrieval_residual_action_l2_penalty: float = 0.0,
90
  retrieval_residual_scale: float = 1.0,
91
  retrieval_residual_scales: tuple[float, ...] = (),
 
193
  raise ValueError("retrieval_residual_source_progress_bonus_scale must be non-negative")
194
  if retrieval_residual_source_score_bonus_scale < 0:
195
  raise ValueError("retrieval_residual_source_score_bonus_scale must be non-negative")
196
+ if retrieval_residual_source_advantage_bonus_scale < 0:
197
+ raise ValueError("retrieval_residual_source_advantage_bonus_scale must be non-negative")
198
  if retrieval_residual_action_l2_penalty < 0:
199
  raise ValueError("retrieval_residual_action_l2_penalty must be non-negative")
200
  if retrieval_residual_scale < 0:
 
265
  retrieval_metric=retrieval_metric,
266
  retrieval_type_min_success=retrieval_type_min_success,
267
  retrieval_residual_min_source_progress=retrieval_residual_min_source_progress,
268
+ retrieval_residual_min_source_advantage=(
269
+ retrieval_residual_min_source_advantage
270
+ ),
271
  retrieval_residual_source_progress_bonus_scale=(
272
  retrieval_residual_source_progress_bonus_scale
273
  ),
274
  retrieval_residual_source_score_bonus_scale=(
275
  retrieval_residual_source_score_bonus_scale
276
  ),
277
+ retrieval_residual_source_advantage_bonus_scale=(
278
+ retrieval_residual_source_advantage_bonus_scale
279
+ ),
280
  retrieval_residual_anchor=retrieval_residual_anchor,
281
  retrieval_residual_reduce=retrieval_residual_reduce,
282
  )
 
368
  "retrieval_residual_min_source_progress": retrieval_residual_min_source_progress
369
  if selection_mode == "retrieval_residual"
370
  else 0.0,
371
+ "retrieval_residual_min_source_advantage": (
372
+ retrieval_residual_min_source_advantage
373
+ if selection_mode == "retrieval_residual"
374
+ else -1.0e9
375
+ ),
376
  "retrieval_residual_source_progress_bonus_scale": (
377
  retrieval_residual_source_progress_bonus_scale
378
  if selection_mode == "retrieval_residual"
 
383
  if selection_mode == "retrieval_residual"
384
  else 0.0
385
  ),
386
+ "retrieval_residual_source_advantage_bonus_scale": (
387
+ retrieval_residual_source_advantage_bonus_scale
388
+ if selection_mode == "retrieval_residual"
389
+ else 0.0
390
+ ),
391
  "retrieval_residual_action_l2_penalty": (
392
  retrieval_residual_action_l2_penalty
393
  if selection_mode == "retrieval_residual"
 
576
  retrieval_metric: str = "raw",
577
  retrieval_type_min_success: float = 0.0,
578
  retrieval_residual_min_source_progress: float = 0.0,
579
+ retrieval_residual_min_source_advantage: float = -1.0e9,
580
  retrieval_residual_source_progress_bonus_scale: float = 0.0,
581
  retrieval_residual_source_score_bonus_scale: float = 0.0,
582
+ retrieval_residual_source_advantage_bonus_scale: float = 0.0,
583
  retrieval_residual_anchor: str = "expert",
584
  retrieval_residual_reduce: str = "none",
585
  ) -> list[_RolloutCase]:
 
589
  uses_source_bonus = (
590
  retrieval_residual_source_progress_bonus_scale > 0
591
  or retrieval_residual_source_score_bonus_scale > 0
592
+ or retrieval_residual_source_advantage_bonus_scale > 0
593
  )
594
  type_success_rates = _candidate_type_success_rates(dataset, heldout_group_ids=heldout)
595
  bank: dict[
 
620
  if anchor is None:
621
  anchor = next((record for record in records if record.candidate_type == "expert"), records[0])
622
  anchor_action = np.asarray(_numeric_action_values(anchor), dtype=np.float32)
623
+ anchor_reward = getattr(anchor, "reward", None)
624
+ anchor_progress = float(getattr(anchor_reward, "progress", 0.0))
625
+ anchor_score = _source_reward_score(anchor_reward, progress=anchor_progress)
626
  residuals: list[list[list[float]]] = [np.zeros_like(anchor_action).tolist()]
627
  candidate_types = ["policy_residual"]
628
  residual_bonuses = [0.0]
 
635
  reward = getattr(record, "reward", None)
636
  source_progress = float(getattr(reward, "progress", 0.0))
637
  source_score = _source_reward_score(reward, progress=source_progress)
638
+ source_advantage = source_score - anchor_score
639
  if source_progress < retrieval_residual_min_source_progress:
640
  continue
641
+ if source_advantage < retrieval_residual_min_source_advantage:
642
+ continue
643
  residual = np.asarray(_numeric_action_values(record), dtype=np.float32) - anchor_action
644
  residuals.append(residual.tolist())
645
  candidate_types.append(f"residual_{record.candidate_type}")
646
  residual_bonuses.append(
647
  float(retrieval_residual_source_progress_bonus_scale) * source_progress
648
  + float(retrieval_residual_source_score_bonus_scale) * source_score
649
+ + float(retrieval_residual_source_advantage_bonus_scale) * source_advantage
650
  )
651
  feature = np.asarray(
652
  vectorize_toy_observation(records[0].observation_inline or {}, obs_dim=obs_dim),
logs/auto_sync_hf.log CHANGED
@@ -230,3 +230,4 @@ No files have been modified since last commit. Skipping to prevent empty commit.
230
  No files have been modified since last commit. Skipping to prevent empty commit.
231
  No files have been modified since last commit. Skipping to prevent empty commit.
232
  No files have been modified since last commit. Skipping to prevent empty commit.
 
 
230
  No files have been modified since last commit. Skipping to prevent empty commit.
231
  No files have been modified since last commit. Skipping to prevent empty commit.
232
  No files have been modified since last commit. Skipping to prevent empty commit.
233
+ No files have been modified since last commit. Skipping to prevent empty commit.