eddierex commited on
Commit
d0fbcd8
·
verified ·
1 Parent(s): 7b5ae52

Upload GR00T_N1_5 checkpoint 20000 for OpenWBC bottle task

Browse files
config.json ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "action_horizon": 50,
3
+ "add_pos_embed": true,
4
+ "apply_sincos_state_encoding": true,
5
+ "architectures": [
6
+ "Gr00tN1d6"
7
+ ],
8
+ "attn_dropout": 0.2,
9
+ "attn_implementation": null,
10
+ "backbone_embedding_dim": 2048,
11
+ "backbone_model_type": "eagle",
12
+ "backbone_trainable_params_fp32": true,
13
+ "collator_overwrite_image_inputs": false,
14
+ "color_jitter_params": {
15
+ "brightness": 0.1,
16
+ "contrast": 0.1,
17
+ "hue": 0.1,
18
+ "saturation": 0.1
19
+ },
20
+ "crop_fraction": 0.95,
21
+ "diffusion_model_cfg": {
22
+ "attention_head_dim": 48,
23
+ "dropout": 0.2,
24
+ "final_dropout": true,
25
+ "interleave_self_attention": true,
26
+ "norm_type": "ada_norm",
27
+ "num_attention_heads": 32,
28
+ "num_layers": 32,
29
+ "output_dim": 1024,
30
+ "positional_embeddings": null
31
+ },
32
+ "eagle_collator": true,
33
+ "formalize_language": true,
34
+ "gemma_collator": false,
35
+ "hidden_size": 1024,
36
+ "image_crop_size": null,
37
+ "image_target_size": null,
38
+ "input_embedding_dim": 1536,
39
+ "load_bf16": true,
40
+ "max_action_dim": 128,
41
+ "max_num_embodiments": 32,
42
+ "max_seq_len": 1024,
43
+ "max_state_dim": 128,
44
+ "model_dtype": "bfloat16",
45
+ "model_name": "nvidia/Eagle-Block2A-2B-v2",
46
+ "model_type": "Gr00tN1d6",
47
+ "noise_beta_alpha": 1.5,
48
+ "noise_beta_beta": 1.0,
49
+ "noise_s": 0.999,
50
+ "num_inference_timesteps": 4,
51
+ "num_timestep_buckets": 1000,
52
+ "random_rotation_angle": null,
53
+ "reproject_vision": false,
54
+ "select_layer": 16,
55
+ "shortest_image_edge": 256,
56
+ "state_dropout_prob": 0.0,
57
+ "torch_dtype": "bfloat16",
58
+ "transformers_version": "4.51.3",
59
+ "tune_diffusion_model": true,
60
+ "tune_llm": false,
61
+ "tune_projector": true,
62
+ "tune_top_llm_layers": 4,
63
+ "tune_visual": false,
64
+ "tune_vlln": true,
65
+ "use_albumentations_transforms": true,
66
+ "use_alternate_vl_dit": true,
67
+ "use_flash_attention": true,
68
+ "use_relative_action": true,
69
+ "use_vlln": true
70
+ }
embodiment_id.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "robocasa_panda_omron": 13,
3
+ "gr1": 20,
4
+ "behavior_r1_pro": 24,
5
+ "unitree_g1": 8,
6
+ "oxe_google": 0,
7
+ "oxe_widowx": 1,
8
+ "libero_panda": 2,
9
+ "new_embodiment": 10
10
+ }
experiment_cfg/conf.yaml ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ load_config_path: null
2
+ model:
3
+ model_type: Gr00tN1d6
4
+ model_dtype: bfloat16
5
+ model_name: nvidia/Eagle-Block2A-2B-v2
6
+ backbone_model_type: eagle
7
+ model_revision: null
8
+ tune_top_llm_layers: 4
9
+ backbone_embedding_dim: 2048
10
+ tune_llm: false
11
+ tune_visual: false
12
+ select_layer: 16
13
+ reproject_vision: false
14
+ use_flash_attention: true
15
+ load_bf16: false
16
+ collator_overwrite_image_inputs: false
17
+ eagle_collator: true
18
+ backbone_trainable_params_fp32: true
19
+ image_crop_size: null
20
+ image_target_size: null
21
+ shortest_image_edge: 256
22
+ crop_fraction: 0.95
23
+ random_rotation_angle: 5
24
+ color_jitter_params:
25
+ brightness: 0.2
26
+ contrast: 0.2
27
+ saturation: 0.2
28
+ hue: 0.08
29
+ use_albumentations_transforms: true
30
+ formalize_language: true
31
+ apply_sincos_state_encoding: false
32
+ use_relative_action: true
33
+ max_state_dim: 29
34
+ max_action_dim: 29
35
+ action_horizon: 16
36
+ hidden_size: 1024
37
+ input_embedding_dim: 1536
38
+ add_pos_embed: true
39
+ attn_dropout: 0.2
40
+ use_vlln: true
41
+ max_seq_len: 1024
42
+ use_alternate_vl_dit: true
43
+ attend_text_every_n_blocks: 2
44
+ diffusion_model_cfg:
45
+ positional_embeddings: null
46
+ num_layers: 32
47
+ num_attention_heads: 32
48
+ attention_head_dim: 48
49
+ norm_type: ada_norm
50
+ dropout: 0.2
51
+ final_dropout: true
52
+ output_dim: 1024
53
+ interleave_self_attention: true
54
+ num_inference_timesteps: 4
55
+ noise_beta_alpha: 1.5
56
+ noise_beta_beta: 1.0
57
+ noise_s: 0.999
58
+ num_timestep_buckets: 1000
59
+ tune_projector: true
60
+ tune_diffusion_model: true
61
+ tune_vlln: true
62
+ state_dropout_prob: 0.0
63
+ state_additive_noise_scale: 0.0
64
+ max_num_embodiments: 32
65
+ data:
66
+ datasets:
67
+ - dataset_paths:
68
+ - ../data/bottombetter/
69
+ embodiment_tag: new_embodiment
70
+ mix_ratio: 1.0
71
+ dataset_type: physical_embodiment
72
+ val_dataset_path: null
73
+ modality_configs:
74
+ new_embodiment:
75
+ video:
76
+ delta_indices:
77
+ - 0
78
+ modality_keys:
79
+ - ego_view
80
+ - wrist_left
81
+ - wrist_right
82
+ sin_cos_embedding_keys: null
83
+ mean_std_embedding_keys: null
84
+ action_configs: null
85
+ state:
86
+ delta_indices:
87
+ - 0
88
+ modality_keys:
89
+ - left_arm
90
+ - right_arm
91
+ - left_hand
92
+ - right_hand
93
+ - left_leg
94
+ - right_leg
95
+ - left_tactile
96
+ - right_tactile
97
+ - stage_vector
98
+ sin_cos_embedding_keys:
99
+ - left_arm
100
+ - right_arm
101
+ - left_hand
102
+ - right_hand
103
+ - left_leg
104
+ - right_leg
105
+ mean_std_embedding_keys:
106
+ - left_tactile
107
+ - right_tactile
108
+ action_configs: null
109
+ action:
110
+ delta_indices:
111
+ - 0
112
+ - 1
113
+ - 2
114
+ - 3
115
+ - 4
116
+ - 5
117
+ - 6
118
+ - 7
119
+ - 8
120
+ - 9
121
+ - 10
122
+ - 11
123
+ - 12
124
+ - 13
125
+ - 14
126
+ - 15
127
+ modality_keys:
128
+ - left_arm
129
+ - right_arm
130
+ - left_hand
131
+ - right_hand
132
+ - base_motion
133
+ sin_cos_embedding_keys: null
134
+ mean_std_embedding_keys: null
135
+ action_configs:
136
+ - rep: RELATIVE
137
+ type: NON_EEF
138
+ format: DEFAULT
139
+ state_key: null
140
+ - rep: RELATIVE
141
+ type: NON_EEF
142
+ format: DEFAULT
143
+ state_key: null
144
+ - rep: ABSOLUTE
145
+ type: NON_EEF
146
+ format: DEFAULT
147
+ state_key: null
148
+ - rep: ABSOLUTE
149
+ type: NON_EEF
150
+ format: DEFAULT
151
+ state_key: null
152
+ - rep: ABSOLUTE
153
+ type: NON_EEF
154
+ format: DEFAULT
155
+ state_key: null
156
+ language:
157
+ delta_indices:
158
+ - 0
159
+ modality_keys:
160
+ - annotation.human.action.task_description
161
+ sin_cos_embedding_keys: null
162
+ mean_std_embedding_keys: null
163
+ action_configs: null
164
+ download_cache: false
165
+ shard_size: 1024
166
+ episode_sampling_rate: 0.1
167
+ num_shards_per_epoch: 1000
168
+ override_pretraining_statistics: false
169
+ mode: single_turn
170
+ random_chop: 0.0
171
+ mock_dataset_mode: false
172
+ shuffle: true
173
+ seed: 42
174
+ multiprocessing_context: fork
175
+ allow_padding: false
176
+ subsample_ratio: 1.0
177
+ image_crop_size:
178
+ - 244
179
+ - 244
180
+ image_target_size:
181
+ - 224
182
+ - 224
183
+ video_backend: torchcodec
184
+ training:
185
+ output_dir: ./save/bottombetter
186
+ experiment_name: null
187
+ max_steps: 20000
188
+ global_batch_size: 128
189
+ batch_size: null
190
+ gradient_accumulation_steps: 1
191
+ learning_rate: 0.0001
192
+ lr_scheduler_type: cosine
193
+ weight_decay: 1.0e-05
194
+ warmup_ratio: 0.05
195
+ warmup_steps: 0
196
+ max_grad_norm: 1.0
197
+ optim: adamw_torch
198
+ start_from_checkpoint: ../models/GR00T-N1.6-G1-PnPAppleToPlate/
199
+ tf32: true
200
+ fp16: false
201
+ bf16: true
202
+ eval_bf16: true
203
+ logging_steps: 10
204
+ save_steps: 1000
205
+ save_total_limit: 5
206
+ save_vl_model: false
207
+ upload_checkpoints: false
208
+ upload_every: 1000
209
+ upload_last_n_checkpoints: 5
210
+ max_concurrent_uploads: 2
211
+ eval_strategy: 'no'
212
+ eval_steps: 500
213
+ eval_set_split_ratio: 0.1
214
+ eval_batch_size: 2
215
+ save_best_eval_metric_name: ''
216
+ save_best_eval_metric_greater_is_better: true
217
+ deepspeed_stage: 2
218
+ gradient_checkpointing: false
219
+ transformers_trust_remote_code: true
220
+ transformers_local_files_only: false
221
+ transformers_cache_dir: null
222
+ transformers_access_token: null
223
+ use_ddp: false
224
+ ddp_bucket_cap_mb: 100
225
+ num_gpus: 2
226
+ dataloader_num_workers: 2
227
+ remove_unused_columns: false
228
+ use_wandb: true
229
+ wandb_project: finetune-gr00t-n1d6
230
+ enable_profiling: false
231
+ max_retries: 3
232
+ assert_loss_less_than: null
233
+ add_rl_callback: false
234
+ enable_open_loop_eval: false
235
+ open_loop_eval_traj_ids:
236
+ - 0
237
+ open_loop_eval_steps_per_traj: 100
238
+ open_loop_eval_plot_indices: null
239
+ max_steps: 20000
240
+ save_steps: 1000
experiment_cfg/config.yaml ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ !!python/object:gr00t.configs.base_config.Config
2
+ data: !!python/object:gr00t.configs.data.data_config.DataConfig
3
+ allow_padding: false
4
+ datasets:
5
+ - !!python/object:gr00t.configs.data.data_config.SingleDatasetConfig
6
+ dataset_paths:
7
+ - ../data/bottombetter/
8
+ dataset_type: physical_embodiment
9
+ embodiment_tag: new_embodiment
10
+ mix_ratio: 1.0
11
+ val_dataset_path: null
12
+ download_cache: false
13
+ episode_sampling_rate: 0.1
14
+ image_crop_size:
15
+ - 244
16
+ - 244
17
+ image_target_size:
18
+ - 224
19
+ - 224
20
+ mock_dataset_mode: false
21
+ modality_configs:
22
+ new_embodiment:
23
+ action: !!python/object:gr00t.data.types.ModalityConfig
24
+ action_configs:
25
+ - !!python/object:gr00t.data.types.ActionConfig
26
+ format: &id001 !!python/object/apply:gr00t.data.types.ActionFormat
27
+ - default
28
+ rep: &id002 !!python/object/apply:gr00t.data.types.ActionRepresentation
29
+ - relative
30
+ state_key: null
31
+ type: &id003 !!python/object/apply:gr00t.data.types.ActionType
32
+ - non_eef
33
+ - !!python/object:gr00t.data.types.ActionConfig
34
+ format: *id001
35
+ rep: *id002
36
+ state_key: null
37
+ type: *id003
38
+ - !!python/object:gr00t.data.types.ActionConfig
39
+ format: *id001
40
+ rep: &id004 !!python/object/apply:gr00t.data.types.ActionRepresentation
41
+ - absolute
42
+ state_key: null
43
+ type: *id003
44
+ - !!python/object:gr00t.data.types.ActionConfig
45
+ format: *id001
46
+ rep: *id004
47
+ state_key: null
48
+ type: *id003
49
+ - !!python/object:gr00t.data.types.ActionConfig
50
+ format: *id001
51
+ rep: *id004
52
+ state_key: null
53
+ type: *id003
54
+ delta_indices:
55
+ - 0
56
+ - 1
57
+ - 2
58
+ - 3
59
+ - 4
60
+ - 5
61
+ - 6
62
+ - 7
63
+ - 8
64
+ - 9
65
+ - 10
66
+ - 11
67
+ - 12
68
+ - 13
69
+ - 14
70
+ - 15
71
+ mean_std_embedding_keys: null
72
+ modality_keys:
73
+ - left_arm
74
+ - right_arm
75
+ - left_hand
76
+ - right_hand
77
+ - base_motion
78
+ sin_cos_embedding_keys: null
79
+ language: !!python/object:gr00t.data.types.ModalityConfig
80
+ action_configs: null
81
+ delta_indices:
82
+ - 0
83
+ mean_std_embedding_keys: null
84
+ modality_keys:
85
+ - annotation.human.action.task_description
86
+ sin_cos_embedding_keys: null
87
+ state: !!python/object:gr00t.data.types.ModalityConfig
88
+ action_configs: null
89
+ delta_indices:
90
+ - 0
91
+ mean_std_embedding_keys:
92
+ - left_tactile
93
+ - right_tactile
94
+ modality_keys:
95
+ - left_arm
96
+ - right_arm
97
+ - left_hand
98
+ - right_hand
99
+ - left_leg
100
+ - right_leg
101
+ - left_tactile
102
+ - right_tactile
103
+ - stage_vector
104
+ sin_cos_embedding_keys:
105
+ - left_arm
106
+ - right_arm
107
+ - left_hand
108
+ - right_hand
109
+ - left_leg
110
+ - right_leg
111
+ video: !!python/object:gr00t.data.types.ModalityConfig
112
+ action_configs: null
113
+ delta_indices:
114
+ - 0
115
+ mean_std_embedding_keys: null
116
+ modality_keys:
117
+ - ego_view
118
+ - wrist_left
119
+ - wrist_right
120
+ sin_cos_embedding_keys: null
121
+ mode: single_turn
122
+ multiprocessing_context: fork
123
+ num_shards_per_epoch: 1000
124
+ override_pretraining_statistics: false
125
+ random_chop: 0.0
126
+ seed: 42
127
+ shard_size: 1024
128
+ shuffle: true
129
+ subsample_ratio: 1.0
130
+ video_backend: torchcodec
131
+ load_config_path: null
132
+ model: !!python/object:gr00t.configs.model.gr00t_n1d6.Gr00tN1d6Config
133
+ _attn_implementation_autoset: false
134
+ _attn_implementation_internal: null
135
+ _commit_hash: null
136
+ _name_or_path: ''
137
+ add_cross_attention: false
138
+ architectures: null
139
+ backbone_model_type: eagle
140
+ backbone_trainable_params_fp32: true
141
+ bad_words_ids: null
142
+ begin_suppress_tokens: null
143
+ bos_token_id: null
144
+ chunk_size_feed_forward: 0
145
+ color_jitter_params:
146
+ brightness: 0.2
147
+ contrast: 0.2
148
+ hue: 0.08
149
+ saturation: 0.2
150
+ cross_attention_hidden_size: null
151
+ decoder_start_token_id: null
152
+ diffusion_model_cfg:
153
+ attention_head_dim: 48
154
+ dropout: 0.2
155
+ final_dropout: true
156
+ interleave_self_attention: true
157
+ norm_type: ada_norm
158
+ num_attention_heads: 32
159
+ num_layers: 32
160
+ output_dim: 1024
161
+ positional_embeddings: null
162
+ diversity_penalty: 0.0
163
+ do_sample: false
164
+ eagle_collator: true
165
+ early_stopping: false
166
+ encoder_no_repeat_ngram_size: 0
167
+ eos_token_id: null
168
+ exponential_decay_length_penalty: null
169
+ finetuning_task: null
170
+ forced_bos_token_id: null
171
+ forced_eos_token_id: null
172
+ id2label:
173
+ 0: LABEL_0
174
+ 1: LABEL_1
175
+ is_decoder: false
176
+ is_encoder_decoder: false
177
+ label2id:
178
+ LABEL_0: 0
179
+ LABEL_1: 1
180
+ length_penalty: 1.0
181
+ load_bf16: false
182
+ max_length: 20
183
+ min_length: 0
184
+ model_name: nvidia/Eagle-Block2A-2B-v2
185
+ no_repeat_ngram_size: 0
186
+ num_beam_groups: 1
187
+ num_beams: 1
188
+ num_return_sequences: 1
189
+ output_attentions: false
190
+ output_hidden_states: false
191
+ output_scores: false
192
+ pad_token_id: null
193
+ prefix: null
194
+ problem_type: null
195
+ pruned_heads: {}
196
+ random_rotation_angle: 5
197
+ remove_invalid_values: false
198
+ repetition_penalty: 1.0
199
+ reproject_vision: false
200
+ return_dict: true
201
+ return_dict_in_generate: false
202
+ sep_token_id: null
203
+ state_dropout_prob: 0.0
204
+ suppress_tokens: null
205
+ task_specific_params: null
206
+ temperature: 1.0
207
+ tf_legacy_loss: false
208
+ tie_encoder_decoder: false
209
+ tie_word_embeddings: true
210
+ tokenizer_class: null
211
+ top_k: 50
212
+ top_p: 1.0
213
+ torch_dtype: null
214
+ torchscript: false
215
+ transformers_version: null
216
+ tune_diffusion_model: true
217
+ tune_llm: false
218
+ tune_projector: true
219
+ tune_visual: false
220
+ typical_p: 1.0
221
+ use_bfloat16: false
222
+ use_relative_action: true
223
+ training: !!python/object:gr00t.configs.training.training_config.TrainingConfig
224
+ add_rl_callback: false
225
+ assert_loss_less_than: null
226
+ batch_size: null
227
+ bf16: true
228
+ dataloader_num_workers: 2
229
+ ddp_bucket_cap_mb: 100
230
+ deepspeed_stage: 2
231
+ enable_open_loop_eval: false
232
+ enable_profiling: false
233
+ eval_batch_size: 2
234
+ eval_bf16: true
235
+ eval_set_split_ratio: 0.1
236
+ eval_steps: 500
237
+ eval_strategy: 'no'
238
+ experiment_name: null
239
+ fp16: false
240
+ global_batch_size: 128
241
+ gradient_accumulation_steps: 1
242
+ gradient_checkpointing: false
243
+ learning_rate: 0.0001
244
+ logging_steps: 10
245
+ lr_scheduler_type: cosine
246
+ max_concurrent_uploads: 2
247
+ max_grad_norm: 1.0
248
+ max_retries: 3
249
+ max_steps: 20000
250
+ num_gpus: 2
251
+ open_loop_eval_plot_indices: null
252
+ open_loop_eval_steps_per_traj: 100
253
+ open_loop_eval_traj_ids:
254
+ - 0
255
+ optim: adamw_torch
256
+ output_dir: ./save/bottombetter
257
+ remove_unused_columns: false
258
+ save_best_eval_metric_greater_is_better: true
259
+ save_best_eval_metric_name: ''
260
+ save_steps: 1000
261
+ save_total_limit: 5
262
+ save_vl_model: false
263
+ start_from_checkpoint: ../models/GR00T-N1.6-G1-PnPAppleToPlate/
264
+ tf32: true
265
+ transformers_access_token: null
266
+ transformers_cache_dir: null
267
+ transformers_local_files_only: false
268
+ transformers_trust_remote_code: true
269
+ upload_checkpoints: false
270
+ upload_every: 1000
271
+ upload_last_n_checkpoints: 5
272
+ use_ddp: false
273
+ use_wandb: true
274
+ wandb_project: finetune-gr00t-n1d6
275
+ warmup_ratio: 0.05
276
+ warmup_steps: 0
277
+ weight_decay: 1.0e-05
experiment_cfg/dataset_statistics.json ADDED
@@ -0,0 +1,2484 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "new_embodiment": {
3
+ "state": {
4
+ "left_arm": {
5
+ "min": [
6
+ 0.007514109369367361,
7
+ -0.18929164111614227,
8
+ -0.149826779961586,
9
+ -0.4075475335121155,
10
+ -0.2102392613887787,
11
+ -0.6168137192726135,
12
+ -0.33871832489967346
13
+ ],
14
+ "max": [
15
+ 0.4650239050388336,
16
+ 0.0822349488735199,
17
+ 0.14088654518127441,
18
+ 0.33636125922203064,
19
+ 0.235897496342659,
20
+ 0.1466945856809616,
21
+ 0.13865652680397034
22
+ ],
23
+ "mean": [
24
+ 0.2519901990890503,
25
+ -0.06935661286115646,
26
+ 0.022814815863966942,
27
+ -0.09018848091363907,
28
+ 0.021654706448316574,
29
+ -0.23458604514598846,
30
+ -0.05733570456504822
31
+ ],
32
+ "std": [
33
+ 0.10260733962059021,
34
+ 0.04646299034357071,
35
+ 0.04904322326183319,
36
+ 0.1516767293214798,
37
+ 0.11401974409818649,
38
+ 0.13612483441829681,
39
+ 0.09721395373344421
40
+ ],
41
+ "q01": [
42
+ 0.03888953112065792,
43
+ -0.1448526906967163,
44
+ -0.10482529893517495,
45
+ -0.3712506741285324,
46
+ -0.20844019144773485,
47
+ -0.572006106376648,
48
+ -0.33626349329948424
49
+ ],
50
+ "q99": [
51
+ 0.43300133407115937,
52
+ 0.0608543787896633,
53
+ 0.11066233366727829,
54
+ 0.24378718703985197,
55
+ 0.21668677031993866,
56
+ 0.11126729846000671,
57
+ 0.1128089502453804
58
+ ]
59
+ },
60
+ "right_arm": {
61
+ "min": [
62
+ -0.8936996459960938,
63
+ -0.1939878612756729,
64
+ -0.334096223115921,
65
+ -0.5565114617347717,
66
+ -0.6440802216529846,
67
+ -0.5487970113754272,
68
+ -0.35175713896751404
69
+ ],
70
+ "max": [
71
+ 0.5915054082870483,
72
+ 0.15196077525615692,
73
+ 0.2820966839790344,
74
+ 0.9750485420227051,
75
+ 0.131574809551239,
76
+ 0.4209703803062439,
77
+ 0.26870742440223694
78
+ ],
79
+ "mean": [
80
+ 0.07667578011751175,
81
+ 0.0041990275494754314,
82
+ 0.07650914043188095,
83
+ -0.13923636078834534,
84
+ -0.1865905374288559,
85
+ 0.01934133842587471,
86
+ -0.021168231964111328
87
+ ],
88
+ "std": [
89
+ 0.3632199764251709,
90
+ 0.05773900821805,
91
+ 0.1484663039445877,
92
+ 0.32691335678100586,
93
+ 0.10437294840812683,
94
+ 0.21236751973628998,
95
+ 0.10115174204111099
96
+ ],
97
+ "q01": [
98
+ -0.7506175482273102,
99
+ -0.14588245391845703,
100
+ -0.25775383472442626,
101
+ -0.5487686908245086,
102
+ -0.5132350063323975,
103
+ -0.4518024653196335,
104
+ -0.2529939329624176
105
+ ],
106
+ "q99": [
107
+ 0.522188663482666,
108
+ 0.14831757545471191,
109
+ 0.2747608947753906,
110
+ 0.7254164183139801,
111
+ 0.08655007183551788,
112
+ 0.40120503306388855,
113
+ 0.21435081958770752
114
+ ]
115
+ },
116
+ "left_hand": {
117
+ "min": [
118
+ -0.4308507740497589,
119
+ -0.07498734444379807,
120
+ -7.149366865633056e-05,
121
+ -1.1343876123428345,
122
+ -1.7289891242980957,
123
+ -0.9262771606445312,
124
+ -1.7393150329589844
125
+ ],
126
+ "max": [
127
+ 0.4561558961868286,
128
+ 0.8283541202545166,
129
+ 1.7212395668029785,
130
+ -0.6626491546630859,
131
+ -1.698238492012024,
132
+ -0.4994395077228546,
133
+ -1.3350472450256348
134
+ ],
135
+ "mean": [
136
+ -0.06212276592850685,
137
+ 0.2965473234653473,
138
+ 1.1672838926315308,
139
+ -0.9263489842414856,
140
+ -1.7278943061828613,
141
+ -0.720302939414978,
142
+ -1.7066383361816406
143
+ ],
144
+ "std": [
145
+ 0.11729030311107635,
146
+ 0.24199409782886505,
147
+ 0.4297804534435272,
148
+ 0.07635227590799296,
149
+ 0.0006526127690325485,
150
+ 0.06956259161233862,
151
+ 0.061069246381521114
152
+ ],
153
+ "q01": [
154
+ -0.4308471977710724,
155
+ -0.048106592148542404,
156
+ 0.0007971279555931687,
157
+ -1.0903623485565186,
158
+ -1.7289766073226929,
159
+ -0.9106875658035278,
160
+ -1.7393051385879517
161
+ ],
162
+ "q99": [
163
+ 0.11098865419626236,
164
+ 0.8228176236152649,
165
+ 1.702892849445343,
166
+ -0.7595492076873781,
167
+ -1.7277528047561646,
168
+ -0.5658304691314697,
169
+ -1.455558454990387
170
+ ]
171
+ },
172
+ "right_hand": {
173
+ "min": [
174
+ -0.4075506627559662,
175
+ -0.8904967308044434,
176
+ -1.522615909576416,
177
+ 0.4062217175960541,
178
+ 1.5968576669692993,
179
+ 0.35724613070487976,
180
+ 0.015858886763453484
181
+ ],
182
+ "max": [
183
+ 0.42615073919296265,
184
+ -0.14561563730239868,
185
+ -0.05137570947408676,
186
+ 1.1064085960388184,
187
+ 1.7162147760391235,
188
+ 0.8596940636634827,
189
+ 1.7120684385299683
190
+ ],
191
+ "mean": [
192
+ -0.14523537456989288,
193
+ -0.41896554827690125,
194
+ -1.0454027652740479,
195
+ 0.8276225328445435,
196
+ 1.7129930257797241,
197
+ 0.5924423336982727,
198
+ 1.2269716262817383
199
+ ],
200
+ "std": [
201
+ 0.20543578267097473,
202
+ 0.12703286111354828,
203
+ 0.31115657091140747,
204
+ 0.12308108061552026,
205
+ 0.010742573998860675,
206
+ 0.0847981795668602,
207
+ 0.7415604591369629
208
+ ],
209
+ "q01": [
210
+ -0.4051880258321762,
211
+ -0.8199377298355103,
212
+ -1.4858814477920532,
213
+ 0.5461297571659088,
214
+ 1.6556979274749757,
215
+ 0.4564783811569214,
216
+ 0.015995755791664124
217
+ ],
218
+ "q99": [
219
+ 0.4223690330982208,
220
+ -0.16838766634464264,
221
+ -0.05189008265733719,
222
+ 1.074120774269104,
223
+ 1.716203212738037,
224
+ 0.7812296414375303,
225
+ 1.7061939239501953
226
+ ]
227
+ },
228
+ "left_leg": {
229
+ "min": [
230
+ -1.3750345706939697,
231
+ -0.07056652009487152,
232
+ -0.2589189112186432,
233
+ 0.6974243521690369,
234
+ -0.8412607312202454,
235
+ -0.13676193356513977
236
+ ],
237
+ "max": [
238
+ -0.28842952847480774,
239
+ 0.05019184947013855,
240
+ -0.09971605241298676,
241
+ 1.9130359888076782,
242
+ -0.35932573676109314,
243
+ -0.02193630114197731
244
+ ],
245
+ "mean": [
246
+ -1.0290476083755493,
247
+ -0.02181583270430565,
248
+ -0.16014648973941803,
249
+ 1.5754717588424683,
250
+ -0.7006692886352539,
251
+ -0.08549625426530838
252
+ ],
253
+ "std": [
254
+ 0.4142751097679138,
255
+ 0.023698311299085617,
256
+ 0.0404912531375885,
257
+ 0.47469016909599304,
258
+ 0.16523100435733795,
259
+ 0.028103550896048546
260
+ ],
261
+ "q01": [
262
+ -1.362526535987854,
263
+ -0.0668594092130661,
264
+ -0.2586912512779236,
265
+ 0.7006627917289734,
266
+ -0.8382866775989533,
267
+ -0.13286696255207062
268
+ ],
269
+ "q99": [
270
+ -0.29943767189979553,
271
+ 0.042785621136426914,
272
+ -0.10303724557161331,
273
+ 1.9125843048095703,
274
+ -0.3680635690689087,
275
+ -0.025123056024312973
276
+ ]
277
+ },
278
+ "right_leg": {
279
+ "min": [
280
+ -1.4187724590301514,
281
+ -0.04069310054183006,
282
+ 0.06734784692525864,
283
+ 0.6745510101318359,
284
+ -0.7666367292404175,
285
+ 0.01890241913497448
286
+ ],
287
+ "max": [
288
+ -0.3165123462677002,
289
+ 0.06480216234922409,
290
+ 0.18107181787490845,
291
+ 1.8969802856445312,
292
+ -0.2781081795692444,
293
+ 0.12130604684352875
294
+ ],
295
+ "mean": [
296
+ -1.058505892753601,
297
+ 0.014533128589391708,
298
+ 0.11751989275217056,
299
+ 1.5623290538787842,
300
+ -0.6317465305328369,
301
+ 0.07071438431739807
302
+ ],
303
+ "std": [
304
+ 0.4157848656177521,
305
+ 0.020576033741235733,
306
+ 0.02720923162996769,
307
+ 0.4756644666194916,
308
+ 0.15989795327186584,
309
+ 0.024236585944890976
310
+ ],
311
+ "q01": [
312
+ -1.407522473335266,
313
+ -0.03726721182465553,
314
+ 0.0730527937412262,
315
+ 0.6817948222160339,
316
+ -0.762181590795517,
317
+ 0.025915426127612592
318
+ ],
319
+ "q99": [
320
+ -0.3197129964828491,
321
+ 0.06012352555990219,
322
+ 0.17919695377349854,
323
+ 1.8964178562164307,
324
+ -0.31004971265792847,
325
+ 0.11856115609407425
326
+ ]
327
+ },
328
+ "left_tactile": {
329
+ "min": [
330
+ 10.21679973602295,
331
+ 10.222399711608887,
332
+ 10.214400291442871,
333
+ 10.215999603271484,
334
+ 10.219200134277344,
335
+ 10.217599868774414
336
+ ],
337
+ "max": [
338
+ 10.224800109863281,
339
+ 10.231200218200684,
340
+ 10.223199844360352,
341
+ 10.223999977111816,
342
+ 10.22719955444336,
343
+ 10.226400375366211
344
+ ],
345
+ "mean": [
346
+ 10.219616889953613,
347
+ 10.223250389099121,
348
+ 10.218937873840332,
349
+ 10.219411849975586,
350
+ 10.221590042114258,
351
+ 10.22024154663086
352
+ ],
353
+ "std": [
354
+ 0.0014940842531572726,
355
+ 0.0032449851269392223,
356
+ 0.0016013614375220938,
357
+ 0.0013433671566723596,
358
+ 0.0017332509172692549,
359
+ 0.001966170733292536
360
+ ],
361
+ "q01": [
362
+ 10.217599868774414,
363
+ 10.223199844360352,
364
+ 10.215999603271484,
365
+ 10.217599868774414,
366
+ 10.220800399780273,
367
+ 10.219200134277344
368
+ ],
369
+ "q99": [
370
+ 10.223199844360352,
371
+ 10.228799819946289,
372
+ 10.221599578857422,
373
+ 10.222399711608887,
374
+ 10.225600242614746,
375
+ 10.224800109863281
376
+ ]
377
+ },
378
+ "right_tactile": {
379
+ "min": [
380
+ 10.211999893188477,
381
+ 10.223199844360352,
382
+ 10.220800399780273,
383
+ 10.220000267028809,
384
+ 10.212800025939941,
385
+ 10.202400207519531
386
+ ],
387
+ "max": [
388
+ 10.220000267028809,
389
+ 10.231200218200684,
390
+ 10.227999687194824,
391
+ 10.22719955444336,
392
+ 10.221599578857422,
393
+ 10.2391996383667
394
+ ],
395
+ "mean": [
396
+ 10.218391418457031,
397
+ 10.224363327026367,
398
+ 10.222492218017578,
399
+ 10.221891403198242,
400
+ 10.218749046325684,
401
+ 10.219623565673828
402
+ ],
403
+ "std": [
404
+ 0.003189058508597469,
405
+ 0.0029263480106467015,
406
+ 0.0023086441209033705,
407
+ 0.0018756325596042721,
408
+ 0.0023892929303081932,
409
+ 0.0016481101054945594
410
+ ],
411
+ "q01": [
412
+ 10.212800025939941,
413
+ 10.223999977111816,
414
+ 10.222399711608887,
415
+ 10.221599578857422,
416
+ 10.214400291442871,
417
+ 10.218400001525879
418
+ ],
419
+ "q99": [
420
+ 10.218400001525879,
421
+ 10.229599952697754,
422
+ 10.22719955444336,
423
+ 10.225600242614746,
424
+ 10.220000267028809,
425
+ 10.223999977111816
426
+ ]
427
+ },
428
+ "stage_vector": {
429
+ "min": [
430
+ 0.0,
431
+ 0.0,
432
+ 0.0
433
+ ],
434
+ "max": [
435
+ 1.0,
436
+ 1.0,
437
+ 1.0
438
+ ],
439
+ "mean": [
440
+ 0.28328365087509155,
441
+ 0.43652620911598206,
442
+ 0.2801901400089264
443
+ ],
444
+ "std": [
445
+ 0.4505709409713745,
446
+ 0.495915949344635,
447
+ 0.4491269290447235
448
+ ],
449
+ "q01": [
450
+ 0.0,
451
+ 0.0,
452
+ 0.0
453
+ ],
454
+ "q99": [
455
+ 1.0,
456
+ 1.0,
457
+ 1.0
458
+ ]
459
+ }
460
+ },
461
+ "action": {
462
+ "left_arm": {
463
+ "min": [
464
+ -0.024576343595981598,
465
+ -0.19300206005573273,
466
+ -0.15149207413196564,
467
+ -0.457133024930954,
468
+ -0.2558232545852661,
469
+ -0.7767539620399475,
470
+ -0.37758541107177734
471
+ ],
472
+ "max": [
473
+ 0.46476179361343384,
474
+ 0.09925973415374756,
475
+ 0.1419534981250763,
476
+ 0.3048163950443268,
477
+ 0.27031639218330383,
478
+ 0.06406693160533905,
479
+ 0.17619135975837708
480
+ ],
481
+ "mean": [
482
+ 0.23522652685642242,
483
+ -0.06243262067437172,
484
+ 0.024426061660051346,
485
+ -0.13468492031097412,
486
+ 0.008220959454774857,
487
+ -0.36362138390541077,
488
+ -0.051282066851854324
489
+ ],
490
+ "std": [
491
+ 0.10949194431304932,
492
+ 0.04852887615561485,
493
+ 0.049845729023218155,
494
+ 0.15269924700260162,
495
+ 0.11446885764598846,
496
+ 0.14094361662864685,
497
+ 0.1041940227150917
498
+ ],
499
+ "q01": [
500
+ -0.00044505414320155967,
501
+ -0.14284758090972902,
502
+ -0.10543017894029617,
503
+ -0.416116259098053,
504
+ -0.23396779596805573,
505
+ -0.710577826499939,
506
+ -0.34575263142585755
507
+ ],
508
+ "q99": [
509
+ 0.4313181138038635,
510
+ 0.07442810654640193,
511
+ 0.11147458210587498,
512
+ 0.19673391342163074,
513
+ 0.2185818526148796,
514
+ 0.010957014281302278,
515
+ 0.11929280713200568
516
+ ]
517
+ },
518
+ "right_arm": {
519
+ "min": [
520
+ -1.0275291204452515,
521
+ -0.23678767681121826,
522
+ -0.3515032231807709,
523
+ -0.6127791404724121,
524
+ -0.6372695565223694,
525
+ -0.6769841909408569,
526
+ -0.4810679852962494
527
+ ],
528
+ "max": [
529
+ 0.6011592745780945,
530
+ 0.1821075826883316,
531
+ 0.2879699170589447,
532
+ 0.9328665733337402,
533
+ 0.18182401359081268,
534
+ 0.32991257309913635,
535
+ 0.31212255358695984
536
+ ],
537
+ "mean": [
538
+ 0.04331257939338684,
539
+ -0.00202910415828228,
540
+ 0.07305609434843063,
541
+ -0.18497052788734436,
542
+ -0.16840681433677673,
543
+ -0.10881087929010391,
544
+ -0.05166449770331383
545
+ ],
546
+ "std": [
547
+ 0.3932342529296875,
548
+ 0.06519512087106705,
549
+ 0.1502009481191635,
550
+ 0.3282553255558014,
551
+ 0.1097516268491745,
552
+ 0.21773196756839752,
553
+ 0.1248994916677475
554
+ ],
555
+ "q01": [
556
+ -0.8609240639209748,
557
+ -0.1760118895769119,
558
+ -0.2632049125432968,
559
+ -0.5852332603931427,
560
+ -0.4969616222381592,
561
+ -0.5560399496555328,
562
+ -0.36353427231311797
563
+ ],
564
+ "q99": [
565
+ 0.5241394066810606,
566
+ 0.16028301090002037,
567
+ 0.2741725987195968,
568
+ 0.6823472690582273,
569
+ 0.12172499641776084,
570
+ 0.2957756376266479,
571
+ 0.2350681701302528
572
+ ]
573
+ },
574
+ "left_hand": {
575
+ "min": [
576
+ -0.4885875880718231,
577
+ -0.08734771609306335,
578
+ -0.0002891957410611212,
579
+ -1.1437904834747314,
580
+ -1.7463293075561523,
581
+ -0.9773809909820557,
582
+ -1.7463293075561523
583
+ ],
584
+ "max": [
585
+ 0.49287089705467224,
586
+ 0.8828208446502686,
587
+ 1.7463287115097046,
588
+ -0.635697603225708,
589
+ -1.679382562637329,
590
+ -0.4723009169101715,
591
+ -1.3175609111785889
592
+ ],
593
+ "mean": [
594
+ -0.056714534759521484,
595
+ 0.2950931191444397,
596
+ 1.1711361408233643,
597
+ -0.9256289601325989,
598
+ -1.7460756301879883,
599
+ -0.7191078066825867,
600
+ -1.7149202823638916
601
+ ],
602
+ "std": [
603
+ 0.13250012695789337,
604
+ 0.2444380819797516,
605
+ 0.43008729815483093,
606
+ 0.07768665999174082,
607
+ 0.0013224881840035977,
608
+ 0.07017041742801666,
609
+ 0.06425473093986511
610
+ ],
611
+ "q01": [
612
+ -0.4792321288585663,
613
+ -0.06071115307509899,
614
+ 0.0005660237569827586,
615
+ -1.0848853015899658,
616
+ -1.7463293075561523,
617
+ -0.9110012412071228,
618
+ -1.7463293075561523
619
+ ],
620
+ "q99": [
621
+ 0.12221956044435484,
622
+ 0.818757187128067,
623
+ 1.7278532934188842,
624
+ -0.7580480039119721,
625
+ -1.7463293075561523,
626
+ -0.5693804585933687,
627
+ -1.4647188830375673
628
+ ]
629
+ },
630
+ "right_hand": {
631
+ "min": [
632
+ -0.4645354449748993,
633
+ -0.920863687992096,
634
+ -1.549284815788269,
635
+ 0.33357611298561096,
636
+ 1.5830060243606567,
637
+ 0.3194844424724579,
638
+ -0.00047358969459310174
639
+ ],
640
+ "max": [
641
+ 0.4749326705932617,
642
+ -0.11484216153621674,
643
+ 9.331077308161184e-05,
644
+ 1.1213138103485107,
645
+ 1.7463293075561523,
646
+ 0.9700140953063965,
647
+ 1.7463293075561523
648
+ ],
649
+ "mean": [
650
+ -0.16253696382045746,
651
+ -0.4198652505874634,
652
+ -1.0469951629638672,
653
+ 0.8296967148780823,
654
+ 1.7425955533981323,
655
+ 0.5866898894309998,
656
+ 1.250057578086853
657
+ ],
658
+ "std": [
659
+ 0.23583261668682098,
660
+ 0.1327577382326126,
661
+ 0.3203360140323639,
662
+ 0.12637294828891754,
663
+ 0.01622690632939638,
664
+ 0.08595675975084305,
665
+ 0.775495707988739
666
+ ],
667
+ "q01": [
668
+ -0.4595325881242752,
669
+ -0.8311474764347077,
670
+ -1.4945218634605408,
671
+ 0.5355434608459473,
672
+ 1.6595230221748352,
673
+ 0.427796031832695,
674
+ -0.00017723789933370425
675
+ ],
676
+ "q99": [
677
+ 0.45639603078365326,
678
+ -0.1524571916460991,
679
+ -0.009329153485596235,
680
+ 1.0795005273818967,
681
+ 1.7463293075561523,
682
+ 0.7540887749195097,
683
+ 1.7463293075561523
684
+ ]
685
+ },
686
+ "base_motion": {
687
+ "min": [
688
+ -1.1210387714598537e-44,
689
+ 7.006492321624085e-45,
690
+ -2.2420775429197073e-44,
691
+ 0.5
692
+ ],
693
+ "max": [
694
+ 1.1210387714598537e-44,
695
+ 7.006492321624085e-45,
696
+ 2.2420775429197073e-44,
697
+ 0.7400000095367432
698
+ ],
699
+ "mean": [
700
+ -1.401298464324817e-45,
701
+ 7.006492321624085e-45,
702
+ -2.802596928649634e-45,
703
+ 0.5702357292175293
704
+ ],
705
+ "std": [
706
+ 0.0,
707
+ 0.0,
708
+ 0.0,
709
+ 0.09868615865707397
710
+ ],
711
+ "q01": [
712
+ -1.1210387714598537e-44,
713
+ 7.006492321624085e-45,
714
+ -2.2420775429197073e-44,
715
+ 0.5
716
+ ],
717
+ "q99": [
718
+ 1.1210387714598537e-44,
719
+ 7.006492321624085e-45,
720
+ 2.2420775429197073e-44,
721
+ 0.7400000095367432
722
+ ]
723
+ }
724
+ },
725
+ "relative_action": {
726
+ "left_arm": {
727
+ "min": [
728
+ [
729
+ -0.07622820883989334,
730
+ -0.045736201107501984,
731
+ -0.024492042139172554,
732
+ -0.10417802631855011,
733
+ -0.15750135481357574,
734
+ -0.25853198766708374,
735
+ -0.09323412925004959
736
+ ],
737
+ [
738
+ -0.08913230895996094,
739
+ -0.05562318116426468,
740
+ -0.03031637705862522,
741
+ -0.12201627343893051,
742
+ -0.17836607992649078,
743
+ -0.30837374925613403,
744
+ -0.09634796530008316
745
+ ],
746
+ [
747
+ -0.09613706171512604,
748
+ -0.058419905602931976,
749
+ -0.03524252772331238,
750
+ -0.13793230056762695,
751
+ -0.17960046231746674,
752
+ -0.33252033591270447,
753
+ -0.0994604229927063
754
+ ],
755
+ [
756
+ -0.0904865562915802,
757
+ -0.059031106531620026,
758
+ -0.03758798912167549,
759
+ -0.1468992680311203,
760
+ -0.1793607771396637,
761
+ -0.3230270743370056,
762
+ -0.10271576046943665
763
+ ],
764
+ [
765
+ -0.08559052646160126,
766
+ -0.059378646314144135,
767
+ -0.039457447826862335,
768
+ -0.15880872309207916,
769
+ -0.1793607771396637,
770
+ -0.3155611455440521,
771
+ -0.10571546852588654
772
+ ],
773
+ [
774
+ -0.08468303829431534,
775
+ -0.059678249061107635,
776
+ -0.04326734319329262,
777
+ -0.16800417006015778,
778
+ -0.17934879660606384,
779
+ -0.3084644377231598,
780
+ -0.1085258200764656
781
+ ],
782
+ [
783
+ -0.08730758726596832,
784
+ -0.06220733001828194,
785
+ -0.046173516660928726,
786
+ -0.17263169586658478,
787
+ -0.1793607771396637,
788
+ -0.31981441378593445,
789
+ -0.11112913489341736
790
+ ],
791
+ [
792
+ -0.09021975100040436,
793
+ -0.06931373476982117,
794
+ -0.05177014693617821,
795
+ -0.17713414132595062,
796
+ -0.17934879660606384,
797
+ -0.33190205693244934,
798
+ -0.11256340891122818
799
+ ],
800
+ [
801
+ -0.09336870163679123,
802
+ -0.07576124370098114,
803
+ -0.05683555454015732,
804
+ -0.1878727674484253,
805
+ -0.17934879660606384,
806
+ -0.3419594466686249,
807
+ -0.11396317929029465
808
+ ],
809
+ [
810
+ -0.0974433422088623,
811
+ -0.07885689288377762,
812
+ -0.061009373515844345,
813
+ -0.1966828852891922,
814
+ -0.1793847382068634,
815
+ -0.3514649569988251,
816
+ -0.11431742459535599
817
+ ],
818
+ [
819
+ -0.1010146364569664,
820
+ -0.08187691122293472,
821
+ -0.06441289186477661,
822
+ -0.2035556584596634,
823
+ -0.17939673364162445,
824
+ -0.36611804366111755,
825
+ -0.11452353745698929
826
+ ],
827
+ [
828
+ -0.1037110909819603,
829
+ -0.08386436104774475,
830
+ -0.06752326339483261,
831
+ -0.20997919142246246,
832
+ -0.1880127191543579,
833
+ -0.38052210211753845,
834
+ -0.11497827619314194
835
+ ],
836
+ [
837
+ -0.10742795467376709,
838
+ -0.08490698784589767,
839
+ -0.06970439106225967,
840
+ -0.21427622437477112,
841
+ -0.19453883171081543,
842
+ -0.3942354917526245,
843
+ -0.11577814072370529
844
+ ],
845
+ [
846
+ -0.11126679927110672,
847
+ -0.08538635820150375,
848
+ -0.07367339730262756,
849
+ -0.2224951982498169,
850
+ -0.19935956597328186,
851
+ -0.4063231348991394,
852
+ -0.11681322753429413
853
+ ],
854
+ [
855
+ -0.11374754458665848,
856
+ -0.08548223227262497,
857
+ -0.07784721255302429,
858
+ -0.2324540913105011,
859
+ -0.20202352106571198,
860
+ -0.41638052463531494,
861
+ -0.116928830742836
862
+ ],
863
+ [
864
+ -0.11684469133615494,
865
+ -0.08556612581014633,
866
+ -0.08201441168785095,
867
+ -0.241264209151268,
868
+ -0.20417222380638123,
869
+ -0.4251384735107422,
870
+ -0.11765088886022568
871
+ ]
872
+ ],
873
+ "max": [
874
+ [
875
+ 0.015977757051587105,
876
+ 0.04404575005173683,
877
+ 0.03901921212673187,
878
+ 0.09435912221670151,
879
+ 0.08788624405860901,
880
+ -0.017237501218914986,
881
+ 0.10296215116977692
882
+ ],
883
+ [
884
+ 0.02142711542546749,
885
+ 0.051759835332632065,
886
+ 0.051609497517347336,
887
+ 0.1366765797138214,
888
+ 0.09392031282186508,
889
+ -0.0020039237570017576,
890
+ 0.10341467708349228
891
+ ],
892
+ [
893
+ 0.026808014139533043,
894
+ 0.05809210240840912,
895
+ 0.05343788117170334,
896
+ 0.15200598537921906,
897
+ 0.10163187980651855,
898
+ 0.013804640620946884,
899
+ 0.10454358160495758
900
+ ],
901
+ [
902
+ 0.031116759404540062,
903
+ 0.06432388722896576,
904
+ 0.05431273207068443,
905
+ 0.1322161704301834,
906
+ 0.10834864526987076,
907
+ 0.031050706282258034,
908
+ 0.10622887313365936
909
+ ],
910
+ [
911
+ 0.03384915739297867,
912
+ 0.07279147207736969,
913
+ 0.05241922289133072,
914
+ 0.11756332218647003,
915
+ 0.11264035105705261,
916
+ 0.0441197007894516,
917
+ 0.10709062218666077
918
+ ],
919
+ [
920
+ 0.036437757313251495,
921
+ 0.08065453171730042,
922
+ 0.052275411784648895,
923
+ 0.11934897303581238,
924
+ 0.11375512182712555,
925
+ 0.05538678914308548,
926
+ 0.10738974809646606
927
+ ],
928
+ [
929
+ 0.038808662444353104,
930
+ 0.08584894239902496,
931
+ 0.052143584936857224,
932
+ 0.12053541094064713,
933
+ 0.1148640587925911,
934
+ 0.06607096642255783,
935
+ 0.10774257034063339
936
+ ],
937
+ [
938
+ 0.0408271886408329,
939
+ 0.09017525613307953,
940
+ 0.05222747474908829,
941
+ 0.12393893301486969,
942
+ 0.11744704842567444,
943
+ 0.0789027139544487,
944
+ 0.10797266662120819
945
+ ],
946
+ [
947
+ 0.04284054413437843,
948
+ 0.09323757886886597,
949
+ 0.053877439349889755,
950
+ 0.12637172639369965,
951
+ 0.11899301409721375,
952
+ 0.08895275741815567,
953
+ 0.10800334066152573
954
+ ],
955
+ [
956
+ 0.044674474745988846,
957
+ 0.09445846080780029,
958
+ 0.05536110699176788,
959
+ 0.12682713568210602,
960
+ 0.12020821869373322,
961
+ 0.10660547018051147,
962
+ 0.10801101475954056
963
+ ],
964
+ [
965
+ 0.04695464298129082,
966
+ 0.09523697197437286,
967
+ 0.05654754489660263,
968
+ 0.12709078192710876,
969
+ 0.1205090582370758,
970
+ 0.12570853531360626,
971
+ 0.1101171150803566
972
+ ],
973
+ [
974
+ 0.05064055323600769,
975
+ 0.0952242910861969,
976
+ 0.05768439918756485,
977
+ 0.12719863653182983,
978
+ 0.12062890827655792,
979
+ 0.14295460283756256,
980
+ 0.11454012989997864
981
+ ],
982
+ [
983
+ 0.053056422621011734,
984
+ 0.09705071896314621,
985
+ 0.05849326401948929,
986
+ 0.1311093121767044,
987
+ 0.12070954591035843,
988
+ 0.15608549118041992,
989
+ 0.12060114741325378
990
+ ],
991
+ [
992
+ 0.05454246699810028,
993
+ 0.09841693192720413,
994
+ 0.05857622250914574,
995
+ 0.1408339887857437,
996
+ 0.12073350697755814,
997
+ 0.16915448009967804,
998
+ 0.12555661797523499
999
+ ],
1000
+ [
1001
+ 0.0553046353161335,
1002
+ 0.09922627359628677,
1003
+ 0.058597978204488754,
1004
+ 0.14853587746620178,
1005
+ 0.12078144401311874,
1006
+ 0.1792045384645462,
1007
+ 0.12993615865707397
1008
+ ],
1009
+ [
1010
+ 0.0578119158744812,
1011
+ 0.09952587634325027,
1012
+ 0.058577150106430054,
1013
+ 0.15937454998493195,
1014
+ 0.12015275657176971,
1015
+ 0.18646536767482758,
1016
+ 0.13356173038482666
1017
+ ]
1018
+ ],
1019
+ "mean": [
1020
+ [
1021
+ -0.016429558396339417,
1022
+ 0.0069353217259049416,
1023
+ 0.0015954667469486594,
1024
+ -0.04450494423508644,
1025
+ -0.013448789715766907,
1026
+ -0.12885919213294983,
1027
+ 0.006054101511836052
1028
+ ],
1029
+ [
1030
+ -0.01639542728662491,
1031
+ 0.006939715705811977,
1032
+ 0.0015935843111947179,
1033
+ -0.04452306404709816,
1034
+ -0.013455050997436047,
1035
+ -0.12887760996818542,
1036
+ 0.006046186666935682
1037
+ ],
1038
+ [
1039
+ -0.016361944377422333,
1040
+ 0.006943393032997847,
1041
+ 0.0015920494915917516,
1042
+ -0.04453982040286064,
1043
+ -0.013460440561175346,
1044
+ -0.12889622151851654,
1045
+ 0.006039234343916178
1046
+ ],
1047
+ [
1048
+ -0.016329007223248482,
1049
+ 0.006946431007236242,
1050
+ 0.001590835745446384,
1051
+ -0.04455547034740448,
1052
+ -0.01346489880234003,
1053
+ -0.12891611456871033,
1054
+ 0.006033281795680523
1055
+ ],
1056
+ [
1057
+ -0.01629653014242649,
1058
+ 0.006948696915060282,
1059
+ 0.0015897511038929224,
1060
+ -0.0445704385638237,
1061
+ -0.013468561694025993,
1062
+ -0.12893657386302948,
1063
+ 0.006028138101100922
1064
+ ],
1065
+ [
1066
+ -0.016264578327536583,
1067
+ 0.006950414273887873,
1068
+ 0.0015887244371697307,
1069
+ -0.04458441957831383,
1070
+ -0.013471616432070732,
1071
+ -0.128957599401474,
1072
+ 0.006023419089615345
1073
+ ],
1074
+ [
1075
+ -0.016233161091804504,
1076
+ 0.006951747927814722,
1077
+ 0.0015877162804827094,
1078
+ -0.044597335159778595,
1079
+ -0.013474049046635628,
1080
+ -0.12897951900959015,
1081
+ 0.006018966902047396
1082
+ ],
1083
+ [
1084
+ -0.01620199903845787,
1085
+ 0.006953157018870115,
1086
+ 0.0015868708724156022,
1087
+ -0.0446101650595665,
1088
+ -0.013476339168846607,
1089
+ -0.12900301814079285,
1090
+ 0.006014388054609299
1091
+ ],
1092
+ [
1093
+ -0.016171230003237724,
1094
+ 0.006954841315746307,
1095
+ 0.0015862437430769205,
1096
+ -0.04462314024567604,
1097
+ -0.013478629291057587,
1098
+ -0.1290266364812851,
1099
+ 0.0060094366781413555
1100
+ ],
1101
+ [
1102
+ -0.016140643507242203,
1103
+ 0.006956810597330332,
1104
+ 0.0015859432751312852,
1105
+ -0.04463595896959305,
1106
+ -0.013480773195624352,
1107
+ -0.1290520876646042,
1108
+ 0.006004130933433771
1109
+ ],
1110
+ [
1111
+ -0.01611035130918026,
1112
+ 0.006959374062716961,
1113
+ 0.0015858671395108104,
1114
+ -0.04464864358305931,
1115
+ -0.013483142480254173,
1116
+ -0.12907744944095612,
1117
+ 0.005998133681714535
1118
+ ],
1119
+ [
1120
+ -0.016080256551504135,
1121
+ 0.006962378043681383,
1122
+ 0.001585829653777182,
1123
+ -0.044660575687885284,
1124
+ -0.013485522009432316,
1125
+ -0.1291046142578125,
1126
+ 0.005991823505610228
1127
+ ],
1128
+ [
1129
+ -0.016050299629569054,
1130
+ 0.006965729407966137,
1131
+ 0.0015856492100283504,
1132
+ -0.04467185214161873,
1133
+ -0.013487285934388638,
1134
+ -0.1291322559118271,
1135
+ 0.005985733587294817
1136
+ ],
1137
+ [
1138
+ -0.01602034643292427,
1139
+ 0.006969245616346598,
1140
+ 0.0015852201031520963,
1141
+ -0.04468274489045143,
1142
+ -0.013488379307091236,
1143
+ -0.12916117906570435,
1144
+ 0.005980045534670353
1145
+ ],
1146
+ [
1147
+ -0.01599092036485672,
1148
+ 0.006972827482968569,
1149
+ 0.0015846793539822102,
1150
+ -0.04469260200858116,
1151
+ -0.013489087112247944,
1152
+ -0.1291913539171219,
1153
+ 0.005974824074655771
1154
+ ],
1155
+ [
1156
+ -0.015962176024913788,
1157
+ 0.006976552773267031,
1158
+ 0.001584358629770577,
1159
+ -0.044701024889945984,
1160
+ -0.013489966280758381,
1161
+ -0.1292232871055603,
1162
+ 0.005969819612801075
1163
+ ]
1164
+ ],
1165
+ "std": [
1166
+ [
1167
+ 0.011825861409306526,
1168
+ 0.006392425391823053,
1169
+ 0.004287296440452337,
1170
+ 0.010483902879059315,
1171
+ 0.027112264186143875,
1172
+ 0.031023483723402023,
1173
+ 0.03170475736260414
1174
+ ],
1175
+ [
1176
+ 0.012218126095831394,
1177
+ 0.0073453583754599094,
1178
+ 0.004818394780158997,
1179
+ 0.012285488657653332,
1180
+ 0.027428889647126198,
1181
+ 0.03191939741373062,
1182
+ 0.031824685633182526
1183
+ ],
1184
+ [
1185
+ 0.012649331241846085,
1186
+ 0.008274759165942669,
1187
+ 0.0053572445176541805,
1188
+ 0.014048010110855103,
1189
+ 0.027750931680202484,
1190
+ 0.03283458203077316,
1191
+ 0.031946610659360886
1192
+ ],
1193
+ [
1194
+ 0.01310708001255989,
1195
+ 0.009158030152320862,
1196
+ 0.005887316074222326,
1197
+ 0.015734422951936722,
1198
+ 0.028070935979485512,
1199
+ 0.03375374153256416,
1200
+ 0.03206825628876686
1201
+ ],
1202
+ [
1203
+ 0.013583984225988388,
1204
+ 0.009988210164010525,
1205
+ 0.006402452476322651,
1206
+ 0.017340397462248802,
1207
+ 0.02838580310344696,
1208
+ 0.03466804698109627,
1209
+ 0.03218800947070122
1210
+ ],
1211
+ [
1212
+ 0.014074578881263733,
1213
+ 0.010765604674816132,
1214
+ 0.006900522392243147,
1215
+ 0.018867995589971542,
1216
+ 0.028694024309515953,
1217
+ 0.035570260137319565,
1218
+ 0.032304808497428894
1219
+ ],
1220
+ [
1221
+ 0.014574095606803894,
1222
+ 0.01149338111281395,
1223
+ 0.007381603587418795,
1224
+ 0.02032065950334072,
1225
+ 0.028995832428336143,
1226
+ 0.036455534398555756,
1227
+ 0.03241840377449989
1228
+ ],
1229
+ [
1230
+ 0.015078289434313774,
1231
+ 0.012175658717751503,
1232
+ 0.00784631073474884,
1233
+ 0.021702313795685768,
1234
+ 0.02929149940609932,
1235
+ 0.03731967508792877,
1236
+ 0.03252885863184929
1237
+ ],
1238
+ [
1239
+ 0.015583621338009834,
1240
+ 0.01281686034053564,
1241
+ 0.008294928818941116,
1242
+ 0.02301538735628128,
1243
+ 0.02958044223487377,
1244
+ 0.03816025331616402,
1245
+ 0.03263583406805992
1246
+ ],
1247
+ [
1248
+ 0.01608768105506897,
1249
+ 0.01342149917036295,
1250
+ 0.008727717213332653,
1251
+ 0.024266285821795464,
1252
+ 0.029862279072403908,
1253
+ 0.03897618502378464,
1254
+ 0.032739490270614624
1255
+ ],
1256
+ [
1257
+ 0.016589516773819923,
1258
+ 0.013993697240948677,
1259
+ 0.009145273827016354,
1260
+ 0.02546215057373047,
1261
+ 0.030137430876493454,
1262
+ 0.039766620844602585,
1263
+ 0.03283972665667534
1264
+ ],
1265
+ [
1266
+ 0.01708812452852726,
1267
+ 0.01453725527971983,
1268
+ 0.00954832136631012,
1269
+ 0.026609625667333603,
1270
+ 0.030406108126044273,
1271
+ 0.040531501173973083,
1272
+ 0.03293674811720848
1273
+ ],
1274
+ [
1275
+ 0.017582612112164497,
1276
+ 0.015055119059979916,
1277
+ 0.009937564842402935,
1278
+ 0.027713555842638016,
1279
+ 0.030669374391436577,
1280
+ 0.04127174988389015,
1281
+ 0.03303040191531181
1282
+ ],
1283
+ [
1284
+ 0.018072279170155525,
1285
+ 0.015548891387879848,
1286
+ 0.010313734412193298,
1287
+ 0.02877688966691494,
1288
+ 0.03092770278453827,
1289
+ 0.04198789969086647,
1290
+ 0.0331207737326622
1291
+ ],
1292
+ [
1293
+ 0.018556522205471992,
1294
+ 0.016020240262150764,
1295
+ 0.010677456855773926,
1296
+ 0.029802432283759117,
1297
+ 0.031182272359728813,
1298
+ 0.042682304978370667,
1299
+ 0.033208467066287994
1300
+ ],
1301
+ [
1302
+ 0.01903535984456539,
1303
+ 0.01647062972187996,
1304
+ 0.0110291987657547,
1305
+ 0.030792303383350372,
1306
+ 0.031433720141649246,
1307
+ 0.04335663095116615,
1308
+ 0.03329376131296158
1309
+ ]
1310
+ ],
1311
+ "q01": [
1312
+ [
1313
+ -0.04622314259409904,
1314
+ -0.008307285904884339,
1315
+ -0.008490394130349159,
1316
+ -0.0676896670460701,
1317
+ -0.07445713311433792,
1318
+ -0.19362182378768922,
1319
+ -0.061928598135709764
1320
+ ],
1321
+ [
1322
+ -0.046612609177827835,
1323
+ -0.011650921180844306,
1324
+ -0.010291783660650254,
1325
+ -0.07346388190984726,
1326
+ -0.07535391837358475,
1327
+ -0.19773479521274567,
1328
+ -0.06232737243175507
1329
+ ],
1330
+ [
1331
+ -0.04743372246623039,
1332
+ -0.014996273964643479,
1333
+ -0.011952423937618733,
1334
+ -0.07862176477909089,
1335
+ -0.07632588148117066,
1336
+ -0.20148021459579468,
1337
+ -0.0628684788942337
1338
+ ],
1339
+ [
1340
+ -0.04855104118585587,
1341
+ -0.0177967519313097,
1342
+ -0.013546783439815045,
1343
+ -0.08359089076519012,
1344
+ -0.07716200590133666,
1345
+ -0.20549540758132934,
1346
+ -0.06333057880401612
1347
+ ],
1348
+ [
1349
+ -0.0501094363629818,
1350
+ -0.020702863186597826,
1351
+ -0.01516138829290867,
1352
+ -0.08846967458724976,
1353
+ -0.07789466947317124,
1354
+ -0.20938783168792724,
1355
+ -0.06382771521806717
1356
+ ],
1357
+ [
1358
+ -0.05136882558465004,
1359
+ -0.02320220932364464,
1360
+ -0.016573313996195792,
1361
+ -0.09259165406227111,
1362
+ -0.07890617012977601,
1363
+ -0.21290286481380463,
1364
+ -0.06448370844125748
1365
+ ],
1366
+ [
1367
+ -0.052903211414813994,
1368
+ -0.025262738391757012,
1369
+ -0.017913958728313445,
1370
+ -0.09684110671281815,
1371
+ -0.08008257806301117,
1372
+ -0.21620362639427185,
1373
+ -0.06511226683855056
1374
+ ],
1375
+ [
1376
+ -0.05428747460246086,
1377
+ -0.027835426777601244,
1378
+ -0.019191644936800003,
1379
+ -0.1010166883468628,
1380
+ -0.08070138275623322,
1381
+ -0.21999299585819243,
1382
+ -0.06565656781196594
1383
+ ],
1384
+ [
1385
+ -0.055708788335323334,
1386
+ -0.030057060346007348,
1387
+ -0.02054811894893646,
1388
+ -0.10428876161575318,
1389
+ -0.08152741551399231,
1390
+ -0.2225034373998642,
1391
+ -0.06588516235351563
1392
+ ],
1393
+ [
1394
+ -0.057639194279909135,
1395
+ -0.03201180726289749,
1396
+ -0.022005736231803893,
1397
+ -0.10758236765861512,
1398
+ -0.08232917964458465,
1399
+ -0.2261549198627472,
1400
+ -0.0668011498451233
1401
+ ],
1402
+ [
1403
+ -0.0590645532310009,
1404
+ -0.034173800349235534,
1405
+ -0.023271598368883133,
1406
+ -0.11097691774368286,
1407
+ -0.0830073583126068,
1408
+ -0.22886166214942932,
1409
+ -0.06737253874540329
1410
+ ],
1411
+ [
1412
+ -0.06030508399009705,
1413
+ -0.03593111291527748,
1414
+ -0.02421952731907368,
1415
+ -0.11398636490106583,
1416
+ -0.08369743198156357,
1417
+ -0.2312383097410202,
1418
+ -0.06778757721185684
1419
+ ],
1420
+ [
1421
+ -0.06210161298513413,
1422
+ -0.03801637142896652,
1423
+ -0.02529083549976349,
1424
+ -0.11655550122261048,
1425
+ -0.08422239661216736,
1426
+ -0.23488296568393707,
1427
+ -0.06788509011268616
1428
+ ],
1429
+ [
1430
+ -0.06320643812417984,
1431
+ -0.03934221312403679,
1432
+ -0.0261855249106884,
1433
+ -0.11943628251552582,
1434
+ -0.0850162598490715,
1435
+ -0.2378564405441284,
1436
+ -0.0679780986905098
1437
+ ],
1438
+ [
1439
+ -0.064977488219738,
1440
+ -0.04063037306070328,
1441
+ -0.02722482807934284,
1442
+ -0.12161165028810501,
1443
+ -0.08582942545413971,
1444
+ -0.24111946940422058,
1445
+ -0.06802518516778946
1446
+ ],
1447
+ [
1448
+ -0.06639553010463714,
1449
+ -0.04221493750810623,
1450
+ -0.028230831772089005,
1451
+ -0.12370074927806854,
1452
+ -0.08680418074131012,
1453
+ -0.24414193391799927,
1454
+ -0.06823185563087464
1455
+ ]
1456
+ ],
1457
+ "q99": [
1458
+ [
1459
+ 0.004656263776123502,
1460
+ 0.02436448931694029,
1461
+ 0.012156174294650478,
1462
+ -0.020165615007281326,
1463
+ 0.05461462959647178,
1464
+ -0.0671138140559197,
1465
+ 0.07455390423536297
1466
+ ],
1467
+ [
1468
+ 0.0061347206495701995,
1469
+ 0.027462484985589976,
1470
+ 0.0132566840201616,
1471
+ -0.01396050214767462,
1472
+ 0.05510353460907929,
1473
+ -0.06266963809728657,
1474
+ 0.07488894909620285
1475
+ ],
1476
+ [
1477
+ 0.007568276859819833,
1478
+ 0.030595035627484314,
1479
+ 0.01467669893056151,
1480
+ -0.007382741030305783,
1481
+ 0.055912096500396545,
1482
+ -0.057715185880661074,
1483
+ 0.07538597434759138
1484
+ ],
1485
+ [
1486
+ 0.008978409208357307,
1487
+ 0.0338817764818667,
1488
+ 0.01600337348878383,
1489
+ -0.0016752185812221143,
1490
+ 0.05657489240169484,
1491
+ -0.05299083456397058,
1492
+ 0.07566628962755194
1493
+ ],
1494
+ [
1495
+ 0.01023503120988604,
1496
+ 0.03642069160938259,
1497
+ 0.017350260913372037,
1498
+ 0.003946564402431037,
1499
+ 0.05737654566764822,
1500
+ -0.049000139683485246,
1501
+ 0.0760581329464911
1502
+ ],
1503
+ [
1504
+ 0.011601876951754055,
1505
+ 0.03897130548954006,
1506
+ 0.01881953127682199,
1507
+ 0.008261921443045125,
1508
+ 0.05812256291508671,
1509
+ -0.044720715433359516,
1510
+ 0.07639338612556455
1511
+ ],
1512
+ [
1513
+ 0.013003568723797784,
1514
+ 0.04092910945415467,
1515
+ 0.020135950669646224,
1516
+ 0.01292175862938164,
1517
+ 0.05934927597641904,
1518
+ -0.04074918776750567,
1519
+ 0.07654993385076521
1520
+ ],
1521
+ [
1522
+ 0.014437343217432471,
1523
+ 0.04305482417345034,
1524
+ 0.021616475954651753,
1525
+ 0.016878136768936878,
1526
+ 0.05997981607913957,
1527
+ -0.03745743364095693,
1528
+ 0.0768541258573532
1529
+ ],
1530
+ [
1531
+ 0.015775382667779822,
1532
+ 0.04493375435471532,
1533
+ 0.022830811887979502,
1534
+ 0.021722924262285226,
1535
+ 0.06104373887181273,
1536
+ -0.03530887618660935,
1537
+ 0.07715219050645807
1538
+ ],
1539
+ [
1540
+ 0.017329863533377645,
1541
+ 0.04692360147833819,
1542
+ 0.024125670641660674,
1543
+ 0.024902458265423547,
1544
+ 0.06203017443418499,
1545
+ -0.0328259892761712,
1546
+ 0.0773990827798843
1547
+ ],
1548
+ [
1549
+ 0.018666266351938233,
1550
+ 0.048278795778751354,
1551
+ 0.025639460161328256,
1552
+ 0.028584808409213562,
1553
+ 0.06278873711824409,
1554
+ -0.030188267976045617,
1555
+ 0.07787250339984869
1556
+ ],
1557
+ [
1558
+ 0.02000120505690571,
1559
+ 0.05004169970750797,
1560
+ 0.027209311127662554,
1561
+ 0.03209126487374243,
1562
+ 0.06339012384414656,
1563
+ -0.027939502820372622,
1564
+ 0.07832653790712349
1565
+ ],
1566
+ [
1567
+ 0.021443105861544465,
1568
+ 0.05132340997457504,
1569
+ 0.028269902020692815,
1570
+ 0.035937565267085914,
1571
+ 0.06374859243631363,
1572
+ -0.025297830030322235,
1573
+ 0.07869139432907092
1574
+ ],
1575
+ [
1576
+ 0.02305323384702202,
1577
+ 0.052831251472234504,
1578
+ 0.029321596175432136,
1579
+ 0.0393026396632187,
1580
+ 0.0641001376509666,
1581
+ -0.02329372525215155,
1582
+ 0.07899091005325252
1583
+ ],
1584
+ [
1585
+ 0.024395828917622528,
1586
+ 0.054699641019105905,
1587
+ 0.030233986824750897,
1588
+ 0.042118883281946094,
1589
+ 0.06462896525859814,
1590
+ -0.02135455332696438,
1591
+ 0.07985360413789709
1592
+ ],
1593
+ [
1594
+ 0.02560890540480611,
1595
+ 0.056384813785552754,
1596
+ 0.03138738974928851,
1597
+ 0.045284829139709444,
1598
+ 0.06523517310619335,
1599
+ -0.020123302638530762,
1600
+ 0.0802537137269973
1601
+ ]
1602
+ ]
1603
+ },
1604
+ "right_arm": {
1605
+ "min": [
1606
+ [
1607
+ -0.18255622684955597,
1608
+ -0.09692332148551941,
1609
+ -0.09292467683553696,
1610
+ -0.17000079154968262,
1611
+ -0.10623376071453094,
1612
+ -0.30272069573402405,
1613
+ -0.2446182668209076
1614
+ ],
1615
+ [
1616
+ -0.1980544924736023,
1617
+ -0.12140203267335892,
1618
+ -0.12051830440759659,
1619
+ -0.21814937889575958,
1620
+ -0.14974921941757202,
1621
+ -0.33457380533218384,
1622
+ -0.2506905794143677
1623
+ ],
1624
+ [
1625
+ -0.21059243381023407,
1626
+ -0.14284181594848633,
1627
+ -0.14709141850471497,
1628
+ -0.26926589012145996,
1629
+ -0.17695342004299164,
1630
+ -0.3682600259780884,
1631
+ -0.25585681200027466
1632
+ ],
1633
+ [
1634
+ -0.22066092491149902,
1635
+ -0.1601230651140213,
1636
+ -0.17002476751804352,
1637
+ -0.31486445665359497,
1638
+ -0.20072989165782928,
1639
+ -0.3951215445995331,
1640
+ -0.26058146357536316
1641
+ ],
1642
+ [
1643
+ -0.23904983699321747,
1644
+ -0.17609803378582,
1645
+ -0.19097542762756348,
1646
+ -0.3542759120464325,
1647
+ -0.2177235186100006,
1648
+ -0.40929481387138367,
1649
+ -0.26509329676628113
1650
+ ],
1651
+ [
1652
+ -0.2589556574821472,
1653
+ -0.1912798434495926,
1654
+ -0.2118159830570221,
1655
+ -0.39143532514572144,
1656
+ -0.23153835535049438,
1657
+ -0.4320828318595886,
1658
+ -0.26879316568374634
1659
+ ],
1660
+ [
1661
+ -0.28323569893836975,
1662
+ -0.2010589838027954,
1663
+ -0.22858333587646484,
1664
+ -0.44183051586151123,
1665
+ -0.2467557191848755,
1666
+ -0.4462561011314392,
1667
+ -0.272482305765152
1668
+ ],
1669
+ [
1670
+ -0.3092654347419739,
1671
+ -0.2091546654701233,
1672
+ -0.24548879265785217,
1673
+ -0.4844951629638672,
1674
+ -0.2558637261390686,
1675
+ -0.4525761008262634,
1676
+ -0.2765922248363495
1677
+ ],
1678
+ [
1679
+ -0.32896748185157776,
1680
+ -0.2143545001745224,
1681
+ -0.25719738006591797,
1682
+ -0.5224851369857788,
1683
+ -0.27023929357528687,
1684
+ -0.45484408736228943,
1685
+ -0.28124815225601196
1686
+ ],
1687
+ [
1688
+ -0.3500683307647705,
1689
+ -0.2193051278591156,
1690
+ -0.2673355042934418,
1691
+ -0.5496893525123596,
1692
+ -0.28222835063934326,
1693
+ -0.4566555321216583,
1694
+ -0.29134175181388855
1695
+ ],
1696
+ [
1697
+ -0.3729942739009857,
1698
+ -0.22685401141643524,
1699
+ -0.27599555253982544,
1700
+ -0.5840721130371094,
1701
+ -0.2913363575935364,
1702
+ -0.45726144313812256,
1703
+ -0.30103787779808044
1704
+ ],
1705
+ [
1706
+ -0.39788001775741577,
1707
+ -0.24052082002162933,
1708
+ -0.2852342426776886,
1709
+ -0.6084165573120117,
1710
+ -0.29905447363853455,
1711
+ -0.45726144313812256,
1712
+ -0.307750403881073
1713
+ ],
1714
+ [
1715
+ -0.4202839136123657,
1716
+ -0.2533271312713623,
1717
+ -0.2950189709663391,
1718
+ -0.628186047077179,
1719
+ -0.3027378022670746,
1720
+ -0.46302181482315063,
1721
+ -0.3125901222229004
1722
+ ],
1723
+ [
1724
+ -0.44196557998657227,
1725
+ -0.2639065980911255,
1726
+ -0.3039972484111786,
1727
+ -0.6649296879768372,
1728
+ -0.3041999042034149,
1729
+ -0.47352665662765503,
1730
+ -0.3163354992866516
1731
+ ],
1732
+ [
1733
+ -0.46166762709617615,
1734
+ -0.2736857235431671,
1735
+ -0.31263232231140137,
1736
+ -0.7018457055091858,
1737
+ -0.3065248429775238,
1738
+ -0.4830750823020935,
1739
+ -0.3184293806552887
1740
+ ],
1741
+ [
1742
+ -0.4771503508090973,
1743
+ -0.27945393323898315,
1744
+ -0.3201043903827667,
1745
+ -0.753420352935791,
1746
+ -0.3074657618999481,
1747
+ -0.49076923727989197,
1748
+ -0.31989434361457825
1749
+ ]
1750
+ ],
1751
+ "max": [
1752
+ [
1753
+ 0.12350016832351685,
1754
+ 0.06404267996549606,
1755
+ 0.07273585349321365,
1756
+ 0.05452950298786163,
1757
+ 0.1482069343328476,
1758
+ 0.032315466552972794,
1759
+ 0.1293548047542572
1760
+ ],
1761
+ [
1762
+ 0.1699630171060562,
1763
+ 0.07625115662813187,
1764
+ 0.10068810731172562,
1765
+ 0.09472458064556122,
1766
+ 0.17827533185482025,
1767
+ 0.06771975010633469,
1768
+ 0.13748396933078766
1769
+ ],
1770
+ [
1771
+ 0.21331338584423065,
1772
+ 0.08941559493541718,
1773
+ 0.1296539604663849,
1774
+ 0.13398490846157074,
1775
+ 0.2077164202928543,
1776
+ 0.10562442243099213,
1777
+ 0.15504804253578186
1778
+ ],
1779
+ [
1780
+ 0.25367626547813416,
1781
+ 0.10549355298280716,
1782
+ 0.15352654457092285,
1783
+ 0.16804912686347961,
1784
+ 0.22960878908634186,
1785
+ 0.13112854957580566,
1786
+ 0.17075639963150024
1787
+ ],
1788
+ [
1789
+ 0.29456642270088196,
1790
+ 0.11876009404659271,
1791
+ 0.17697104811668396,
1792
+ 0.1920251101255417,
1793
+ 0.24124443531036377,
1794
+ 0.13891100883483887,
1795
+ 0.18262174725532532
1796
+ ],
1797
+ [
1798
+ 0.33867692947387695,
1799
+ 0.12887607514858246,
1800
+ 0.19897224009037018,
1801
+ 0.22185829281806946,
1802
+ 0.2528076171875,
1803
+ 0.15917807817459106,
1804
+ 0.18781426548957825
1805
+ ],
1806
+ [
1807
+ 0.3845165967941284,
1808
+ 0.141583651304245,
1809
+ 0.2196330428123474,
1810
+ 0.24583427608013153,
1811
+ 0.2650332748889923,
1812
+ 0.17128480970859528,
1813
+ 0.1889340728521347
1814
+ ],
1815
+ [
1816
+ 0.42928966879844666,
1817
+ 0.15548282861709595,
1818
+ 0.23999927937984467,
1819
+ 0.25795096158981323,
1820
+ 0.2775998115539551,
1821
+ 0.18633539974689484,
1822
+ 0.18935592472553253
1823
+ ],
1824
+ [
1825
+ 0.4748417139053345,
1826
+ 0.16741718351840973,
1827
+ 0.25922197103500366,
1828
+ 0.2688206434249878,
1829
+ 0.28491392731666565,
1830
+ 0.19848792254924774,
1831
+ 0.20066645741462708
1832
+ ],
1833
+ [
1834
+ 0.5184642672538757,
1835
+ 0.17874227464199066,
1836
+ 0.27426770329475403,
1837
+ 0.2764401435852051,
1838
+ 0.29078617691993713,
1839
+ 0.21685436367988586,
1840
+ 0.21251550316810608
1841
+ ],
1842
+ [
1843
+ 0.5618146657943726,
1844
+ 0.18768036365509033,
1845
+ 0.29019954800605774,
1846
+ 0.29648664593696594,
1847
+ 0.29575443267822266,
1848
+ 0.23711276054382324,
1849
+ 0.22065326571464539
1850
+ ],
1851
+ [
1852
+ 0.6021894812583923,
1853
+ 0.19289803504943848,
1854
+ 0.30705904960632324,
1855
+ 0.31606945395469666,
1856
+ 0.3109463155269623,
1857
+ 0.24506354331970215,
1858
+ 0.22708694636821747
1859
+ ],
1860
+ [
1861
+ 0.6377010941505432,
1862
+ 0.19759584963321686,
1863
+ 0.32628175616264343,
1864
+ 0.3289087116718292,
1865
+ 0.33258581161499023,
1866
+ 0.25080063939094543,
1867
+ 0.22986344993114471
1868
+ ],
1869
+ [
1870
+ 0.6686084270477295,
1871
+ 0.2008851170539856,
1872
+ 0.34208276867866516,
1873
+ 0.3408689498901367,
1874
+ 0.3472440838813782,
1875
+ 0.25377947092056274,
1876
+ 0.23528996109962463
1877
+ ],
1878
+ [
1879
+ 0.6988206505775452,
1880
+ 0.20723988115787506,
1881
+ 0.35506168007850647,
1882
+ 0.34993502497673035,
1883
+ 0.35654184222221375,
1884
+ 0.26173025369644165,
1885
+ 0.2428666651248932
1886
+ ],
1887
+ [
1888
+ 0.7303032279014587,
1889
+ 0.21596664190292358,
1890
+ 0.36694711446762085,
1891
+ 0.36015942692756653,
1892
+ 0.3670307397842407,
1893
+ 0.26818206906318665,
1894
+ 0.2510722875595093
1895
+ ]
1896
+ ],
1897
+ "mean": [
1898
+ [
1899
+ -0.03359650447964668,
1900
+ -0.0063542770221829414,
1901
+ -0.0034664678387343884,
1902
+ -0.04569611698389053,
1903
+ 0.018192779272794724,
1904
+ -0.12817202508449554,
1905
+ -0.031108560040593147
1906
+ ],
1907
+ [
1908
+ -0.03356211632490158,
1909
+ -0.006380406673997641,
1910
+ -0.0034362799488008022,
1911
+ -0.04573119431734085,
1912
+ 0.01818578876554966,
1913
+ -0.12816162407398224,
1914
+ -0.031118180602788925
1915
+ ],
1916
+ [
1917
+ -0.03352801501750946,
1918
+ -0.006406980101019144,
1919
+ -0.0034063609782606363,
1920
+ -0.045766040682792664,
1921
+ 0.01817888766527176,
1922
+ -0.1281517893075943,
1923
+ -0.0311278086155653
1924
+ ],
1925
+ [
1926
+ -0.033493950963020325,
1927
+ -0.00643377797678113,
1928
+ -0.0033766627311706543,
1929
+ -0.04580044373869896,
1930
+ 0.018171843141317368,
1931
+ -0.12814168632030487,
1932
+ -0.031137341633439064
1933
+ ],
1934
+ [
1935
+ -0.033460281789302826,
1936
+ -0.006460700184106827,
1937
+ -0.0033470995258539915,
1938
+ -0.04583476483821869,
1939
+ 0.018164722248911858,
1940
+ -0.12813225388526917,
1941
+ -0.031146971508860588
1942
+ ],
1943
+ [
1944
+ -0.03342682123184204,
1945
+ -0.006487803999334574,
1946
+ -0.0033178613521158695,
1947
+ -0.04586922377347946,
1948
+ 0.01815747655928135,
1949
+ -0.12812265753746033,
1950
+ -0.031156660988926888
1951
+ ],
1952
+ [
1953
+ -0.03339359164237976,
1954
+ -0.00651510851457715,
1955
+ -0.0032889756839722395,
1956
+ -0.04590309038758278,
1957
+ 0.018150243908166885,
1958
+ -0.12811145186424255,
1959
+ -0.031166134402155876
1960
+ ],
1961
+ [
1962
+ -0.03336064890027046,
1963
+ -0.006542588118463755,
1964
+ -0.0032602117862552404,
1965
+ -0.045936908572912216,
1966
+ 0.01814294420182705,
1967
+ -0.12810096144676208,
1968
+ -0.03117605857551098
1969
+ ],
1970
+ [
1971
+ -0.03332788124680519,
1972
+ -0.00657015573233366,
1973
+ -0.003231661394238472,
1974
+ -0.045970719307661057,
1975
+ 0.01813567988574505,
1976
+ -0.12808997929096222,
1977
+ -0.031185805797576904
1978
+ ],
1979
+ [
1980
+ -0.033295128494501114,
1981
+ -0.006597620900720358,
1982
+ -0.003203071653842926,
1983
+ -0.046004246920347214,
1984
+ 0.018128523603081703,
1985
+ -0.12807922065258026,
1986
+ -0.031195973977446556
1987
+ ],
1988
+ [
1989
+ -0.03326217457652092,
1990
+ -0.006624964531511068,
1991
+ -0.003174406010657549,
1992
+ -0.04603810980916023,
1993
+ 0.018121415749192238,
1994
+ -0.12806831300258636,
1995
+ -0.031206537038087845
1996
+ ],
1997
+ [
1998
+ -0.0332292802631855,
1999
+ -0.0066521307453513145,
2000
+ -0.0031457303557544947,
2001
+ -0.04607187956571579,
2002
+ 0.018114393576979637,
2003
+ -0.1280570775270462,
2004
+ -0.031217370182275772
2005
+ ],
2006
+ [
2007
+ -0.033196281641721725,
2008
+ -0.006679195910692215,
2009
+ -0.0031171361915767193,
2010
+ -0.04610637575387955,
2011
+ 0.01810743845999241,
2012
+ -0.1280459314584732,
2013
+ -0.031228506937623024
2014
+ ],
2015
+ [
2016
+ -0.033162906765937805,
2017
+ -0.006705950945615768,
2018
+ -0.0030886130407452583,
2019
+ -0.04614090174436569,
2020
+ 0.01810016855597496,
2021
+ -0.12803344428539276,
2022
+ -0.03123992122709751
2023
+ ],
2024
+ [
2025
+ -0.033129964023828506,
2026
+ -0.006732689216732979,
2027
+ -0.0030601914040744305,
2028
+ -0.04617581143975258,
2029
+ 0.018092336133122444,
2030
+ -0.1280205100774765,
2031
+ -0.03125133737921715
2032
+ ],
2033
+ [
2034
+ -0.03309671953320503,
2035
+ -0.006759390700608492,
2036
+ -0.003031878499314189,
2037
+ -0.046210695058107376,
2038
+ 0.018084224313497543,
2039
+ -0.12800705432891846,
2040
+ -0.03126346692442894
2041
+ ]
2042
+ ],
2043
+ "std": [
2044
+ [
2045
+ 0.039829544723033905,
2046
+ 0.013334874995052814,
2047
+ 0.010457828640937805,
2048
+ 0.01993582211434841,
2049
+ 0.02344525419175625,
2050
+ 0.04550760239362717,
2051
+ 0.049344997853040695
2052
+ ],
2053
+ [
2054
+ 0.0452265664935112,
2055
+ 0.014554019086062908,
2056
+ 0.013402878306806087,
2057
+ 0.027549268677830696,
2058
+ 0.025073381140828133,
2059
+ 0.04846374690532684,
2060
+ 0.05043491721153259
2061
+ ],
2062
+ [
2063
+ 0.051283057779073715,
2064
+ 0.015841616317629814,
2065
+ 0.01638469099998474,
2066
+ 0.035116855055093765,
2067
+ 0.02672877535223961,
2068
+ 0.051537904888391495,
2069
+ 0.05155995488166809
2070
+ ],
2071
+ [
2072
+ 0.057748597115278244,
2073
+ 0.017146218568086624,
2074
+ 0.01935090683400631,
2075
+ 0.04255920648574829,
2076
+ 0.028345320373773575,
2077
+ 0.054660990834236145,
2078
+ 0.05270710960030556
2079
+ ],
2080
+ [
2081
+ 0.06446487456560135,
2082
+ 0.01843920163810253,
2083
+ 0.02228090912103653,
2084
+ 0.04986594617366791,
2085
+ 0.029890188947319984,
2086
+ 0.057794298976659775,
2087
+ 0.05386839061975479
2088
+ ],
2089
+ [
2090
+ 0.07132971286773682,
2091
+ 0.01970643922686577,
2092
+ 0.02516501024365425,
2093
+ 0.057038936764001846,
2094
+ 0.031350500881671906,
2095
+ 0.06091252341866493,
2096
+ 0.055038146674633026
2097
+ ],
2098
+ [
2099
+ 0.07827640324831009,
2100
+ 0.020942892879247665,
2101
+ 0.02799983322620392,
2102
+ 0.06408945471048355,
2103
+ 0.03272697329521179,
2104
+ 0.06400544196367264,
2105
+ 0.05621388182044029
2106
+ ],
2107
+ [
2108
+ 0.08526018261909485,
2109
+ 0.022147685289382935,
2110
+ 0.03078352101147175,
2111
+ 0.07102730125188828,
2112
+ 0.03402606025338173,
2113
+ 0.06707064062356949,
2114
+ 0.05739317834377289
2115
+ ],
2116
+ [
2117
+ 0.09225087612867355,
2118
+ 0.023321758955717087,
2119
+ 0.033515382558107376,
2120
+ 0.07785595208406448,
2121
+ 0.035256609320640564,
2122
+ 0.0701066181063652,
2123
+ 0.058575086295604706
2124
+ ],
2125
+ [
2126
+ 0.09922734647989273,
2127
+ 0.024466577917337418,
2128
+ 0.03619565814733505,
2129
+ 0.08458174020051956,
2130
+ 0.036430008709430695,
2131
+ 0.07311279326677322,
2132
+ 0.05975819006562233
2133
+ ],
2134
+ [
2135
+ 0.1061762273311615,
2136
+ 0.025583801791071892,
2137
+ 0.038823582231998444,
2138
+ 0.09120872616767883,
2139
+ 0.03755835071206093,
2140
+ 0.07609168440103531,
2141
+ 0.06094188615679741
2142
+ ],
2143
+ [
2144
+ 0.1130877137184143,
2145
+ 0.026674848049879074,
2146
+ 0.04139989614486694,
2147
+ 0.09773985296487808,
2148
+ 0.03865175321698189,
2149
+ 0.07904466986656189,
2150
+ 0.0621248260140419
2151
+ ],
2152
+ [
2153
+ 0.11995487660169601,
2154
+ 0.02774064615368843,
2155
+ 0.04392512887716293,
2156
+ 0.10417889803647995,
2157
+ 0.03971854969859123,
2158
+ 0.08197483420372009,
2159
+ 0.06330550462007523
2160
+ ],
2161
+ [
2162
+ 0.12677296996116638,
2163
+ 0.028782140463590622,
2164
+ 0.04640025645494461,
2165
+ 0.11052925139665604,
2166
+ 0.04076521471142769,
2167
+ 0.08488458395004272,
2168
+ 0.06448257714509964
2169
+ ],
2170
+ [
2171
+ 0.13353855907917023,
2172
+ 0.029799966141581535,
2173
+ 0.048826828598976135,
2174
+ 0.11679350584745407,
2175
+ 0.04179719462990761,
2176
+ 0.08777610212564468,
2177
+ 0.06565429270267487
2178
+ ],
2179
+ [
2180
+ 0.1402478665113449,
2181
+ 0.03079410083591938,
2182
+ 0.0512065663933754,
2183
+ 0.12297338992357254,
2184
+ 0.04281911998987198,
2185
+ 0.09065018594264984,
2186
+ 0.06681971251964569
2187
+ ]
2188
+ ],
2189
+ "q01": [
2190
+ [
2191
+ -0.13750962615013124,
2192
+ -0.04247072264552117,
2193
+ -0.03378934487700462,
2194
+ -0.11675469785928726,
2195
+ -0.03200783759355545,
2196
+ -0.22091783165931703,
2197
+ -0.1768096750974655
2198
+ ],
2199
+ [
2200
+ -0.14424607276916504,
2201
+ -0.04651615753769875,
2202
+ -0.042183213233947754,
2203
+ -0.1491554844379425,
2204
+ -0.03689630866050721,
2205
+ -0.2304303228855133,
2206
+ -0.17945939362049104
2207
+ ],
2208
+ [
2209
+ -0.15191566288471223,
2210
+ -0.05035372689366341,
2211
+ -0.05081736862659454,
2212
+ -0.18126385152339936,
2213
+ -0.042545826286077504,
2214
+ -0.24095106601715088,
2215
+ -0.1816268652677536
2216
+ ],
2217
+ [
2218
+ -0.16307946145534516,
2219
+ -0.053802747726440434,
2220
+ -0.059569113552570344,
2221
+ -0.21154084742069246,
2222
+ -0.04783966079354286,
2223
+ -0.25071354269981383,
2224
+ -0.18356355488300324
2225
+ ],
2226
+ [
2227
+ -0.1775111722946167,
2228
+ -0.057263669967651365,
2229
+ -0.06876568883657455,
2230
+ -0.2400596880912781,
2231
+ -0.05272015526890755,
2232
+ -0.2615929090976715,
2233
+ -0.18613846361637115
2234
+ ],
2235
+ [
2236
+ -0.19098248422145844,
2237
+ -0.06050881281495094,
2238
+ -0.07729589462280273,
2239
+ -0.26847466349601745,
2240
+ -0.05697771579027176,
2241
+ -0.27112489581108096,
2242
+ -0.1886428999900818
2243
+ ],
2244
+ [
2245
+ -0.20526221990585328,
2246
+ -0.06363827466964722,
2247
+ -0.08559763759374618,
2248
+ -0.29606367111206056,
2249
+ -0.06107774153351784,
2250
+ -0.28135055661201475,
2251
+ -0.1904868507385254
2252
+ ],
2253
+ [
2254
+ -0.22063493132591247,
2255
+ -0.06648978859186172,
2256
+ -0.09409896671772004,
2257
+ -0.3236618721485138,
2258
+ -0.06476718991994858,
2259
+ -0.29061655402183534,
2260
+ -0.19292436003684998
2261
+ ],
2262
+ [
2263
+ -0.23629621922969818,
2264
+ -0.06956175029277802,
2265
+ -0.10166610687971116,
2266
+ -0.3479012370109558,
2267
+ -0.0686465722322464,
2268
+ -0.29843022108078004,
2269
+ -0.19563140332698822
2270
+ ],
2271
+ [
2272
+ -0.2524981129169464,
2273
+ -0.07243458658456803,
2274
+ -0.1089717835187912,
2275
+ -0.3745069336891174,
2276
+ -0.07311662077903748,
2277
+ -0.3061085331439972,
2278
+ -0.19757799208164215
2279
+ ],
2280
+ [
2281
+ -0.26782224178314207,
2282
+ -0.07559728175401688,
2283
+ -0.1177588877081871,
2284
+ -0.4018458092212677,
2285
+ -0.07510461658239365,
2286
+ -0.3141219937801361,
2287
+ -0.20047558784484865
2288
+ ],
2289
+ [
2290
+ -0.2836091434955597,
2291
+ -0.07782253801822663,
2292
+ -0.1249324032664299,
2293
+ -0.425461962223053,
2294
+ -0.07661609470844269,
2295
+ -0.32205559134483336,
2296
+ -0.2030619376897812
2297
+ ],
2298
+ [
2299
+ -0.2995654594898224,
2300
+ -0.08026286423206329,
2301
+ -0.13226791381835937,
2302
+ -0.4510619628429413,
2303
+ -0.0790648502111435,
2304
+ -0.3302214515209198,
2305
+ -0.20550915956497193
2306
+ ],
2307
+ [
2308
+ -0.31463701486587525,
2309
+ -0.08270477533340455,
2310
+ -0.14028286993503572,
2311
+ -0.47370739340782164,
2312
+ -0.0807826691865921,
2313
+ -0.33827576994895936,
2314
+ -0.2078059893846512
2315
+ ],
2316
+ [
2317
+ -0.3298435020446777,
2318
+ -0.0857370787858963,
2319
+ -0.14988621175289155,
2320
+ -0.49555626153945925,
2321
+ -0.08230435252189637,
2322
+ -0.34603124976158145,
2323
+ -0.21172499239444734
2324
+ ],
2325
+ [
2326
+ -0.34562394380569456,
2327
+ -0.08885273784399032,
2328
+ -0.1588945668935776,
2329
+ -0.5195184540748596,
2330
+ -0.08497349053621292,
2331
+ -0.35450040459632876,
2332
+ -0.21516731560230254
2333
+ ]
2334
+ ],
2335
+ "q99": [
2336
+ [
2337
+ 0.05844922319054574,
2338
+ 0.020636646971106322,
2339
+ 0.03304188787937161,
2340
+ -0.0016167667554692394,
2341
+ 0.07636893600225442,
2342
+ -0.028360849618911887,
2343
+ 0.04504189848899838
2344
+ ],
2345
+ [
2346
+ 0.09059948503971074,
2347
+ 0.02524238742887965,
2348
+ 0.045918569713830945,
2349
+ 0.014904681146144863,
2350
+ 0.08457019180059423,
2351
+ -0.012031168676913452,
2352
+ 0.051341017484664894
2353
+ ],
2354
+ [
2355
+ 0.12308671683073043,
2356
+ 0.029738063588738425,
2357
+ 0.05877865627408015,
2358
+ 0.03243583112955058,
2359
+ 0.09214855998754475,
2360
+ 0.0035695128887891243,
2361
+ 0.05900637239217756
2362
+ ],
2363
+ [
2364
+ 0.15321000874042476,
2365
+ 0.034766753315925505,
2366
+ 0.07135939329862585,
2367
+ 0.04850243851542459,
2368
+ 0.1002249440550804,
2369
+ 0.018891825899481435,
2370
+ 0.06656505435705162
2371
+ ],
2372
+ [
2373
+ 0.1844310116767881,
2374
+ 0.04002602100372309,
2375
+ 0.08289320051669984,
2376
+ 0.06386533945798857,
2377
+ 0.1073619920015331,
2378
+ 0.03366640135645865,
2379
+ 0.07353174775838826
2380
+ ],
2381
+ [
2382
+ 0.2146280968189239,
2383
+ 0.04474255263805383,
2384
+ 0.09538901537656753,
2385
+ 0.07889135330915423,
2386
+ 0.11422832220792742,
2387
+ 0.04724454656243308,
2388
+ 0.07953492581844301
2389
+ ],
2390
+ [
2391
+ 0.2434375727176665,
2392
+ 0.04911331295967099,
2393
+ 0.10861561179161051,
2394
+ 0.09243254214525133,
2395
+ 0.12033658891916271,
2396
+ 0.059079885631799126,
2397
+ 0.08629576236009581
2398
+ ],
2399
+ [
2400
+ 0.2740784430503839,
2401
+ 0.053401854336261705,
2402
+ 0.12044742822647093,
2403
+ 0.1058785063028335,
2404
+ 0.1251060348749159,
2405
+ 0.07289420396089547,
2406
+ 0.0936147624254226
2407
+ ],
2408
+ [
2409
+ 0.3011366677284231,
2410
+ 0.057454528361558864,
2411
+ 0.13288157522678337,
2412
+ 0.11771282702684366,
2413
+ 0.1303236156702037,
2414
+ 0.08344091027974979,
2415
+ 0.10037568867206557
2416
+ ],
2417
+ [
2418
+ 0.3317872881889342,
2419
+ 0.061262251734733084,
2420
+ 0.14326481103897093,
2421
+ 0.13144723117351528,
2422
+ 0.1349680978059756,
2423
+ 0.09575515538454014,
2424
+ 0.10770628571510296
2425
+ ],
2426
+ [
2427
+ 0.3604643321037292,
2428
+ 0.06437983065843556,
2429
+ 0.1537876594066618,
2430
+ 0.1431902700662606,
2431
+ 0.13940521597862207,
2432
+ 0.10467170447110995,
2433
+ 0.11305924117565135
2434
+ ],
2435
+ [
2436
+ 0.389729332923889,
2437
+ 0.0690164837241172,
2438
+ 0.16369911432266163,
2439
+ 0.15617775261402056,
2440
+ 0.14292275607585897,
2441
+ 0.11477734088897693,
2442
+ 0.11923920691013325
2443
+ ],
2444
+ [
2445
+ 0.4207373178005218,
2446
+ 0.07306275099515872,
2447
+ 0.1723968386650068,
2448
+ 0.1672256296873087,
2449
+ 0.14680689096450777,
2450
+ 0.1256800085306158,
2451
+ 0.12361429870128596
2452
+ ],
2453
+ [
2454
+ 0.4467963445186614,
2455
+ 0.07675206363201124,
2456
+ 0.1819396793842311,
2457
+ 0.17869345903396583,
2458
+ 0.15117235064506482,
2459
+ 0.13500303983688325,
2460
+ 0.1286120021343231
2461
+ ],
2462
+ [
2463
+ 0.47482824921607947,
2464
+ 0.0800686913728712,
2465
+ 0.19066066682338698,
2466
+ 0.19013451159000383,
2467
+ 0.15660697817802427,
2468
+ 0.14394973933696736,
2469
+ 0.13394156157970374
2470
+ ],
2471
+ [
2472
+ 0.5020002937316893,
2473
+ 0.0840494757890696,
2474
+ 0.20006704270839593,
2475
+ 0.20138345718383766,
2476
+ 0.16062463164329518,
2477
+ 0.1529850333929055,
2478
+ 0.13992634832858994
2479
+ ]
2480
+ ]
2481
+ }
2482
+ }
2483
+ }
2484
+ }
experiment_cfg/final_model_config.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "Gr00tN1d6",
3
+ "model_dtype": "bfloat16",
4
+ "model_name": "nvidia/Eagle-Block2A-2B-v2",
5
+ "backbone_model_type": "eagle",
6
+ "model_revision": null,
7
+ "tune_top_llm_layers": 4,
8
+ "backbone_embedding_dim": 2048,
9
+ "tune_llm": false,
10
+ "tune_visual": false,
11
+ "select_layer": 16,
12
+ "reproject_vision": false,
13
+ "use_flash_attention": true,
14
+ "load_bf16": true,
15
+ "collator_overwrite_image_inputs": false,
16
+ "eagle_collator": true,
17
+ "backbone_trainable_params_fp32": true,
18
+ "apply_sincos_state_encoding": true,
19
+ "use_relative_action": true,
20
+ "max_state_dim": 128,
21
+ "max_action_dim": 128,
22
+ "action_horizon": 50,
23
+ "hidden_size": 1024,
24
+ "input_embedding_dim": 1536,
25
+ "add_pos_embed": true,
26
+ "attn_dropout": 0.2,
27
+ "use_vlln": true,
28
+ "max_seq_len": 1024,
29
+ "use_alternate_vl_dit": true,
30
+ "attend_text_every_n_blocks": 2,
31
+ "diffusion_model_cfg": {
32
+ "attention_head_dim": 48,
33
+ "dropout": 0.2,
34
+ "final_dropout": true,
35
+ "interleave_self_attention": true,
36
+ "norm_type": "ada_norm",
37
+ "num_attention_heads": 32,
38
+ "num_layers": 32,
39
+ "output_dim": 1024,
40
+ "positional_embeddings": null
41
+ },
42
+ "num_inference_timesteps": 4,
43
+ "noise_beta_alpha": 1.5,
44
+ "noise_beta_beta": 1.0,
45
+ "noise_s": 0.999,
46
+ "num_timestep_buckets": 1000,
47
+ "tune_projector": true,
48
+ "tune_diffusion_model": true,
49
+ "tune_vlln": true,
50
+ "state_dropout_prob": 0.0,
51
+ "state_additive_noise_scale": 0.0,
52
+ "max_num_embodiments": 32
53
+ }
experiment_cfg/final_processor_config.json ADDED
The diff for this file is too large to render. See raw diff
 
