kzzwang commited on
Commit
921b05e
·
verified ·
1 Parent(s): 9b61fe0

Add files using upload-large-folder tool

Browse files
README.md ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: slim-license
4
+ license_link: https://github.com/kzz1031/SLIM/blob/main/LICENSE
5
+ library_name: slim-policy
6
+ tags:
7
+ - robotics
8
+ - robot-manipulation
9
+ - flow-matching
10
+ - self-supervised-learning
11
+ - libero
12
+ ---
13
+
14
+ # SLIM for LIBERO
15
+
16
+ This repository contains the released SLIM Stage 2 policy checkpoint for
17
+ LIBERO and LIBERO-Plus. SLIM is a compact latent interaction policy for robot
18
+ manipulation.
19
+
20
+ ## Checkpoint
21
+
22
+ - Stage 1: action-grounded masked trajectory prediction on LIBERO all+90
23
+ - Stage 1 objective: IDM:FDM = 0.125:1 for 3 epochs
24
+ - Stage 2: flow-matching policy training on LIBERO all for 40 epochs
25
+ - Stage 1 and Stage 2 video backend: `torchvision_av`
26
+ - Stage 1 EMA: enabled, momentum 0.999
27
+ - Stage 2 EMA: disabled
28
+ - Action horizon and execution chunk: 8
29
+ - Image size: 224 x 224, agent and wrist views
30
+ - State/action dimensions: 7/7
31
+
32
+ The checkpoint is a plain PyTorch `state_dict` and loads directly with
33
+ [SLIM](https://github.com/kzz1031/SLIM).
34
+
35
+ ## Results
36
+
37
+ | Benchmark | Coverage | Score |
38
+ | --- | ---: | ---: |
39
+ | LIBERO | 2,000 / 2,000 | 97.50% |
40
+ | LIBERO-Plus | 10,030 / 10,030 | 77.45% |
41
+
42
+ LIBERO suite scores are 94.40% (LIBERO-10), 99.40% (Spatial), 99.40%
43
+ (Object), and 96.80% (Goal). The complete LIBERO-Plus suite/category reports
44
+ are included under `evaluation/`.
45
+
46
+ ## Usage
47
+
48
+ Install SLIM and configure the DINOv2 and T5 paths as described in the SLIM
49
+ README. Then run a policy server from the SLIM repository root:
50
+
51
+ ```bash
52
+ python -m slim.serving.server \
53
+ --checkpoint /path/to/SLIM-LIBERO/checkpoints/epoch_40_pytorch_model.pt \
54
+ --port 10093 \
55
+ --bf16
56
+ ```
57
+
58
+ The checkpoint requires the included `config.yaml` and `action_stats.json` to
59
+ remain in the repository root. See `checkpoint_manifest.json` for hashes and
60
+ the exact release revision.
61
+
62
+ ## Limitations
63
+
64
+ This checkpoint is intended for research evaluation in LIBERO-compatible
65
+ simulation environments. It should not be deployed on physical robots without
66
+ task-specific safety validation and action-bound checks.
action_stats.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "q01": [
3
+ -0.7044642567634583,
4
+ -0.8008928298950195,
5
+ -0.9375,
6
+ -0.11464285850524902,
7
+ -0.1639285683631897,
8
+ -0.2239285707473755,
9
+ 0.0
10
+ ],
11
+ "q99": [
12
+ 0.9375,
13
+ 0.8678571581840515,
14
+ 0.9375,
15
+ 0.13178572058677673,
16
+ 0.19285714626312256,
17
+ 0.335357129573822,
18
+ 1.0
19
+ ],
20
+ "normalization": "q01_q99",
21
+ "action_dim": 7,
22
+ "action_normalized_dims": [
23
+ 0,
24
+ 1,
25
+ 2,
26
+ 3,
27
+ 4,
28
+ 5
29
+ ],
30
+ "action_indices": null,
31
+ "action_key": "action",
32
+ "state_key": "observation.state",
33
+ "note": "q01/q99 are length action_dim; only action_normalized_dims are normalized"
34
+ }
checkpoint_manifest.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format": "SLIM native PyTorch state_dict",
3
+ "model": "SLIM",
4
+ "benchmark": "LIBERO and LIBERO-Plus",
5
+ "checkpoint_stage": 2,
6
+ "checkpoint_epoch": 40,
7
+ "action_horizon": 8,
8
+ "execution_chunk": 8,
9
+ "state_dim": 7,
10
+ "action_dim": 7,
11
+ "checkpoint_sha256": "e8e6a600603c30087a2ceb9d4c158be1cf5e4ff9dbcf9b892d9d17df00dcbd85",
12
+ "config_sha256": "bc7f45c401c8852a2aa5ddb75d47b3d1f20249f6e303a7ccb350e5de920f5671",
13
+ "action_stats_sha256": "0c02c05ab6a3008ba67cd3b4e3e23680588bcec15203747f68bc5636a530854b",
14
+ "reference_evaluation": {
15
+ "libero": {
16
+ "episodes": 2000,
17
+ "successes": 1950,
18
+ "success_rate": 0.975
19
+ },
20
+ "libero_plus": {
21
+ "cases": 10030,
22
+ "successes": 7768,
23
+ "success_rate": 0.7745
24
+ }
25
+ },
26
+ "slim_repository": "https://github.com/kzz1031/SLIM",
27
+ "slim_commit": "51bcc75ce659fe5eeb275900bdf9ba2b48991cdf",
28
+ "strict_load_verified": true
29
+ }
checkpoints/epoch_40_pytorch_model.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e8e6a600603c30087a2ceb9d4c158be1cf5e4ff9dbcf9b892d9d17df00dcbd85
3
+ size 944561675
config.yaml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ seed: 42
2
+ run:
3
+ name: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema
4
+ root: checkpoints/stage2
5
+ timestamp: false
6
+ model:
7
+ name: SLIM
8
+ vision_encoder:
9
+ backbone_name: dinov2_vitb14
10
+ model_path: ${oc.env:DINOV2_MODEL_DIR}
11
+ image_size: 224
12
+ freeze_backbone: false
13
+ num_image_views: 2
14
+ vision_condition_mode: dense_patch
15
+ image_augment:
16
+ enabled: false
17
+ ema:
18
+ enabled: false
19
+ momentum: 0.999
20
+ action_dim: 7
21
+ state_dim: 7
22
+ action_horizon: 8
23
+ use_language_condition: true
24
+ language_encoder_path: ${oc.env:T5_MODEL_DIR}
25
+ language_cache: ${oc.env:SLIM_LANGUAGE_CACHE,null}
26
+ max_language_tokens: 32
27
+ language_embedding_dim: 512
28
+ inference_steps: 4
29
+ repeated_diffusion_steps: 4
30
+ decoder_hidden_dim: 1024
31
+ transformer:
32
+ hidden_dim: 768
33
+ num_layers: 16
34
+ num_heads: 12
35
+ ffn_ratio: 4.0
36
+ dropout: 0.0
37
+ num_action_register_tokens: 4
38
+ num_future_tokens: 512
39
+ use_state_condition: true
40
+ max_state_tokens: 1100
41
+ max_action_tokens: 16
42
+ policy_loss_weight: 1.0
43
+ idm_loss_weight: 0.0
44
+ fdm_loss_weight: 0.0
45
+ future_loss_type: norm_l1
46
+ data:
47
+ sources:
48
+ - root_dir: ${oc.env:LIBERO_DATA_ROOT}
49
+ data_mix: libero_all
50
+ video_keys:
51
+ - observation.images.image
52
+ - observation.images.wrist_image
53
+ weight: 1.0
54
+ action_normalization: q01_q99
55
+ action_stats_dir: ${oc.env:SLIM_CACHE_DIR,.cache/slim}/action_stats/libero_all
56
+ per_device_batch_size: 16
57
+ episode_shuffle: true
58
+ eval_batch_size: 8
59
+ val_ratio: 0.0
60
+ eval_monitor_episode_ratio: 0.05
61
+ split_seed: 42
62
+ num_workers: 16
63
+ eval_num_workers: 8
64
+ prefetch_factor: 2
65
+ persistent_workers: true
66
+ dataloader_timeout_s: 300
67
+ video_backend: torchvision_av
68
+ training:
69
+ stage: 2
70
+ objective: policy
71
+ max_epochs: 40
72
+ max_train_steps: 100000
73
+ num_warmup_steps: 5000
74
+ save_interval: 5000
75
+ eval_interval: 100
76
+ logging_frequency: 10
77
+ gradient_clipping: 1.0
78
+ gradient_accumulation_steps: 1
79
+ learning_rate:
80
+ base: 2.5e-05
81
+ action_model: 0.0001
82
+ vision_encoder: 1.0e-05
83
+ lr_scheduler_type: cosine_with_min_lr
84
+ scheduler_specific_kwargs:
85
+ min_lr: 1.0e-06
86
+ optimizer:
87
+ betas:
88
+ - 0.9
89
+ - 0.95
90
+ eps: 1.0e-08
91
+ weight_decay: 0.01
92
+ logging:
93
+ trackers:
94
+ - jsonl
95
+ - wandb
96
+ project: slim
97
+ entity: null
98
+ resume_skip_prefixes:
99
+ - ema_vision_encoder.
100
+ - _ema_fp32_
evaluation/libero/summary.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ libero_10: 472/500 = 94.40%
2
+ libero_spatial: 497/500 = 99.40%
3
+ libero_object: 497/500 = 99.40%
4
+ libero_goal: 484/500 = 96.80%
5
+ overall: 1950/2000 = 97.50%
evaluation/libero_plus/libero_10/summary_metrics.txt ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LIBERO-Plus evaluation summary (from episode markers)
2
+ model: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt
3
+ coverage: 2519/2519 (100.00%)
4
+ rollouts: 74.79% (1884/2519)
5
+
6
+ === By suite ===
7
+ libero_10 74.79% (1884/2519)
8
+
9
+ === By category ===
10
+ Robot Initial States 43.00% (169/393)
11
+ Camera Viewpoints 57.76% (242/419)
12
+ Sensor Noise 78.84% (354/449)
13
+ Light Conditions 81.75% (224/274)
14
+ Background Textures 85.47% (247/289)
15
+ Objects Layout 91.67% (286/312)
16
+ Language Instructions 94.52% (362/383)
17
+
18
+ === By difficulty ===
19
+ 5 53.76% (379/705)
20
+ 4 73.42% (384/523)
21
+ 3 79.75% (386/484)
22
+ 2 89.56% (403/450)
23
+ 1 93.00% (332/357)
24
+
25
+ === Leaderboard row ===
26
+ Model Camera Robot Language Light Background Noise Layout Total
27
+ libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt 57.76 43.00 94.52 81.75 85.47 78.84 91.67 74.79
evaluation/libero_plus/libero_goal/summary_metrics.txt ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LIBERO-Plus evaluation summary (from episode markers)
2
+ model: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt
3
+ coverage: 2591/2591 (100.00%)
4
+ rollouts: 62.22% (1612/2591)
5
+
6
+ === By suite ===
7
+ libero_goal 62.22% (1612/2591)
8
+
9
+ === By category ===
10
+ Robot Initial States 20.29% (83/409)
11
+ Camera Viewpoints 49.26% (201/408)
12
+ Language Instructions 59.27% (243/410)
13
+ Objects Layout 64.71% (275/425)
14
+ Sensor Noise 74.67% (283/379)
15
+ Background Textures 91.81% (258/281)
16
+ Light Conditions 96.42% (269/279)
17
+
18
+ === By difficulty ===
19
+ 5 34.95% (202/578)
20
+ 4 54.22% (244/450)
21
+ 3 63.00% (298/473)
22
+ 2 74.83% (428/572)
23
+ 1 80.86% (321/397)
24
+ None 98.35% (119/121)
25
+
26
+ === Leaderboard row ===
27
+ Model Camera Robot Language Light Background Noise Layout Total
28
+ libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt 49.26 20.29 59.27 96.42 91.81 74.67 64.71 62.22
evaluation/libero_plus/libero_object/summary_metrics.txt ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LIBERO-Plus evaluation summary (from episode markers)
2
+ model: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt
3
+ coverage: 2518/2518 (100.00%)
4
+ rollouts: 83.28% (2097/2518)
5
+
6
+ === By suite ===
7
+ libero_object 83.28% (2097/2518)
8
+
9
+ === By category ===
10
+ Robot Initial States 35.43% (141/398)
11
+ Camera Viewpoints 83.33% (330/396)
12
+ Objects Layout 83.62% (337/403)
13
+ Background Textures 94.76% (235/248)
14
+ Sensor Noise 95.50% (403/422)
15
+ Language Instructions 100.00% (354/354)
16
+ Light Conditions 100.00% (297/297)
17
+
18
+ === By difficulty ===
19
+ 5 69.29% (422/609)
20
+ 4 77.75% (374/481)
21
+ 3 85.21% (432/507)
22
+ 2 92.56% (473/511)
23
+ 1 96.59% (396/410)
24
+
25
+ === Leaderboard row ===
26
+ Model Camera Robot Language Light Background Noise Layout Total
27
+ libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt 83.33 35.43 100.00 100.00 94.76 95.50 83.62 83.28
evaluation/libero_plus/libero_spatial/summary_metrics.txt ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LIBERO-Plus evaluation summary (from episode markers)
2
+ model: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt
3
+ coverage: 2402/2402 (100.00%)
4
+ rollouts: 90.55% (2175/2402)
5
+
6
+ === By suite ===
7
+ libero_spatial 90.55% (2175/2402)
8
+
9
+ === By category ===
10
+ Robot Initial States 51.14% (179/350)
11
+ Camera Viewpoints 95.21% (358/376)
12
+ Sensor Noise 96.30% (338/351)
13
+ Objects Layout 96.36% (371/385)
14
+ Background Textures 96.90% (250/258)
15
+ Language Instructions 99.23% (387/390)
16
+ Light Conditions 100.00% (292/292)
17
+
18
+ === By difficulty ===
19
+ 5 68.06% (130/191)
20
+ 4 88.43% (382/432)
21
+ 3 90.00% (567/630)
22
+ 2 94.02% (629/669)
23
+ 1 97.29% (467/480)
24
+
25
+ === Leaderboard row ===
26
+ Model Camera Robot Language Light Background Noise Layout Total
27
+ libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt 95.21 51.14 99.23 100.00 96.90 96.30 96.36 90.55
evaluation/libero_plus/summary.txt ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ LIBERO-Plus evaluation summary (from episode markers)
2
+ model: libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt
3
+ coverage: 10030/10030 (100.00%)
4
+ rollouts: 77.45% (7768/10030)
5
+
6
+ === By suite ===
7
+ libero_goal 62.22% (1612/2591)
8
+ libero_10 74.79% (1884/2519)
9
+ libero_object 83.28% (2097/2518)
10
+ libero_spatial 90.55% (2175/2402)
11
+
12
+ === By category ===
13
+ Robot Initial States 36.90% (572/1550)
14
+ Camera Viewpoints 70.73% (1131/1599)
15
+ Objects Layout 83.21% (1269/1525)
16
+ Sensor Noise 86.07% (1378/1601)
17
+ Language Instructions 87.57% (1346/1537)
18
+ Background Textures 92.01% (990/1076)
19
+ Light Conditions 94.75% (1082/1142)
20
+
21
+ === By difficulty ===
22
+ 5 54.39% (1133/2083)
23
+ 4 73.38% (1384/1886)
24
+ 3 80.37% (1683/2094)
25
+ 2 87.78% (1933/2202)
26
+ 1 92.21% (1516/1644)
27
+ None 98.35% (119/121)
28
+
29
+ === Leaderboard row ===
30
+ Model Camera Robot Language Light Background Noise Layout Total
31
+ libero_all_stage2_policy_h8_40ep_seed42_from_idm0125_s1v_s2v_noema_epoch_40_pytorch_model.pt 70.73 36.90 87.57 94.75 92.01 86.07 83.21 77.45