anhtld commited on
Commit
e6c1804
·
verified ·
1 Parent(s): 771efec

Auto-sync: 2026-06-30 03:27:59 (part 3)

Browse files
scripts/build_paper_analysis.py CHANGED
@@ -393,6 +393,14 @@ METHODS = [
393
  "k4_composemasked_dropnmnoop_grid035040045_safe_margin0p20_noopbonus0p03_oraclek8trace_summary.json"
394
  ),
395
  ),
 
 
 
 
 
 
 
 
396
  MethodSpec(
397
  key="residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmbonus001",
398
  label="K4 composed compatible tangents, no-op bonus 0.03, singleton near-miss bonus 0.01",
 
393
  "k4_composemasked_dropnmnoop_grid035040045_safe_margin0p20_noopbonus0p03_oraclek8trace_summary.json"
394
  ),
395
  ),
396
+ MethodSpec(
397
+ key="residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmchallenger002",
398
+ label="K4 compatible tangents, no-op bonus 0.03, near-miss challenger gate 0.02",
399
+ summary_path=(
400
+ "h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_"
401
+ "k4_composemasked_dropnmnoop_grid035040045_safe_margin0p20_noopbonus0p03_nmchallenger0p02_summary.json"
402
+ ),
403
+ ),
404
  MethodSpec(
405
  key="residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmbonus001",
406
  label="K4 composed compatible tangents, no-op bonus 0.03, singleton near-miss bonus 0.01",
scripts/build_paper_table_status.py CHANGED
@@ -745,6 +745,16 @@ SPECS = [
745
  story_role="diagnostic branch trace for deployable selector calibration over the local tangent chart",
746
  pending_job="14953960/14953961",
747
  ),
 
 
 
 
 
 
 
 
 
 
748
  ResultSpec(
749
  key="retrieval_residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmbonus001",
750
  label="K4 composed compatible residual retrieval, no-op bonus 0.03, singleton near-miss bonus 0.01",
 
745
  story_role="diagnostic branch trace for deployable selector calibration over the local tangent chart",
746
  pending_job="14953960/14953961",
747
  ),
748
+ ResultSpec(
749
+ key="retrieval_residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmchallenger002",
750
+ label="K4 compatible residual retrieval, near-miss challenger gate 0.02",
751
+ path="h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_composemasked_dropnmnoop_grid035040045_safe_margin0p20_noopbonus0p03_nmchallenger0p02_summary.json",
752
+ clean_deployment="yes",
753
+ same_state_proposals="no",
754
+ expert_proposal="no",
755
+ story_role="trace-motivated two-stage selector calibration over the compatible local tangent chart",
756
+ pending_job="14954280/14954281",
757
+ ),
758
  ResultSpec(
759
  key="retrieval_residual_k4_composemasked_dropnmnoop_grid035040045_noopbonus003_nmbonus001",
760
  label="K4 composed compatible residual retrieval, no-op bonus 0.03, singleton near-miss bonus 0.01",
scripts/eval_maniskill_policy_rollout.py CHANGED
@@ -234,6 +234,19 @@ def main(argv: list[str] | None = None) -> int:
234
  "'compose_mean_by_type' also adds pairwise sums of type-consensus tangents; "
235
  "'field_softmax' forms a field-weighted tangent barycenter before final scoring.",
236
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  parser.add_argument(
238
  "--lattice-exclude-types",
239
  default="",
@@ -272,6 +285,11 @@ def main(argv: list[str] | None = None) -> int:
272
  lattice_exclude_types = tuple(
273
  item.strip() for item in args.lattice_exclude_types.split(",") if item.strip()
274
  )
 
 
 
 
 
275
  candidate_type_bonuses: dict[str, float] = {}
276
  try:
277
  for item in args.candidate_type_bonuses.split(","):
@@ -339,6 +357,8 @@ def main(argv: list[str] | None = None) -> int:
339
  retrieval_residual_anchor=args.retrieval_residual_anchor,
340
  retrieval_residual_direction=args.retrieval_residual_direction,
341
  retrieval_residual_reduce=args.retrieval_residual_reduce,
 
 
342
  lattice_exclude_types=lattice_exclude_types,
343
  candidate_type_bonuses=candidate_type_bonuses,
344
  candidate_type_bonus_components=args.candidate_type_bonus_components,
 
234
  "'compose_mean_by_type' also adds pairwise sums of type-consensus tangents; "
235
  "'field_softmax' forms a field-weighted tangent barycenter before final scoring.",
236
  )
237
+ parser.add_argument(
238
+ "--retrieval-residual-challenger-types",
239
+ default="",
240
+ help="Optional comma-separated residual candidate types that may override the "
241
+ "primary retrieval-residual selection in a second-stage challenger gate.",
242
+ )
243
+ parser.add_argument(
244
+ "--retrieval-residual-challenger-margin",
245
+ type=float,
246
+ default=0.0,
247
+ help="Required field-potential margin for a challenger candidate to override the "
248
+ "primary retrieval-residual selection.",
249
+ )
250
  parser.add_argument(
251
  "--lattice-exclude-types",
252
  default="",
 
285
  lattice_exclude_types = tuple(
286
  item.strip() for item in args.lattice_exclude_types.split(",") if item.strip()
287
  )
288
+ retrieval_residual_challenger_types = tuple(
289
+ item.strip()
290
+ for item in args.retrieval_residual_challenger_types.split(",")
291
+ if item.strip()
292
+ )
293
  candidate_type_bonuses: dict[str, float] = {}
294
  try:
295
  for item in args.candidate_type_bonuses.split(","):
 
357
  retrieval_residual_anchor=args.retrieval_residual_anchor,
358
  retrieval_residual_direction=args.retrieval_residual_direction,
359
  retrieval_residual_reduce=args.retrieval_residual_reduce,
360
+ retrieval_residual_challenger_types=retrieval_residual_challenger_types,
361
+ retrieval_residual_challenger_margin=args.retrieval_residual_challenger_margin,
362
  lattice_exclude_types=lattice_exclude_types,
363
  candidate_type_bonuses=candidate_type_bonuses,
364
  candidate_type_bonus_components=args.candidate_type_bonus_components,
scripts/slurm/eval_maniskill_policy_rollout.sbatch CHANGED
@@ -70,6 +70,11 @@ fi
70
  RETRIEVAL_RESIDUAL_ANCHOR="${RETRIEVAL_RESIDUAL_ANCHOR:-expert}"
71
  RETRIEVAL_RESIDUAL_DIRECTION="${RETRIEVAL_RESIDUAL_DIRECTION:-candidate_minus_anchor}"
72
  RETRIEVAL_RESIDUAL_REDUCE="${RETRIEVAL_RESIDUAL_REDUCE:-none}"
 
 
 
 
 
73
  LATTICE_EXCLUDE_TYPES="${LATTICE_EXCLUDE_TYPES:-}"
74
  if [[ -n "${LATTICE_EXCLUDE_TYPES_COLON:-}" ]]; then
75
  LATTICE_EXCLUDE_TYPES="${LATTICE_EXCLUDE_TYPES_COLON//:/,}"
@@ -148,6 +153,8 @@ apptainer exec --nv \
148
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
149
  --retrieval-residual-direction "$RETRIEVAL_RESIDUAL_DIRECTION" \
150
  --retrieval-residual-reduce "$RETRIEVAL_RESIDUAL_REDUCE" \
 
 
151
  --lattice-exclude-types "$LATTICE_EXCLUDE_TYPES" \
152
  --candidate-type-bonuses "$CANDIDATE_TYPE_BONUSES" \
153
  --candidate-oracle-rollouts "$CANDIDATE_ORACLE_ROLLOUTS" \
 
70
  RETRIEVAL_RESIDUAL_ANCHOR="${RETRIEVAL_RESIDUAL_ANCHOR:-expert}"
71
  RETRIEVAL_RESIDUAL_DIRECTION="${RETRIEVAL_RESIDUAL_DIRECTION:-candidate_minus_anchor}"
72
  RETRIEVAL_RESIDUAL_REDUCE="${RETRIEVAL_RESIDUAL_REDUCE:-none}"
73
+ RETRIEVAL_RESIDUAL_CHALLENGER_TYPES="${RETRIEVAL_RESIDUAL_CHALLENGER_TYPES:-}"
74
+ if [[ -n "${RETRIEVAL_RESIDUAL_CHALLENGER_TYPES_COLON:-}" ]]; then
75
+ RETRIEVAL_RESIDUAL_CHALLENGER_TYPES="${RETRIEVAL_RESIDUAL_CHALLENGER_TYPES_COLON//:/,}"
76
+ fi
77
+ RETRIEVAL_RESIDUAL_CHALLENGER_MARGIN="${RETRIEVAL_RESIDUAL_CHALLENGER_MARGIN:-0.0}"
78
  LATTICE_EXCLUDE_TYPES="${LATTICE_EXCLUDE_TYPES:-}"
79
  if [[ -n "${LATTICE_EXCLUDE_TYPES_COLON:-}" ]]; then
80
  LATTICE_EXCLUDE_TYPES="${LATTICE_EXCLUDE_TYPES_COLON//:/,}"
 
153
  --retrieval-residual-anchor "$RETRIEVAL_RESIDUAL_ANCHOR" \
154
  --retrieval-residual-direction "$RETRIEVAL_RESIDUAL_DIRECTION" \
155
  --retrieval-residual-reduce "$RETRIEVAL_RESIDUAL_REDUCE" \
156
+ --retrieval-residual-challenger-types "$RETRIEVAL_RESIDUAL_CHALLENGER_TYPES" \
157
+ --retrieval-residual-challenger-margin "$RETRIEVAL_RESIDUAL_CHALLENGER_MARGIN" \
158
  --lattice-exclude-types "$LATTICE_EXCLUDE_TYPES" \
159
  --candidate-type-bonuses "$CANDIDATE_TYPE_BONUSES" \
160
  --candidate-oracle-rollouts "$CANDIDATE_ORACLE_ROLLOUTS" \
scripts/slurm/summarize_h16_policy_ckpt.sbatch CHANGED
@@ -101,6 +101,12 @@ for result_path in sorted(base_dir.glob(f"seed_*/{out_name}")):
101
  "retrieval_residual_direction", "candidate_minus_anchor"
102
  ),
103
  "retrieval_residual_reduce": data.get("retrieval_residual_reduce", "none"),
 
 
 
 
 
 
104
  "lattice_exclude_types": data.get("lattice_exclude_types", []),
105
  "candidate_type_bonuses": data.get("candidate_type_bonuses", {}),
106
  "candidate_type_bonus_components": data.get(
@@ -382,7 +388,7 @@ for row in rows:
382
  scales = row.get("retrieval_residual_scales") or []
383
  scale_grid = ",".join(f"{float(scale):.2f}" for scale in scales) if scales else "none"
384
  lines.append(
385
- "| {seed} | {mode} | {k} | {policy_cand} | {retrieval} | {metric} | {anchor} | {direction} | {reduce} | {min_success:.2f} | {type_success_bonus:.3f} | {consensus_penalty:.3f} | {min_source_progress:.2f} | {source_progress_bonus:.3f} | {source_score_bonus:.3f} | {scale:.2f} | {scale_grid} | {margin:.3f} | {sigma:.2f} | {steps} | {trust:.2f} | "
386
  "{success:.2%} | {progress:.2%} | {oracle:.2%} | {candidate_oracle} | {oracle_gain} | {mse:.3f} |".format(
387
  seed=row["seed"],
388
  mode=row.get("selection_mode") or "policy",
@@ -394,6 +400,13 @@ for row in rows:
394
  direction=row.get("retrieval_residual_direction")
395
  or "candidate_minus_anchor",
396
  reduce=row.get("retrieval_residual_reduce") or "none",
 
 
 
 
 
 
 
397
  min_success=row.get("retrieval_type_min_success") or 0.0,
398
  type_success_bonus=row.get("retrieval_type_success_bonus_scale") or 0.0,
399
  consensus_penalty=row.get("retrieval_residual_consensus_penalty_scale")
 
101
  "retrieval_residual_direction", "candidate_minus_anchor"
102
  ),
103
  "retrieval_residual_reduce": data.get("retrieval_residual_reduce", "none"),
104
+ "retrieval_residual_challenger_types": data.get(
105
+ "retrieval_residual_challenger_types", []
106
+ ),
107
+ "retrieval_residual_challenger_margin": data.get(
108
+ "retrieval_residual_challenger_margin", 0.0
109
+ ),
110
  "lattice_exclude_types": data.get("lattice_exclude_types", []),
111
  "candidate_type_bonuses": data.get("candidate_type_bonuses", {}),
112
  "candidate_type_bonus_components": data.get(
 
388
  scales = row.get("retrieval_residual_scales") or []
389
  scale_grid = ",".join(f"{float(scale):.2f}" for scale in scales) if scales else "none"
390
  lines.append(
391
+ "| {seed} | {mode} | {k} | {policy_cand} | {retrieval} | {metric} | {anchor} | {direction} | {reduce}{challenger} | {min_success:.2f} | {type_success_bonus:.3f} | {consensus_penalty:.3f} | {min_source_progress:.2f} | {source_progress_bonus:.3f} | {source_score_bonus:.3f} | {scale:.2f} | {scale_grid} | {margin:.3f} | {sigma:.2f} | {steps} | {trust:.2f} | "
392
  "{success:.2%} | {progress:.2%} | {oracle:.2%} | {candidate_oracle} | {oracle_gain} | {mse:.3f} |".format(
393
  seed=row["seed"],
394
  mode=row.get("selection_mode") or "policy",
 
400
  direction=row.get("retrieval_residual_direction")
401
  or "candidate_minus_anchor",
402
  reduce=row.get("retrieval_residual_reduce") or "none",
403
+ challenger=(
404
+ " + challenger "
405
+ + ",".join(row.get("retrieval_residual_challenger_types") or [])
406
+ + f"@{row.get('retrieval_residual_challenger_margin') or 0.0:.2f}"
407
+ if row.get("retrieval_residual_challenger_types")
408
+ else ""
409
+ ),
410
  min_success=row.get("retrieval_type_min_success") or 0.0,
411
  type_success_bonus=row.get("retrieval_type_success_bonus_scale") or 0.0,
412
  consensus_penalty=row.get("retrieval_residual_consensus_penalty_scale")