global_step20000/bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:549b8b5473697980af8862e35f652c3a9a46812c693743c65c6a6b73c28aec27
3
+ size 9719841825
global_step20000/bf16_zero_pp_rank_1_mp_rank_00_optim_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:78e480ffdd60d8a3a70eab4b86604ecb6f15655d1c8affc0cecfd5787e45e974
3
+ size 9719835873
global_step20000/mp_rank_00_model_states.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4470bda24a508ba038611f08c53354c801555d68580caafa97c7c557358bea71
3
+ size 9907202435
latest ADDED
@@ -0,0 +1 @@
 
 
1
+ global_step20000
model-00001-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9dc12f7218e66f4531741e1322c4fd38e16a3e8068965c711d97c270191a8729
3
+ size 4991091456
model-00002-of-00002.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb4e116548730a78874d7794407137eb5be2d7881ab7fe77fca09195391c87d0
3
+ size 1582283096
model.safetensors.index.json ADDED
The diff for this file is too large to render. See raw diff
 
processor_config.json ADDED
@@ -0,0 +1,633 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "processor_class": "Gr00tN1d6Processor",
3
+ "processor_kwargs": {
4
+ "modality_configs": {
5
+ "behavior_r1_pro": {
6
+ "video": {
7
+ "delta_indices": [
8
+ 0
9
+ ],
10
+ "modality_keys": [
11
+ "observation.images.rgb.head_256_256",
12
+ "observation.images.rgb.left_wrist_256_256",
13
+ "observation.images.rgb.right_wrist_256_256"
14
+ ],
15
+ "sin_cos_embedding_keys": null,
16
+ "mean_std_embedding_keys": null,
17
+ "action_configs": null
18
+ },
19
+ "state": {
20
+ "delta_indices": [
21
+ 0
22
+ ],
23
+ "modality_keys": [
24
+ "robot_pos",
25
+ "robot_ori_cos",
26
+ "robot_ori_sin",
27
+ "robot_2d_ori",
28
+ "robot_2d_ori_cos",
29
+ "robot_2d_ori_sin",
30
+ "robot_lin_vel",
31
+ "robot_ang_vel",
32
+ "arm_left_qpos",
33
+ "arm_left_qpos_sin",
34
+ "arm_left_qpos_cos",
35
+ "eef_left_pos",
36
+ "eef_left_quat",
37
+ "gripper_left_qpos",
38
+ "arm_right_qpos",
39
+ "arm_right_qpos_sin",
40
+ "arm_right_qpos_cos",
41
+ "eef_right_pos",
42
+ "eef_right_quat",
43
+ "gripper_right_qpos",
44
+ "trunk_qpos"
45
+ ],
46
+ "sin_cos_embedding_keys": null,
47
+ "mean_std_embedding_keys": null,
48
+ "action_configs": null
49
+ },
50
+ "action": {
51
+ "delta_indices": [
52
+ 0,
53
+ 1,
54
+ 2,
55
+ 3,
56
+ 4,
57
+ 5,
58
+ 6,
59
+ 7,
60
+ 8,
61
+ 9,
62
+ 10,
63
+ 11,
64
+ 12,
65
+ 13,
66
+ 14,
67
+ 15,
68
+ 16,
69
+ 17,
70
+ 18,
71
+ 19,
72
+ 20,
73
+ 21,
74
+ 22,
75
+ 23,
76
+ 24,
77
+ 25,
78
+ 26,
79
+ 27,
80
+ 28,
81
+ 29,
82
+ 30,
83
+ 31
84
+ ],
85
+ "modality_keys": [
86
+ "base",
87
+ "torso",
88
+ "left_arm",
89
+ "left_gripper",
90
+ "right_arm",
91
+ "right_gripper"
92
+ ],
93
+ "sin_cos_embedding_keys": null,
94
+ "mean_std_embedding_keys": null,
95
+ "action_configs": [
96
+ {
97
+ "rep": "ABSOLUTE",
98
+ "type": "NON_EEF",
99
+ "format": "DEFAULT",
100
+ "state_key": null
101
+ },
102
+ {
103
+ "rep": "RELATIVE",
104
+ "type": "NON_EEF",
105
+ "format": "DEFAULT",
106
+ "state_key": "trunk_qpos"
107
+ },
108
+ {
109
+ "rep": "RELATIVE",
110
+ "type": "NON_EEF",
111
+ "format": "DEFAULT",
112
+ "state_key": "arm_left_qpos"
113
+ },
114
+ {
115
+ "rep": "ABSOLUTE",
116
+ "type": "NON_EEF",
117
+ "format": "DEFAULT",
118
+ "state_key": null
119
+ },
120
+ {
121
+ "rep": "RELATIVE",
122
+ "type": "NON_EEF",
123
+ "format": "DEFAULT",
124
+ "state_key": "arm_right_qpos"
125
+ },
126
+ {
127
+ "rep": "ABSOLUTE",
128
+ "type": "NON_EEF",
129
+ "format": "DEFAULT",
130
+ "state_key": null
131
+ }
132
+ ]
133
+ },
134
+ "language": {
135
+ "delta_indices": [
136
+ 0
137
+ ],
138
+ "modality_keys": [
139
+ "annotation.human.coarse_action"
140
+ ],
141
+ "sin_cos_embedding_keys": null,
142
+ "mean_std_embedding_keys": null,
143
+ "action_configs": null
144
+ }
145
+ },
146
+ "gr1": {
147
+ "video": {
148
+ "delta_indices": [
149
+ 0
150
+ ],
151
+ "modality_keys": [
152
+ "ego_view_bg_crop_pad_res256_freq20"
153
+ ],
154
+ "sin_cos_embedding_keys": null,
155
+ "mean_std_embedding_keys": null,
156
+ "action_configs": null
157
+ },
158
+ "state": {
159
+ "delta_indices": [
160
+ 0
161
+ ],
162
+ "modality_keys": [
163
+ "left_arm",
164
+ "right_arm",
165
+ "left_hand",
166
+ "right_hand",
167
+ "waist"
168
+ ],
169
+ "sin_cos_embedding_keys": [
170
+ "left_arm",
171
+ "right_arm",
172
+ "left_hand",
173
+ "right_hand",
174
+ "waist"
175
+ ],
176
+ "mean_std_embedding_keys": null,
177
+ "action_configs": null
178
+ },
179
+ "action": {
180
+ "delta_indices": [
181
+ 0,
182
+ 1,
183
+ 2,
184
+ 3,
185
+ 4,
186
+ 5,
187
+ 6,
188
+ 7,
189
+ 8,
190
+ 9,
191
+ 10,
192
+ 11,
193
+ 12,
194
+ 13,
195
+ 14,
196
+ 15
197
+ ],
198
+ "modality_keys": [
199
+ "left_arm",
200
+ "right_arm",
201
+ "left_hand",
202
+ "right_hand",
203
+ "waist"
204
+ ],
205
+ "sin_cos_embedding_keys": null,
206
+ "mean_std_embedding_keys": null,
207
+ "action_configs": [
208
+ {
209
+ "rep": "RELATIVE",
210
+ "type": "NON_EEF",
211
+ "format": "DEFAULT",
212
+ "state_key": null
213
+ },
214
+ {
215
+ "rep": "RELATIVE",
216
+ "type": "NON_EEF",
217
+ "format": "DEFAULT",
218
+ "state_key": null
219
+ },
220
+ {
221
+ "rep": "RELATIVE",
222
+ "type": "NON_EEF",
223
+ "format": "DEFAULT",
224
+ "state_key": null
225
+ },
226
+ {
227
+ "rep": "RELATIVE",
228
+ "type": "NON_EEF",
229
+ "format": "DEFAULT",
230
+ "state_key": null
231
+ },
232
+ {
233
+ "rep": "ABSOLUTE",
234
+ "type": "NON_EEF",
235
+ "format": "DEFAULT",
236
+ "state_key": null
237
+ }
238
+ ]
239
+ },
240
+ "language": {
241
+ "delta_indices": [
242
+ 0
243
+ ],
244
+ "modality_keys": [
245
+ "task"
246
+ ],
247
+ "sin_cos_embedding_keys": null,
248
+ "mean_std_embedding_keys": null,
249
+ "action_configs": null
250
+ },
251
+ "rl_info": {
252
+ "delta_indices": [
253
+ 0
254
+ ],
255
+ "modality_keys": [],
256
+ "sin_cos_embedding_keys": null,
257
+ "mean_std_embedding_keys": null,
258
+ "action_configs": null
259
+ }
260
+ },
261
+ "robocasa_panda_omron": {
262
+ "video": {
263
+ "delta_indices": [
264
+ 0
265
+ ],
266
+ "modality_keys": [
267
+ "res256_image_side_0",
268
+ "res256_image_side_1",
269
+ "res256_image_wrist_0"
270
+ ],
271
+ "sin_cos_embedding_keys": null,
272
+ "mean_std_embedding_keys": null,
273
+ "action_configs": null
274
+ },
275
+ "state": {
276
+ "delta_indices": [
277
+ 0
278
+ ],
279
+ "modality_keys": [
280
+ "end_effector_position_relative",
281
+ "end_effector_rotation_relative",
282
+ "gripper_qpos",
283
+ "base_position",
284
+ "base_rotation"
285
+ ],
286
+ "sin_cos_embedding_keys": null,
287
+ "mean_std_embedding_keys": null,
288
+ "action_configs": null
289
+ },
290
+ "action": {
291
+ "delta_indices": [
292
+ 0,
293
+ 1,
294
+ 2,
295
+ 3,
296
+ 4,
297
+ 5,
298
+ 6,
299
+ 7,
300
+ 8,
301
+ 9,
302
+ 10,
303
+ 11,
304
+ 12,
305
+ 13,
306
+ 14,
307
+ 15
308
+ ],
309
+ "modality_keys": [
310
+ "end_effector_position",
311
+ "end_effector_rotation",
312
+ "gripper_close",
313
+ "base_motion",
314
+ "control_mode"
315
+ ],
316
+ "sin_cos_embedding_keys": null,
317
+ "mean_std_embedding_keys": null,
318
+ "action_configs": [
319
+ {
320
+ "rep": "ABSOLUTE",
321
+ "type": "NON_EEF",
322
+ "format": "DEFAULT",
323
+ "state_key": null
324
+ },
325
+ {
326
+ "rep": "ABSOLUTE",
327
+ "type": "NON_EEF",
328
+ "format": "DEFAULT",
329
+ "state_key": null
330
+ },
331
+ {
332
+ "rep": "ABSOLUTE",
333
+ "type": "NON_EEF",
334
+ "format": "DEFAULT",
335
+ "state_key": null
336
+ },
337
+ {
338
+ "rep": "ABSOLUTE",
339
+ "type": "NON_EEF",
340
+ "format": "DEFAULT",
341
+ "state_key": null
342
+ },
343
+ {
344
+ "rep": "ABSOLUTE",
345
+ "type": "NON_EEF",
346
+ "format": "DEFAULT",
347
+ "state_key": null
348
+ }
349
+ ]
350
+ },
351
+ "language": {
352
+ "delta_indices": [
353
+ 0
354
+ ],
355
+ "modality_keys": [
356
+ "annotation.human.action.task_description"
357
+ ],
358
+ "sin_cos_embedding_keys": null,
359
+ "mean_std_embedding_keys": null,
360
+ "action_configs": null
361
+ }
362
+ },
363
+ "unitree_g1": {
364
+ "video": {
365
+ "delta_indices": [
366
+ 0
367
+ ],
368
+ "modality_keys": [
369
+ "ego_view"
370
+ ],
371
+ "sin_cos_embedding_keys": null,
372
+ "mean_std_embedding_keys": null,
373
+ "action_configs": null
374
+ },
375
+ "state": {
376
+ "delta_indices": [
377
+ 0
378
+ ],
379
+ "modality_keys": [
380
+ "left_leg",
381
+ "right_leg",
382
+ "waist",
383
+ "left_arm",
384
+ "right_arm",
385
+ "left_hand",
386
+ "right_hand"
387
+ ],
388
+ "sin_cos_embedding_keys": null,
389
+ "mean_std_embedding_keys": null,
390
+ "action_configs": null
391
+ },
392
+ "action": {
393
+ "delta_indices": [
394
+ 0,
395
+ 1,
396
+ 2,
397
+ 3,
398
+ 4,
399
+ 5,
400
+ 6,
401
+ 7,
402
+ 8,
403
+ 9,
404
+ 10,
405
+ 11,
406
+ 12,
407
+ 13,
408
+ 14,
409
+ 15,
410
+ 16,
411
+ 17,
412
+ 18,
413
+ 19,
414
+ 20,
415
+ 21,
416
+ 22,
417
+ 23,
418
+ 24,
419
+ 25,
420
+ 26,
421
+ 27,
422
+ 28,
423
+ 29
424
+ ],
425
+ "modality_keys": [
426
+ "left_arm",
427
+ "right_arm",
428
+ "left_hand",
429
+ "right_hand",
430
+ "waist",
431
+ "base_height_command",
432
+ "navigate_command"
433
+ ],
434
+ "sin_cos_embedding_keys": null,
435
+ "mean_std_embedding_keys": null,
436
+ "action_configs": [
437
+ {
438
+ "rep": "RELATIVE",
439
+ "type": "NON_EEF",
440
+ "format": "DEFAULT",
441
+ "state_key": null
442
+ },
443
+ {
444
+ "rep": "RELATIVE",
445
+ "type": "NON_EEF",
446
+ "format": "DEFAULT",
447
+ "state_key": null
448
+ },
449
+ {
450
+ "rep": "ABSOLUTE",
451
+ "type": "NON_EEF",
452
+ "format": "DEFAULT",
453
+ "state_key": null
454
+ },
455
+ {
456
+ "rep": "ABSOLUTE",
457
+ "type": "NON_EEF",
458
+ "format": "DEFAULT",
459
+ "state_key": null
460
+ },
461
+ {
462
+ "rep": "ABSOLUTE",
463
+ "type": "NON_EEF",
464
+ "format": "DEFAULT",
465
+ "state_key": null
466
+ },
467
+ {
468
+ "rep": "ABSOLUTE",
469
+ "type": "NON_EEF",
470
+ "format": "DEFAULT",
471
+ "state_key": null
472
+ },
473
+ {
474
+ "rep": "ABSOLUTE",
475
+ "type": "NON_EEF",
476
+ "format": "DEFAULT",
477
+ "state_key": null
478
+ }
479
+ ]
480
+ },
481
+ "language": {
482
+ "delta_indices": [
483
+ 0
484
+ ],
485
+ "modality_keys": [
486
+ "annotation.human.task_description"
487
+ ],
488
+ "sin_cos_embedding_keys": null,
489
+ "mean_std_embedding_keys": null,
490
+ "action_configs": null
491
+ }
492
+ },
493
+ "new_embodiment": {
494
+ "video": {
495
+ "delta_indices": [
496
+ 0
497
+ ],
498
+ "modality_keys": [
499
+ "ego_view",
500
+ "wrist_left",
501
+ "wrist_right"
502
+ ],
503
+ "sin_cos_embedding_keys": null,
504
+ "mean_std_embedding_keys": null,
505
+ "action_configs": null
506
+ },
507
+ "state": {
508
+ "delta_indices": [
509
+ 0
510
+ ],
511
+ "modality_keys": [
512
+ "left_arm",
513
+ "right_arm",
514
+ "left_hand",
515
+ "right_hand",
516
+ "left_leg",
517
+ "right_leg",
518
+ "left_tactile",
519
+ "right_tactile",
520
+ "stage_vector"
521
+ ],
522
+ "sin_cos_embedding_keys": [
523
+ "left_arm",
524
+ "right_arm",
525
+ "left_hand",
526
+ "right_hand",
527
+ "left_leg",
528
+ "right_leg"
529
+ ],
530
+ "mean_std_embedding_keys": [
531
+ "left_tactile",
532
+ "right_tactile"
533
+ ],
534
+ "action_configs": null
535
+ },
536
+ "action": {
537
+ "delta_indices": [
538
+ 0,
539
+ 1,
540
+ 2,
541
+ 3,
542
+ 4,
543
+ 5,
544
+ 6,
545
+ 7,
546
+ 8,
547
+ 9,
548
+ 10,
549
+ 11,
550
+ 12,
551
+ 13,
552
+ 14,
553
+ 15
554
+ ],
555
+ "modality_keys": [
556
+ "left_arm",
557
+ "right_arm",
558
+ "left_hand",
559
+ "right_hand",
560
+ "base_motion"
561
+ ],
562
+ "sin_cos_embedding_keys": null,
563
+ "mean_std_embedding_keys": null,
564
+ "action_configs": [
565
+ {
566
+ "rep": "RELATIVE",
567
+ "type": "NON_EEF",
568
+ "format": "DEFAULT",
569
+ "state_key": null
570
+ },
571
+ {
572
+ "rep": "RELATIVE",
573
+ "type": "NON_EEF",
574
+ "format": "DEFAULT",
575
+ "state_key": null
576
+ },
577
+ {
578
+ "rep": "ABSOLUTE",
579
+ "type": "NON_EEF",
580
+ "format": "DEFAULT",
581
+ "state_key": null
582
+ },
583
+ {
584
+ "rep": "ABSOLUTE",
585
+ "type": "NON_EEF",
586
+ "format": "DEFAULT",
587
+ "state_key": null
588
+ },
589
+ {
590
+ "rep": "ABSOLUTE",
591
+ "type": "NON_EEF",
592
+ "format": "DEFAULT",
593
+ "state_key": null
594
+ }
595
+ ]
596
+ },
597
+ "language": {
598
+ "delta_indices": [
599
+ 0
600
+ ],
601
+ "modality_keys": [
602
+ "annotation.human.action.task_description"
603
+ ],
604
+ "sin_cos_embedding_keys": null,
605
+ "mean_std_embedding_keys": null,
606
+ "action_configs": null
607
+ }
608
+ }
609
+ },
610
+ "image_crop_size": null,
611
+ "image_target_size": null,
612
+ "use_albumentations": true,
613
+ "random_rotation_angle": 5,
614
+ "color_jitter_params": {
615
+ "brightness": 0.2,
616
+ "contrast": 0.2,
617
+ "saturation": 0.2,
618
+ "hue": 0.08
619
+ },
620
+ "shortest_image_edge": 256,
621
+ "crop_fraction": 0.95,
622
+ "model_name": "nvidia/Eagle-Block2A-2B-v2",
623
+ "model_type": "eagle",
624
+ "formalize_language": true,
625
+ "max_state_dim": 128,
626
+ "max_action_dim": 128,
627
+ "max_action_horizon": 50,
628
+ "use_percentiles": false,
629
+ "clip_outliers": true,
630
+ "apply_sincos_state_encoding": true,
631
+ "use_relative_action": true
632
+ }
633
+ }
rng_state_0.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cb4b109c2985c292440d5aa48180d16d3d4c0af355889b547e3b5f9f5c949ae2
3
+ size 14917
rng_state_1.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:59165810f6c39566ca709962c4f82e91f5150c808316fba16c60ff52bb50d3c6
3
+ size 14917
scheduler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7fa802a80def971b73ec74284a6aa44d0b2ea101bd38ed41a3b1c1a0b4001f00
3
+ size 1465
statistics.json ADDED
The diff for this file is too large to render. See raw diff
 
