Shuaijun commited on
Commit
7fd2dc5
·
0 Parent(s):

Initial public release

Browse files
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 BAS-VLA Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
NOTICE.md ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ # Artifact sources
2
+
3
+ The residual adapter is a BAS-VLA project training artifact from the OpenVLA / LIBERO-10 offline action-calibration setting. Project contributions use the MIT License in `LICENSE`.
4
+
5
+ The 400 action triplets, original agent-view observations, sampled simulator states, demonstration initial states, and two BDDL scenes are derived from [LIBERO](https://github.com/Lifelong-Robot-Learning/LIBERO) and its [demonstration dataset](https://huggingface.co/datasets/yifengzhu-hf/LIBERO-datasets). The exact source demonstration filename, demo ID and frame index are retained in each record. LIBERO's copyright and MIT notice are preserved in `licenses/LIBERO-MIT.txt`.
6
+
7
+ The base carrier is [openvla/openvla-7b](https://huggingface.co/openvla/openvla-7b). The bundled normalization statistics come from [moojink/openvla-7b-oft-finetuned-libero-10](https://huggingface.co/moojink/openvla-7b-oft-finetuned-libero-10); their source is recorded in `normalization/source.json`, with the OpenVLA-OFT MIT notice in `licenses/OpenVLA-OFT-MIT.txt`.
8
+
9
+ The source implementation tokenizes instructions with lowercase `[a-z0-9]+` and uses binary presence features. The released weight file preserves every original tensor and is loadable by the public `ResidualAdapter` class. `example.py` applies it to one released matched record on CPU.
README.md ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ license: mit
4
+ base_model: openvla/openvla-7b
5
+ base_model_relation: adapter
6
+ tags:
7
+ - robotics
8
+ - vision-language-action
9
+ - residual-adapter
10
+ - bas-vla
11
+ - arxiv:2609.23650
12
+ ---
13
+
14
+ # BAS-VLA: OpenVLA residual adapter
15
+
16
+ [Paper](https://arxiv.org/abs/2609.23650) · [Project](https://nebulis-lab.com/BAS-VLA/) · [Code](https://github.com/NEBULIS-Lab/BAS-VLA)
17
+
18
+ This release provides a trained text-conditioned residual adapter and matched inputs for the **OpenVLA / LIBERO-10 offline action-calibration setting**, a selected subset of the settings studied in *Beyond Appearance Shifts: Task-Semantic Action Calibration for VLA Models*.
19
+
20
+ Each record pairs a shared observation with clean, task-preserving, and semantics-changing instructions and their frozen-carrier actions. The included cases cover target-object and executability-condition changes. The adapter applies a bounded action correction using the base action and binary bag-of-words instruction features.
21
+
22
+ ## Files
23
+
24
+ | Location | Contents |
25
+ | --- | --- |
26
+ | `adapter/` | Trained residual weights, vocabulary, and loading/action metadata |
27
+ | `data/triplets.json` | Matched action triplets, expert actions, and demonstration-level train/validation/test assignments |
28
+ | `data/observations.npz` | Source agent-view RGB images aligned with the records |
29
+ | `data/states/` | Sampled simulator states and source demonstration initial states |
30
+ | `data/scenes/` | The corresponding LIBERO BDDL scenes |
31
+ | `data/cases.json`, `data/manifest.json` | Instruction triplets, source references, array alignment, and input preprocessing |
32
+ | `normalization/` | Action statistics used to construct the frozen OpenVLA actions and their source information |
33
+ | `training_config.json`, `offline_metrics.json` | Training objective configuration and offline evaluation summaries |
34
+ | `example.py` | CPU example applying the adapter to a supplied record |
35
+
36
+ ## Download and use
37
+
38
+ Install the [BAS-VLA code](https://github.com/NEBULIS-Lab/BAS-VLA) and its dependencies, then download the files:
39
+
40
+ ```python
41
+ from huggingface_hub import snapshot_download
42
+
43
+ snapshot_download("Shuaijun/BAS-VLA", local_dir="artifacts/bas-vla")
44
+ ```
45
+
46
+ Run the included example from the directory containing `artifacts/`:
47
+
48
+ ```bash
49
+ python artifacts/bas-vla/example.py
50
+ ```
51
+
52
+ The example loads the adapter on CPU and prints calibrated clean, control, and changed-instruction actions for a held-out record. Use `--record-index` to select another record.
53
+
54
+ ## Action and feature conventions
55
+
56
+ Use the exact contract in `adapter/adapter_metadata.json` when supplying new actions. The carrier is `openvla/openvla-7b`; the cached actions use the bundled `libero_10_no_noops` statistics from `moojink/openvla-7b-oft-finetuned-libero-10`, followed by the documented gripper transform. Instructions use the supplied binary bag-of-words vocabulary.
57
+
58
+ The checkpoint's action-space identifier is `openvla_libero10_unnormalized_sign_gripper_offline`. The code repository's OpenPI and OpenVLA-OFT rollout runners require adapters matched to their own carrier and action conventions. Load this checkpoint through the supplied example or the `ResidualAdapter` class with the recorded convention.
59
+
60
+ `data/manifest.json` explains how RGB arrays, simulator states, scene files, and demonstration frames align. LIBERO supplies the scene assets and simulator. Base VLA weights are obtained separately from their upstream model repositories.
61
+
62
+ ## Sources and license
63
+
64
+ BAS-VLA contributions are released under the MIT License. The included LIBERO-derived data and OpenVLA-OFT normalization statistics retain their upstream MIT notices. See [NOTICE.md](NOTICE.md) and `licenses/` for the source links and notices.
65
+
66
+ ## Citation
67
+
68
+ ```bibtex
69
+ @inproceedings{liu2026basvla,
70
+ title = {Beyond Appearance Shifts: Task-Semantic Action Calibration for VLA Models},
71
+ author = {Liu, Shuaijun and You, Feiyang and Wu, Chengyu and Hao, Shuyang and Zhang, Chenglong and Cai, Jingyao and Chen, Xingwei and Su, Ningxin},
72
+ booktitle = {Advances in Neural Information Processing Systems},
73
+ year = {2026},
74
+ url = {https://arxiv.org/abs/2609.23650}
75
+ }
76
+ ```
adapter/adapter_metadata.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "adapter_name": "openvla_libero10_offline_text_action_adapter",
4
+ "artifact_type": "trained_residual_adapter",
5
+ "carrier": "openvla/openvla-7b",
6
+ "input_dim": 28,
7
+ "hidden_dim": 128,
8
+ "output_dim": 7,
9
+ "delta_scale": 0.8,
10
+ "vocab_size": 21,
11
+ "feature_type": "binary_bow",
12
+ "feature_normalization": "binary_presence_no_scaling",
13
+ "feature_tokenization": "lowercase regex [a-z0-9]+",
14
+ "feature_source": "explicit vocabulary in vocab.json, built from the two configured instruction triplets",
15
+ "action_space": "openvla_libero10_unnormalized_sign_gripper_offline",
16
+ "action_layout": "per_step",
17
+ "action_normalization": {
18
+ "carrier_output": "OpenVLA predict_action unnormalization using libero_10_no_noops action statistics",
19
+ "statistics_file": "../normalization/dataset_statistics.json",
20
+ "statistics_source": "moojink/openvla-7b-oft-finetuned-libero-10",
21
+ "continuous_coordinates": "the first six predict_action output coordinates, without additional scaling",
22
+ "gripper_transform": "g = 2 * g - 1; g = sign(g) if g != 0 else -1",
23
+ "reference_actions": "original LIBERO HDF5 actions at the recorded demo/frame",
24
+ "adapter_output": "residual applied to all seven coordinates; no post-adapter clipping or gripper inversion in the offline evaluator"
25
+ },
26
+ "objective_config": {
27
+ "objective_preset": "legacy",
28
+ "squared_error_reduction": "mean",
29
+ "lambda_imitation": 1.0,
30
+ "lambda_expert_margin": 1.0,
31
+ "hidden_dim": 128,
32
+ "delta_scale": 0.8,
33
+ "margin": 0.3,
34
+ "lambda_consistency": 0.5,
35
+ "lambda_margin": 2.0,
36
+ "lambda_anchor": 0.05,
37
+ "lr": 0.002,
38
+ "epochs": 100,
39
+ "batch_size": 64
40
+ },
41
+ "seed": null,
42
+ "seed_provenance": "The original results file omits the run seed; the source trainer parser defaults to 7.",
43
+ "training_setting": "LIBERO-10 offline action calibration, target-object and executability-condition instruction triplets",
44
+ "training_timestamp": "2026-04-17 17:27:07",
45
+ "compatibility": {
46
+ "implementation": "bas_vla.breaking.residual_adapter.ResidualAdapter",
47
+ "load_state_dict": "strict; no tensor conversion",
48
+ "runtime_action_space": "openvla_libero10_unnormalized_sign_gripper_offline",
49
+ "deployment_contract": "Use only with actions and instruction features following this metadata. The published OpenPI and OpenVLA-OFT runners use different action-space identifiers."
50
+ },
51
+ "files": {
52
+ "weights": "residual_adapter.pt",
53
+ "vocab": "vocab.json",
54
+ "records": "../data/triplets.json",
55
+ "metrics": "../offline_metrics.json"
56
+ }
57
+ }
adapter/residual_adapter.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cba0b8fd9c53a559145096400664677e443445f1b7e9b7c95fa779e461e03f63
3
+ size 87525
adapter/vocab.json ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "put": 0,
3
+ "both": 1,
4
+ "the": 2,
5
+ "alphabet": 3,
6
+ "soup": 4,
7
+ "and": 5,
8
+ "tomato": 6,
9
+ "sauce": 7,
10
+ "in": 8,
11
+ "basket": 9,
12
+ "butter": 10,
13
+ "place": 11,
14
+ "into": 12,
15
+ "turn": 13,
16
+ "on": 14,
17
+ "stove": 15,
18
+ "moka": 16,
19
+ "pot": 17,
20
+ "it": 18,
21
+ "off": 19,
22
+ "switch": 20
23
+ }
data/cases.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "suite": "libero_10",
3
+ "cases": [
4
+ {
5
+ "case_id": "break_target_object",
6
+ "family": "target_object",
7
+ "suite": "libero_10",
8
+ "task_id": 0,
9
+ "demo_relpath": "libero_10/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket_demo.hdf5",
10
+ "clean_instruction": "put both the alphabet soup and the tomato sauce in the basket",
11
+ "break_instruction": "put both the alphabet soup and the butter in the basket",
12
+ "control_instruction": "place both the alphabet soup and the tomato sauce into the basket",
13
+ "changed_semantics": "target object tomato sauce -> butter",
14
+ "bddl_file": "scenes/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl"
15
+ },
16
+ {
17
+ "case_id": "break_executability_condition",
18
+ "family": "executability_condition",
19
+ "suite": "libero_10",
20
+ "task_id": 2,
21
+ "demo_relpath": "libero_10/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it_demo.hdf5",
22
+ "clean_instruction": "turn on the stove and put the moka pot on it",
23
+ "break_instruction": "turn off the stove and put the moka pot on it",
24
+ "control_instruction": "switch on the stove and put the moka pot on it",
25
+ "changed_semantics": "turn on -> turn off",
26
+ "bddl_file": "scenes/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl"
27
+ }
28
+ ]
29
+ }
data/manifest.json ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "setting": "OpenVLA / LIBERO-10 offline action calibration",
3
+ "num_records": 400,
4
+ "split_counts": {
5
+ "train": 240,
6
+ "val": 80,
7
+ "test": 80
8
+ },
9
+ "source_dataset": "https://huggingface.co/datasets/yifengzhu-hf/LIBERO-datasets",
10
+ "source_code": "https://github.com/Lifelong-Robot-Learning/LIBERO",
11
+ "records_file": "triplets.json",
12
+ "observation_file": "observations.npz",
13
+ "observation_array": "agentview_rgb",
14
+ "observation_shape": [
15
+ 400,
16
+ 128,
17
+ 128,
18
+ 3
19
+ ],
20
+ "observation_dtype": "uint8",
21
+ "observation_alignment": "triplets.json observation_index is the first-axis index of agentview_rgb; original HDF5 images with no flip, crop or resizing",
22
+ "paired_inputs": "All three instruction/action pairs in a record share this same source observation and simulator state.",
23
+ "source_states": {
24
+ "break_target_object": {
25
+ "sampled_states_shape": [
26
+ 200,
27
+ 123
28
+ ],
29
+ "demo_initial_states_shape": [
30
+ 50,
31
+ 123
32
+ ],
33
+ "sampled_states_dtype": "float64"
34
+ },
35
+ "break_executability_condition": {
36
+ "sampled_states_shape": [
37
+ 200,
38
+ 47
39
+ ],
40
+ "demo_initial_states_shape": [
41
+ 50,
42
+ 47
43
+ ],
44
+ "sampled_states_dtype": "float64"
45
+ }
46
+ },
47
+ "state_alignment": "Per-case NPZ record_indices indexes triplets.json. demo_numbers indexes demo_initial_states. States are source LIBERO simulator snapshots; scene models and simulator conventions come from LIBERO.",
48
+ "split_policy": {
49
+ "demo_order": "integer suffix in demo_N",
50
+ "train_demos_per_case": [
51
+ 0,
52
+ 1,
53
+ 2,
54
+ 3,
55
+ 4,
56
+ 5,
57
+ 6,
58
+ 7,
59
+ 8,
60
+ 9,
61
+ 10,
62
+ 11,
63
+ 12,
64
+ 13,
65
+ 14,
66
+ 15,
67
+ 16,
68
+ 17,
69
+ 18,
70
+ 19,
71
+ 20,
72
+ 21,
73
+ 22,
74
+ 23,
75
+ 24,
76
+ 25,
77
+ 26,
78
+ 27,
79
+ 28,
80
+ 29
81
+ ],
82
+ "val_demos_per_case": [
83
+ 30,
84
+ 31,
85
+ 32,
86
+ 33,
87
+ 34,
88
+ 35,
89
+ 36,
90
+ 37,
91
+ 38,
92
+ 39
93
+ ],
94
+ "test_demos_per_case": [
95
+ 40,
96
+ 41,
97
+ 42,
98
+ 43,
99
+ 44,
100
+ 45,
101
+ 46,
102
+ 47,
103
+ 48,
104
+ 49
105
+ ],
106
+ "frames_per_demo": 4,
107
+ "frame_rule": "round(linspace(0, number_of_frames - 1, 4))"
108
+ },
109
+ "carrier_input_preprocessing": {
110
+ "source_view": "agentview_rgb",
111
+ "center_crop_area_fraction": 0.9,
112
+ "resize": 224,
113
+ "resample": "PIL LANCZOS",
114
+ "prompt": "In: What action should the robot take to {instruction.lower()}?\nOut:",
115
+ "sampling": "do_sample=False",
116
+ "provenance": "Source generator implementation and model registry; resize=224 is the parser default, and the source results do not store preprocessing CLI overrides."
117
+ },
118
+ "expert_reference": "clean LIBERO demonstration action at the same source demo/frame",
119
+ "license_file": "../licenses/LIBERO-MIT.txt"
120
+ }
data/observations.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7fca8917d6bb9011e0975a3859472901c682f5dc7ed42c3b55be71bcae6f30cd
3
+ size 9108424
data/scenes/KITCHEN_SCENE3_turn_on_the_stove_and_put_the_moka_pot_on_it.bddl ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (define (problem LIBERO_Kitchen_Tabletop_Manipulation)
2
+ (:domain robosuite)
3
+ (:language turn on the stove and put the moka pot on it)
4
+ (:regions
5
+ (flat_stove_init_region
6
+ (:target kitchen_table)
7
+ (:ranges (
8
+ (-0.21000000000000002 0.19 -0.19 0.21000000000000002)
9
+ )
10
+ )
11
+ (:yaw_rotation (
12
+ (0.0 0.0)
13
+ )
14
+ )
15
+ )
16
+ (frypan_init_region
17
+ (:target kitchen_table)
18
+ (:ranges (
19
+ (-0.07500000000000001 -0.275 -0.025 -0.225)
20
+ )
21
+ )
22
+ (:yaw_rotation (
23
+ (0.0 0.0)
24
+ )
25
+ )
26
+ )
27
+ (moka_pot_init_region
28
+ (:target kitchen_table)
29
+ (:ranges (
30
+ (0.025 -0.025 0.07500000000000001 0.025)
31
+ )
32
+ )
33
+ (:yaw_rotation (
34
+ (0.0 0.0)
35
+ )
36
+ )
37
+ )
38
+ (cook_region
39
+ (:target flat_stove_1)
40
+ )
41
+ )
42
+
43
+ (:fixtures
44
+ kitchen_table - kitchen_table
45
+ flat_stove_1 - flat_stove
46
+ )
47
+
48
+ (:objects
49
+ chefmate_8_frypan_1 - chefmate_8_frypan
50
+ moka_pot_1 - moka_pot
51
+ )
52
+
53
+ (:obj_of_interest
54
+ moka_pot_1
55
+ flat_stove_1
56
+ )
57
+
58
+ (:init
59
+ (On flat_stove_1 kitchen_table_flat_stove_init_region)
60
+ (On chefmate_8_frypan_1 kitchen_table_frypan_init_region)
61
+ (On moka_pot_1 kitchen_table_moka_pot_init_region)
62
+ )
63
+
64
+ (:goal
65
+ (And (Turnon flat_stove_1) (On moka_pot_1 flat_stove_1_cook_region))
66
+ )
67
+
68
+ )
data/scenes/LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket.bddl ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (define (problem LIBERO_Living_Room_Tabletop_Manipulation)
2
+ (:domain robosuite)
3
+ (:language put both the alphabet soup and the tomato sauce in the basket)
4
+ (:regions
5
+ (basket_init_region
6
+ (:target living_room_table)
7
+ (:ranges (
8
+ (-0.01 0.25 0.01 0.27)
9
+ )
10
+ )
11
+ (:yaw_rotation (
12
+ (0.0 0.0)
13
+ )
14
+ )
15
+ )
16
+ (milk_init_region
17
+ (:target living_room_table)
18
+ (:ranges (
19
+ (0.025 -0.125 0.07500000000000001 -0.07500000000000001)
20
+ )
21
+ )
22
+ (:yaw_rotation (
23
+ (0.0 0.0)
24
+ )
25
+ )
26
+ )
27
+ (cream_cheese_init_region
28
+ (:target living_room_table)
29
+ (:ranges (
30
+ (0.07500000000000001 -0.225 0.125 -0.17500000000000002)
31
+ )
32
+ )
33
+ (:yaw_rotation (
34
+ (0.0 0.0)
35
+ )
36
+ )
37
+ )
38
+ (orange_juice_init_region
39
+ (:target living_room_table)
40
+ (:ranges (
41
+ (-0.025 -0.275 0.025 -0.225)
42
+ )
43
+ )
44
+ (:yaw_rotation (
45
+ (0.0 0.0)
46
+ )
47
+ )
48
+ )
49
+ (tomato_sauce_init_region
50
+ (:target living_room_table)
51
+ (:ranges (
52
+ (-0.125 0.025 -0.07500000000000001 0.07500000000000001)
53
+ )
54
+ )
55
+ (:yaw_rotation (
56
+ (0.0 0.0)
57
+ )
58
+ )
59
+ )
60
+ (alphabet_soup_init_region
61
+ (:target living_room_table)
62
+ (:ranges (
63
+ (-0.125 -0.175 -0.07500000000000001 -0.125)
64
+ )
65
+ )
66
+ (:yaw_rotation (
67
+ (0.0 0.0)
68
+ )
69
+ )
70
+ )
71
+ (butter_init_region
72
+ (:target living_room_table)
73
+ (:ranges (
74
+ (0.025 0.025 0.07500000000000001 0.07500000000000001)
75
+ )
76
+ )
77
+ (:yaw_rotation (
78
+ (0.0 0.0)
79
+ )
80
+ )
81
+ )
82
+ (ketchup_init_region
83
+ (:target living_room_table)
84
+ (:ranges (
85
+ (-0.275 -0.175 -0.225 -0.125)
86
+ )
87
+ )
88
+ (:yaw_rotation (
89
+ (0.0 0.0)
90
+ )
91
+ )
92
+ )
93
+ (contain_region
94
+ (:target basket_1)
95
+ )
96
+ )
97
+
98
+ (:fixtures
99
+ living_room_table - living_room_table
100
+ )
101
+
102
+ (:objects
103
+ alphabet_soup_1 - alphabet_soup
104
+ cream_cheese_1 - cream_cheese
105
+ tomato_sauce_1 - tomato_sauce
106
+ ketchup_1 - ketchup
107
+ orange_juice_1 - orange_juice
108
+ milk_1 - milk
109
+ butter_1 - butter
110
+ basket_1 - basket
111
+ )
112
+
113
+ (:obj_of_interest
114
+ alphabet_soup_1
115
+ tomato_sauce_1
116
+ basket_1
117
+ )
118
+
119
+ (:init
120
+ (On alphabet_soup_1 living_room_table_alphabet_soup_init_region)
121
+ (On cream_cheese_1 living_room_table_cream_cheese_init_region)
122
+ (On tomato_sauce_1 living_room_table_tomato_sauce_init_region)
123
+ (On ketchup_1 living_room_table_ketchup_init_region)
124
+ (On milk_1 living_room_table_milk_init_region)
125
+ (On orange_juice_1 living_room_table_orange_juice_init_region)
126
+ (On butter_1 living_room_table_butter_init_region)
127
+ (On basket_1 living_room_table_basket_init_region)
128
+ )
129
+
130
+ (:goal
131
+ (And (In alphabet_soup_1 basket_1_contain_region) (In tomato_sauce_1 basket_1_contain_region))
132
+ )
133
+
134
+ )
data/states/break_executability_condition.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2fa5b77875f2a4292fb198c8fc4c65c9cb2d6638ed4090d2f0e7e6add8964595
3
+ size 72539
data/states/break_target_object.npz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ceb28389d3c8066c542b68dba96d1002d58bbc9a1179f23cd6fd4f69c3582758
3
+ size 170568
data/triplets.json ADDED
The diff for this file is too large to render. See raw diff
 
