Auto-sync: 2026-06-28 01:59:41 (part 2)
Browse files
results/paper_story_memo.md
CHANGED
|
@@ -25,6 +25,7 @@ when queried on proposal geometry that matches those local counterfactuals.
|
|
| 25 |
| Seed-0 train-split field-teacher distillation does not solve the proposal gap | direct student is 26.84%; with field scoring it is 27.65% | Negative diagnostic |
|
| 26 |
| All-split field-teacher distillation does not fix checkpointing/coverage | allmap direct is 28.00%; field-guided best is 26.49% despite 100% target coverage | Negative diagnostic |
|
| 27 |
| Residual family consistency is the next hypothesis | field-selected random/wrong-direction residuals have low rollout success; masked residual jobs are active | Active |
|
|
|
|
| 28 |
|
| 29 |
## Main Table Candidate
|
| 30 |
|
|
@@ -90,15 +91,21 @@ Last checked: `2026-06-28 05:47 UTC`.
|
|
| 90 |
- `14859041`: completed CPU Apptainer unit smoke for hybrid residual+Gaussian selection.
|
| 91 |
- `14859042`-`14859046`: completed hybrid residual+Gaussian jobs; K32 reaches
|
| 92 |
31.30% and K64 reaches 30.90%, both below residual-only transport.
|
| 93 |
-
- `
|
| 94 |
excluding `residual_random_negative`.
|
| 95 |
-
- `
|
| 96 |
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 97 |
-
- `
|
| 98 |
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 99 |
-
- `
|
| 100 |
keeping policy/no-op/wrong-gripper residual families.
|
| 101 |
-
- `
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
|
| 103 |
## Decision Rule For Masked Residual Jobs
|
| 104 |
|
|
@@ -109,3 +116,13 @@ Last checked: `2026-06-28 05:47 UTC`.
|
|
| 109 |
residual result and present masking as a diagnostic of field over-selection.
|
| 110 |
- If masks fail, keep the story focused on residual scale calibration and the
|
| 111 |
larger same-state counterfactual mechanism.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
| Seed-0 train-split field-teacher distillation does not solve the proposal gap | direct student is 26.84%; with field scoring it is 27.65% | Negative diagnostic |
|
| 26 |
| All-split field-teacher distillation does not fix checkpointing/coverage | allmap direct is 28.00%; field-guided best is 26.49% despite 100% target coverage | Negative diagnostic |
|
| 27 |
| Residual family consistency is the next hypothesis | field-selected random/wrong-direction residuals have low rollout success; masked residual jobs are active | Active |
|
| 28 |
+
| Retrieval metric locality is the next hypothesis | z-score train-bank retrieval jobs are active after unit smoke `14859165` passed | Active |
|
| 29 |
|
| 30 |
## Main Table Candidate
|
| 31 |
|
|
|
|
| 91 |
- `14859041`: completed CPU Apptainer unit smoke for hybrid residual+Gaussian selection.
|
| 92 |
- `14859042`-`14859046`: completed hybrid residual+Gaussian jobs; K32 reaches
|
| 93 |
31.30% and K64 reaches 30.90%, both below residual-only transport.
|
| 94 |
+
- `14859188`/`14859189`: active masked residual eval/summary, scale `0.50`,
|
| 95 |
excluding `residual_random_negative`.
|
| 96 |
+
- `14859191`/`14859192`: active masked residual eval/summary, scale `0.50`,
|
| 97 |
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 98 |
+
- `14859193`/`14859194`: active masked residual eval/summary, scale `0.25`,
|
| 99 |
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 100 |
+
- `14859195`/`14859196`: active typed residual eval/summary, scale `0.50`,
|
| 101 |
keeping policy/no-op/wrong-gripper residual families.
|
| 102 |
+
- `14859203`: rebuild `paper_table_status.*` after all masked and z-score summaries.
|
| 103 |
+
- `14859165`: completed Apptainer unit smoke for z-score retrieval metric.
|
| 104 |
+
- `14859197`/`14859198`: active z-score retrieval eval/summary, scale `0.50`.
|
| 105 |
+
- `14859199`/`14859200`: active z-score retrieval eval/summary, scale `0.50`,
|
| 106 |
+
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 107 |
+
- `14859201`/`14859202`: active z-score retrieval eval/summary, scale `0.25`,
|
| 108 |
+
excluding `residual_random_negative` and `residual_wrong_direction`.
|
| 109 |
|
| 110 |
## Decision Rule For Masked Residual Jobs
|
| 111 |
|
|
|
|
| 116 |
residual result and present masking as a diagnostic of field over-selection.
|
| 117 |
- If masks fail, keep the story focused on residual scale calibration and the
|
| 118 |
larger same-state counterfactual mechanism.
|
| 119 |
+
|
| 120 |
+
## Decision Rule For Z-Score Retrieval Jobs
|
| 121 |
+
|
| 122 |
+
- If z-score retrieval beats 33.33%, promote state-normalized tangent retrieval
|
| 123 |
+
as the best deployment-clean bridge.
|
| 124 |
+
- If z-score masks only help with the anti-goal residual exclusions, frame
|
| 125 |
+
retrieval locality and residual family consistency as two sides of the same
|
| 126 |
+
tangent-transport bottleneck.
|
| 127 |
+
- If z-score retrieval fails, keep the raw nearest-state residual result as the
|
| 128 |
+
clean bridge and treat metric normalization as a negative ablation.
|
results/paper_table_status.json
CHANGED
|
@@ -298,7 +298,7 @@
|
|
| 298 |
"expert_proposal": "no",
|
| 299 |
"story_role": "state-normalized tangent retrieval ablation",
|
| 300 |
"fallback_success": null,
|
| 301 |
-
"pending_job": "",
|
| 302 |
"path_exists": false,
|
| 303 |
"status": "pending",
|
| 304 |
"success": null,
|
|
@@ -317,7 +317,7 @@
|
|
| 317 |
"expert_proposal": "no",
|
| 318 |
"story_role": "state-normalized typed tangent retrieval ablation",
|
| 319 |
"fallback_success": null,
|
| 320 |
-
"pending_job": "",
|
| 321 |
"path_exists": false,
|
| 322 |
"status": "pending",
|
| 323 |
"success": null,
|
|
@@ -336,7 +336,7 @@
|
|
| 336 |
"expert_proposal": "no",
|
| 337 |
"story_role": "state-normalized typed tangent retrieval ablation",
|
| 338 |
"fallback_success": null,
|
| 339 |
-
"pending_job": "",
|
| 340 |
"path_exists": false,
|
| 341 |
"status": "pending",
|
| 342 |
"success": null,
|
|
|
|
| 298 |
"expert_proposal": "no",
|
| 299 |
"story_role": "state-normalized tangent retrieval ablation",
|
| 300 |
"fallback_success": null,
|
| 301 |
+
"pending_job": "14859166/14859167",
|
| 302 |
"path_exists": false,
|
| 303 |
"status": "pending",
|
| 304 |
"success": null,
|
|
|
|
| 317 |
"expert_proposal": "no",
|
| 318 |
"story_role": "state-normalized typed tangent retrieval ablation",
|
| 319 |
"fallback_success": null,
|
| 320 |
+
"pending_job": "14859168/14859169",
|
| 321 |
"path_exists": false,
|
| 322 |
"status": "pending",
|
| 323 |
"success": null,
|
|
|
|
| 336 |
"expert_proposal": "no",
|
| 337 |
"story_role": "state-normalized typed tangent retrieval ablation",
|
| 338 |
"fallback_success": null,
|
| 339 |
+
"pending_job": "14859170/14859171",
|
| 340 |
"path_exists": false,
|
| 341 |
"status": "pending",
|
| 342 |
"success": null,
|
results/paper_table_status.md
CHANGED
|
@@ -18,9 +18,9 @@ Baseline h=16 policy: 29.74%
|
|
| 18 |
| retrieval_residual | Train-state counterfactual residual retrieval | complete | 32.12% | +2.38 pp | yes | no | no | transferable local tangent proposal |
|
| 19 |
| retrieval_residual_scale025 | Train-state residual retrieval, scale 0.25 | complete | 32.93% | +3.19 pp | yes | no | no | tangent transport scale ablation |
|
| 20 |
| retrieval_residual_scale050 | Train-state residual retrieval, scale 0.50 | complete | 33.33% | +3.59 pp | yes | no | no | tangent transport scale ablation |
|
| 21 |
-
| retrieval_residual_scale050_zscore | Train-state residual retrieval, scale 0.50, z-score retrieval | pending | pending | pending | yes | no | no | state-normalized tangent retrieval ablation |
|
| 22 |
-
| retrieval_residual_scale050_zscore_no_random_wrongdir | Train-state residual retrieval, scale 0.50, z-score retrieval, no random/wrong-direction residuals | pending | pending | pending | yes | no | no | state-normalized typed tangent retrieval ablation |
|
| 23 |
-
| retrieval_residual_scale025_zscore_no_random_wrongdir | Train-state residual retrieval, scale 0.25, z-score retrieval, no random/wrong-direction residuals | pending | pending | pending | yes | no | no | state-normalized typed tangent retrieval ablation |
|
| 24 |
| retrieval_residual_scale050_no_random | Train-state residual retrieval, scale 0.50, no random residuals | pending 14859141/14859142 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
| 25 |
| retrieval_residual_scale050_no_random_wrongdir | Train-state residual retrieval, scale 0.50, no random/wrong-direction residuals | pending 14859143/14859144 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
| 26 |
| retrieval_residual_scale025_no_random_wrongdir | Train-state residual retrieval, scale 0.25, no random/wrong-direction residuals | pending 14859145/14859146 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
|
|
|
| 18 |
| retrieval_residual | Train-state counterfactual residual retrieval | complete | 32.12% | +2.38 pp | yes | no | no | transferable local tangent proposal |
|
| 19 |
| retrieval_residual_scale025 | Train-state residual retrieval, scale 0.25 | complete | 32.93% | +3.19 pp | yes | no | no | tangent transport scale ablation |
|
| 20 |
| retrieval_residual_scale050 | Train-state residual retrieval, scale 0.50 | complete | 33.33% | +3.59 pp | yes | no | no | tangent transport scale ablation |
|
| 21 |
+
| retrieval_residual_scale050_zscore | Train-state residual retrieval, scale 0.50, z-score retrieval | pending 14859166/14859167 | pending | pending | yes | no | no | state-normalized tangent retrieval ablation |
|
| 22 |
+
| retrieval_residual_scale050_zscore_no_random_wrongdir | Train-state residual retrieval, scale 0.50, z-score retrieval, no random/wrong-direction residuals | pending 14859168/14859169 | pending | pending | yes | no | no | state-normalized typed tangent retrieval ablation |
|
| 23 |
+
| retrieval_residual_scale025_zscore_no_random_wrongdir | Train-state residual retrieval, scale 0.25, z-score retrieval, no random/wrong-direction residuals | pending 14859170/14859171 | pending | pending | yes | no | no | state-normalized typed tangent retrieval ablation |
|
| 24 |
| retrieval_residual_scale050_no_random | Train-state residual retrieval, scale 0.50, no random residuals | pending 14859141/14859142 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
| 25 |
| retrieval_residual_scale050_no_random_wrongdir | Train-state residual retrieval, scale 0.50, no random/wrong-direction residuals | pending 14859143/14859144 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
| 26 |
| retrieval_residual_scale025_no_random_wrongdir | Train-state residual retrieval, scale 0.25, no random/wrong-direction residuals | pending 14859145/14859146 | pending | pending | yes | no | no | anti-goal residual family mask ablation |
|
scripts/build_paper_table_status.py
CHANGED
|
@@ -173,6 +173,7 @@ SPECS = [
|
|
| 173 |
same_state_proposals="no",
|
| 174 |
expert_proposal="no",
|
| 175 |
story_role="state-normalized tangent retrieval ablation",
|
|
|
|
| 176 |
),
|
| 177 |
ResultSpec(
|
| 178 |
key="retrieval_residual_scale050_zscore_no_random_wrongdir",
|
|
@@ -182,6 +183,7 @@ SPECS = [
|
|
| 182 |
same_state_proposals="no",
|
| 183 |
expert_proposal="no",
|
| 184 |
story_role="state-normalized typed tangent retrieval ablation",
|
|
|
|
| 185 |
),
|
| 186 |
ResultSpec(
|
| 187 |
key="retrieval_residual_scale025_zscore_no_random_wrongdir",
|
|
@@ -191,6 +193,7 @@ SPECS = [
|
|
| 191 |
same_state_proposals="no",
|
| 192 |
expert_proposal="no",
|
| 193 |
story_role="state-normalized typed tangent retrieval ablation",
|
|
|
|
| 194 |
),
|
| 195 |
ResultSpec(
|
| 196 |
key="retrieval_residual_scale050_no_random",
|
|
@@ -200,7 +203,7 @@ SPECS = [
|
|
| 200 |
same_state_proposals="no",
|
| 201 |
expert_proposal="no",
|
| 202 |
story_role="anti-goal residual family mask ablation",
|
| 203 |
-
pending_job="
|
| 204 |
),
|
| 205 |
ResultSpec(
|
| 206 |
key="retrieval_residual_scale050_no_random_wrongdir",
|
|
@@ -210,7 +213,7 @@ SPECS = [
|
|
| 210 |
same_state_proposals="no",
|
| 211 |
expert_proposal="no",
|
| 212 |
story_role="anti-goal residual family mask ablation",
|
| 213 |
-
pending_job="
|
| 214 |
),
|
| 215 |
ResultSpec(
|
| 216 |
key="retrieval_residual_scale025_no_random_wrongdir",
|
|
@@ -220,7 +223,7 @@ SPECS = [
|
|
| 220 |
same_state_proposals="no",
|
| 221 |
expert_proposal="no",
|
| 222 |
story_role="anti-goal residual family mask ablation",
|
| 223 |
-
pending_job="
|
| 224 |
),
|
| 225 |
ResultSpec(
|
| 226 |
key="retrieval_residual_scale050_safe_types",
|
|
@@ -230,7 +233,7 @@ SPECS = [
|
|
| 230 |
same_state_proposals="no",
|
| 231 |
expert_proposal="no",
|
| 232 |
story_role="typed tangent-family mask ablation",
|
| 233 |
-
pending_job="
|
| 234 |
),
|
| 235 |
ResultSpec(
|
| 236 |
key="retrieval_residual_scale075",
|
|
|
|
| 173 |
same_state_proposals="no",
|
| 174 |
expert_proposal="no",
|
| 175 |
story_role="state-normalized tangent retrieval ablation",
|
| 176 |
+
pending_job="14859197/14859198",
|
| 177 |
),
|
| 178 |
ResultSpec(
|
| 179 |
key="retrieval_residual_scale050_zscore_no_random_wrongdir",
|
|
|
|
| 183 |
same_state_proposals="no",
|
| 184 |
expert_proposal="no",
|
| 185 |
story_role="state-normalized typed tangent retrieval ablation",
|
| 186 |
+
pending_job="14859199/14859200",
|
| 187 |
),
|
| 188 |
ResultSpec(
|
| 189 |
key="retrieval_residual_scale025_zscore_no_random_wrongdir",
|
|
|
|
| 193 |
same_state_proposals="no",
|
| 194 |
expert_proposal="no",
|
| 195 |
story_role="state-normalized typed tangent retrieval ablation",
|
| 196 |
+
pending_job="14859201/14859202",
|
| 197 |
),
|
| 198 |
ResultSpec(
|
| 199 |
key="retrieval_residual_scale050_no_random",
|
|
|
|
| 203 |
same_state_proposals="no",
|
| 204 |
expert_proposal="no",
|
| 205 |
story_role="anti-goal residual family mask ablation",
|
| 206 |
+
pending_job="14859188/14859189",
|
| 207 |
),
|
| 208 |
ResultSpec(
|
| 209 |
key="retrieval_residual_scale050_no_random_wrongdir",
|
|
|
|
| 213 |
same_state_proposals="no",
|
| 214 |
expert_proposal="no",
|
| 215 |
story_role="anti-goal residual family mask ablation",
|
| 216 |
+
pending_job="14859191/14859192",
|
| 217 |
),
|
| 218 |
ResultSpec(
|
| 219 |
key="retrieval_residual_scale025_no_random_wrongdir",
|
|
|
|
| 223 |
same_state_proposals="no",
|
| 224 |
expert_proposal="no",
|
| 225 |
story_role="anti-goal residual family mask ablation",
|
| 226 |
+
pending_job="14859193/14859194",
|
| 227 |
),
|
| 228 |
ResultSpec(
|
| 229 |
key="retrieval_residual_scale050_safe_types",
|
|
|
|
| 233 |
same_state_proposals="no",
|
| 234 |
expert_proposal="no",
|
| 235 |
story_role="typed tangent-family mask ablation",
|
| 236 |
+
pending_job="14859195/14859196",
|
| 237 |
),
|
| 238 |
ResultSpec(
|
| 239 |
key="retrieval_residual_scale075",
|
scripts/slurm/smoke_retrieval_metric_unit.sbatch
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
#SBATCH --job-name=smoke_retrieval_metric
|
| 3 |
+
#SBATCH --account=def-yalda
|
| 4 |
+
#SBATCH --nodes=1
|
| 5 |
+
#SBATCH --ntasks=1
|
| 6 |
+
#SBATCH --cpus-per-task=1
|
| 7 |
+
#SBATCH --mem=1G
|
| 8 |
+
#SBATCH --time=00:05:00
|
| 9 |
+
#SBATCH --output=outputs/hpc/logs/%x_%j.out
|
| 10 |
+
#SBATCH --error=outputs/hpc/logs/%x_%j.err
|
| 11 |
+
|
| 12 |
+
set -euo pipefail
|
| 13 |
+
|
| 14 |
+
PROJECT_DIR="${PROJECT_DIR:-$SLURM_SUBMIT_DIR}"
|
| 15 |
+
SCRATCH_ROOT="/scratch/$USER/dovla"
|
| 16 |
+
SIF="${SIF:-$SCRATCH_ROOT/containers/pytorch_2.7.1_cuda12.8.sif}"
|
| 17 |
+
PYTHON="${PYTHON:-$SCRATCH_ROOT/envs/maniskill/bin/python}"
|
| 18 |
+
|
| 19 |
+
module load StdEnv/2023 apptainer/1.4.5
|
| 20 |
+
cd "$PROJECT_DIR"
|
| 21 |
+
mkdir -p outputs/hpc/logs
|
| 22 |
+
|
| 23 |
+
export OMP_NUM_THREADS=1
|
| 24 |
+
export OPENBLAS_NUM_THREADS=1
|
| 25 |
+
export MKL_NUM_THREADS=1
|
| 26 |
+
export DOVLA_TORCH_THREADS=1
|
| 27 |
+
|
| 28 |
+
apptainer exec \
|
| 29 |
+
--env "OMP_NUM_THREADS=1,OPENBLAS_NUM_THREADS=1,MKL_NUM_THREADS=1,DOVLA_TORCH_THREADS=1,PYTHONDONTWRITEBYTECODE=1" \
|
| 30 |
+
-B "$PROJECT_DIR:$PROJECT_DIR" \
|
| 31 |
+
-B "/scratch/$USER:/scratch/$USER" \
|
| 32 |
+
"$SIF" "$PYTHON" - <<'PY'
|
| 33 |
+
from types import SimpleNamespace
|
| 34 |
+
from pathlib import Path
|
| 35 |
+
|
| 36 |
+
import numpy as np
|
| 37 |
+
|
| 38 |
+
from dovla_cil.data.schema import ActionChunk
|
| 39 |
+
from dovla_cil.eval.maniskill_policy_rollout import (
|
| 40 |
+
_RolloutCase,
|
| 41 |
+
_attach_retrieved_residual_candidates,
|
| 42 |
+
)
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
def record(group_id, candidate_type, action_value, feature):
|
| 46 |
+
return SimpleNamespace(
|
| 47 |
+
group_id=group_id,
|
| 48 |
+
task_id="PickCube-v1",
|
| 49 |
+
candidate_type=candidate_type,
|
| 50 |
+
record_id=f"{group_id}-{candidate_type}-{action_value}",
|
| 51 |
+
observation_inline={"features": feature},
|
| 52 |
+
action_chunk=ActionChunk(
|
| 53 |
+
representation="continuous",
|
| 54 |
+
horizon=1,
|
| 55 |
+
values=[[action_value, 0.0]],
|
| 56 |
+
),
|
| 57 |
+
)
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
groups = {
|
| 61 |
+
"train_a": [
|
| 62 |
+
record("train_a", "expert", 1.0, [0.0, 0.0]),
|
| 63 |
+
record("train_a", "near_miss", 1.1, [0.0, 0.0]),
|
| 64 |
+
],
|
| 65 |
+
"train_b": [
|
| 66 |
+
record("train_b", "expert", 2.0, [10.0, 1.0]),
|
| 67 |
+
record("train_b", "near_miss", 2.2, [10.0, 1.0]),
|
| 68 |
+
],
|
| 69 |
+
"train_c": [
|
| 70 |
+
record("train_c", "expert", 3.0, [11.0, 1.0]),
|
| 71 |
+
record("train_c", "near_miss", 3.3, [11.0, 1.0]),
|
| 72 |
+
],
|
| 73 |
+
"heldout": [
|
| 74 |
+
record("heldout", "expert", 9.0, [0.0, 1.0]),
|
| 75 |
+
record("heldout", "near_miss", 9.9, [0.0, 1.0]),
|
| 76 |
+
],
|
| 77 |
+
}
|
| 78 |
+
dataset = SimpleNamespace(
|
| 79 |
+
group_ids=list(groups),
|
| 80 |
+
get_group=lambda group_id: groups[group_id],
|
| 81 |
+
)
|
| 82 |
+
case = _RolloutCase(
|
| 83 |
+
group_id="heldout",
|
| 84 |
+
task_id="PickCube-v1",
|
| 85 |
+
source_dataset=Path("."),
|
| 86 |
+
state={},
|
| 87 |
+
observation={"features": [0.0, 1.0]},
|
| 88 |
+
instruction="pick",
|
| 89 |
+
oracle_score=1.0,
|
| 90 |
+
oracle_success=True,
|
| 91 |
+
expert_score=1.0,
|
| 92 |
+
expert_success=True,
|
| 93 |
+
best_action_values=[[9.9, 0.0]],
|
| 94 |
+
candidate_action_values=[],
|
| 95 |
+
candidate_types=[],
|
| 96 |
+
)
|
| 97 |
+
|
| 98 |
+
[raw_attached] = _attach_retrieved_residual_candidates(
|
| 99 |
+
dataset,
|
| 100 |
+
[case],
|
| 101 |
+
heldout_group_ids=["heldout"],
|
| 102 |
+
obs_dim=2,
|
| 103 |
+
observation_mode="state",
|
| 104 |
+
retrieval_neighbors=1,
|
| 105 |
+
retrieval_metric="raw",
|
| 106 |
+
)
|
| 107 |
+
[zscore_attached] = _attach_retrieved_residual_candidates(
|
| 108 |
+
dataset,
|
| 109 |
+
[case],
|
| 110 |
+
heldout_group_ids=["heldout"],
|
| 111 |
+
obs_dim=2,
|
| 112 |
+
observation_mode="state",
|
| 113 |
+
retrieval_neighbors=1,
|
| 114 |
+
retrieval_metric="zscore",
|
| 115 |
+
)
|
| 116 |
+
|
| 117 |
+
assert raw_attached.candidate_source_group_id == "train_a", raw_attached
|
| 118 |
+
assert zscore_attached.candidate_source_group_id == "train_b", zscore_attached
|
| 119 |
+
expected = np.asarray([[[0.0, 0.0]], [[0.2, 0.0]]], dtype=np.float32)
|
| 120 |
+
actual = np.asarray(zscore_attached.candidate_action_values, dtype=np.float32)
|
| 121 |
+
assert np.allclose(actual, expected), actual
|
| 122 |
+
print({"status": "ok", "raw": raw_attached.candidate_source_group_id, "zscore": zscore_attached.candidate_source_group_id})
|
| 123 |
+
PY
|