auto-sync 2026-07-02T15:44:03Z workspace (part 4)
Browse files
workspace/tests/test_maniskill_policy_rollout.py
CHANGED
|
@@ -1236,6 +1236,32 @@ def test_retrieval_residual_candidate_type_bonus_repeats_over_scale_grid() -> No
|
|
| 1236 |
assert index.tolist() == [1]
|
| 1237 |
|
| 1238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1239 |
def test_retrieval_residual_action_l2_penalty_prefers_shorter_tangent() -> None:
|
| 1240 |
import torch
|
| 1241 |
|
|
|
|
| 1236 |
assert index.tolist() == [1]
|
| 1237 |
|
| 1238 |
|
| 1239 |
+
def test_retrieval_residual_scale_bonus_selects_scaled_tangent() -> None:
|
| 1240 |
+
import torch
|
| 1241 |
+
|
| 1242 |
+
mean = torch.zeros(1, 1, 1)
|
| 1243 |
+
residual = torch.ones_like(mean)
|
| 1244 |
+
model = _StubModel(torch, mean, best_offset=torch.zeros_like(mean))
|
| 1245 |
+
residuals = residual.unsqueeze(1)
|
| 1246 |
+
actions, index = _select_action_chunk(
|
| 1247 |
+
model,
|
| 1248 |
+
observations=torch.zeros(1, 3),
|
| 1249 |
+
instructions=["a"],
|
| 1250 |
+
torch=torch,
|
| 1251 |
+
selection_mode="retrieval_residual",
|
| 1252 |
+
num_candidates=1,
|
| 1253 |
+
candidate_sigma=0.0,
|
| 1254 |
+
selection_seed=0,
|
| 1255 |
+
action_candidates=residuals,
|
| 1256 |
+
retrieval_residual_scale=1.0,
|
| 1257 |
+
retrieval_residual_scales=(0.25, 0.5),
|
| 1258 |
+
residual_scale_bonuses={"0.5": 2.0},
|
| 1259 |
+
)
|
| 1260 |
+
|
| 1261 |
+
assert torch.allclose(actions, mean + 0.5 * residual)
|
| 1262 |
+
assert index.tolist() == [1]
|
| 1263 |
+
|
| 1264 |
+
|
| 1265 |
def test_retrieval_residual_action_l2_penalty_prefers_shorter_tangent() -> None:
|
| 1266 |
import torch
|
| 1267 |
|
workspace/tests/test_oracle_selector_calibration.py
CHANGED
|
@@ -17,6 +17,7 @@ def test_build_oracle_selector_calibration_from_branch_scores(tmp_path) -> None:
|
|
| 17 |
"candidate_oracle_branch_progress": [0.2, 0.8],
|
| 18 |
"candidate_oracle_branch_successes": [False, False],
|
| 19 |
"candidate_oracle_types": ["policy", "residual_good"],
|
|
|
|
| 20 |
"candidate_oracle_valid_mask": [True, True],
|
| 21 |
},
|
| 22 |
{
|
|
@@ -25,6 +26,7 @@ def test_build_oracle_selector_calibration_from_branch_scores(tmp_path) -> None:
|
|
| 25 |
"candidate_oracle_branch_progress": [0.4, 0.6],
|
| 26 |
"candidate_oracle_branch_successes": [False, False],
|
| 27 |
"candidate_oracle_types": ["policy", "residual_good"],
|
|
|
|
| 28 |
"candidate_oracle_valid_mask": [True, True],
|
| 29 |
},
|
| 30 |
{
|
|
@@ -33,6 +35,7 @@ def test_build_oracle_selector_calibration_from_branch_scores(tmp_path) -> None:
|
|
| 33 |
"candidate_oracle_branch_progress": [0.9, 0.1],
|
| 34 |
"candidate_oracle_branch_successes": [False, False],
|
| 35 |
"candidate_oracle_types": ["policy", "residual_bad"],
|
|
|
|
| 36 |
"candidate_oracle_valid_mask": [True, True],
|
| 37 |
},
|
| 38 |
]
|
|
@@ -46,15 +49,19 @@ def test_build_oracle_selector_calibration_from_branch_scores(tmp_path) -> None:
|
|
| 46 |
max_rank=2,
|
| 47 |
rank_scale=0.1,
|
| 48 |
type_scale=0.1,
|
|
|
|
| 49 |
min_count=1,
|
| 50 |
max_abs_rank_bias=None,
|
| 51 |
max_abs_type_bonus=None,
|
|
|
|
| 52 |
)
|
| 53 |
|
| 54 |
pick_rank_biases = result["field_rank_biases_by_task"]["PickCube-v1"]
|
| 55 |
stack_rank_biases = result["field_rank_biases_by_task"]["StackCube-v1"]
|
| 56 |
pick_type_bonuses = result["candidate_type_bonuses_by_task"]["PickCube-v1"]
|
| 57 |
stack_type_bonuses = result["candidate_type_bonuses_by_task"]["StackCube-v1"]
|
|
|
|
|
|
|
| 58 |
|
| 59 |
assert pick_rank_biases[0] == 0.0
|
| 60 |
assert abs(pick_rank_biases[1] - 0.04) < 1e-12
|
|
@@ -62,3 +69,5 @@ def test_build_oracle_selector_calibration_from_branch_scores(tmp_path) -> None:
|
|
| 62 |
assert abs(stack_rank_biases[1] + 0.08) < 1e-12
|
| 63 |
assert pick_type_bonuses["residual_good"] > pick_type_bonuses["policy"]
|
| 64 |
assert stack_type_bonuses["residual_bad"] < stack_type_bonuses["policy"]
|
|
|
|
|
|
|
|
|
| 17 |
"candidate_oracle_branch_progress": [0.2, 0.8],
|
| 18 |
"candidate_oracle_branch_successes": [False, False],
|
| 19 |
"candidate_oracle_types": ["policy", "residual_good"],
|
| 20 |
+
"candidate_oracle_residual_scales": [0.25, 0.5],
|
| 21 |
"candidate_oracle_valid_mask": [True, True],
|
| 22 |
},
|
| 23 |
{
|
|
|
|
| 26 |
"candidate_oracle_branch_progress": [0.4, 0.6],
|
| 27 |
"candidate_oracle_branch_successes": [False, False],
|
| 28 |
"candidate_oracle_types": ["policy", "residual_good"],
|
| 29 |
+
"candidate_oracle_residual_scales": [0.25, 0.5],
|
| 30 |
"candidate_oracle_valid_mask": [True, True],
|
| 31 |
},
|
| 32 |
{
|
|
|
|
| 35 |
"candidate_oracle_branch_progress": [0.9, 0.1],
|
| 36 |
"candidate_oracle_branch_successes": [False, False],
|
| 37 |
"candidate_oracle_types": ["policy", "residual_bad"],
|
| 38 |
+
"candidate_oracle_residual_scales": [0.25, 0.5],
|
| 39 |
"candidate_oracle_valid_mask": [True, True],
|
| 40 |
},
|
| 41 |
]
|
|
|
|
| 49 |
max_rank=2,
|
| 50 |
rank_scale=0.1,
|
| 51 |
type_scale=0.1,
|
| 52 |
+
scale_scale=0.1,
|
| 53 |
min_count=1,
|
| 54 |
max_abs_rank_bias=None,
|
| 55 |
max_abs_type_bonus=None,
|
| 56 |
+
max_abs_scale_bonus=None,
|
| 57 |
)
|
| 58 |
|
| 59 |
pick_rank_biases = result["field_rank_biases_by_task"]["PickCube-v1"]
|
| 60 |
stack_rank_biases = result["field_rank_biases_by_task"]["StackCube-v1"]
|
| 61 |
pick_type_bonuses = result["candidate_type_bonuses_by_task"]["PickCube-v1"]
|
| 62 |
stack_type_bonuses = result["candidate_type_bonuses_by_task"]["StackCube-v1"]
|
| 63 |
+
pick_scale_bonuses = result["residual_scale_bonuses_by_task"]["PickCube-v1"]
|
| 64 |
+
stack_scale_bonuses = result["residual_scale_bonuses_by_task"]["StackCube-v1"]
|
| 65 |
|
| 66 |
assert pick_rank_biases[0] == 0.0
|
| 67 |
assert abs(pick_rank_biases[1] - 0.04) < 1e-12
|
|
|
|
| 69 |
assert abs(stack_rank_biases[1] + 0.08) < 1e-12
|
| 70 |
assert pick_type_bonuses["residual_good"] > pick_type_bonuses["policy"]
|
| 71 |
assert stack_type_bonuses["residual_bad"] < stack_type_bonuses["policy"]
|
| 72 |
+
assert pick_scale_bonuses["0.5"] > pick_scale_bonuses["0.25"]
|
| 73 |
+
assert stack_scale_bonuses["0.5"] < stack_scale_bonuses["0.25"]
|