trainer_state.json ADDED
The diff for this file is too large to render. See raw diff
 
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e31db3ab2efab69c1bb33b3c2bbf8be1ba3a0717e7b28d85390dfa1c4dd0d99f
3
+ size 7633
wandb_config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"project": "finetune-gr00t-n1d6", "run_id": "bottombetter"}
zero_to_fp32.py ADDED
@@ -0,0 +1,760 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+
3
+ # Copyright (c) Microsoft Corporation.
4
+ # SPDX-License-Identifier: Apache-2.0
5
+
6
+ # DeepSpeed Team
7
+
8
+ # This script extracts fp32 consolidated weights from a zero 1, 2 and 3 DeepSpeed checkpoints. It gets
9
+ # copied into the top level checkpoint dir, so the user can easily do the conversion at any point in
10
+ # the future. Once extracted, the weights don't require DeepSpeed and can be used in any
11
+ # application.
12
+ #
13
+ # example:
14
+ # python zero_to_fp32.py . output_dir/
15
+ # or
16
+ # python zero_to_fp32.py . output_dir/ --safe_serialization
17
+
18
+ import argparse
19
+ import torch
20
+ import glob
21
+ import math
22
+ import os
23
+ import re
24
+ import gc
25
+ import json
26
+ import numpy as np
27
+ from tqdm import tqdm
28
+ from collections import OrderedDict
29
+ from dataclasses import dataclass
30
+
31
+ # while this script doesn't use deepspeed to recover data, since the checkpoints are pickled with
32
+ # DeepSpeed data structures it has to be available in the current python environment.
33
+ from deepspeed.utils import logger
34
+ from deepspeed.checkpoint.constants import (DS_VERSION, OPTIMIZER_STATE_DICT, SINGLE_PARTITION_OF_FP32_GROUPS,
35
+ FP32_FLAT_GROUPS, ZERO_STAGE, PARTITION_COUNT, PARAM_SHAPES, BUFFER_NAMES,
36
+ FROZEN_PARAM_SHAPES, FROZEN_PARAM_FRAGMENTS)
37
+
38
+
39
+ @dataclass
40
+ class zero_model_state:
41
+ buffers: dict()
42
+ param_shapes: dict()
43
+ shared_params: list
44
+ ds_version: int
45
+ frozen_param_shapes: dict()
46
+ frozen_param_fragments: dict()
47
+
48
+
49
+ debug = 0
50
+
51
+ # load to cpu
52
+ device = torch.device('cpu')
53
+
54
+
55
+ def atoi(text):
56
+ return int(text) if text.isdigit() else text
57
+
58
+
59
+ def natural_keys(text):
60
+ '''
61
+ alist.sort(key=natural_keys) sorts in human order
62
+ http://nedbatchelder.com/blog/200712/human_sorting.html
63
+ (See Toothy's implementation in the comments)
64
+ '''
65
+ return [atoi(c) for c in re.split(r'(\d+)', text)]
66
+
67
+
68
+ def get_model_state_file(checkpoint_dir, zero_stage):
69
+ if not os.path.isdir(checkpoint_dir):
70
+ raise FileNotFoundError(f"Directory '{checkpoint_dir}' doesn't exist")
71
+
72
+ # there should be only one file
73
+ if zero_stage <= 2:
74
+ file = os.path.join(checkpoint_dir, "mp_rank_00_model_states.pt")
75
+ elif zero_stage == 3:
76
+ file = os.path.join(checkpoint_dir, "zero_pp_rank_0_mp_rank_00_model_states.pt")
77
+
78
+ if not os.path.exists(file):
79
+ raise FileNotFoundError(f"can't find model states file at '{file}'")
80
+
81
+ return file
82
+
83
+
84
+ def get_checkpoint_files(checkpoint_dir, glob_pattern):
85
+ # XXX: need to test that this simple glob rule works for multi-node setup too
86
+ ckpt_files = sorted(glob.glob(os.path.join(checkpoint_dir, glob_pattern)), key=natural_keys)
87
+
88
+ if len(ckpt_files) == 0:
89
+ raise FileNotFoundError(f"can't find {glob_pattern} files in directory '{checkpoint_dir}'")
90
+
91
+ return ckpt_files
92
+
93
+
94
+ def get_optim_files(checkpoint_dir):
95
+ return get_checkpoint_files(checkpoint_dir, "*_optim_states.pt")
96
+
97
+
98
+ def get_model_state_files(checkpoint_dir):
99
+ return get_checkpoint_files(checkpoint_dir, "*_model_states.pt")
100
+
101
+
102
+ def parse_model_states(files):
103
+ zero_model_states = []
104
+ for file in files:
105
+ state_dict = torch.load(file, map_location=device, weights_only=False)
106
+
107
+ if BUFFER_NAMES not in state_dict:
108
+ raise ValueError(f"{file} is not a model state checkpoint")
109
+ buffer_names = state_dict[BUFFER_NAMES]
110
+ if debug:
111
+ print("Found buffers:", buffer_names)
112
+
113
+ # recover just the buffers while restoring them to fp32 if they were saved in fp16
114
+ buffers = {k: v.float() for k, v in state_dict["module"].items() if k in buffer_names}
115
+ param_shapes = state_dict[PARAM_SHAPES]
116
+
117
+ # collect parameters that are included in param_shapes
118
+ param_names = []
119
+ for s in param_shapes:
120
+ for name in s.keys():
121
+ param_names.append(name)
122
+
123
+ # update with frozen parameters
124
+ frozen_param_shapes = state_dict.get(FROZEN_PARAM_SHAPES, None)
125
+ if frozen_param_shapes is not None:
126
+ if debug:
127
+ print(f"Found frozen_param_shapes: {frozen_param_shapes}")
128
+ param_names += list(frozen_param_shapes.keys())
129
+
130
+ # handle shared params
131
+ shared_params = [[k, v] for k, v in state_dict["shared_params"].items()]
132
+
133
+ ds_version = state_dict.get(DS_VERSION, None)
134
+
135
+ frozen_param_fragments = state_dict.get(FROZEN_PARAM_FRAGMENTS, None)
136
+
137
+ z_model_state = zero_model_state(buffers=buffers,
138
+ param_shapes=param_shapes,
139
+ shared_params=shared_params,
140
+ ds_version=ds_version,
141
+ frozen_param_shapes=frozen_param_shapes,
142
+ frozen_param_fragments=frozen_param_fragments)
143
+ zero_model_states.append(z_model_state)
144
+
145
+ return zero_model_states
146
+
147
+
148
+ def parse_optim_states(files, ds_checkpoint_dir):
149
+ total_files = len(files)
150
+ state_dicts = []
151
+ for f in tqdm(files, desc='Loading checkpoint shards'):
152
+ state_dict = torch.load(f, map_location=device, mmap=True, weights_only=False)
153
+ # immediately discard the potentially huge 2 optimizer states as we only care for fp32 master weights
154
+ # and also handle the case where it was already removed by another helper script
155
+ state_dict["optimizer_state_dict"].pop("optimizer_state_dict", None)
156
+ state_dicts.append(state_dict)
157
+
158
+ if ZERO_STAGE not in state_dicts[0][OPTIMIZER_STATE_DICT]:
159
+ raise ValueError(f"{files[0]} is not a zero checkpoint")
160
+ zero_stage = state_dicts[0][OPTIMIZER_STATE_DICT][ZERO_STAGE]
161
+ world_size = state_dicts[0][OPTIMIZER_STATE_DICT][PARTITION_COUNT]
162
+
163
+ # For ZeRO-2 each param group can have different partition_count as data parallelism for expert
164
+ # parameters can be different from data parallelism for non-expert parameters. So we can just
165
+ # use the max of the partition_count to get the dp world_size.
166
+
167
+ if type(world_size) is list:
168
+ world_size = max(world_size)
169
+
170
+ if world_size != total_files:
171
+ raise ValueError(
172
+ f"Expected {world_size} of '*_optim_states.pt' under '{ds_checkpoint_dir}' but found {total_files} files. "
173
+ "Possibly due to an overwrite of an old checkpoint, or a checkpoint didn't get saved by one or more processes."
174
+ )
175
+
176
+ # the groups are named differently in each stage
177
+ if zero_stage <= 2:
178
+ fp32_groups_key = SINGLE_PARTITION_OF_FP32_GROUPS
179
+ elif zero_stage == 3:
180
+ fp32_groups_key = FP32_FLAT_GROUPS
181
+ else:
182
+ raise ValueError(f"unknown zero stage {zero_stage}")
183
+
184
+ fp32_flat_groups = [state_dicts[i][OPTIMIZER_STATE_DICT][fp32_groups_key] for i in range(len(state_dicts))]
185
+ return zero_stage, world_size, fp32_flat_groups
186
+
187
+
188
+ def _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters):
189
+ """
190
+ Returns fp32 state_dict reconstructed from ds checkpoint
191
+
192
+ Args:
193
+ - ``ds_checkpoint_dir``: path to the deepspeed checkpoint folder (where the optimizer files are)
194
+
195
+ """
196
+ print(f"Processing zero checkpoint '{ds_checkpoint_dir}'")
197
+
198
+ optim_files = get_optim_files(ds_checkpoint_dir)
199
+ zero_stage, world_size, fp32_flat_groups = parse_optim_states(optim_files, ds_checkpoint_dir)
200
+ print(f"Detected checkpoint of type zero stage {zero_stage}, world_size: {world_size}")
201
+
202
+ model_files = get_model_state_files(ds_checkpoint_dir)
203
+
204
+ zero_model_states = parse_model_states(model_files)
205
+ print(f'Parsing checkpoint created by deepspeed=={zero_model_states[0].ds_version}')
206
+
207
+ if zero_stage <= 2:
208
+ return _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
209
+ exclude_frozen_parameters)
210
+ elif zero_stage == 3:
211
+ return _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
212
+ exclude_frozen_parameters)
213
+
214
+
215
+ def _zero2_merge_frozen_params(state_dict, zero_model_states):
216
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
217
+ return
218
+
219
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
220
+ frozen_param_fragments = zero_model_states[0].frozen_param_fragments
221
+
222
+ if debug:
223
+ num_elem = sum(s.numel() for s in frozen_param_shapes.values())
224
+ print(f'rank 0: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
225
+
226
+ wanted_params = len(frozen_param_shapes)
227
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
228
+ avail_numel = sum([p.numel() for p in frozen_param_fragments.values()])
229
+ print(f'Frozen params: Have {avail_numel} numels to process.')
230
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
231
+
232
+ total_params = 0
233
+ total_numel = 0
234
+ for name, shape in frozen_param_shapes.items():
235
+ total_params += 1
236
+ unpartitioned_numel = shape.numel()
237
+ total_numel += unpartitioned_numel
238
+
239
+ state_dict[name] = frozen_param_fragments[name]
240
+
241
+ if debug:
242
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
243
+
244
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
245
+
246
+
247
+ def _has_callable(obj, fn):
248
+ attr = getattr(obj, fn, None)
249
+ return callable(attr)
250
+
251
+
252
+ def _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
253
+ param_shapes = zero_model_states[0].param_shapes
254
+
255
+ # Reconstruction protocol:
256
+ #
257
+ # XXX: document this
258
+
259
+ if debug:
260
+ for i in range(world_size):
261
+ for j in range(len(fp32_flat_groups[0])):
262
+ print(f"{FP32_FLAT_GROUPS}[{i}][{j}].shape={fp32_flat_groups[i][j].shape}")
263
+
264
+ # XXX: memory usage doubles here (zero2)
265
+ num_param_groups = len(fp32_flat_groups[0])
266
+ merged_single_partition_of_fp32_groups = []
267
+ for i in range(num_param_groups):
268
+ merged_partitions = [sd[i] for sd in fp32_flat_groups]
269
+ full_single_fp32_vector = torch.cat(merged_partitions, 0)
270
+ merged_single_partition_of_fp32_groups.append(full_single_fp32_vector)
271
+ avail_numel = sum(
272
+ [full_single_fp32_vector.numel() for full_single_fp32_vector in merged_single_partition_of_fp32_groups])
273
+
274
+ if debug:
275
+ wanted_params = sum([len(shapes) for shapes in param_shapes])
276
+ wanted_numel = sum([sum(shape.numel() for shape in shapes.values()) for shapes in param_shapes])
277
+ # not asserting if there is a mismatch due to possible padding
278
+ print(f"Have {avail_numel} numels to process.")
279
+ print(f"Need {wanted_numel} numels in {wanted_params} params.")
280
+
281
+ # params
282
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
283
+ # out-of-core computing solution
284
+ total_numel = 0
285
+ total_params = 0
286
+ for shapes, full_single_fp32_vector in zip(param_shapes, merged_single_partition_of_fp32_groups):
287
+ offset = 0
288
+ avail_numel = full_single_fp32_vector.numel()
289
+ for name, shape in shapes.items():
290
+
291
+ unpartitioned_numel = shape.numel() if _has_callable(shape, 'numel') else math.prod(shape)
292
+ total_numel += unpartitioned_numel
293
+ total_params += 1
294
+
295
+ if debug:
296
+ print(f"{name} full shape: {shape} unpartitioned numel {unpartitioned_numel} ")
297
+ state_dict[name] = full_single_fp32_vector.narrow(0, offset, unpartitioned_numel).view(shape)
298
+ offset += unpartitioned_numel
299
+
300
+ # Z2 started to align to 2*world_size to improve nccl performance. Therefore both offset and
301
+ # avail_numel can differ by anywhere between 0..2*world_size. Due to two unrelated complex
302
+ # paddings performed in the code it's almost impossible to predict the exact numbers w/o the
303
+ # live optimizer object, so we are checking that the numbers are within the right range
304
+ align_to = 2 * world_size
305
+
306
+ def zero2_align(x):
307
+ return align_to * math.ceil(x / align_to)
308
+
309
+ if debug:
310
+ print(f"original offset={offset}, avail_numel={avail_numel}")
311
+
312
+ offset = zero2_align(offset)
313
+ avail_numel = zero2_align(avail_numel)
314
+
315
+ if debug:
316
+ print(f"aligned offset={offset}, avail_numel={avail_numel}")
317
+
318
+ # Sanity check
319
+ if offset != avail_numel:
320
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
321
+
322
+ print(f"Reconstructed fp32 state dict with {total_params} params {total_numel} elements")
323
+
324
+
325
+ def _get_fp32_state_dict_from_zero2_checkpoint(world_size, fp32_flat_groups, zero_model_states,
326
+ exclude_frozen_parameters):
327
+ state_dict = OrderedDict()
328
+
329
+ # buffers
330
+ buffers = zero_model_states[0].buffers
331
+ state_dict.update(buffers)
332
+ if debug:
333
+ print(f"added {len(buffers)} buffers")
334
+
335
+ if not exclude_frozen_parameters:
336
+ _zero2_merge_frozen_params(state_dict, zero_model_states)
337
+
338
+ _zero2_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
339
+
340
+ # recover shared parameters
341
+ for pair in zero_model_states[0].shared_params:
342
+ if pair[1] in state_dict:
343
+ state_dict[pair[0]] = state_dict[pair[1]]
344
+
345
+ return state_dict
346
+
347
+
348
+ def zero3_partitioned_param_info(unpartitioned_numel, world_size):
349
+ remainder = unpartitioned_numel % world_size
350
+ padding_numel = (world_size - remainder) if remainder else 0
351
+ partitioned_numel = math.ceil(unpartitioned_numel / world_size)
352
+ return partitioned_numel, padding_numel
353
+
354
+
355
+ def _zero3_merge_frozen_params(state_dict, world_size, zero_model_states):
356
+ if zero_model_states[0].frozen_param_shapes is None or len(zero_model_states[0].frozen_param_shapes) == 0:
357
+ return
358
+
359
+ if debug:
360
+ for i in range(world_size):
361
+ num_elem = sum(s.numel() for s in zero_model_states[i].frozen_param_fragments.values())
362
+ print(f'rank {i}: {FROZEN_PARAM_SHAPES}.numel = {num_elem}')
363
+
364
+ frozen_param_shapes = zero_model_states[0].frozen_param_shapes
365
+ wanted_params = len(frozen_param_shapes)
366
+ wanted_numel = sum(s.numel() for s in frozen_param_shapes.values())
367
+ avail_numel = sum([p.numel() for p in zero_model_states[0].frozen_param_fragments.values()]) * world_size
368
+ print(f'Frozen params: Have {avail_numel} numels to process.')
369
+ print(f'Frozen params: Need {wanted_numel} numels in {wanted_params} params')
370
+
371
+ total_params = 0
372
+ total_numel = 0
373
+ for name, shape in zero_model_states[0].frozen_param_shapes.items():
374
+ total_params += 1
375
+ unpartitioned_numel = shape.numel()
376
+ total_numel += unpartitioned_numel
377
+
378
+ param_frags = tuple(model_state.frozen_param_fragments[name] for model_state in zero_model_states)
379
+ state_dict[name] = torch.cat(param_frags, 0).narrow(0, 0, unpartitioned_numel).view(shape)
380
+
381
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
382
+
383
+ if debug:
384
+ print(
385
+ f"Frozen params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
386
+ )
387
+
388
+ print(f"Reconstructed Frozen fp32 state dict with {total_params} params {total_numel} elements")
389
+
390
+
391
+ class GatheredTensor:
392
+ """
393
+ A pseudo tensor that collects partitioned weights.
394
+ It is more memory efficient when there are multiple groups.
395
+ """
396
+
397
+ def __init__(self, flat_groups, flat_groups_offset, offset, partitioned_numel, shape):
398
+ self.flat_groups = flat_groups
399
+ self.flat_groups_offset = flat_groups_offset
400
+ self.offset = offset
401
+ self.partitioned_numel = partitioned_numel
402
+ self.shape = shape
403
+ self.dtype = self.flat_groups[0][0].dtype
404
+
405
+ def contiguous(self):
406
+ """
407
+ Merge partitioned weights from flat_groups into a single tensor.
408
+ """
409
+ end_idx = self.offset + self.partitioned_numel
410
+ world_size = len(self.flat_groups)
411
+ pad_flat_param_chunks = []
412
+
413
+ for rank_i in range(world_size):
414
+ # for each rank, we need to collect weights from related group/groups
415
+ flat_groups_at_rank_i = self.flat_groups[rank_i]
416
+ start_group_id = None
417
+ end_group_id = None
418
+ for group_id in range(len(self.flat_groups_offset)):
419
+ if self.flat_groups_offset[group_id] <= self.offset < self.flat_groups_offset[group_id + 1]:
420
+ start_group_id = group_id
421
+ if self.flat_groups_offset[group_id] < end_idx <= self.flat_groups_offset[group_id + 1]:
422
+ end_group_id = group_id
423
+ break
424
+ # collect weights from related group/groups
425
+ for group_id in range(start_group_id, end_group_id + 1):
426
+ flat_tensor = flat_groups_at_rank_i[group_id]
427
+ start_offset = self.offset - self.flat_groups_offset[group_id]
428
+ end_offset = min(end_idx, self.flat_groups_offset[group_id + 1]) - self.flat_groups_offset[group_id]
429
+ pad_flat_param_chunks.append(flat_tensor[start_offset:end_offset])
430
+
431
+ # collect weights from all ranks
432
+ pad_flat_param = torch.cat(pad_flat_param_chunks, dim=0)
433
+ param = pad_flat_param[:self.shape.numel()].view(self.shape).contiguous()
434
+ return param
435
+
436
+
437
+ def _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states):
438
+ param_shapes = zero_model_states[0].param_shapes
439
+ avail_numel = sum([flat_group.numel() for flat_group in fp32_flat_groups[0]]) * world_size
440
+
441
+ # Reconstruction protocol: For zero3 we need to zip the partitions together at boundary of each
442
+ # param, re-consolidating each param, while dealing with padding if any
443
+
444
+ # merge list of dicts, preserving order
445
+ param_shapes = {k: v for d in param_shapes for k, v in d.items()}
446
+
447
+ if debug:
448
+ for i in range(world_size):
449
+ print(f"{FP32_FLAT_GROUPS}[{i}].shape={fp32_flat_groups[i].shape}")
450
+
451
+ wanted_params = len(param_shapes)
452
+ wanted_numel = sum(shape.numel() for shape in param_shapes.values())
453
+ # not asserting if there is a mismatch due to possible padding
454
+ avail_numel = fp32_flat_groups[0].numel() * world_size
455
+ print(f"Trainable params: Have {avail_numel} numels to process.")
456
+ print(f"Trainable params: Need {wanted_numel} numels in {wanted_params} params.")
457
+
458
+ # params
459
+ # XXX: for huge models that can't fit into the host's RAM we will have to recode this to support
460
+ # out-of-core computing solution
461
+ offset = 0
462
+ total_numel = 0
463
+ total_params = 0
464
+ flat_groups_offset = [0] + list(np.cumsum([flat_tensor.numel() for flat_tensor in fp32_flat_groups[0]]))
465
+ for name, shape in tqdm(param_shapes.items(), desc='Gathering sharded weights'):
466
+ unpartitioned_numel = shape.numel()
467
+ total_numel += unpartitioned_numel
468
+ total_params += 1
469
+ partitioned_numel, partitioned_padding_numel = zero3_partitioned_param_info(unpartitioned_numel, world_size)
470
+
471
+ if debug:
472
+ print(
473
+ f"Trainable params: {total_params} {name} full shape: {shape} partition0 numel={partitioned_numel} partitioned_padding_numel={partitioned_padding_numel}"
474
+ )
475
+
476
+ # memory efficient tensor
477
+ tensor = GatheredTensor(fp32_flat_groups, flat_groups_offset, offset, partitioned_numel, shape)
478
+ state_dict[name] = tensor
479
+ offset += partitioned_numel
480
+
481
+ offset *= world_size
482
+
483
+ # Sanity check
484
+ if offset != avail_numel:
485
+ raise ValueError(f"consumed {offset} numels out of {avail_numel} - something is wrong")
486
+
487
+ print(f"Reconstructed Trainable fp32 state dict with {total_params} params {total_numel} elements")
488
+
489
+
490
+ def _get_fp32_state_dict_from_zero3_checkpoint(world_size, fp32_flat_groups, zero_model_states,
491
+ exclude_frozen_parameters):
492
+ state_dict = OrderedDict()
493
+
494
+ # buffers
495
+ buffers = zero_model_states[0].buffers
496
+ state_dict.update(buffers)
497
+ if debug:
498
+ print(f"added {len(buffers)} buffers")
499
+
500
+ if not exclude_frozen_parameters:
501
+ _zero3_merge_frozen_params(state_dict, world_size, zero_model_states)
502
+
503
+ _zero3_merge_trainable_params(state_dict, world_size, fp32_flat_groups, zero_model_states)
504
+
505
+ # recover shared parameters
506
+ for pair in zero_model_states[0].shared_params:
507
+ if pair[1] in state_dict:
508
+ state_dict[pair[0]] = state_dict[pair[1]]
509
+
510
+ return state_dict
511
+
512
+
513
+ def to_torch_tensor(state_dict, return_empty_tensor=False):
514
+ """
515
+ Convert state_dict of GatheredTensor to torch tensor
516
+ """
517
+ torch_state_dict = {}
518
+ converted_tensors = {}
519
+ for name, tensor in state_dict.items():
520
+ tensor_id = id(tensor)
521
+ if tensor_id in converted_tensors: # shared tensors
522
+ shared_tensor = torch_state_dict[converted_tensors[tensor_id]]
523
+ torch_state_dict[name] = shared_tensor
524
+ else:
525
+ converted_tensors[tensor_id] = name
526
+ if return_empty_tensor:
527
+ torch_state_dict[name] = torch.empty(tensor.shape, dtype=tensor.dtype)
528
+ else:
529
+ torch_state_dict[name] = tensor.contiguous()
530
+ return torch_state_dict
531
+
532
+
533
+ def get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir,
534
+ tag=None,
535
+ exclude_frozen_parameters=False,
536
+ lazy_mode=False):
537
+ """
538
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated state_dict that can be loaded with
539
+ ``load_state_dict()`` and used for training without DeepSpeed or shared with others, for example
540
+ via a model hub.
541
+
542
+ Args:
543
+ - ``checkpoint_dir``: path to the desired checkpoint folder
544
+ - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in 'latest' file. e.g., ``global_step14``
545
+ - ``exclude_frozen_parameters``: exclude frozen parameters
546
+ - ``lazy_mode``: get state_dict in lazy mode. It returns a dict of pesduo tensor instead of torch tensor, which is more memory efficient.
547
+ Convert the pesduo tensor to torch tensor by ``.contiguous()``
548
+
549
+ Returns:
550
+ - pytorch ``state_dict``
551
+
552
+ A typical usage might be ::
553
+
554
+ from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint
555
+ # do the training and checkpoint saving
556
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir) # already on cpu
557
+ model = model.cpu() # move to cpu
558
+ model.load_state_dict(state_dict)
559
+ # submit to model hub or save the model to share with others
560
+
561
+ In this example the ``model`` will no longer be usable in the deepspeed context of the same
562
+ application. i.e. you will need to re-initialize the deepspeed engine, since
563
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
564
+
565
+ If you want it all done for you, use ``load_state_dict_from_zero_checkpoint`` instead.
566
+
567
+ Note: the above usage may not work if your application doesn't have sufficient free CPU memory.
568
+ You may need to use the offline approach using the ``zero_to_fp32.py`` script that is saved with
569
+ the checkpoint. Or you can load state_dict in lazy mode ::
570
+
571
+ from deepspeed.utils.zero_to_fp32 import get_fp32_state_dict_from_zero_checkpoint
572
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, lazy_mode=True) # not on cpu
573
+ for name, lazy_tensor in state_dict.item():
574
+ tensor = lazy_tensor.contiguous() # to cpu
575
+ print(name, tensor)
576
+ # del tensor to release memory if it no longer in use
577
+ """
578
+ if tag is None:
579
+ latest_path = os.path.join(checkpoint_dir, 'latest')
580
+ if os.path.isfile(latest_path):
581
+ with open(latest_path, 'r') as fd:
582
+ tag = fd.read().strip()
583
+ else:
584
+ raise ValueError(f"Unable to find 'latest' file at {latest_path}")
585
+
586
+ ds_checkpoint_dir = os.path.join(checkpoint_dir, tag)
587
+
588
+ if not os.path.isdir(ds_checkpoint_dir):
589
+ raise FileNotFoundError(f"Directory '{ds_checkpoint_dir}' doesn't exist")
590
+
591
+ state_dict = _get_fp32_state_dict_from_zero_checkpoint(ds_checkpoint_dir, exclude_frozen_parameters)
592
+ if lazy_mode:
593
+ return state_dict
594
+ else:
595
+ return to_torch_tensor(state_dict)
596
+
597
+
598
+ def convert_zero_checkpoint_to_fp32_state_dict(checkpoint_dir,
599
+ output_dir,
600
+ max_shard_size="5GB",
601
+ safe_serialization=False,
602
+ tag=None,
603
+ exclude_frozen_parameters=False):
604
+ """
605
+ Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict`` file that can be
606
+ loaded with ``torch.load(file)`` + ``load_state_dict()`` and used for training without DeepSpeed.
607
+
608
+ Args:
609
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
610
+ - ``output_dir``: directory to the pytorch fp32 state_dict output files
611
+ - ``max_shard_size``: the maximum size for a checkpoint before being sharded, default value is 5GB
612
+ - ``safe_serialization``: whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).
613
+ - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14``
614
+ - ``exclude_frozen_parameters``: exclude frozen parameters
615
+ """
616
+
617
+ # Dependency pre-check
618
+ if safe_serialization:
619
+ try:
620
+ from safetensors.torch import save_file
621
+ except ImportError:
622
+ print('If you want to use `safe_serialization`, please `pip install safetensors`')
623
+ raise
624
+ if max_shard_size is not None:
625
+ try:
626
+ from huggingface_hub import split_torch_state_dict_into_shards
627
+ except ImportError:
628
+ print('If you want to use `max_shard_size`, please `pip install huggingface_hub`')
629
+ raise
630
+
631
+ # Convert zero checkpoint to state_dict
632
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir,
633
+ tag,
634
+ exclude_frozen_parameters,
635
+ lazy_mode=True)
636
+
637
+ # Shard the model if it is too big.
638
+ weights_name = "model.safetensors" if safe_serialization else "pytorch_model.bin"
639
+ if max_shard_size is not None:
640
+ filename_pattern = weights_name.replace(".bin", "{suffix}.bin").replace(".safetensors", "{suffix}.safetensors")
641
+ # an memory-efficient approach for sharding
642
+ empty_state_dict = to_torch_tensor(state_dict, return_empty_tensor=True)
643
+ state_dict_split = split_torch_state_dict_into_shards(empty_state_dict,
644
+ filename_pattern=filename_pattern,
645
+ max_shard_size=max_shard_size)
646
+ else:
647
+ from collections import namedtuple
648
+ StateDictSplit = namedtuple("StateDictSplit", ["is_sharded", "filename_to_tensors"])
649
+ state_dict_split = StateDictSplit(is_sharded=False,
650
+ filename_to_tensors={weights_name: list(state_dict.keys())})
651
+
652
+ # Save the model by shard
653
+ os.makedirs(output_dir, exist_ok=True)
654
+ filename_to_tensors = state_dict_split.filename_to_tensors.items()
655
+ for shard_file, tensors in tqdm(filename_to_tensors, desc="Saving checkpoint shards"):
656
+ shard_state_dict = {tensor_name: state_dict[tensor_name] for tensor_name in tensors}
657
+ shard_state_dict = to_torch_tensor(shard_state_dict)
658
+ output_path = os.path.join(output_dir, shard_file)
659
+ if safe_serialization:
660
+ save_file(shard_state_dict, output_path, metadata={"format": "pt"})
661
+ else:
662
+ torch.save(shard_state_dict, output_path)
663
+ # release the memory of current shard
664
+ for tensor_name in list(shard_state_dict.keys()):
665
+ del state_dict[tensor_name]
666
+ del shard_state_dict[tensor_name]
667
+ del shard_state_dict
668
+ gc.collect()
669
+
670
+ # Save index if sharded
671
+ if state_dict_split.is_sharded:
672
+ index = {
673
+ "metadata": state_dict_split.metadata,
674
+ "weight_map": state_dict_split.tensor_to_filename,
675
+ }
676
+ save_index_file = "model.safetensors.index.json" if safe_serialization else "pytorch_model.bin.index.json"
677
+ save_index_file = os.path.join(output_dir, save_index_file)
678
+ with open(save_index_file, "w", encoding="utf-8") as f:
679
+ content = json.dumps(index, indent=2, sort_keys=True) + "\n"
680
+ f.write(content)
681
+
682
+
683
+ def load_state_dict_from_zero_checkpoint(model, checkpoint_dir, tag=None):
684
+ """
685
+ 1. Put the provided model to cpu
686
+ 2. Convert ZeRO 2 or 3 checkpoint into a single fp32 consolidated ``state_dict``
687
+ 3. Load it into the provided model
688
+
689
+ Args:
690
+ - ``model``: the model object to update
691
+ - ``checkpoint_dir``: path to the desired checkpoint folder. (one that contains the tag-folder, like ``global_step14``)
692
+ - ``tag``: checkpoint tag used as a unique identifier for checkpoint. If not provided will attempt to load tag in the file named ``latest`` in the checkpoint folder, e.g., ``global_step14``
693
+
694
+ Returns:
695
+ - ``model`: modified model
696
+
697
+ Make sure you have plenty of CPU memory available before you call this function. If you don't
698
+ have enough use the ``zero_to_fp32.py`` utility to do the conversion. You will find it
699
+ conveniently placed for you in the checkpoint folder.
700
+
701
+ A typical usage might be ::
702
+
703
+ from deepspeed.utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint
704
+ model = load_state_dict_from_zero_checkpoint(trainer.model, checkpoint_dir)
705
+ # submit to model hub or save the model to share with others
706
+
707
+ Note, that once this was run, the ``model`` will no longer be usable in the deepspeed context
708
+ of the same application. i.e. you will need to re-initialize the deepspeed engine, since
709
+ ``model.load_state_dict(state_dict)`` will remove all the deepspeed magic from it.
710
+
711
+ """
712
+ logger.info("Extracting fp32 weights")
713
+ state_dict = get_fp32_state_dict_from_zero_checkpoint(checkpoint_dir, tag)
714
+
715
+ logger.info("Overwriting model with fp32 weights")
716
+ model = model.cpu()
717
+ model.load_state_dict(state_dict, strict=False)
718
+
719
+ return model
720
+
721
+
722
+ if __name__ == "__main__":
723
+ parser = argparse.ArgumentParser()
724
+ parser.add_argument("checkpoint_dir",
725
+ type=str,
726
+ help="path to the desired checkpoint folder, e.g., path/checkpoint-12")
727
+ parser.add_argument("output_dir",
728
+ type=str,
729
+ help="directory to the pytorch fp32 state_dict output files"
730
+ "(e.g. path/checkpoint-12-output/)")
731
+ parser.add_argument(
732
+ "--max_shard_size",
733
+ type=str,
734
+ default="5GB",
735
+ help="The maximum size for a checkpoint before being sharded. Checkpoints shard will then be each of size"
736
+ "lower than this size. If expressed as a string, needs to be digits followed by a unit (like `5MB`"
737
+ "We default it to 5GB in order for models to be able to run easily on free-tier google colab instances"
738
+ "without CPU OOM issues.")
739
+ parser.add_argument(
740
+ "--safe_serialization",
741
+ default=False,
742
+ action='store_true',
743
+ help="Whether to save the model using `safetensors` or the traditional PyTorch way (that uses `pickle`).")
744
+ parser.add_argument("-t",
745
+ "--tag",
746
+ type=str,
747
+ default=None,
748
+ help="checkpoint tag used as a unique identifier for checkpoint. e.g., global_step1")
749
+ parser.add_argument("--exclude_frozen_parameters", action='store_true', help="exclude frozen parameters")
750
+ parser.add_argument("-d", "--debug", action='store_true', help="enable debug")
751
+ args = parser.parse_args()
752
+
753
+ debug = args.debug
754
+
755
+ convert_zero_checkpoint_to_fp32_state_dict(args.checkpoint_dir,
756
+ args.output_dir,
757
+ max_shard_size=args.max_shard_size,
758
+ safe_serialization=args.safe_serialization,
759
+ tag=args.tag,
760
+ exclude_frozen_parameters=args.exclude_frozen_parameters)