Auto-sync: 2026-06-29 08:12:42 (part 2)
Browse files
scripts/build_paper_analysis.py
CHANGED
|
@@ -315,6 +315,22 @@ METHODS = [
|
|
| 315 |
"k4_grid035040045_safe_margin0p20_mean_by_type_noopbonus0p03_consensus0p10_summary.json"
|
| 316 |
),
|
| 317 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 318 |
MethodSpec(
|
| 319 |
key="repair_nearmiss_k4_grid025035050_margin020",
|
| 320 |
label="K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
|
|
|
|
| 315 |
"k4_grid035040045_safe_margin0p20_mean_by_type_noopbonus0p03_consensus0p10_summary.json"
|
| 316 |
),
|
| 317 |
),
|
| 318 |
+
MethodSpec(
|
| 319 |
+
key="residual_k4_compose_grid035040045",
|
| 320 |
+
label="K4 composed type-consensus tangents, scales 0.35/0.40/0.45",
|
| 321 |
+
summary_path=(
|
| 322 |
+
"h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_"
|
| 323 |
+
"k4_compose_grid035040045_safe_margin0p20_summary.json"
|
| 324 |
+
),
|
| 325 |
+
),
|
| 326 |
+
MethodSpec(
|
| 327 |
+
key="residual_k4_compose_grid035040045_noopbonus003",
|
| 328 |
+
label="K4 composed type-consensus tangents, scales 0.35/0.40/0.45, no-op bonus 0.03",
|
| 329 |
+
summary_path=(
|
| 330 |
+
"h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_"
|
| 331 |
+
"k4_compose_grid035040045_safe_margin0p20_noopbonus0p03_summary.json"
|
| 332 |
+
),
|
| 333 |
+
),
|
| 334 |
MethodSpec(
|
| 335 |
key="repair_nearmiss_k4_grid025035050_margin020",
|
| 336 |
label="K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
|
scripts/build_paper_table_status.py
CHANGED
|
@@ -655,6 +655,26 @@ SPECS = [
|
|
| 655 |
story_role="train-neighbor tangent-consensus confidence on the current best typed prior",
|
| 656 |
pending_job="14903390/14903391",
|
| 657 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 658 |
ResultSpec(
|
| 659 |
key="retrieval_repair_nearmiss_k4_grid025035050_margin020",
|
| 660 |
label="K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
|
|
|
|
| 655 |
story_role="train-neighbor tangent-consensus confidence on the current best typed prior",
|
| 656 |
pending_job="14903390/14903391",
|
| 657 |
),
|
| 658 |
+
ResultSpec(
|
| 659 |
+
key="retrieval_residual_k4_compose_grid035040045",
|
| 660 |
+
label="K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20",
|
| 661 |
+
path="h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_compose_grid035040045_safe_margin0p20_summary.json",
|
| 662 |
+
clean_deployment="yes",
|
| 663 |
+
same_state_proposals="no",
|
| 664 |
+
expert_proposal="no",
|
| 665 |
+
story_role="local tangent composition without typed priors",
|
| 666 |
+
pending_job="14905956/14905963",
|
| 667 |
+
),
|
| 668 |
+
ResultSpec(
|
| 669 |
+
key="retrieval_residual_k4_compose_grid035040045_noopbonus003",
|
| 670 |
+
label="K4 composed type-consensus residual retrieval, scales 0.35/0.40/0.45, margin 0.20, no-op bonus 0.03",
|
| 671 |
+
path="h16_policy_ckpt_near_miss_policy_bc5_bestpt_retrieval_residual_k4_compose_grid035040045_safe_margin0p20_noopbonus0p03_summary.json",
|
| 672 |
+
clean_deployment="yes",
|
| 673 |
+
same_state_proposals="no",
|
| 674 |
+
expert_proposal="no",
|
| 675 |
+
story_role="local tangent composition on the current best typed prior",
|
| 676 |
+
pending_job="14905957/14905964",
|
| 677 |
+
),
|
| 678 |
ResultSpec(
|
| 679 |
key="retrieval_repair_nearmiss_k4_grid025035050_margin020",
|
| 680 |
label="K4 near-miss-to-expert repair tangent, scales 0.25/0.35/0.50, margin 0.20",
|
scripts/eval_maniskill_policy_rollout.py
CHANGED
|
@@ -218,11 +218,13 @@ def main(argv: list[str] | None = None) -> int:
|
|
| 218 |
"mean_by_type",
|
| 219 |
"median_by_type",
|
| 220 |
"kernel_mean_by_type",
|
|
|
|
| 221 |
"field_softmax",
|
| 222 |
),
|
| 223 |
default="none",
|
| 224 |
help="Optional consensus reduction over retrieved residuals with the same candidate type. "
|
| 225 |
"'kernel_mean_by_type' weights source residuals by train-state retrieval distance; "
|
|
|
|
| 226 |
"'field_softmax' forms a field-weighted tangent barycenter before final scoring.",
|
| 227 |
)
|
| 228 |
parser.add_argument(
|
|
|
|
| 218 |
"mean_by_type",
|
| 219 |
"median_by_type",
|
| 220 |
"kernel_mean_by_type",
|
| 221 |
+
"compose_mean_by_type",
|
| 222 |
"field_softmax",
|
| 223 |
),
|
| 224 |
default="none",
|
| 225 |
help="Optional consensus reduction over retrieved residuals with the same candidate type. "
|
| 226 |
"'kernel_mean_by_type' weights source residuals by train-state retrieval distance; "
|
| 227 |
+
"'compose_mean_by_type' also adds pairwise sums of type-consensus tangents; "
|
| 228 |
"'field_softmax' forms a field-weighted tangent barycenter before final scoring.",
|
| 229 |
)
|
| 230 |
parser.add_argument(
|
tests/test_maniskill_policy_rollout.py
CHANGED
|
@@ -895,6 +895,44 @@ def test_retrieval_residual_reducer_builds_type_consensus() -> None:
|
|
| 895 |
)
|
| 896 |
|
| 897 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 898 |
def test_retrieval_residual_reducer_penalizes_low_consensus_tangents() -> None:
|
| 899 |
residuals, candidate_types, bonuses = _reduce_residual_candidates_by_type(
|
| 900 |
[
|
|
|
|
| 895 |
)
|
| 896 |
|
| 897 |
|
| 898 |
+
def test_retrieval_residual_reducer_builds_composed_type_tangents() -> None:
|
| 899 |
+
residuals, candidate_types = _reduce_residual_candidates_by_type(
|
| 900 |
+
[
|
| 901 |
+
[[0.0, 0.0]],
|
| 902 |
+
[[0.2, 0.0]],
|
| 903 |
+
[[0.0, 0.0]],
|
| 904 |
+
[[0.4, 0.2]],
|
| 905 |
+
[[-0.5, 0.0]],
|
| 906 |
+
],
|
| 907 |
+
[
|
| 908 |
+
"policy_residual",
|
| 909 |
+
"residual_no_op",
|
| 910 |
+
"policy_residual",
|
| 911 |
+
"residual_no_op",
|
| 912 |
+
"residual_wrong_gripper",
|
| 913 |
+
],
|
| 914 |
+
mode="compose_mean_by_type",
|
| 915 |
+
)
|
| 916 |
+
|
| 917 |
+
assert candidate_types == [
|
| 918 |
+
"policy_residual",
|
| 919 |
+
"residual_no_op",
|
| 920 |
+
"residual_wrong_gripper",
|
| 921 |
+
"residual_no_op+residual_wrong_gripper",
|
| 922 |
+
]
|
| 923 |
+
assert np.allclose(
|
| 924 |
+
np.asarray(residuals, dtype=np.float32),
|
| 925 |
+
np.asarray(
|
| 926 |
+
[
|
| 927 |
+
[[0.0, 0.0]],
|
| 928 |
+
[[0.3, 0.1]],
|
| 929 |
+
[[-0.5, 0.0]],
|
| 930 |
+
[[-0.2, 0.1]],
|
| 931 |
+
]
|
| 932 |
+
),
|
| 933 |
+
)
|
| 934 |
+
|
| 935 |
+
|
| 936 |
def test_retrieval_residual_reducer_penalizes_low_consensus_tangents() -> None:
|
| 937 |
residuals, candidate_types, bonuses = _reduce_residual_candidates_by_type(
|
| 938 |
[
|