example.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Apply the released adapter to one matched offline record on CPU.
2
+
3
+ Install the BAS-VLA code repository and its dependencies first. The input action
4
+ contract is recorded in adapter/adapter_metadata.json. Use that exact contract
5
+ when supplying new actions from a carrier.
6
+ """
7
+ from __future__ import annotations
8
+
9
+ import argparse
10
+ import json
11
+ from pathlib import Path
12
+
13
+ import numpy as np
14
+ import torch
15
+
16
+ from bas_vla.breaking.residual_adapter import ResidualAdapter, encode_instruction_bow
17
+
18
+
19
+ def main() -> None:
20
+ parser = argparse.ArgumentParser(description=__doc__)
21
+ parser.add_argument("--artifact-dir", type=Path, default=Path(__file__).resolve().parent)
22
+ parser.add_argument("--record-index", type=int, default=160, help="Default: first held-out test record.")
23
+ args = parser.parse_args()
24
+ root = args.artifact_dir
25
+ meta = json.loads((root / "adapter/adapter_metadata.json").read_text())
26
+ vocab = json.loads((root / "adapter/vocab.json").read_text())
27
+ records = json.loads((root / "data/triplets.json").read_text())
28
+ if not 0 <= args.record_index < len(records):
29
+ parser.error("record-index is outside the released records")
30
+ record = records[args.record_index]
31
+ model = ResidualAdapter(
32
+ input_dim=meta["input_dim"], hidden_dim=meta["hidden_dim"],
33
+ output_dim=meta["output_dim"], delta_scale=meta["delta_scale"],
34
+ )
35
+ weights = torch.load(root / "adapter/residual_adapter.pt", map_location="cpu", weights_only=True)
36
+ model.load_state_dict(weights, strict=True)
37
+ model.eval()
38
+ outputs = {}
39
+ with torch.no_grad():
40
+ for variant in ("clean", "control", "break"):
41
+ action = np.asarray(record[f"{variant}_base_action"], dtype=np.float32)
42
+ features = encode_instruction_bow(record[f"{variant}_instruction"], vocab)
43
+ calibrated = model(torch.from_numpy(action[None]), torch.from_numpy(features[None]))[0]
44
+ outputs[variant] = {
45
+ "instruction": record[f"{variant}_instruction"],
46
+ "base_action": action.tolist(), "calibrated_action": calibrated.tolist(),
47
+ }
48
+ print(json.dumps({
49
+ "record_id": record["record_id"], "split": record["split"],
50
+ "action_space": meta["action_space"], "outputs": outputs,
51
+ }, indent=2))
52
+
53
+
54
+ if __name__ == "__main__":
55
+ main()
licenses/LIBERO-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Lifelong Robot Learning
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
licenses/OpenVLA-OFT-MIT.txt ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Moo Jin Kim, Chelsea Finn, Percy Liang.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
normalization/dataset_statistics.json ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "libero_10_no_noops": {
3
+ "action": {
4
+ "mean": [
5
+ 0.01820324920117855,
6
+ 0.05858374014496803,
7
+ -0.05592384561896324,
8
+ 0.004626928828656673,
9
+ 0.00289608770981431,
10
+ -0.007673131301999092,
11
+ 0.5457824468612671
12
+ ],
13
+ "std": [
14
+ 0.2825464606285095,
15
+ 0.35904666781425476,
16
+ 0.3673802614212036,
17
+ 0.03770702704787254,
18
+ 0.05429719388484955,
19
+ 0.08725254982709885,
20
+ 0.49815231561660767
21
+ ],
22
+ "max": [
23
+ 0.9375,
24
+ 0.9375,
25
+ 0.9375,
26
+ 0.30000001192092896,
27
+ 0.29357144236564636,
28
+ 0.375,
29
+ 1.0
30
+ ],
31
+ "min": [
32
+ -0.9375,
33
+ -0.9375,
34
+ -0.9375,
35
+ -0.23642857372760773,
36
+ -0.3053571283817291,
37
+ -0.3675000071525574,
38
+ 0.0
39
+ ],
40
+ "q01": [
41
+ -0.6348214149475098,
42
+ -0.7741071581840515,
43
+ -0.7633928656578064,
44
+ -0.09749999642372131,
45
+ -0.14819999992847435,
46
+ -0.2742857038974762,
47
+ 0.0
48
+ ],
49
+ "q99": [
50
+ 0.7714285850524902,
51
+ 0.8464285731315613,
52
+ 0.9375,
53
+ 0.13928571343421936,
54
+ 0.15964286029338837,
55
+ 0.3246428668498993,
56
+ 1.0
57
+ ],
58
+ "mask": [
59
+ true,
60
+ true,
61
+ true,
62
+ true,
63
+ true,
64
+ true,
65
+ false
66
+ ]
67
+ },
68
+ "proprio": {
69
+ "mean": [
70
+ -0.04190658777952194,
71
+ 0.03539430722594261,
72
+ 0.8257141709327698,
73
+ 2.908308267593384,
74
+ -0.5562185049057007,
75
+ -0.16649018228054047,
76
+ 0.028316624462604523,
77
+ -0.028561657294631004
78
+ ],
79
+ "std": [
80
+ 0.10743364691734314,
81
+ 0.14424669742584229,
82
+ 0.2572328448295593,
83
+ 0.3441362977027893,
84
+ 1.234421730041504,
85
+ 0.3579835891723633,
86
+ 0.013308707624673843,
87
+ 0.013174631632864475
88
+ ],
89
+ "max": [
90
+ 0.21031762659549713,
91
+ 0.39128610491752625,
92
+ 1.3332009315490723,
93
+ 3.6714255809783936,
94
+ 3.560650587081909,
95
+ 1.386339545249939,
96
+ 0.04160946607589722,
97
+ 0.0013633022317662835
98
+ ],
99
+ "min": [
100
+ -0.4828203022480011,
101
+ -0.3255046010017395,
102
+ 0.445506751537323,
103
+ 1.1321442127227783,
104
+ -3.641430377960205,
105
+ -1.842738389968872,
106
+ -0.0010040868073701859,
107
+ -0.04111652821302414
108
+ ],
109
+ "q01": [
110
+ -0.3899900782108307,
111
+ -0.2838300323486328,
112
+ 0.44795057058334353,
113
+ 1.8810229921340942,
114
+ -2.886677579879761,
115
+ -1.1599004411697387,
116
+ 0.002066459748893976,
117
+ -0.04001387819647789
118
+ ],
119
+ "q99": [
120
+ 0.1530261474847791,
121
+ 0.32915401458740223,
122
+ 1.2546923208236693,
123
+ 3.303542451858519,
124
+ 2.7496529006957933,
125
+ 0.6893712210655194,
126
+ 0.040048558115959164,
127
+ -0.0017598449345678235
128
+ ]
129
+ },
130
+ "num_transitions": 101469,
131
+ "num_trajectories": 379
132
+ }
133
+ }
normalization/source.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "moojink/openvla-7b-oft-finetuned-libero-10",
3
+ "file": "dataset_statistics.json",
4
+ "key": "libero_10_no_noops",
5
+ "url": "https://huggingface.co/moojink/openvla-7b-oft-finetuned-libero-10/blob/main/dataset_statistics.json",
6
+ "purpose": "Exact external statistics used by the source OpenVLA-base record generator",
7
+ "license": "MIT",
8
+ "license_file": "../licenses/OpenVLA-OFT-MIT.txt"
9
+ }
offline_metrics.json ADDED
@@ -0,0 +1,370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "evaluation_type": "offline paired-action metrics",
3
+ "timestamp": "2026-04-17 17:27:07",
4
+ "num_records": {
5
+ "train": 240,
6
+ "val": 80,
7
+ "test": 80
8
+ },
9
+ "models": {
10
+ "identity": {
11
+ "train_metrics": {
12
+ "mean_break_clean_l2": 0.7432431578636169,
13
+ "mean_break_expert_l2": 1.4091085195541382,
14
+ "mean_clean_mse": 0.3958700895309448,
15
+ "mean_control_clean_l2": 0.7472800016403198,
16
+ "mean_control_expert_l2": 1.4053751230239868,
17
+ "mean_control_mse": 0.37037795782089233,
18
+ "break_gt_control_rate_clean_ref": 0.5458333333333333,
19
+ "break_gt_control_rate_expert_ref": 0.4875,
20
+ "mean_clean_ref_gap": -0.004036815837025642,
21
+ "mean_expert_ref_gap": 0.003733340883627534,
22
+ "by_case": {
23
+ "break_target_object": {
24
+ "mean_break_clean_l2": 0.543735682964325,
25
+ "mean_break_expert_l2": 1.5344077348709106,
26
+ "mean_clean_mse": 0.45629745721817017,
27
+ "mean_control_clean_l2": 0.6087575554847717,
28
+ "mean_control_expert_l2": 1.5666840076446533,
29
+ "mean_control_mse": 0.42383497953414917,
30
+ "break_gt_control_rate_clean_ref": 0.4666666666666667,
31
+ "break_gt_control_rate_expert_ref": 0.49166666666666664,
32
+ "mean_clean_ref_gap": -0.06502188742160797,
33
+ "mean_expert_ref_gap": -0.032276351004838943
34
+ },
35
+ "break_executability_condition": {
36
+ "mean_break_clean_l2": 0.9427506923675537,
37
+ "mean_break_expert_l2": 1.2838094234466553,
38
+ "mean_clean_mse": 0.3354426920413971,
39
+ "mean_control_clean_l2": 0.8858024477958679,
40
+ "mean_control_expert_l2": 1.2440663576126099,
41
+ "mean_control_mse": 0.3169209063053131,
42
+ "break_gt_control_rate_clean_ref": 0.625,
43
+ "break_gt_control_rate_expert_ref": 0.48333333333333334,
44
+ "mean_clean_ref_gap": 0.056948255747556686,
45
+ "mean_expert_ref_gap": 0.039743032306432724
46
+ }
47
+ },
48
+ "num_records": 240
49
+ },
50
+ "val_metrics": {
51
+ "mean_break_clean_l2": 0.6865259408950806,
52
+ "mean_break_expert_l2": 1.3638770580291748,
53
+ "mean_clean_mse": 0.35426950454711914,
54
+ "mean_control_clean_l2": 0.6174260377883911,
55
+ "mean_control_expert_l2": 1.4026581048965454,
56
+ "mean_control_mse": 0.3633658289909363,
57
+ "break_gt_control_rate_clean_ref": 0.575,
58
+ "break_gt_control_rate_expert_ref": 0.4375,
59
+ "mean_clean_ref_gap": 0.06909994781017303,
60
+ "mean_expert_ref_gap": -0.03878090903162956,
61
+ "by_case": {
62
+ "break_target_object": {
63
+ "mean_break_clean_l2": 0.6781854629516602,
64
+ "mean_break_expert_l2": 1.4673945903778076,
65
+ "mean_clean_mse": 0.43167275190353394,
66
+ "mean_control_clean_l2": 0.5327732563018799,
67
+ "mean_control_expert_l2": 1.5085182189941406,
68
+ "mean_control_mse": 0.3970142602920532,
69
+ "break_gt_control_rate_clean_ref": 0.575,
70
+ "break_gt_control_rate_expert_ref": 0.375,
71
+ "mean_clean_ref_gap": 0.14541222155094147,
72
+ "mean_expert_ref_gap": -0.041123662143945694
73
+ },
74
+ "break_executability_condition": {
75
+ "mean_break_clean_l2": 0.694866418838501,
76
+ "mean_break_expert_l2": 1.2603596448898315,
77
+ "mean_clean_mse": 0.27686622738838196,
78
+ "mean_control_clean_l2": 0.7020787596702576,
79
+ "mean_control_expert_l2": 1.2967978715896606,
80
+ "mean_control_mse": 0.32971736788749695,
81
+ "break_gt_control_rate_clean_ref": 0.575,
82
+ "break_gt_control_rate_expert_ref": 0.5,
83
+ "mean_clean_ref_gap": -0.007212340831756592,
84
+ "mean_expert_ref_gap": -0.036438144743442535
85
+ }
86
+ },
87
+ "num_records": 80
88
+ },
89
+ "test_metrics": {
90
+ "mean_break_clean_l2": 0.6800279021263123,
91
+ "mean_break_expert_l2": 1.6663868427276611,
92
+ "mean_clean_mse": 0.39530259370803833,
93
+ "mean_control_clean_l2": 0.7465093731880188,
94
+ "mean_control_expert_l2": 1.351813554763794,
95
+ "mean_control_mse": 0.3437272906303406,
96
+ "break_gt_control_rate_clean_ref": 0.5125,
97
+ "break_gt_control_rate_expert_ref": 0.5625,
98
+ "mean_clean_ref_gap": -0.06648143380880356,
99
+ "mean_expert_ref_gap": 0.31457358598709106,
100
+ "by_case": {
101
+ "break_target_object": {
102
+ "mean_break_clean_l2": 0.4548130929470062,
103
+ "mean_break_expert_l2": 1.7907543182373047,
104
+ "mean_clean_mse": 0.4607141613960266,
105
+ "mean_control_clean_l2": 0.6214543581008911,
106
+ "mean_control_expert_l2": 1.5308020114898682,
107
+ "mean_control_mse": 0.40925103425979614,
108
+ "break_gt_control_rate_clean_ref": 0.4,
109
+ "break_gt_control_rate_expert_ref": 0.55,
110
+ "mean_clean_ref_gap": -0.1666412204504013,
111
+ "mean_expert_ref_gap": 0.25995248556137085
112
+ },
113
+ "break_executability_condition": {
114
+ "mean_break_clean_l2": 0.9052427411079407,
115
+ "mean_break_expert_l2": 1.5420197248458862,
116
+ "mean_clean_mse": 0.32989105582237244,
117
+ "mean_control_clean_l2": 0.8715643882751465,
118
+ "mean_control_expert_l2": 1.1728250980377197,
119
+ "mean_control_mse": 0.27820348739624023,
120
+ "break_gt_control_rate_clean_ref": 0.625,
121
+ "break_gt_control_rate_expert_ref": 0.575,
122
+ "mean_clean_ref_gap": 0.033678364008665085,
123
+ "mean_expert_ref_gap": 0.3691946864128113
124
+ }
125
+ },
126
+ "num_records": 80
127
+ }
128
+ },
129
+ "action_only_adapter": {
130
+ "best_val_loss_total": 1.5956528186798096,
131
+ "train_metrics": {
132
+ "mean_break_clean_l2": 0.36038321256637573,
133
+ "mean_break_expert_l2": 1.1645487546920776,
134
+ "mean_clean_mse": 0.20006108283996582,
135
+ "mean_control_clean_l2": 0.2829788327217102,
136
+ "mean_control_expert_l2": 1.1402603387832642,
137
+ "mean_control_mse": 0.19075056910514832,
138
+ "break_gt_control_rate_clean_ref": 0.5875,
139
+ "break_gt_control_rate_expert_ref": 0.5291666666666667,
140
+ "mean_clean_ref_gap": 0.07740439474582672,
141
+ "mean_expert_ref_gap": 0.024288399145007133,
142
+ "by_case": {
143
+ "break_target_object": {
144
+ "mean_break_clean_l2": 0.25087252259254456,
145
+ "mean_break_expert_l2": 1.198777675628662,
146
+ "mean_clean_mse": 0.21315599977970123,
147
+ "mean_control_clean_l2": 0.22465568780899048,
148
+ "mean_control_expert_l2": 1.1870900392532349,
149
+ "mean_control_mse": 0.20506463944911957,
150
+ "break_gt_control_rate_clean_ref": 0.5083333333333333,
151
+ "break_gt_control_rate_expert_ref": 0.55,
152
+ "mean_clean_ref_gap": 0.026216844096779823,
153
+ "mean_expert_ref_gap": 0.011687582358717918
154
+ },
155
+ "break_executability_condition": {
156
+ "mean_break_clean_l2": 0.4698939025402069,
157
+ "mean_break_expert_l2": 1.1303197145462036,
158
+ "mean_clean_mse": 0.1869661659002304,
159
+ "mean_control_clean_l2": 0.34130197763442993,
160
+ "mean_control_expert_l2": 1.0934306383132935,
161
+ "mean_control_mse": 0.17643649876117706,
162
+ "break_gt_control_rate_clean_ref": 0.6666666666666666,
163
+ "break_gt_control_rate_expert_ref": 0.5083333333333333,
164
+ "mean_clean_ref_gap": 0.12859195470809937,
165
+ "mean_expert_ref_gap": 0.0368892140686512
166
+ }
167
+ },
168
+ "num_records": 240
169
+ },
170
+ "val_metrics": {
171
+ "mean_break_clean_l2": 0.34965047240257263,
172
+ "mean_break_expert_l2": 1.1548038721084595,
173
+ "mean_clean_mse": 0.1989673674106598,
174
+ "mean_control_clean_l2": 0.2915192246437073,
175
+ "mean_control_expert_l2": 1.1498476266860962,
176
+ "mean_control_mse": 0.19426663219928741,
177
+ "break_gt_control_rate_clean_ref": 0.6125,
178
+ "break_gt_control_rate_expert_ref": 0.55,
179
+ "mean_clean_ref_gap": 0.05813126638531685,
180
+ "mean_expert_ref_gap": 0.004956287331879139,
181
+ "by_case": {
182
+ "break_target_object": {
183
+ "mean_break_clean_l2": 0.2960914373397827,
184
+ "mean_break_expert_l2": 1.1769672632217407,
185
+ "mean_clean_mse": 0.2139633595943451,
186
+ "mean_control_clean_l2": 0.262840211391449,
187
+ "mean_control_expert_l2": 1.1790968179702759,
188
+ "mean_control_mse": 0.2026643306016922,
189
+ "break_gt_control_rate_clean_ref": 0.575,
190
+ "break_gt_control_rate_expert_ref": 0.5,
191
+ "mean_clean_ref_gap": 0.03325119987130165,
192
+ "mean_expert_ref_gap": -0.002129593398422003
193
+ },
194
+ "break_executability_condition": {
195
+ "mean_break_clean_l2": 0.4032095968723297,
196
+ "mean_break_expert_l2": 1.1326402425765991,
197
+ "mean_clean_mse": 0.1839713752269745,
198
+ "mean_control_clean_l2": 0.3201982378959656,
199
+ "mean_control_expert_l2": 1.1205980777740479,
200
+ "mean_control_mse": 0.18586888909339905,
201
+ "break_gt_control_rate_clean_ref": 0.65,
202
+ "break_gt_control_rate_expert_ref": 0.6,
203
+ "mean_clean_ref_gap": 0.08301133662462234,
204
+ "mean_expert_ref_gap": 0.012042166665196419
205
+ }
206
+ },
207
+ "num_records": 80
208
+ },
209
+ "test_metrics": {
210
+ "mean_break_clean_l2": 0.3397909700870514,
211
+ "mean_break_expert_l2": 1.2354549169540405,
212
+ "mean_clean_mse": 0.21382936835289001,
213
+ "mean_control_clean_l2": 0.3245377540588379,
214
+ "mean_control_expert_l2": 1.1614665985107422,
215
+ "mean_control_mse": 0.19767430424690247,
216
+ "break_gt_control_rate_clean_ref": 0.5375,
217
+ "break_gt_control_rate_expert_ref": 0.5125,
218
+ "mean_clean_ref_gap": 0.015253203921020031,
219
+ "mean_expert_ref_gap": 0.07398830354213715,
220
+ "by_case": {
221
+ "break_target_object": {
222
+ "mean_break_clean_l2": 0.23053522408008575,
223
+ "mean_break_expert_l2": 1.2631430625915527,
224
+ "mean_clean_mse": 0.22174766659736633,
225
+ "mean_control_clean_l2": 0.25600486993789673,
226
+ "mean_control_expert_l2": 1.2138757705688477,
227
+ "mean_control_mse": 0.21398238837718964,
228
+ "break_gt_control_rate_clean_ref": 0.45,
229
+ "break_gt_control_rate_expert_ref": 0.475,
230
+ "mean_clean_ref_gap": -0.025469651445746422,
231
+ "mean_expert_ref_gap": 0.04926721006631851
232
+ },
233
+ "break_executability_condition": {
234
+ "mean_break_clean_l2": 0.44904670119285583,
235
+ "mean_break_expert_l2": 1.2077667713165283,
236
+ "mean_clean_mse": 0.2059110701084137,
237
+ "mean_control_clean_l2": 0.39307063817977905,
238
+ "mean_control_expert_l2": 1.1090574264526367,
239
+ "mean_control_mse": 0.1813661754131317,
240
+ "break_gt_control_rate_clean_ref": 0.625,
241
+ "break_gt_control_rate_expert_ref": 0.55,
242
+ "mean_clean_ref_gap": 0.05597605183720589,
243
+ "mean_expert_ref_gap": 0.09870939701795578
244
+ }
245
+ },
246
+ "num_records": 80
247
+ }
248
+ },
249
+ "text_action_adapter": {
250
+ "best_val_loss_total": 0.36617913842201233,
251
+ "train_metrics": {
252
+ "mean_break_clean_l2": 1.9662588834762573,
253
+ "mean_break_expert_l2": 2.3562726974487305,
254
+ "mean_clean_mse": 0.1834717094898224,
255
+ "mean_control_clean_l2": 0.2672695815563202,
256
+ "mean_control_expert_l2": 1.0719788074493408,
257
+ "mean_control_mse": 0.1756630837917328,
258
+ "break_gt_control_rate_clean_ref": 1.0,
259
+ "break_gt_control_rate_expert_ref": 1.0,
260
+ "mean_clean_ref_gap": 1.6989891529083252,
261
+ "mean_expert_ref_gap": 1.2842938899993896,
262
+ "by_case": {
263
+ "break_target_object": {
264
+ "mean_break_clean_l2": 1.7676277160644531,
265
+ "mean_break_expert_l2": 2.259204864501953,
266
+ "mean_clean_mse": 0.2054469883441925,
267
+ "mean_control_clean_l2": 0.2036994993686676,
268
+ "mean_control_expert_l2": 1.1436399221420288,
269
+ "mean_control_mse": 0.19497980177402496,
270
+ "break_gt_control_rate_clean_ref": 1.0,
271
+ "break_gt_control_rate_expert_ref": 1.0,
272
+ "mean_clean_ref_gap": 1.5639280080795288,
273
+ "mean_expert_ref_gap": 1.1155647039413452
274
+ },
275
+ "break_executability_condition": {
276
+ "mean_break_clean_l2": 2.1648900508880615,
277
+ "mean_break_expert_l2": 2.4533402919769287,
278
+ "mean_clean_mse": 0.16149643063545227,
279
+ "mean_control_clean_l2": 0.3308396339416504,
280
+ "mean_control_expert_l2": 1.0003175735473633,
281
+ "mean_control_mse": 0.1563463807106018,
282
+ "break_gt_control_rate_clean_ref": 1.0,
283
+ "break_gt_control_rate_expert_ref": 1.0,
284
+ "mean_clean_ref_gap": 1.8340502977371216,
285
+ "mean_expert_ref_gap": 1.453023076057434
286
+ }
287
+ },
288
+ "num_records": 240
289
+ },
290
+ "val_metrics": {
291
+ "mean_break_clean_l2": 1.9402227401733398,
292
+ "mean_break_expert_l2": 2.3244988918304443,
293
+ "mean_clean_mse": 0.168838232755661,
294
+ "mean_control_clean_l2": 0.23467329144477844,
295
+ "mean_control_expert_l2": 1.0611259937286377,
296
+ "mean_control_mse": 0.17241854965686798,
297
+ "break_gt_control_rate_clean_ref": 1.0,
298
+ "break_gt_control_rate_expert_ref": 1.0,
299
+ "mean_clean_ref_gap": 1.7055492401123047,
300
+ "mean_expert_ref_gap": 1.2633731365203857,
301
+ "by_case": {
302
+ "break_target_object": {
303
+ "mean_break_clean_l2": 1.78369140625,
304
+ "mean_break_expert_l2": 2.2142577171325684,
305
+ "mean_clean_mse": 0.19796983897686005,
306
+ "mean_control_clean_l2": 0.19418850541114807,
307
+ "mean_control_expert_l2": 1.1197407245635986,
308
+ "mean_control_mse": 0.18957313895225525,
309
+ "break_gt_control_rate_clean_ref": 1.0,
310
+ "break_gt_control_rate_expert_ref": 1.0,
311
+ "mean_clean_ref_gap": 1.5895028114318848,
312
+ "mean_expert_ref_gap": 1.0945169925689697
313
+ },
314
+ "break_executability_condition": {
315
+ "mean_break_clean_l2": 2.0967538356781006,
316
+ "mean_break_expert_l2": 2.4347403049468994,
317
+ "mean_clean_mse": 0.13970664143562317,
318
+ "mean_control_clean_l2": 0.2751580476760864,
319
+ "mean_control_expert_l2": 1.0025112628936768,
320
+ "mean_control_mse": 0.15526394546031952,
321
+ "break_gt_control_rate_clean_ref": 1.0,
322
+ "break_gt_control_rate_expert_ref": 1.0,
323
+ "mean_clean_ref_gap": 1.8215957880020142,
324
+ "mean_expert_ref_gap": 1.4322290420532227
325
+ }
326
+ },
327
+ "num_records": 80
328
+ },
329
+ "test_metrics": {
330
+ "mean_break_clean_l2": 1.9752228260040283,
331
+ "mean_break_expert_l2": 2.467482089996338,
332
+ "mean_clean_mse": 0.18618619441986084,
333
+ "mean_control_clean_l2": 0.273476779460907,
334
+ "mean_control_expert_l2": 1.0540869235992432,
335
+ "mean_control_mse": 0.1706114113330841,
336
+ "break_gt_control_rate_clean_ref": 1.0,
337
+ "break_gt_control_rate_expert_ref": 1.0,
338
+ "mean_clean_ref_gap": 1.7017459869384766,
339
+ "mean_expert_ref_gap": 1.4133949279785156,
340
+ "by_case": {
341
+ "break_target_object": {
342
+ "mean_break_clean_l2": 1.7627042531967163,
343
+ "mean_break_expert_l2": 2.334259033203125,
344
+ "mean_clean_mse": 0.21386170387268066,
345
+ "mean_control_clean_l2": 0.2173435240983963,
346
+ "mean_control_expert_l2": 1.1480493545532227,
347
+ "mean_control_mse": 0.19736817479133606,
348
+ "break_gt_control_rate_clean_ref": 1.0,
349
+ "break_gt_control_rate_expert_ref": 1.0,
350
+ "mean_clean_ref_gap": 1.5453606843948364,
351
+ "mean_expert_ref_gap": 1.1862096786499023
352
+ },
353
+ "break_executability_condition": {
354
+ "mean_break_clean_l2": 2.18774151802063,
355
+ "mean_break_expert_l2": 2.6007046699523926,
356
+ "mean_clean_mse": 0.1585106998682022,
357
+ "mean_control_clean_l2": 0.3296099901199341,
358
+ "mean_control_expert_l2": 0.9601246118545532,
359
+ "mean_control_mse": 0.14385461807250977,
360
+ "break_gt_control_rate_clean_ref": 1.0,
361
+ "break_gt_control_rate_expert_ref": 1.0,
362
+ "mean_clean_ref_gap": 1.8581314086914062,
363
+ "mean_expert_ref_gap": 1.640580415725708
364
+ }
365
+ },
366
+ "num_records": 80
367
+ }
368
+ }
369
+ }
370
+ }
training_config.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "objective_preset": "legacy",
3
+ "overrides": {
4
+ "squared_error_reduction": "mean",
5
+ "lambda_imitation": 1.0,
6
+ "lambda_expert_margin": 1.0,
7
+ "hidden_dim": 128,
8
+ "delta_scale": 0.8,
9
+ "margin": 0.3,
10
+ "lambda_consistency": 0.5,
11
+ "lambda_margin": 2.0,
12
+ "lambda_anchor": 0.05,
13
+ "lr": 0.002,
14
+ "epochs": 100,
15
+ "batch_size": 64
16
+ }
17
+ }