diff --git a/.gitattributes b/.gitattributes index e72baacebdf986a724fd302643393706da3ba5c6..33404ca0be13fc468588adaea2340f8770c039c6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -39,3 +39,6 @@ isaac_model_card_assets/perception-benchmarks.png filter=lfs diff=lfs merge=lfs isaac_model_card_assets/scaling-law-contours.png filter=lfs diff=lfs merge=lfs -text isaac_model_card_assets/training-data-plane.png filter=lfs diff=lfs merge=lfs -text isaac_model_card_assets/yam-simulation-tasks.png filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text +policy_normalization.json filter=lfs diff=lfs merge=lfs -text +policy_inference_recipe.json filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..0bc845fcd3ce0721fbf8b6999a4ba8804c5d00b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Local runtime caches. +__pycache__/ +.ruff_cache/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..d645695673349e3947e8e5ae42332d0ac3164cd7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index e9a728f1211f15734bacdc9ea7e38b8c8fc695c4..53fc857be4e4fe466b6d9eca69aeb7194945e22b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ --- language: - en +license: apache-2.0 tags: - robotics - vision-language-model @@ -8,8 +9,6 @@ tags: - embodied-ai --- - - # Isaac 0.5 by Perceptron Introducing Isaac 0.5, our open foundation model for robot learning. @@ -18,13 +17,30 @@ Isaac 0.5 brings multimodal video understanding, embodied reasoning, spatial gro To our knowledge, Isaac 0.5 is the first open model operating at the frontier of multimodal video understanding, embodied reasoning, and robot control. -**[Read the paper](https://pub-d90b81cad7254a1aa6b148ac18153c0c.r2.dev/isaac-0.5.pdf) · [Download the weights (COMING SOON)](https://huggingface.co/PerceptronAI/Isaac-0.5) · [View the code](https://github.com/perceptron-ai-inc/isaac)** +**[Read the paper](https://pub-d90b81cad7254a1aa6b148ac18153c0c.r2.dev/isaac-0.5.pdf) · [Download the weights](https://huggingface.co/PerceptronAI/Isaac-0.5) · [View the code](https://github.com/perceptron-ai-inc/isaac)** + +## Using this checkpoint + +This checkpoint is consumed through the [Perceptron Isaac repository](https://github.com/perceptron-ai-inc/isaac). Direct Transformers and stock LeRobot usage are not currently supported. It is compatible with [Perceptron Isaac commit `be6507b`](https://github.com/perceptron-ai-inc/isaac/commit/be6507b4aed7472f2029606c22684d4ebc9d73e6). + +```bash +git clone https://github.com/perceptron-ai-inc/isaac.git +cd isaac +git checkout be6507b4aed7472f2029606c22684d4ebc9d73e6 +git submodule update --init --recursive +git -C lerobot fetch origin main +git -C lerobot checkout e12389c1f8f591ad05dced4e284d4e92e48c5df4 +cd lerobot +uv sync --locked --extra perceptron_isaac +``` + +The pinned repository lockfile defines the supported runtime versions. ## Extending the frontier of open robot learning Isaac 0.5 is trained on more than 35 robot systems, 100,000 hours of robot experience, one million hours of general video, and three trillion multimodal tokens. Video understanding, spatial grounding, task progress, future-percept prediction, and robot action are co-trained from the beginning on one shared backbone. -Teams can fine-tune Isaac as a robot policy or use its visual outputs inside a planner, controller, or data engine. The release includes base and action checkpoints, action-training and inference code, LeRobot integration, a reference policy server, evaluation tools, and the manifests needed to reproduce the model's data and checkpoint interfaces. +Teams can fine-tune Isaac as a robot policy or use its visual outputs inside a planner, controller, or data engine. This model repository provides checkpoint weights and portable runtime manifests. The companion [Perceptron Isaac repository](https://github.com/perceptron-ai-inc/isaac) provides action-training and inference code, LeRobot integration, a reference policy server, evaluation tools, and reproduction guides. ## What's new in Isaac 0.5 @@ -33,7 +49,7 @@ Teams can fine-tune Isaac as a robot policy or use its visual outputs inside a p - **Unified perception, reasoning, and control:** One shared sparse backbone supports video understanding, pointing, tracking, task-state estimation, and robot action generation. - **Continuous and discrete action interfaces:** Isaac supports continuous control through a dedicated Flow expert and diffusion transformer, plus discrete control through a 2,048-token FAST action vocabulary. - **Real-time closed-loop control:** Isaac predicts the next action chunk while the current chunk is still executing, using the latest observation and previously issued commands. -- **Open training and deployment stack:** The release includes model weights, training code, inference code, LeRobot integration, a reference policy server, evaluation code, and reproduction manifests. +- **Open training and deployment stack:** This model repository publishes checkpoint weights and portable manifests; the companion [Perceptron Isaac repository](https://github.com/perceptron-ai-inc/isaac) provides training, inference, LeRobot integration, the reference policy server, and evaluation code. ## A scaling law for video and robot experience @@ -101,23 +117,27 @@ We evaluate the same Isaac checkpoints across multimodal video understanding, sp Isaac 0.5 can be fine-tuned on new demonstrations, used as a visual backbone inside a larger embodied system, or deployed as an action policy through LeRobot or our reference server. -The release includes: +This model repository provides: -- base and action-capable weights; +- checkpoint weights; - continuous Flow and discrete FAST action configurations; -- action training and fine-tuning code; - text, pointing, tracking, and task-state output schemas; +- checkpoint, data, and model-I/O manifests; +- the technical report and model card. + +The companion [Perceptron Isaac repository](https://github.com/perceptron-ai-inc/isaac) provides: + +- action training, fine-tuning, and inference code; - LeRobot integration and a reference policy server; - evaluation code, task definitions, and rollout manifests; -- checkpoint, data, and model-I/O manifests; -- the technical report, model card, and reproduction guide. +- reproduction and deployment guides. ## Resources -- **Weights (COMING SOON):** [Hugging Face](https://huggingface.co/PerceptronAI/Isaac-0.5) +- **Weights:** [Hugging Face](https://huggingface.co/PerceptronAI/Isaac-0.5) - **Code:** [GitHub](https://github.com/perceptron-ai-inc/isaac) - **Technical report:** [Read the paper](https://pub-d90b81cad7254a1aa6b148ac18153c0c.r2.dev/isaac-0.5.pdf) -Open models are essential to robotics progress. We are releasing Isaac 0.5 with its weights, code, interfaces, benchmarks, and manifests so others can inspect, reproduce, and extend the work. +Open models are essential to robotics progress. The weights and portable manifests are published here; code, interfaces, evaluation tools, and deployment guides are maintained in the companion [Perceptron Isaac repository](https://github.com/perceptron-ai-inc/isaac). For help deploying Isaac on your infrastructure, contact [sales@perceptron.inc](mailto:sales@perceptron.inc). diff --git a/chat_template.jinja b/chat_template.jinja new file mode 100644 index 0000000000000000000000000000000000000000..a8755d827c0a7b614c246c4060dfd58ab352a8ff --- /dev/null +++ b/chat_template.jinja @@ -0,0 +1,154 @@ +{%- set image_count = namespace(value=0) %} +{%- set video_count = namespace(value=0) %} +{%- macro render_content(content, do_vision_count, is_system_content=false) %} + {%- if content is string %} + {{- content }} + {%- elif content is iterable and content is not mapping %} + {%- for item in content %} + {%- if 'image' in item or 'image_url' in item or item.type == 'image' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain images.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set image_count.value = image_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Picture ' ~ image_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|image_pad|><|vision_end|>' }} + {%- elif 'video' in item or item.type == 'video' %} + {%- if is_system_content %} + {{- raise_exception('System message cannot contain videos.') }} + {%- endif %} + {%- if do_vision_count %} + {%- set video_count.value = video_count.value + 1 %} + {%- endif %} + {%- if add_vision_id %} + {{- 'Video ' ~ video_count.value ~ ': ' }} + {%- endif %} + {{- '<|vision_start|><|video_pad|><|vision_end|>' }} + {%- elif 'text' in item %} + {{- item.text }} + {%- else %} + {{- raise_exception('Unexpected item type in content.') }} + {%- endif %} + {%- endfor %} + {%- elif content is none or content is undefined %} + {{- '' }} + {%- else %} + {{- raise_exception('Unexpected content type.') }} + {%- endif %} +{%- endmacro %} +{%- if not messages %} + {{- raise_exception('No messages provided.') }} +{%- endif %} +{%- if tools and tools is iterable and tools is not mapping %} + {{- '<|im_start|>system\n' }} + {{- "# Tools\n\nYou have access to the following functions:\n\n" }} + {%- for tool in tools %} + {{- "\n" }} + {{- tool | tojson }} + {%- endfor %} + {{- "\n" }} + {{- '\n\nIf you choose to call a function ONLY reply in the following format with NO suffix:\n\n\n\n\nvalue_1\n\n\nThis is the value for the second parameter\nthat can span\nmultiple lines\n\n\n\n\n\nReminder:\n- Function calls MUST follow the specified format: an inner block must be nested within XML tags\n- Required parameters MUST be specified\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\n' }} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {%- if content %} + {{- '\n\n' + content }} + {%- endif %} + {%- endif %} + {{- '<|im_end|>\n' }} +{%- else %} + {%- if messages[0].role == 'system' %} + {%- set content = render_content(messages[0].content, false, true)|trim %} + {{- '<|im_start|>system\n' + content + '<|im_end|>\n' }} + {%- endif %} +{%- endif %} +{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %} +{%- for message in messages[::-1] %} + {%- set index = (messages|length - 1) - loop.index0 %} + {%- if ns.multi_step_tool and message.role == "user" %} + {%- set content = render_content(message.content, false)|trim %} + {%- if not(content.startswith('') and content.endswith('')) %} + {%- set ns.multi_step_tool = false %} + {%- set ns.last_query_index = index %} + {%- endif %} + {%- endif %} +{%- endfor %} +{%- if ns.multi_step_tool %} + {{- raise_exception('No user query found in messages.') }} +{%- endif %} +{%- for message in messages %} + {%- set content = render_content(message.content, true)|trim %} + {%- if message.role == "system" %} + {%- if not loop.first %} + {{- raise_exception('System message must be at the beginning.') }} + {%- endif %} + {%- elif message.role == "user" %} + {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }} + {%- elif message.role == "assistant" %} + {%- set reasoning_content = '' %} + {%- if message.reasoning_content is string %} + {%- set reasoning_content = message.reasoning_content %} + {%- else %} + {%- if '' in content %} + {%- set reasoning_content = content.split('')[0].rstrip('\n').split('')[-1].lstrip('\n') %} + {%- set content = content.split('')[-1].lstrip('\n') %} + {%- endif %} + {%- endif %} + {%- set reasoning_content = reasoning_content|trim %} + {%- if (preserve_thinking is defined and preserve_thinking is true) or (loop.index0 > ns.last_query_index) %} + {{- '<|im_start|>' + message.role + '\n\n' + reasoning_content + '\n\n\n' + content }} + {%- else %} + {{- '<|im_start|>' + message.role + '\n' + content }} + {%- endif %} + {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %} + {%- for tool_call in message.tool_calls %} + {%- if tool_call.function is defined %} + {%- set tool_call = tool_call.function %} + {%- endif %} + {%- if loop.first %} + {%- if content|trim %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n\n' }} + {%- endif %} + {%- else %} + {{- '\n\n\n' }} + {%- endif %} + {%- if tool_call.arguments is defined %} + {%- for args_name, args_value in tool_call.arguments|items %} + {{- '\n' }} + {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %} + {{- args_value }} + {{- '\n\n' }} + {%- endfor %} + {%- endif %} + {{- '\n' }} + {%- endfor %} + {%- endif %} + {{- '<|im_end|>\n' }} + {%- elif message.role == "tool" %} + {%- if loop.previtem and loop.previtem.role != "tool" %} + {{- '<|im_start|>user' }} + {%- endif %} + {{- '\n\n' }} + {{- content }} + {{- '\n' }} + {%- if not loop.last and loop.nextitem.role != "tool" %} + {{- '<|im_end|>\n' }} + {%- elif loop.last %} + {{- '<|im_end|>\n' }} + {%- endif %} + {%- else %} + {{- raise_exception('Unexpected message role.') }} + {%- endif %} +{%- endfor %} +{%- if add_generation_prompt %} + {{- '<|im_start|>assistant\n' }} + {%- if enable_thinking is defined and enable_thinking is false %} + {{- '\n\n\n\n' }} + {%- else %} + {{- '\n' }} + {%- endif %} +{%- endif %} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000000000000000000000000000000000000..b209fd2c661c86fce83acc49851eb96d10f49a9d --- /dev/null +++ b/config.json @@ -0,0 +1,313 @@ +{ + "_name_or_path": "", + "action_expert": { + "action_dim": 64, + "action_horizon": 64, + "causal_attn": false, + "context_layer_norm": true, + "drop_action_dim_overflow": false, + "ffn_multiple_of": 256, + "hidden_dim": 768, + "k_batched_cross_attn": true, + "k_batched_cross_attn_backend": "flash_gqa", + "mask_padded_action_rows": true, + "mlp_ratio": 4.0, + "num_heads": 8, + "num_inference_steps": 10, + "num_layers": 36, + "qk_norm": true, + "qk_norm_eps": 1e-06, + "rope": true, + "rtc_delay_sampling": "poisson", + "rtc_max_delay_steps": 12, + "rtc_poisson_mean": 5.0, + "rtc_probability": 0.5, + "schema_version": 1, + "timestep_embed_dim": 256, + "timestep_sampling_alpha": 1.5, + "timestep_sampling_beta": 1.0, + "timestep_sampling_offset": 0.001, + "timestep_sampling_scale": 0.999, + "train_samples_per_chunk": 8, + "type": "dit" + }, + "architectures": [ + "Isaac05ForConditionalGeneration" + ], + "auto_map": { + "AutoConfig": "configuration_isaac05.Isaac05Config", + "AutoModelForCausalLM": "modeling_isaac05.Isaac05ForConditionalGeneration", + "AutoProcessor": "processing_isaac05.Isaac05Processor" + }, + "chunk_size_feed_forward": 0, + "dtype": "bfloat16", + "id2label": { + "0": "LABEL_0", + "1": "LABEL_1" + }, + "image_token_id": 248056, + "is_encoder_decoder": false, + "isaac05_artifact": { + "artifact_kind": "trained_policy", + "schema_version": 1, + "tensor_bytes": 142894027456, + "tensor_count": 1616 + }, + "isaac05_coord_tokens": { + "enabled": true, + "offset": 248320, + "size": 1001 + }, + "isaac05_fast_tokens": { + "enabled": true, + "offset": 249321, + "size": 2048, + "tokenizer": "physical-intelligence/fast" + }, + "isaac05_moe": { + "logical_router_outputs": 512, + "num_null_experts": 256, + "num_real_experts": 256, + "physical_router_outputs": 257, + "route_norm": true, + "route_scale": 1.0, + "router_contract": [ + 256, + 256 + ], + "router_contract_version": 1, + "score_before_experts": false, + "score_func": "softmax", + "shared_null_router_row": true, + "top_k": 8, + "uses_expert_bias": false + }, + "isaac05_test_only_reduced_geometry": false, + "isaac05_vla": { + "action_expert": { + "action_dim": 64, + "action_horizon": 64, + "causal_attn": false, + "context_layer_norm": true, + "drop_action_dim_overflow": false, + "ffn_multiple_of": 256, + "hidden_dim": 768, + "k_batched_cross_attn": true, + "k_batched_cross_attn_backend": "flash_gqa", + "mask_padded_action_rows": true, + "mlp_ratio": 4.0, + "num_heads": 8, + "num_inference_steps": 10, + "num_layers": 36, + "qk_norm": true, + "qk_norm_eps": 1e-06, + "rope": true, + "rtc_delay_sampling": "poisson", + "rtc_max_delay_steps": 12, + "rtc_poisson_mean": 5.0, + "rtc_probability": 0.5, + "schema_version": 1, + "timestep_embed_dim": 256, + "timestep_sampling_alpha": 1.5, + "timestep_sampling_beta": 1.0, + "timestep_sampling_offset": 0.001, + "timestep_sampling_scale": 0.999, + "train_samples_per_chunk": 8, + "type": "dit" + }, + "mtp": { + "action_runtime": "exclude", + "physical_layers": 0, + "present": false, + "rollout_steps": 0 + }, + "rmsnorm_weight_convention": "zero_centered_1_plus_weight", + "schema_version": 1, + "state_dict_schema": "pr3154_v1", + "vector_encoder": { + "bias": false, + "hidden_dim": 2048, + "max_states": 128, + "output_dim": 2048, + "type": "linear_silu_linear" + } + }, + "label2id": { + "LABEL_0": 0, + "LABEL_1": 1 + }, + "max_sequence_length": 262144, + "model_type": "isaac_0_5", + "output_attentions": false, + "output_hidden_states": false, + "problem_type": null, + "return_dict": true, + "runtime_dtype": "bfloat16", + "storage_dtype": "float32", + "text_config": { + "_name_or_path": "", + "architectures": null, + "attention_bias": false, + "attention_dropout": 0.0, + "attn_output_gate": true, + "bos_token_id": 248044, + "chunk_size_feed_forward": 0, + "dtype": "bfloat16", + "eos_token_id": 248044, + "full_attention_interval": 4, + "head_dim": 256, + "hidden_act": "silu", + "hidden_size": 2048, + "id2label": { + "0": "LABEL_0", + "1": "LABEL_1" + }, + "initializer_range": 0.02, + "is_encoder_decoder": false, + "isaac05_moe": { + "logical_router_outputs": 512, + "num_null_experts": 256, + "num_real_experts": 256, + "physical_router_outputs": 257, + "route_norm": true, + "route_scale": 1.0, + "router_contract": [ + 256, + 256 + ], + "router_contract_version": 1, + "score_before_experts": false, + "score_func": "softmax", + "shared_null_router_row": true, + "top_k": 8, + "uses_expert_bias": false + }, + "label2id": { + "LABEL_0": 0, + "LABEL_1": 1 + }, + "layer_types": [ + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention", + "linear_attention", + "linear_attention", + "linear_attention", + "full_attention" + ], + "linear_conv_kernel_dim": 4, + "linear_key_head_dim": 128, + "linear_num_key_heads": 16, + "linear_num_value_heads": 32, + "linear_value_head_dim": 128, + "mamba_ssm_dtype": "float32", + "max_position_embeddings": 262144, + "model_type": "qwen3_5_moe_text", + "moe_intermediate_size": 512, + "mtp_num_hidden_layers": 0, + "mtp_use_dedicated_embeddings": false, + "num_attention_heads": 16, + "num_experts": 256, + "num_experts_per_tok": 8, + "num_hidden_layers": 40, + "num_key_value_heads": 2, + "output_attentions": false, + "output_hidden_states": false, + "output_router_logits": false, + "pad_token_id": null, + "partial_rotary_factor": 0.25, + "problem_type": null, + "return_dict": true, + "rms_norm_eps": 1e-06, + "rope_parameters": { + "mrope_interleaved": true, + "mrope_section": [ + 11, + 11, + 10 + ], + "partial_rotary_factor": 0.25, + "rope_theta": 10000000, + "rope_type": "default" + }, + "router_aux_loss_coef": 0.001, + "shared_expert_intermediate_size": 512, + "tie_word_embeddings": false, + "use_cache": true, + "vocab_size": 256279 + }, + "tie_word_embeddings": false, + "transformers_version": "5.5.4", + "vector_max_states": 128, + "video_token_id": 248057, + "vision_config": { + "_name_or_path": "", + "architectures": null, + "chunk_size_feed_forward": 0, + "deepstack_visual_indexes": [], + "depth": 27, + "dtype": null, + "hidden_act": "gelu_pytorch_tanh", + "hidden_size": 1152, + "id2label": { + "0": "LABEL_0", + "1": "LABEL_1" + }, + "in_channels": 3, + "initializer_range": 0.02, + "intermediate_size": 4304, + "is_encoder_decoder": false, + "label2id": { + "LABEL_0": 0, + "LABEL_1": 1 + }, + "model_type": "qwen3_5_moe", + "num_heads": 16, + "num_position_embeddings": 2304, + "out_hidden_size": 2048, + "output_attentions": false, + "output_hidden_states": false, + "patch_size": 16, + "problem_type": null, + "return_dict": true, + "spatial_merge_size": 2, + "temporal_patch_size": 2 + }, + "vision_end_token_id": 248054, + "vision_rescale_factor": 0.00392156862745098, + "vision_start_token_id": 248053, + "vision_token": "<|image_pad|>" +} diff --git a/configuration_isaac05.py b/configuration_isaac05.py new file mode 100644 index 0000000000000000000000000000000000000000..b2449ceeff39daaa64b54154a935bbcb1d33e5ea --- /dev/null +++ b/configuration_isaac05.py @@ -0,0 +1,188 @@ +"""Transformers configuration for the portable Isaac-0.5 VLA repository.""" + +from __future__ import annotations + +import copy +from collections.abc import Mapping +from typing import Any + +from transformers import Qwen3_5MoeConfig + +_ISAAC05_ARCHITECTURES = ["Isaac05ForConditionalGeneration"] +_ISAAC05_AUTO_MAP = { + "AutoConfig": "configuration_isaac05.Isaac05Config", + "AutoModelForCausalLM": "modeling_isaac05.Isaac05ForConditionalGeneration", + "AutoProcessor": "processing_isaac05.Isaac05Processor", +} +_PRODUCTION_COORD_TOKENS = {"enabled": True, "offset": 248_320, "size": 1_001} +_PRODUCTION_FAST_TOKENS = { + "enabled": True, + "tokenizer": "physical-intelligence/fast", + "offset": 249_321, + "size": 2_048, +} +_PRODUCTION_ARTIFACT = { + "schema_version": 1, + "artifact_kind": "trained_policy", + "tensor_count": 1_616, + "tensor_bytes": 142_894_027_456, +} +_PRODUCTION_VECTOR_ENCODER = { + "type": "linear_silu_linear", + "max_states": 128, + "hidden_dim": 2_048, + "output_dim": 2_048, + "bias": False, +} +_PRODUCTION_ACTION_EXPERT = { + "action_dim": 64, + "action_horizon": 64, + "num_layers": 36, + "hidden_dim": 768, + "num_heads": 8, + "mlp_ratio": 4.0, + "num_inference_steps": 10, + "timestep_sampling_alpha": 1.5, + "timestep_sampling_beta": 1.0, + "timestep_sampling_scale": 0.999, + "timestep_sampling_offset": 0.001, + "train_samples_per_chunk": 8, + "timestep_embed_dim": 256, + "rtc_max_delay_steps": 12, + "rtc_probability": 0.5, + "rtc_delay_sampling": "poisson", + "rtc_poisson_mean": 5.0, + "mask_padded_action_rows": True, + "drop_action_dim_overflow": False, + "ffn_multiple_of": 256, + "qk_norm": True, + "qk_norm_eps": 1e-6, + "rope": True, + "context_layer_norm": True, + "causal_attn": False, + "k_batched_cross_attn": True, + "k_batched_cross_attn_backend": "flash_gqa", + "schema_version": 1, + "type": "dit", +} +_PRODUCTION_MTP = { + "present": False, + "physical_layers": 0, + "rollout_steps": 0, + "action_runtime": "exclude", +} + + +def _copy_mapping(value: Mapping[str, Any] | None, *, name: str) -> dict[str, Any]: + if not isinstance(value, Mapping): + raise ValueError(f"Isaac05Config {name} must be a JSON object.") + return copy.deepcopy(dict(value)) + + +def _require_exact(value: Mapping[str, Any], expected: Mapping[str, Any], *, name: str) -> None: + if dict(value) != dict(expected): + raise ValueError(f"Isaac05Config {name} does not match the portable artifact contract.") + + +def _reserved_token_range(value: Mapping[str, Any], *, name: str) -> range: + if value.get("enabled") is not True: + raise ValueError(f"Isaac05Config {name}.enabled must be true.") + offset = value.get("offset") + size = value.get("size") + if not isinstance(offset, int) or isinstance(offset, bool) or offset < 0: + raise ValueError(f"Isaac05Config {name}.offset must be a non-negative integer.") + if not isinstance(size, int) or isinstance(size, bool) or size <= 0: + raise ValueError(f"Isaac05Config {name}.size must be a positive integer.") + return range(offset, offset + size) + + +class Isaac05Config(Qwen3_5MoeConfig): + """Portable Isaac-0.5 configuration for the published checkpoint.""" + + model_type = "isaac_0_5" + has_no_defaults_at_init = True + + def __init__( + self, + *, + isaac05_artifact: Mapping[str, Any] | None = None, + isaac05_coord_tokens: Mapping[str, Any] | None = None, + isaac05_fast_tokens: Mapping[str, Any] | None = None, + isaac05_vla: Mapping[str, Any] | None = None, + storage_dtype: str = "float32", + runtime_dtype: str = "bfloat16", + max_sequence_length: int = 262_144, + vision_token: str = "<|image_pad|>", + vision_rescale_factor: float = 1 / 255, + isaac05_test_only_reduced_geometry: bool = False, + **kwargs: Any, + ) -> None: + architectures = kwargs.pop("architectures", _ISAAC05_ARCHITECTURES) + auto_map = kwargs.pop("auto_map", _ISAAC05_AUTO_MAP) + if architectures != _ISAAC05_ARCHITECTURES: + raise ValueError(f"Isaac05Config architectures must be {_ISAAC05_ARCHITECTURES!r}.") + if auto_map != _ISAAC05_AUTO_MAP: + raise ValueError("Isaac05Config auto_map does not match the portable repository API.") + + artifact = _copy_mapping(isaac05_artifact, name="isaac05_artifact") + coord_tokens = _copy_mapping(isaac05_coord_tokens, name="isaac05_coord_tokens") + fast_tokens = _copy_mapping(isaac05_fast_tokens, name="isaac05_fast_tokens") + vla = _copy_mapping(isaac05_vla, name="isaac05_vla") + + if storage_dtype != "float32": + raise ValueError("Isaac05Config storage_dtype must be 'float32'.") + if runtime_dtype != "bfloat16": + raise ValueError("Isaac05Config runtime_dtype must be 'bfloat16'.") + if max_sequence_length <= 0: + raise ValueError("Isaac05Config max_sequence_length must be positive.") + if not vision_token: + raise ValueError("Isaac05Config vision_token must not be empty.") + if vision_rescale_factor <= 0: + raise ValueError("Isaac05Config vision_rescale_factor must be positive.") + coord_range = _reserved_token_range(coord_tokens, name="isaac05_coord_tokens") + fast_range = _reserved_token_range(fast_tokens, name="isaac05_fast_tokens") + if coord_range.start < fast_range.stop and fast_range.start < coord_range.stop: + raise ValueError("Isaac05Config reserved token ranges overlap.") + if not isaac05_test_only_reduced_geometry: + _require_exact(artifact, _PRODUCTION_ARTIFACT, name="isaac05_artifact") + _require_exact(coord_tokens, _PRODUCTION_COORD_TOKENS, name="isaac05_coord_tokens") + _require_exact(fast_tokens, _PRODUCTION_FAST_TOKENS, name="isaac05_fast_tokens") + _require_exact( + _copy_mapping(vla.get("vector_encoder"), name="isaac05_vla.vector_encoder"), + _PRODUCTION_VECTOR_ENCODER, + name="isaac05_vla.vector_encoder", + ) + _require_exact( + _copy_mapping(vla.get("action_expert"), name="isaac05_vla.action_expert"), + _PRODUCTION_ACTION_EXPERT, + name="isaac05_vla.action_expert", + ) + _require_exact( + _copy_mapping(vla.get("mtp"), name="isaac05_vla.mtp"), + _PRODUCTION_MTP, + name="isaac05_vla.mtp", + ) + if vla.get("schema_version") != 1: + raise ValueError("Isaac05Config isaac05_vla.schema_version must be 1.") + if vla.get("state_dict_schema") != "pr3154_v1": + raise ValueError("Isaac05Config isaac05_vla.state_dict_schema must be 'pr3154_v1'.") + if vla.get("rmsnorm_weight_convention") != "zero_centered_1_plus_weight": + raise ValueError( + "Isaac05Config isaac05_vla.rmsnorm_weight_convention must be 'zero_centered_1_plus_weight'." + ) + + super().__init__(architectures=architectures, auto_map=auto_map, **kwargs) + self.isaac05_artifact = artifact + self.isaac05_coord_tokens = coord_tokens + self.isaac05_fast_tokens = fast_tokens + self.isaac05_vla = vla + vector_encoder = _copy_mapping(vla.get("vector_encoder"), name="isaac05_vla.vector_encoder") + action_expert = _copy_mapping(vla.get("action_expert"), name="isaac05_vla.action_expert") + self.vector_max_states = int(vector_encoder["max_states"]) + self.action_expert = action_expert + self.storage_dtype = storage_dtype + self.runtime_dtype = runtime_dtype + self.max_sequence_length = int(max_sequence_length) + self.vision_token = vision_token + self.vision_rescale_factor = float(vision_rescale_factor) + self.isaac05_test_only_reduced_geometry = bool(isaac05_test_only_reduced_geometry) diff --git a/fast_processor_pinned/processing_action_tokenizer.py b/fast_processor_pinned/processing_action_tokenizer.py new file mode 100644 index 0000000000000000000000000000000000000000..0819e6c2e5cf5c900a49c8705755b6bf0fb995ea --- /dev/null +++ b/fast_processor_pinned/processing_action_tokenizer.py @@ -0,0 +1,158 @@ +import logging +from typing import ClassVar + +import numpy as np +from scipy.fft import dct +from scipy.fft import idct +from tokenizers import ByteLevelBPETokenizer +from tokenizers.trainers import BpeTrainer +from transformers import PreTrainedTokenizerFast +from transformers.processing_utils import ProcessorMixin + + +class UniversalActionProcessor(ProcessorMixin): + attributes: ClassVar[list[str]] = ["bpe_tokenizer"] + bpe_tokenizer_class: str = "AutoTokenizer" + + def __init__( + self, + bpe_tokenizer: PreTrainedTokenizerFast, + scale: float = 10, + vocab_size: int = 1024, + min_token: int = 0, + *, + action_dim: int | None = None, + time_horizon: int | None = None, + ): + self.scale = scale + self.vocab_size = vocab_size + self.min_token = min_token + + # Action horizon and dimension needed during decoding. These can be specified + # in three ways (in order of priority): + # 1. passed in as kwargs to decode() + # 2. in the constructor + # 3. cached from the last time decode() was called + self.time_horizon = time_horizon + self.action_dim = action_dim + self.called_time_horizon = time_horizon + self.called_action_dim = action_dim + + super().__init__(bpe_tokenizer) + + def __call__(self, action_chunk: np.array) -> np.array: + assert action_chunk.ndim <= 3, "Only 3 dimensions supported: [batch, timesteps, action_dim]" + if action_chunk.ndim == 2: + action_chunk = action_chunk[None, ...] + + # Cache the time horizon and action dimension for decoding + self.called_time_horizon = action_chunk.shape[-2] + self.called_action_dim = action_chunk.shape[-1] + + dct_coeff = dct(action_chunk, axis=1, norm="ortho") + dct_coeff = np.around(dct_coeff * self.scale) + tokens = [] + for elem in dct_coeff: + token_str = "".join(map(chr, np.maximum(elem.flatten() - self.min_token, 0).astype(int))) + tokens.append(self.bpe_tokenizer(token_str)["input_ids"]) + return tokens + + def decode( + self, + tokens: list[list[int]], + *, + time_horizon: int | None = None, + action_dim: int | None = None, + ) -> np.array: + self.time_horizon = time_horizon or self.time_horizon or self.called_time_horizon + self.action_dim = action_dim or self.action_dim or self.called_action_dim + + # Cache the time horizon and action dimension for the next call + self.called_time_horizon = self.time_horizon + self.called_action_dim = self.action_dim + + assert ( + self.time_horizon is not None and self.action_dim is not None + ), "Tokenizer not initialized, call encode() once or pass in time_horizon and action_dim." + + decoded_actions = [] + for token in tokens: + try: + decoded_tokens = self.bpe_tokenizer.decode(token) + decoded_dct_coeff = np.array(list(map(ord, decoded_tokens))) + self.min_token + decoded_dct_coeff = decoded_dct_coeff.reshape(-1, self.action_dim) + assert ( + decoded_dct_coeff.shape + == ( + self.time_horizon, + self.action_dim, + ) + ), f"Decoded DCT coefficients have shape {decoded_dct_coeff.shape}, expected ({self.time_horizon}, {self.action_dim})" + except Exception as e: + print(f"Error decoding tokens: {e}") + print(f"Tokens: {token}") + decoded_dct_coeff = np.zeros((self.time_horizon, self.action_dim)) + decoded_actions.append(idct(decoded_dct_coeff / self.scale, axis=0, norm="ortho")) + return np.stack(decoded_actions) + + @classmethod + def fit( + cls, + action_data: list[np.array], + scale: float = 10, + vocab_size: int = 1024, + *, + time_horizon: int | None = None, + action_dim: int | None = None, + ) -> "UniversalActionProcessor": + # Run DCT over all inputs + dct_tokens = [dct(a, axis=0, norm="ortho").flatten() for a in action_data] + + # Quantize and find min token + max_token = int(np.around(np.concatenate(dct_tokens) * scale).max()) + min_token = int(np.around(np.concatenate(dct_tokens) * scale).min()) + min_vocab_size = max_token - min_token + + assert ( + min_vocab_size <= vocab_size + ), f"Vocab size {vocab_size} is too small for the range of tokens {min_vocab_size}" + if min_vocab_size + 100 > vocab_size: + logging.warning( + f"Initial alphabet size {min_vocab_size} is almost as large as the vocab" + f"size {vocab_size}, consider increasing vocab size" + ) + + # Make token iterator for BPE training + def _token_iter(): + for tokens in dct_tokens: + rounded_tokens = np.around(tokens * scale) - min_token + rounded_tokens = rounded_tokens.astype(int) + string = "".join(map(chr, rounded_tokens)) + yield string + + # Train BPE tokenizer + bpe = ByteLevelBPETokenizer() + + # Set up the entire range of possible tokens as the initial alphabet + alphabet = [chr(i) for i in range(max_token - min_token + 1)] + trainer = BpeTrainer( + vocab_size=vocab_size, + min_frequency=2, + show_progress=True, + special_tokens=[], + initial_alphabet=alphabet, + max_token_length=10000, + ) + + # Train the inner tokenizer (don't use ByteLevelBPETokenizer.train_from_iterator() + # because it doesn't support custom alphabets) + bpe._tokenizer.train_from_iterator(_token_iter(), trainer=trainer) + + return cls( + PreTrainedTokenizerFast(tokenizer_object=bpe, clean_up_tokenization_spaces=False), + scale=scale, + vocab_size=vocab_size, + min_token=min_token, + time_horizon=time_horizon, + action_dim=action_dim, + ) diff --git a/fast_processor_pinned/processor_config.json b/fast_processor_pinned/processor_config.json new file mode 100644 index 0000000000000000000000000000000000000000..14a9432d9b92bff964ed9548480b60867253603c --- /dev/null +++ b/fast_processor_pinned/processor_config.json @@ -0,0 +1,11 @@ +{ + "action_dim": null, + "auto_map": { + "AutoProcessor": "processing_action_tokenizer.UniversalActionProcessor" + }, + "min_token": -354, + "processor_class": "UniversalActionProcessor", + "scale": 10, + "time_horizon": null, + "vocab_size": 2048 +} diff --git a/fast_processor_pinned/special_tokens_map.json b/fast_processor_pinned/special_tokens_map.json new file mode 100644 index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93 --- /dev/null +++ b/fast_processor_pinned/special_tokens_map.json @@ -0,0 +1 @@ +{} diff --git a/fast_processor_pinned/tokenizer.json b/fast_processor_pinned/tokenizer.json new file mode 100644 index 0000000000000000000000000000000000000000..864a23a188d4d216528b9f2bb2eb7ce73a0458bd --- /dev/null +++ b/fast_processor_pinned/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6507dd709287fd018882120c0071787f1f62bad9f180f1e8c5235bda1b71fa78 +size 686974 diff --git a/fast_processor_pinned/tokenizer_config.json b/fast_processor_pinned/tokenizer_config.json new file mode 100644 index 0000000000000000000000000000000000000000..4fc5c94fbffea35fc6138f8ff5883514a4ffa47f --- /dev/null +++ b/fast_processor_pinned/tokenizer_config.json @@ -0,0 +1,10 @@ +{ + "added_tokens_decoder": {}, + "auto_map": { + "AutoProcessor": "processing_action_tokenizer.UniversalActionProcessor" + }, + "clean_up_tokenization_spaces": true, + "model_max_length": 1000000000000000019884624838656, + "processor_class": "UniversalActionProcessor", + "tokenizer_class": "PreTrainedTokenizerFast" +} diff --git a/isaac_deployment_adapter.json b/isaac_deployment_adapter.json new file mode 100644 index 0000000000000000000000000000000000000000..945d21391d42826e4408a4cd5976f384b75dbbce --- /dev/null +++ b/isaac_deployment_adapter.json @@ -0,0 +1,47 @@ +{ + "schema": "perceptron_isaac_deployment_adapter_v1", + "contract_sha256": { + "policy_state_contracts.json": "8f83eb9eff2defdef07a2e297b401de475668063e27c3eb5d80963ddb67f1a5e", + "policy_normalization.json": "f829a6f6f72be41196820a1591fb8e7047d9ab674f77a0bec1ba53713ac0c1dc", + "policy_inference_recipe.json": "85e5f52d50a3c89b6ff3adc594189bde3e1d345fbecc7bda082561308b3ee905" + }, + "policy_state_dataset": "libero", + "normalization_scope": "libero_spatial", + "objective": "Flow", + "render_dataset_name": "libero", + "robot_type": "libero", + "control_mode": "ee", + "image_size": [ + 256, + 256 + ], + "camera_order": [ + "image", + "wrist_image" + ], + "camera_views": [ + "primary", + "wrist" + ], + "n_action_steps": 8, + "num_inference_steps": 10, + "num_flow_samples": 1, + "flow_seed_base": 20260826, + "clip_action_pose": true, + "gripper_binary_to_signed": false, + "num_settle_steps": 40, + "settle_gripper": -1.0, + "normalize_task_text": true, + "joint_signs": null, + "joint_offsets": null, + "normalization_profile_id": null, + "normalization_profile_scope": null, + "normalization_validation_status": null, + "adapter_validation_status": "reviewed_offline", + "provenance": { + "checkpoint": "PerceptronAI/Isaac-0.5", + "purpose": "LIBERO Spatial Flow reference deployment profile", + "profile_source": "LeRobot tested LIBERO deployment profile", + "selected_by": "user" + } +} diff --git a/isaac_stats.json b/isaac_stats.json new file mode 100644 index 0000000000000000000000000000000000000000..b008553672c2f121c49f810e8855c99af2d3500e --- /dev/null +++ b/isaac_stats.json @@ -0,0 +1,60 @@ +{ + "action": { + "q01": [ + -0.7454732060432434, + -0.6616071462631226, + -0.9375, + -0.1071428582072258, + -0.20678570866584778, + -0.1842857152223587, + -1.0 + ], + "q99": [ + 0.9375, + 0.8758928775787354, + 0.9321428537368774, + 0.1039285734295845, + 0.17678570747375488, + 0.14571428298950195, + 1.0 + ] + }, + "action_dim": 7, + "action_horizon": 50, + "action_normalization_eps": 1e-06, + "action_representation": "absolute", + "clip_normalized_actions": true, + "clip_normalized_max": 10.0, + "profile_id": null, + "profile_scope": null, + "proprio": { + "q01": [ + -0.27276572585105896, + -0.237214133143425, + 0.916006326675415, + 2.779496669769287, + -1.3187512159347534, + -0.4198998212814331, + 0.001503719249740243, + -0.03989770635962486 + ], + "q99": [ + 0.1352936029434204, + 0.362916499376297, + 1.286232590675354, + 3.2829697132110596, + 0.9332759976387024, + 0.6325722336769104, + 0.03993396461009979, + -0.0016719202976673841 + ] + }, + "proprio_dim": 8, + "proprio_normalization_eps": 1e-06, + "relative_exclude_joints": [], + "schema": "flow_matching_stats_v1", + "state_action_schema": "gripper_7", + "stats_sha256": "b2676fdb56b148f49f21fb7633769a2d2e152a7c4cd63e05884232274748ead0", + "target_fps": 20.0, + "validation_status": null +} diff --git a/lerobot_policy/config.json b/lerobot_policy/config.json new file mode 100644 index 0000000000000000000000000000000000000000..15a75c0e89dfd2ba61688f05fd03ce58d1cf1c0e --- /dev/null +++ b/lerobot_policy/config.json @@ -0,0 +1,123 @@ +{ + "type": "perceptron_isaac", + "n_obs_steps": 3, + "input_features": {}, + "output_features": {}, + "device": "cuda", + "use_amp": false, + "use_peft": false, + "push_to_hub": true, + "repo_id": null, + "private": null, + "tags": null, + "license": null, + "pretrained_path": null, + "pretrained_revision": null, + "chunk_size": 50, + "n_action_steps": 8, + "action_dim": 7, + "max_action_dim": 64, + "max_action_horizon": 64, + "proprio_dim": 8, + "max_state_dim": 128, + "inference_backend": "native_mharmony", + "action_expert_type": "molmoact", + "num_inference_steps": 10, + "num_flow_samples": 1, + "flow_seed_base": 20260826, + "clip_normalized_max": 10.0, + "fast_clip_normalized_max": 1.0, + "clip_action_pose": true, + "num_settle_steps": 40, + "settle_gripper": -1.0, + "rtc_prefix_length": 0, + "image_size": [ + 256, + 256 + ], + "image_preprocessing": "stretch", + "camera_order": [ + "image", + "wrist_image" + ], + "serving_camera_roles": null, + "allow_image_key_fallback": false, + "normalize_gripper": true, + "gripper_binary_to_signed": false, + "joint_signs": null, + "joint_offsets": null, + "training_action_frame_contract_version": 2, + "hf_model_path": "..", + "artifact_kind": "trained_policy", + "apply_offset_norm": false, + "config_toml_path": null, + "stats_path": null, + "per_suite_stats_dir": null, + "include_scene_description": false, + "vector_max_states": 128, + "normalize_task_text": true, + "action_conditioning": false, + "action_conditioning_role": "user", + "mistake_conditioning": false, + "render_processor_enabled": false, + "render_patch_size": 16, + "render_pixel_shuffle_scale": 2, + "render_temporal_patch_size": 2, + "render_max_num_patches": 576, + "render_min_num_patches": null, + "dataset_name": "libero", + "policy_state_dataset": "libero", + "robot_type": "libero", + "control_mode": "ee", + "target_fps": 20.0, + "action_feature_names": null, + "state_feature_names": null, + "strict_hardware_feature_contract": false, + "strict_environment_feature_contract": true, + "normalization_profile_id": null, + "normalization_profile_scope": null, + "normalization_validation_status": null, + "deployment_adapter_sha256": "da15a0d08fd70c5a10de150d341e2890e87325aa542e36929179c9f7527f16df", + "native_render_metadata_path": null, + "native_stats_path": "isaac_stats.json", + "suite_stats_path": null, + "suite_by_task_index_path": null, + "fast_processor_path": "../fast_processor_pinned", + "fast_processor_tree_sha256": "127eb029e5acb8242c7bc2c8efcea6c5dd6ffb565353b5c689b8c8ac55f33a8a", + "mharmony_version": "0.1.0", + "native_require_processor_stream": true, + "objective": "mixed", + "loss_plan": "text_ntp_fast_flow_action", + "train_expert_only": false, + "flow_matching_detach_vlm_activations": false, + "exclude_non_agent_roles": true, + "train_samples_per_chunk": 8, + "train_clip_normalized_actions": true, + "train_skip_outlier_threshold": 20.0, + "train_max_sequence_length": 4096, + "flow_rtc_max_delay_steps": 0, + "flow_rtc_delay_sampling": "uniform", + "flow_dual_timestep_ratio": 0.0, + "flow_mask_padded_action_rows": true, + "softmax_auxiliary_loss_scale": 0.0001, + "freeze_input_embeddings": true, + "dtype": "bfloat16", + "train_storage_fp32": true, + "normalization_mapping": { + "VISUAL": "IDENTITY", + "STATE": "IDENTITY", + "ACTION": "IDENTITY" + }, + "optimizer_lr": 1e-05, + "optimizer_vit_lr": 5e-06, + "optimizer_action_expert_lr": 5e-05, + "optimizer_betas": [ + 0.9, + 0.95 + ], + "optimizer_eps": 1e-06, + "optimizer_weight_decay": 0.0, + "optimizer_grad_clip_norm": 1.0, + "optimizer_warmup_steps": 200, + "max_train_steps": 30000 +} \ No newline at end of file diff --git a/lerobot_policy/isaac_deployment_adapter.json b/lerobot_policy/isaac_deployment_adapter.json new file mode 100644 index 0000000000000000000000000000000000000000..945d21391d42826e4408a4cd5976f384b75dbbce --- /dev/null +++ b/lerobot_policy/isaac_deployment_adapter.json @@ -0,0 +1,47 @@ +{ + "schema": "perceptron_isaac_deployment_adapter_v1", + "contract_sha256": { + "policy_state_contracts.json": "8f83eb9eff2defdef07a2e297b401de475668063e27c3eb5d80963ddb67f1a5e", + "policy_normalization.json": "f829a6f6f72be41196820a1591fb8e7047d9ab674f77a0bec1ba53713ac0c1dc", + "policy_inference_recipe.json": "85e5f52d50a3c89b6ff3adc594189bde3e1d345fbecc7bda082561308b3ee905" + }, + "policy_state_dataset": "libero", + "normalization_scope": "libero_spatial", + "objective": "Flow", + "render_dataset_name": "libero", + "robot_type": "libero", + "control_mode": "ee", + "image_size": [ + 256, + 256 + ], + "camera_order": [ + "image", + "wrist_image" + ], + "camera_views": [ + "primary", + "wrist" + ], + "n_action_steps": 8, + "num_inference_steps": 10, + "num_flow_samples": 1, + "flow_seed_base": 20260826, + "clip_action_pose": true, + "gripper_binary_to_signed": false, + "num_settle_steps": 40, + "settle_gripper": -1.0, + "normalize_task_text": true, + "joint_signs": null, + "joint_offsets": null, + "normalization_profile_id": null, + "normalization_profile_scope": null, + "normalization_validation_status": null, + "adapter_validation_status": "reviewed_offline", + "provenance": { + "checkpoint": "PerceptronAI/Isaac-0.5", + "purpose": "LIBERO Spatial Flow reference deployment profile", + "profile_source": "LeRobot tested LIBERO deployment profile", + "selected_by": "user" + } +} diff --git a/lerobot_policy/isaac_stats.json b/lerobot_policy/isaac_stats.json new file mode 100644 index 0000000000000000000000000000000000000000..b008553672c2f121c49f810e8855c99af2d3500e --- /dev/null +++ b/lerobot_policy/isaac_stats.json @@ -0,0 +1,60 @@ +{ + "action": { + "q01": [ + -0.7454732060432434, + -0.6616071462631226, + -0.9375, + -0.1071428582072258, + -0.20678570866584778, + -0.1842857152223587, + -1.0 + ], + "q99": [ + 0.9375, + 0.8758928775787354, + 0.9321428537368774, + 0.1039285734295845, + 0.17678570747375488, + 0.14571428298950195, + 1.0 + ] + }, + "action_dim": 7, + "action_horizon": 50, + "action_normalization_eps": 1e-06, + "action_representation": "absolute", + "clip_normalized_actions": true, + "clip_normalized_max": 10.0, + "profile_id": null, + "profile_scope": null, + "proprio": { + "q01": [ + -0.27276572585105896, + -0.237214133143425, + 0.916006326675415, + 2.779496669769287, + -1.3187512159347534, + -0.4198998212814331, + 0.001503719249740243, + -0.03989770635962486 + ], + "q99": [ + 0.1352936029434204, + 0.362916499376297, + 1.286232590675354, + 3.2829697132110596, + 0.9332759976387024, + 0.6325722336769104, + 0.03993396461009979, + -0.0016719202976673841 + ] + }, + "proprio_dim": 8, + "proprio_normalization_eps": 1e-06, + "relative_exclude_joints": [], + "schema": "flow_matching_stats_v1", + "state_action_schema": "gripper_7", + "stats_sha256": "b2676fdb56b148f49f21fb7633769a2d2e152a7c4cd63e05884232274748ead0", + "target_fps": 20.0, + "validation_status": null +} diff --git a/lerobot_policy/policy_postprocessor.json b/lerobot_policy/policy_postprocessor.json new file mode 100644 index 0000000000000000000000000000000000000000..7c8d9b65d3e43c9bba3faa36a989764b51aeaa12 --- /dev/null +++ b/lerobot_policy/policy_postprocessor.json @@ -0,0 +1,36 @@ +{ + "name": "policy_postprocessor", + "steps": [ + { + "registry_name": "perceptron_isaac_action_unnormalize", + "config": { + "enabled": true, + "stats_path": null, + "clip_normalized_max": 10.0, + "clip_action_pose": true, + "gripper_binary_to_signed": false, + "normalization_profile_id": null, + "normalization_profile_scope": null, + "normalization_validation_status": null, + "normalize_gripper": true, + "action_feature_names": null, + "state_feature_names": null + }, + "state_file": "policy_postprocessor_step_0_perceptron_isaac_action_unnormalize.safetensors" + }, + { + "registry_name": "perceptron_isaac_action_frame_transform", + "config": { + "joint_signs": null, + "joint_offsets": null + } + }, + { + "registry_name": "device_processor", + "config": { + "device": "cpu", + "float_dtype": null + } + } + ] +} \ No newline at end of file diff --git a/lerobot_policy/policy_postprocessor_step_0_perceptron_isaac_action_unnormalize.safetensors b/lerobot_policy/policy_postprocessor_step_0_perceptron_isaac_action_unnormalize.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..0feeb2b65bfb7a0854228005873d3ce4fd0c068a --- /dev/null +++ b/lerobot_policy/policy_postprocessor_step_0_perceptron_isaac_action_unnormalize.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be4a256dbc65a14c295bbf9aa39ed28028b39b8a220e737a176912621b60c86c +size 726 diff --git a/lerobot_policy/policy_preprocessor.json b/lerobot_policy/policy_preprocessor.json new file mode 100644 index 0000000000000000000000000000000000000000..aa4af22161195af58549f9a8b22fa5eb47f9b282 --- /dev/null +++ b/lerobot_policy/policy_preprocessor.json @@ -0,0 +1,103 @@ +{ + "name": "policy_preprocessor", + "steps": [ + { + "registry_name": "rename_observations_processor", + "config": { + "rename_map": { + "observation.images.image2": "observation.images.wrist_image" + } + } + }, + { + "registry_name": "to_batch_processor", + "config": {} + }, + { + "registry_name": "perceptron_isaac_state_frame_transform", + "config": { + "joint_signs": null, + "joint_offsets": null + } + }, + { + "registry_name": "perceptron_isaac_training_action_frame_transform", + "config": { + "joint_signs": null, + "joint_offsets": null + } + }, + { + "registry_name": "perceptron_isaac_mharmony_pack", + "config": { + "enabled": true, + "inference_backend": "native_mharmony", + "config_toml_path": null, + "stats_path": null, + "camera_order": [ + "image", + "wrist_image" + ], + "image_size": [ + 256, + 256 + ], + "image_preprocessing": "stretch", + "image_keys": [ + "observation.images.image", + "observation.images.wrist_image" + ], + "allow_image_key_fallback": false, + "normalize_language": true, + "n_obs_steps": 3, + "chunk_size": 50, + "objective": "mixed", + "patch_size": 16, + "max_num_patches": 576, + "min_num_patches": null, + "pixel_shuffle_scale": 2, + "temporal_patch_size": 2, + "device": "cuda", + "dtype": "bfloat16", + "stream_key": "perceptron_isaac_stream", + "metadata_key": "perceptron_isaac_render_meta", + "target_fps": 20.0, + "normalization_profile_id": null, + "normalization_profile_scope": null, + "normalization_validation_status": null, + "suite_stats_path": null, + "suite_by_task_index_path": null, + "native_render_metadata_path": null, + "native_stats_path": null, + "fast_processor_path": "../fast_processor_pinned", + "fast_processor_tree_sha256": "127eb029e5acb8242c7bc2c8efcea6c5dd6ffb565353b5c689b8c8ac55f33a8a", + "mharmony_version": "0.1.0", + "action_dim": 7, + "proprio_dim": 8, + "vector_max_states": 128, + "dataset_name": "libero", + "robot_type": "libero", + "action_conditioning": false, + "action_conditioning_role": "user", + "mistake_conditioning": false, + "render_metadata": null, + "train_clip_normalized_actions": true, + "clip_normalized_max": 10.0, + "fast_clip_normalized_max": 1.0, + "train_skip_outlier_threshold": 20.0, + "train_max_sequence_length": 4096, + "normalize_gripper": true, + "action_feature_names": null, + "state_feature_names": null + }, + "state_file": "policy_preprocessor_step_4_perceptron_isaac_mharmony_pack.safetensors" + }, + { + "registry_name": "device_processor", + "config": { + "device": "cuda", + "float_dtype": null + } + } + ] +} \ No newline at end of file diff --git a/lerobot_policy/policy_preprocessor_step_4_perceptron_isaac_mharmony_pack.safetensors b/lerobot_policy/policy_preprocessor_step_4_perceptron_isaac_mharmony_pack.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..0feeb2b65bfb7a0854228005873d3ce4fd0c068a --- /dev/null +++ b/lerobot_policy/policy_preprocessor_step_4_perceptron_isaac_mharmony_pack.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be4a256dbc65a14c295bbf9aa39ed28028b39b8a220e737a176912621b60c86c +size 726 diff --git a/model-00001-of-00042.safetensors b/model-00001-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..f2300e6841b5d6ed0962c1d3574afd810d1c1cb4 --- /dev/null +++ b/model-00001-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71548e066c99a1c63a5307e7d506824429a6b297788f8e1faf80391a6c696c6c +size 4416265552 diff --git a/model-00002-of-00042.safetensors b/model-00002-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..5e9d3ff7a9ee0e3d87b950618d9a2b1b52da8d49 --- /dev/null +++ b/model-00002-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70b95d3b872486e3cc85b03e20d6efb30cc6d0f4510a9cf14b4d908f813bc731 +size 3308063024 diff --git a/model-00003-of-00042.safetensors b/model-00003-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..4ad29010cef4de1466a9271222308a8f2eec8d9c --- /dev/null +++ b/model-00003-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6db7db8779542ebf8392f2a26cb8aeada24b5691d09e6bafa058aaf5c9f2c514 +size 3370814568 diff --git a/model-00004-of-00042.safetensors b/model-00004-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..c39c70d43f3ba6c7cbb57d9ca9784ac95903a450 --- /dev/null +++ b/model-00004-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72a6cf2afdc5bb8bff40436da2c2882a9df3a6d86d6b694dc4df2c75ca6dc5b9 +size 3370814584 diff --git a/model-00005-of-00042.safetensors b/model-00005-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..cd7c71c717169dea42fcce190d784d3bbf2c8409 --- /dev/null +++ b/model-00005-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9bdda50a48758cb84e949abaa0d5100d5e304408d0ca9c9ac8bac420eca0105 +size 3235939552 diff --git a/model-00006-of-00042.safetensors b/model-00006-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..467e83a4a3468006c7842b1401023161066c0904 --- /dev/null +++ b/model-00006-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3ec16af11ecbd1b76b4afef37fa97129b6172892fb615eebc62ad90845bd5ac +size 3479869320 diff --git a/model-00007-of-00042.safetensors b/model-00007-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..a6a6397f983f5d8a3327eb2675f5ad8a8b8685f6 --- /dev/null +++ b/model-00007-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6fdb07421e4b8ed3f02b9d0c80f23eb05db8f477f32a63ad59f943df8609a3d +size 3370814592 diff --git a/model-00008-of-00042.safetensors b/model-00008-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bd094cb73d98a6665027798856284873310621f1 --- /dev/null +++ b/model-00008-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc401c60fb6652be8305fb4f76cb8557bb1baf69f3e5e813afae0473d3651be1 +size 3370814592 diff --git a/model-00009-of-00042.safetensors b/model-00009-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ab9ee58e982413fa0425cff9f67afc64c0d02da0 --- /dev/null +++ b/model-00009-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4078a95d5c1167fb8235eae76d898b3876af2e3760460601a814c603685f1f73 +size 3235939552 diff --git a/model-00010-of-00042.safetensors b/model-00010-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..f15a5fbb530a3b5222ace68b86a560290c97fec2 --- /dev/null +++ b/model-00010-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e2e329b533cd98e6453ac5dc7b8359590a2a30ae5bab9ea314ad7eb9506fa1c +size 3479869320 diff --git a/model-00011-of-00042.safetensors b/model-00011-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..af72ce4656fa2ad48dcefd89376e86d0cc136596 --- /dev/null +++ b/model-00011-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0125ce1d57b0312de64a3921e901c6a46b6f712bbac365fcfd0a91a133da2240 +size 3370814592 diff --git a/model-00012-of-00042.safetensors b/model-00012-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..206d07a30574a510c5f75819369bf07dbb5e6fd3 --- /dev/null +++ b/model-00012-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:674225ed2bfa7af034b36442659e5e29dc0ed3f7c7c892125857cc74c84d184a +size 3370814592 diff --git a/model-00013-of-00042.safetensors b/model-00013-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..daf36f252ea9eb5f1dc80419c19d7788c5d11338 --- /dev/null +++ b/model-00013-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75702cda92f90725e206ef45a4b0ab5b2e97155e5b207d3c463de3a46838da15 +size 3235939552 diff --git a/model-00014-of-00042.safetensors b/model-00014-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2b39088860558214f32ba3380c35bfcc09f85c32 --- /dev/null +++ b/model-00014-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be75df9f9b4386ee8bfe477a569612fa9dfb5fff52f68140045b526d5caffa97 +size 3479869304 diff --git a/model-00015-of-00042.safetensors b/model-00015-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..f2becf40ece4262bb287f6c3b05e2194c37894d3 --- /dev/null +++ b/model-00015-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2407f893f730efea4bac097894f87b2f685db86b2db0dba2a74bf47dee0a4f3a +size 3370814584 diff --git a/model-00016-of-00042.safetensors b/model-00016-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..4da5c9ab8584470cd74029ab5353cfd57eecb2ac --- /dev/null +++ b/model-00016-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d98445ad557f0a3c360cab0c6d6ac9bbba8e39f4f6c7db7064ff41d967f83bd +size 3370814592 diff --git a/model-00017-of-00042.safetensors b/model-00017-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..adb2a916b83d8a1e88b57be2ac67deb334703014 --- /dev/null +++ b/model-00017-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb18753df67ec7c857cbe38561c2a720d195011a7e0bc112da465b129a12daee +size 3370814592 diff --git a/model-00018-of-00042.safetensors b/model-00018-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d899eb96fdbda97973b91897079ec43e7412fab1 --- /dev/null +++ b/model-00018-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50329180cf5d0807eb144bf0a98f9cd9c4d88f3d8355cc46db662fbede0307ba +size 3235939552 diff --git a/model-00019-of-00042.safetensors b/model-00019-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..1a7da3504a05617bb506fcabc837204d1eebd6e4 --- /dev/null +++ b/model-00019-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:848a86b200296b0f3730c065461486596c0b93209a87967c5cefdac4bc375a5a +size 3479869320 diff --git a/model-00020-of-00042.safetensors b/model-00020-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ab90864b6e189a6db44ce573e95d604fc68924a2 --- /dev/null +++ b/model-00020-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669c3d350570c8581b30f0753184f65522966ea8bc3abb37e258e3b222af2bf7 +size 3370814592 diff --git a/model-00021-of-00042.safetensors b/model-00021-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..c2778d0edd052e5ec70871156ca9e6da1b9e46ec --- /dev/null +++ b/model-00021-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06aced85fd27a61af9e83331a778b747ee2e33738ee31484f5f65dd531d9978f +size 3370814592 diff --git a/model-00022-of-00042.safetensors b/model-00022-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..e895cf311ef8a3e17f24accfc2b3d0717a287bf5 --- /dev/null +++ b/model-00022-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8b3f39b64e04e624ed58d72cad1f59c754c5b3bb858a24b5252b5302657c561 +size 3235939552 diff --git a/model-00023-of-00042.safetensors b/model-00023-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..1a1e95b2cf6e62dd86dc9c5883d5b5b3f62a5a08 --- /dev/null +++ b/model-00023-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1469fa1c66accef373c64371c6b1c35f487bf1d08f75d48781af02a434f8a489 +size 3479869320 diff --git a/model-00024-of-00042.safetensors b/model-00024-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..fbda54deeb78b89a015afac9f38adaacb457ba8c --- /dev/null +++ b/model-00024-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c09825c3dd19364ff70a91d30dd181b533d500a75067d59949dabb23f86c7781 +size 3370814592 diff --git a/model-00025-of-00042.safetensors b/model-00025-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bace943596e8502404aa7e548daf023e5b68487c --- /dev/null +++ b/model-00025-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba12b1f13f318163c13a1fe632a370626961e27ab01102dae6e4288426313409 +size 3235939552 diff --git a/model-00026-of-00042.safetensors b/model-00026-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..0d8cdb17de2e030851b5621df2772fd3aae1f673 --- /dev/null +++ b/model-00026-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dd5247014f129ebe23a849c381101794a119576723aa4eef098f9460cc07c63 +size 3479869304 diff --git a/model-00027-of-00042.safetensors b/model-00027-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..3c86438862ec7c34745dbcb8ca0ce8717a624815 --- /dev/null +++ b/model-00027-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78e42c7ffa62b84d4cee9d55da8f8c8c2350cd36c6dcc5bd65482053a8e38e02 +size 3235939552 diff --git a/model-00028-of-00042.safetensors b/model-00028-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..80e04ee3eba356520c3bc40ff6df266cc9ad78b6 --- /dev/null +++ b/model-00028-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:827fff97afce3730dfb86b463cc0055c9b7b1147fe3e66151bc3d97b14c7cc96 +size 3479869320 diff --git a/model-00029-of-00042.safetensors b/model-00029-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..900c44a9e7b8e7bf5579333b2a18171c69ded5e1 --- /dev/null +++ b/model-00029-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14308b38442f97722d8b842c10066a84b7578a2040477c147aedd60b664dd30c +size 3370814592 diff --git a/model-00030-of-00042.safetensors b/model-00030-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..fd726f7a6152e836f3fc350add82f58d5b9e3a90 --- /dev/null +++ b/model-00030-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a92283c66b4ffce6c72e6ee4aaf75eae789417aa0821ae2b9c7bb2e6c7098b6c +size 3370814592 diff --git a/model-00031-of-00042.safetensors b/model-00031-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..4c49e2f4075efcf3f46d1464c5a04ff97938065f --- /dev/null +++ b/model-00031-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fe6c57fed871cd3eeddf0d71261089035dbdc7e7d6cde27965c111ad6418906 +size 3235939552 diff --git a/model-00032-of-00042.safetensors b/model-00032-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..928e6c434320889def5630a75df70386b31840e3 --- /dev/null +++ b/model-00032-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c731ae05a59b28ef01e1170fa62e9a7ef32bf1c6a2a5318df059fe7b2e0c527a +size 3479869320 diff --git a/model-00033-of-00042.safetensors b/model-00033-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bb2548e2da91ab5a05f9bd7e3e15bf20a520d962 --- /dev/null +++ b/model-00033-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6c7b0ad526addb07821849d6e336c028915c38e22e18b2a4bf9872ab63ae480 +size 3370814592 diff --git a/model-00034-of-00042.safetensors b/model-00034-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d521155c7adbcd7dee8029819bb7d5e5487a84fb --- /dev/null +++ b/model-00034-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8ade280ef94da6d4946d7a19e2ef75c0e77c6f0d861e9af6b84b6a7955ad5f8 +size 3370814592 diff --git a/model-00035-of-00042.safetensors b/model-00035-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..43065e5f9c6ccc9dc29b15025679f7fc788fe563 --- /dev/null +++ b/model-00035-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08af6a2bd8a527aa37456434b2fcca52604a8f49ba08c83b4c0e33a31ee9ef82 +size 3235939552 diff --git a/model-00036-of-00042.safetensors b/model-00036-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..661da62ca697ac2408f89d627d8233555654f45f --- /dev/null +++ b/model-00036-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a9117b85384a6ca98ce073e8d9e1a3206597a2c946468d1d000332da124b35c +size 3479869304 diff --git a/model-00037-of-00042.safetensors b/model-00037-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..de666297ab34fd3700032ba515aab65684c403b6 --- /dev/null +++ b/model-00037-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5206cccfc093dbda3440cf5396c6b680fbeb623239c9e08f02c4ec6e566cbad7 +size 3370814568 diff --git a/model-00038-of-00042.safetensors b/model-00038-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..cbf63291ee39bbe409f918f40bcd7cd17731a777 --- /dev/null +++ b/model-00038-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b067d05b5b7de3b5442ec9e034b28326adf213b46b9ce06def800c4592e1e4 +size 3370814568 diff --git a/model-00039-of-00042.safetensors b/model-00039-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..19b5aca814399f3bb0023afbab0d3fb80e1911f6 --- /dev/null +++ b/model-00039-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b737d158f26d98fa96c3211901279ac041fa6ba1cb7815e85f1b3eeb7413d0af +size 3235939544 diff --git a/model-00040-of-00042.safetensors b/model-00040-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2bb7b752380eb418f3b4ffe60bdd4c9f717cab57 --- /dev/null +++ b/model-00040-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3056372be7e76697c86029f5f21a115b0b6889d0c1be2d5dd5dc68e3effa308 +size 3479869296 diff --git a/model-00041-of-00042.safetensors b/model-00041-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..bed5e1a6327a0f0f417e3df85810c3f383e168fc --- /dev/null +++ b/model-00041-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f62971166add1c4275785256d433135abc202e6b6a4e3adab66342903d2c00c +size 3370814568 diff --git a/model-00042-of-00042.safetensors b/model-00042-of-00042.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..d3472b7669a50ba34648480bc22d84974f9328a7 --- /dev/null +++ b/model-00042-of-00042.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f8af627f6340efd9c9ba31fcad02190a5dff17c3e564149200474f5c8beefad +size 3966345992 diff --git a/model.safetensors.index.json b/model.safetensors.index.json new file mode 100644 index 0000000000000000000000000000000000000000..05d07b0830655bb6670fc27f2f90a829d8e8313c --- /dev/null +++ b/model.safetensors.index.json @@ -0,0 +1,1623 @@ +{ + "metadata": { + "total_size": 142894027456 + }, + "weight_map": { + "lm_head.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.action_embed.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.action_embed.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.0.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.1.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.10.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.11.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.12.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.13.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.14.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.15.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.16.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.17.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.18.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.19.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.2.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.20.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.21.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.22.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.23.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.24.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.25.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.26.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.27.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.28.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.29.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.3.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.30.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.31.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.32.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.33.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.34.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.35.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.4.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.5.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.6.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.7.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.8.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.cross_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.cross_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.cross_attn.q_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.cross_attn.q_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.down_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.down_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.gate_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.gate_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.up_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.mlp.up_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.self_attn.out_proj.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.self_attn.out_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.self_attn.qkv.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.blocks.9.self_attn.qkv.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.context_k_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.context_v_proj.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.final_layer.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.final_layer.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.final_layer.modulation.linear.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.final_layer.modulation.linear.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.time_embed.1.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.time_embed.1.weight": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.time_embed.3.bias": "model-00001-of-00042.safetensors", + "model.action_expert.action_expert.time_embed.3.weight": "model-00001-of-00042.safetensors", + "model.language_model.embed_tokens.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.input_layernorm.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.A_log": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.conv1d.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.dt_bias": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.in_proj_a.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.in_proj_b.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.in_proj_qkv.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.in_proj_z.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.norm.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.linear_attn.out_proj.weight": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.mlp.experts.down_proj": "model-00002-of-00042.safetensors", + "model.language_model.layers.0.mlp.experts.gate_up_proj": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.mlp.gate.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.mlp.shared_expert.down_proj.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.mlp.shared_expert.gate_proj.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.mlp.shared_expert.up_proj.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.mlp.shared_expert_gate.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.0.post_attention_layernorm.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.input_layernorm.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.A_log": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.conv1d.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.dt_bias": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.in_proj_a.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.in_proj_b.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.in_proj_qkv.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.in_proj_z.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.norm.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.linear_attn.out_proj.weight": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.mlp.experts.down_proj": "model-00003-of-00042.safetensors", + "model.language_model.layers.1.mlp.experts.gate_up_proj": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.mlp.gate.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.mlp.shared_expert.down_proj.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.mlp.shared_expert.gate_proj.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.mlp.shared_expert.up_proj.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.mlp.shared_expert_gate.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.1.post_attention_layernorm.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.input_layernorm.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.A_log": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.conv1d.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.dt_bias": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.in_proj_a.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.in_proj_b.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.in_proj_qkv.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.in_proj_z.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.norm.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.linear_attn.out_proj.weight": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.mlp.experts.down_proj": "model-00004-of-00042.safetensors", + "model.language_model.layers.10.mlp.experts.gate_up_proj": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.mlp.gate.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.mlp.shared_expert.down_proj.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.mlp.shared_expert.gate_proj.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.mlp.shared_expert.up_proj.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.mlp.shared_expert_gate.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.10.post_attention_layernorm.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.11.input_layernorm.weight": "model-00005-of-00042.safetensors", + "model.language_model.layers.11.mlp.experts.down_proj": "model-00005-of-00042.safetensors", + "model.language_model.layers.11.mlp.experts.gate_up_proj": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.mlp.gate.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.mlp.shared_expert.down_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.mlp.shared_expert.gate_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.mlp.shared_expert.up_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.mlp.shared_expert_gate.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.post_attention_layernorm.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.k_norm.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.k_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.o_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.q_norm.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.q_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.11.self_attn.v_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.input_layernorm.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.A_log": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.conv1d.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.dt_bias": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.in_proj_a.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.in_proj_b.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.in_proj_qkv.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.in_proj_z.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.norm.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.linear_attn.out_proj.weight": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.mlp.experts.down_proj": "model-00006-of-00042.safetensors", + "model.language_model.layers.12.mlp.experts.gate_up_proj": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.mlp.gate.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.mlp.shared_expert.down_proj.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.mlp.shared_expert.gate_proj.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.mlp.shared_expert.up_proj.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.mlp.shared_expert_gate.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.12.post_attention_layernorm.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.input_layernorm.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.A_log": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.conv1d.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.dt_bias": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.in_proj_a.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.in_proj_b.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.in_proj_qkv.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.in_proj_z.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.norm.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.linear_attn.out_proj.weight": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.mlp.experts.down_proj": "model-00007-of-00042.safetensors", + "model.language_model.layers.13.mlp.experts.gate_up_proj": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.mlp.gate.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.mlp.shared_expert.down_proj.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.mlp.shared_expert.gate_proj.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.mlp.shared_expert.up_proj.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.mlp.shared_expert_gate.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.13.post_attention_layernorm.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.input_layernorm.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.A_log": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.conv1d.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.dt_bias": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.in_proj_a.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.in_proj_b.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.in_proj_qkv.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.in_proj_z.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.norm.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.linear_attn.out_proj.weight": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.mlp.experts.down_proj": "model-00008-of-00042.safetensors", + "model.language_model.layers.14.mlp.experts.gate_up_proj": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.mlp.gate.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.mlp.shared_expert.down_proj.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.mlp.shared_expert.gate_proj.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.mlp.shared_expert.up_proj.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.mlp.shared_expert_gate.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.14.post_attention_layernorm.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.15.input_layernorm.weight": "model-00009-of-00042.safetensors", + "model.language_model.layers.15.mlp.experts.down_proj": "model-00009-of-00042.safetensors", + "model.language_model.layers.15.mlp.experts.gate_up_proj": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.mlp.gate.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.mlp.shared_expert.down_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.mlp.shared_expert.gate_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.mlp.shared_expert.up_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.mlp.shared_expert_gate.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.post_attention_layernorm.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.k_norm.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.k_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.o_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.q_norm.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.q_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.15.self_attn.v_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.input_layernorm.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.A_log": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.conv1d.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.dt_bias": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.in_proj_a.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.in_proj_b.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.in_proj_qkv.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.in_proj_z.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.norm.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.linear_attn.out_proj.weight": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.mlp.experts.down_proj": "model-00010-of-00042.safetensors", + "model.language_model.layers.16.mlp.experts.gate_up_proj": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.mlp.gate.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.mlp.shared_expert.down_proj.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.mlp.shared_expert.gate_proj.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.mlp.shared_expert.up_proj.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.mlp.shared_expert_gate.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.16.post_attention_layernorm.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.input_layernorm.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.A_log": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.conv1d.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.dt_bias": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.in_proj_a.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.in_proj_b.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.in_proj_qkv.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.in_proj_z.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.norm.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.linear_attn.out_proj.weight": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.mlp.experts.down_proj": "model-00011-of-00042.safetensors", + "model.language_model.layers.17.mlp.experts.gate_up_proj": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.mlp.gate.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.mlp.shared_expert.down_proj.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.mlp.shared_expert.gate_proj.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.mlp.shared_expert.up_proj.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.mlp.shared_expert_gate.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.17.post_attention_layernorm.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.input_layernorm.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.A_log": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.conv1d.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.dt_bias": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.in_proj_a.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.in_proj_b.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.in_proj_qkv.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.in_proj_z.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.norm.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.linear_attn.out_proj.weight": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.mlp.experts.down_proj": "model-00012-of-00042.safetensors", + "model.language_model.layers.18.mlp.experts.gate_up_proj": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.mlp.gate.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.mlp.shared_expert.down_proj.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.mlp.shared_expert.gate_proj.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.mlp.shared_expert.up_proj.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.mlp.shared_expert_gate.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.18.post_attention_layernorm.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.19.input_layernorm.weight": "model-00013-of-00042.safetensors", + "model.language_model.layers.19.mlp.experts.down_proj": "model-00013-of-00042.safetensors", + "model.language_model.layers.19.mlp.experts.gate_up_proj": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.mlp.gate.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.mlp.shared_expert.down_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.mlp.shared_expert.gate_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.mlp.shared_expert.up_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.mlp.shared_expert_gate.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.post_attention_layernorm.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.k_norm.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.k_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.o_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.q_norm.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.q_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.19.self_attn.v_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.input_layernorm.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.A_log": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.conv1d.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.dt_bias": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.in_proj_a.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.in_proj_b.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.in_proj_qkv.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.in_proj_z.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.norm.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.linear_attn.out_proj.weight": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.mlp.experts.down_proj": "model-00014-of-00042.safetensors", + "model.language_model.layers.2.mlp.experts.gate_up_proj": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.mlp.gate.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.mlp.shared_expert.down_proj.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.mlp.shared_expert.gate_proj.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.mlp.shared_expert.up_proj.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.mlp.shared_expert_gate.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.2.post_attention_layernorm.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.input_layernorm.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.A_log": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.conv1d.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.dt_bias": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.in_proj_a.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.in_proj_b.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.in_proj_qkv.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.in_proj_z.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.norm.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.linear_attn.out_proj.weight": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.mlp.experts.down_proj": "model-00015-of-00042.safetensors", + "model.language_model.layers.20.mlp.experts.gate_up_proj": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.mlp.gate.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.mlp.shared_expert.down_proj.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.mlp.shared_expert.gate_proj.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.mlp.shared_expert.up_proj.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.mlp.shared_expert_gate.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.20.post_attention_layernorm.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.input_layernorm.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.A_log": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.conv1d.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.dt_bias": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.in_proj_a.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.in_proj_b.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.in_proj_qkv.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.in_proj_z.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.norm.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.linear_attn.out_proj.weight": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.mlp.experts.down_proj": "model-00016-of-00042.safetensors", + "model.language_model.layers.21.mlp.experts.gate_up_proj": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.mlp.gate.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.mlp.shared_expert.down_proj.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.mlp.shared_expert.gate_proj.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.mlp.shared_expert.up_proj.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.mlp.shared_expert_gate.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.21.post_attention_layernorm.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.input_layernorm.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.A_log": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.conv1d.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.dt_bias": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.in_proj_a.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.in_proj_b.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.in_proj_qkv.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.in_proj_z.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.norm.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.linear_attn.out_proj.weight": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.mlp.experts.down_proj": "model-00017-of-00042.safetensors", + "model.language_model.layers.22.mlp.experts.gate_up_proj": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.mlp.gate.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.mlp.shared_expert.down_proj.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.mlp.shared_expert.gate_proj.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.mlp.shared_expert.up_proj.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.mlp.shared_expert_gate.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.22.post_attention_layernorm.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.23.input_layernorm.weight": "model-00018-of-00042.safetensors", + "model.language_model.layers.23.mlp.experts.down_proj": "model-00018-of-00042.safetensors", + "model.language_model.layers.23.mlp.experts.gate_up_proj": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.mlp.gate.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.mlp.shared_expert.down_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.mlp.shared_expert.gate_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.mlp.shared_expert.up_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.mlp.shared_expert_gate.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.post_attention_layernorm.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.k_norm.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.k_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.o_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.q_norm.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.q_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.23.self_attn.v_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.input_layernorm.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.A_log": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.conv1d.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.dt_bias": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.in_proj_a.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.in_proj_b.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.in_proj_qkv.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.in_proj_z.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.norm.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.linear_attn.out_proj.weight": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.mlp.experts.down_proj": "model-00019-of-00042.safetensors", + "model.language_model.layers.24.mlp.experts.gate_up_proj": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.mlp.gate.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.mlp.shared_expert.down_proj.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.mlp.shared_expert.gate_proj.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.mlp.shared_expert.up_proj.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.mlp.shared_expert_gate.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.24.post_attention_layernorm.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.input_layernorm.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.A_log": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.conv1d.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.dt_bias": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.in_proj_a.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.in_proj_b.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.in_proj_qkv.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.in_proj_z.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.norm.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.linear_attn.out_proj.weight": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.mlp.experts.down_proj": "model-00020-of-00042.safetensors", + "model.language_model.layers.25.mlp.experts.gate_up_proj": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.mlp.gate.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.mlp.shared_expert.down_proj.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.mlp.shared_expert.gate_proj.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.mlp.shared_expert.up_proj.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.mlp.shared_expert_gate.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.25.post_attention_layernorm.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.input_layernorm.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.A_log": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.conv1d.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.dt_bias": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.in_proj_a.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.in_proj_b.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.in_proj_qkv.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.in_proj_z.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.norm.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.linear_attn.out_proj.weight": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.mlp.experts.down_proj": "model-00021-of-00042.safetensors", + "model.language_model.layers.26.mlp.experts.gate_up_proj": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.mlp.gate.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.mlp.shared_expert.down_proj.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.mlp.shared_expert.gate_proj.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.mlp.shared_expert.up_proj.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.mlp.shared_expert_gate.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.26.post_attention_layernorm.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.27.input_layernorm.weight": "model-00022-of-00042.safetensors", + "model.language_model.layers.27.mlp.experts.down_proj": "model-00022-of-00042.safetensors", + "model.language_model.layers.27.mlp.experts.gate_up_proj": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.mlp.gate.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.mlp.shared_expert.down_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.mlp.shared_expert.gate_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.mlp.shared_expert.up_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.mlp.shared_expert_gate.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.post_attention_layernorm.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.k_norm.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.k_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.o_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.q_norm.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.q_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.27.self_attn.v_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.input_layernorm.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.A_log": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.conv1d.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.dt_bias": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.in_proj_a.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.in_proj_b.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.in_proj_qkv.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.in_proj_z.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.norm.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.linear_attn.out_proj.weight": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.mlp.experts.down_proj": "model-00023-of-00042.safetensors", + "model.language_model.layers.28.mlp.experts.gate_up_proj": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.mlp.gate.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.mlp.shared_expert.down_proj.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.mlp.shared_expert.gate_proj.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.mlp.shared_expert.up_proj.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.mlp.shared_expert_gate.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.28.post_attention_layernorm.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.input_layernorm.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.A_log": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.conv1d.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.dt_bias": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.in_proj_a.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.in_proj_b.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.in_proj_qkv.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.in_proj_z.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.norm.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.linear_attn.out_proj.weight": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.mlp.experts.down_proj": "model-00024-of-00042.safetensors", + "model.language_model.layers.29.mlp.experts.gate_up_proj": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.mlp.gate.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.mlp.shared_expert.down_proj.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.mlp.shared_expert.gate_proj.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.mlp.shared_expert.up_proj.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.mlp.shared_expert_gate.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.29.post_attention_layernorm.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.3.input_layernorm.weight": "model-00025-of-00042.safetensors", + "model.language_model.layers.3.mlp.experts.down_proj": "model-00025-of-00042.safetensors", + "model.language_model.layers.3.mlp.experts.gate_up_proj": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.mlp.gate.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.mlp.shared_expert.down_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.mlp.shared_expert.gate_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.mlp.shared_expert.up_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.mlp.shared_expert_gate.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.post_attention_layernorm.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.k_norm.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.k_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.o_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.q_norm.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.q_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.3.self_attn.v_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.input_layernorm.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.A_log": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.conv1d.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.dt_bias": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.in_proj_a.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.in_proj_b.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.in_proj_qkv.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.in_proj_z.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.norm.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.linear_attn.out_proj.weight": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.mlp.experts.down_proj": "model-00026-of-00042.safetensors", + "model.language_model.layers.30.mlp.experts.gate_up_proj": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.mlp.gate.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.mlp.shared_expert.down_proj.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.mlp.shared_expert.gate_proj.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.mlp.shared_expert.up_proj.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.mlp.shared_expert_gate.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.30.post_attention_layernorm.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.31.input_layernorm.weight": "model-00027-of-00042.safetensors", + "model.language_model.layers.31.mlp.experts.down_proj": "model-00027-of-00042.safetensors", + "model.language_model.layers.31.mlp.experts.gate_up_proj": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.mlp.gate.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.mlp.shared_expert.down_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.mlp.shared_expert.gate_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.mlp.shared_expert.up_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.mlp.shared_expert_gate.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.post_attention_layernorm.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.k_norm.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.k_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.o_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.q_norm.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.q_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.31.self_attn.v_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.input_layernorm.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.A_log": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.conv1d.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.dt_bias": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.in_proj_a.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.in_proj_b.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.in_proj_qkv.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.in_proj_z.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.norm.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.linear_attn.out_proj.weight": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.mlp.experts.down_proj": "model-00028-of-00042.safetensors", + "model.language_model.layers.32.mlp.experts.gate_up_proj": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.mlp.gate.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.mlp.shared_expert.down_proj.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.mlp.shared_expert.gate_proj.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.mlp.shared_expert.up_proj.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.mlp.shared_expert_gate.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.32.post_attention_layernorm.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.input_layernorm.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.A_log": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.conv1d.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.dt_bias": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.in_proj_a.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.in_proj_b.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.in_proj_qkv.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.in_proj_z.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.norm.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.linear_attn.out_proj.weight": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.mlp.experts.down_proj": "model-00029-of-00042.safetensors", + "model.language_model.layers.33.mlp.experts.gate_up_proj": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.mlp.gate.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.mlp.shared_expert.down_proj.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.mlp.shared_expert.gate_proj.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.mlp.shared_expert.up_proj.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.mlp.shared_expert_gate.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.33.post_attention_layernorm.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.input_layernorm.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.A_log": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.conv1d.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.dt_bias": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.in_proj_a.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.in_proj_b.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.in_proj_qkv.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.in_proj_z.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.norm.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.linear_attn.out_proj.weight": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.mlp.experts.down_proj": "model-00030-of-00042.safetensors", + "model.language_model.layers.34.mlp.experts.gate_up_proj": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.mlp.gate.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.mlp.shared_expert.down_proj.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.mlp.shared_expert.gate_proj.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.mlp.shared_expert.up_proj.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.mlp.shared_expert_gate.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.34.post_attention_layernorm.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.35.input_layernorm.weight": "model-00031-of-00042.safetensors", + "model.language_model.layers.35.mlp.experts.down_proj": "model-00031-of-00042.safetensors", + "model.language_model.layers.35.mlp.experts.gate_up_proj": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.mlp.gate.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.mlp.shared_expert.down_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.mlp.shared_expert.gate_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.mlp.shared_expert.up_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.mlp.shared_expert_gate.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.post_attention_layernorm.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.k_norm.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.k_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.o_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.q_norm.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.q_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.35.self_attn.v_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.input_layernorm.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.A_log": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.conv1d.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.dt_bias": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.in_proj_a.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.in_proj_b.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.in_proj_qkv.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.in_proj_z.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.norm.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.linear_attn.out_proj.weight": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.mlp.experts.down_proj": "model-00032-of-00042.safetensors", + "model.language_model.layers.36.mlp.experts.gate_up_proj": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.mlp.gate.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.mlp.shared_expert.down_proj.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.mlp.shared_expert.gate_proj.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.mlp.shared_expert.up_proj.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.mlp.shared_expert_gate.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.36.post_attention_layernorm.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.input_layernorm.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.A_log": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.conv1d.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.dt_bias": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.in_proj_a.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.in_proj_b.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.in_proj_qkv.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.in_proj_z.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.norm.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.linear_attn.out_proj.weight": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.mlp.experts.down_proj": "model-00033-of-00042.safetensors", + "model.language_model.layers.37.mlp.experts.gate_up_proj": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.mlp.gate.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.mlp.shared_expert.down_proj.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.mlp.shared_expert.gate_proj.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.mlp.shared_expert.up_proj.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.mlp.shared_expert_gate.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.37.post_attention_layernorm.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.input_layernorm.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.A_log": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.conv1d.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.dt_bias": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.in_proj_a.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.in_proj_b.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.in_proj_qkv.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.in_proj_z.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.norm.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.linear_attn.out_proj.weight": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.mlp.experts.down_proj": "model-00034-of-00042.safetensors", + "model.language_model.layers.38.mlp.experts.gate_up_proj": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.mlp.gate.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.mlp.shared_expert.down_proj.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.mlp.shared_expert.gate_proj.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.mlp.shared_expert.up_proj.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.mlp.shared_expert_gate.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.38.post_attention_layernorm.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.39.input_layernorm.weight": "model-00035-of-00042.safetensors", + "model.language_model.layers.39.mlp.experts.down_proj": "model-00035-of-00042.safetensors", + "model.language_model.layers.39.mlp.experts.gate_up_proj": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.mlp.gate.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.mlp.shared_expert.down_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.mlp.shared_expert.gate_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.mlp.shared_expert.up_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.mlp.shared_expert_gate.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.post_attention_layernorm.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.k_norm.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.k_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.o_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.q_norm.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.q_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.39.self_attn.v_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.input_layernorm.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.A_log": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.conv1d.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.dt_bias": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.in_proj_a.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.in_proj_b.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.in_proj_qkv.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.in_proj_z.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.norm.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.linear_attn.out_proj.weight": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.mlp.experts.down_proj": "model-00036-of-00042.safetensors", + "model.language_model.layers.4.mlp.experts.gate_up_proj": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.mlp.gate.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.mlp.shared_expert.down_proj.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.mlp.shared_expert.gate_proj.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.mlp.shared_expert.up_proj.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.mlp.shared_expert_gate.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.4.post_attention_layernorm.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.input_layernorm.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.A_log": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.conv1d.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.dt_bias": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.in_proj_a.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.in_proj_b.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.in_proj_qkv.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.in_proj_z.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.norm.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.linear_attn.out_proj.weight": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.mlp.experts.down_proj": "model-00037-of-00042.safetensors", + "model.language_model.layers.5.mlp.experts.gate_up_proj": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.mlp.gate.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.mlp.shared_expert.down_proj.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.mlp.shared_expert.gate_proj.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.mlp.shared_expert.up_proj.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.mlp.shared_expert_gate.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.5.post_attention_layernorm.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.input_layernorm.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.A_log": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.conv1d.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.dt_bias": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.in_proj_a.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.in_proj_b.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.in_proj_qkv.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.in_proj_z.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.norm.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.linear_attn.out_proj.weight": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.mlp.experts.down_proj": "model-00038-of-00042.safetensors", + "model.language_model.layers.6.mlp.experts.gate_up_proj": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.mlp.gate.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.mlp.shared_expert.down_proj.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.mlp.shared_expert.gate_proj.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.mlp.shared_expert.up_proj.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.mlp.shared_expert_gate.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.6.post_attention_layernorm.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.7.input_layernorm.weight": "model-00039-of-00042.safetensors", + "model.language_model.layers.7.mlp.experts.down_proj": "model-00039-of-00042.safetensors", + "model.language_model.layers.7.mlp.experts.gate_up_proj": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.mlp.gate.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.mlp.shared_expert.down_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.mlp.shared_expert.gate_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.mlp.shared_expert.up_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.mlp.shared_expert_gate.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.post_attention_layernorm.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.k_norm.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.k_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.o_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.q_norm.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.q_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.7.self_attn.v_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.input_layernorm.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.A_log": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.conv1d.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.dt_bias": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.in_proj_a.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.in_proj_b.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.in_proj_qkv.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.in_proj_z.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.norm.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.linear_attn.out_proj.weight": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.mlp.experts.down_proj": "model-00040-of-00042.safetensors", + "model.language_model.layers.8.mlp.experts.gate_up_proj": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.mlp.gate.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.mlp.shared_expert.down_proj.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.mlp.shared_expert.gate_proj.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.mlp.shared_expert.up_proj.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.mlp.shared_expert_gate.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.8.post_attention_layernorm.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.input_layernorm.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.A_log": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.conv1d.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.dt_bias": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.in_proj_a.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.in_proj_b.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.in_proj_qkv.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.in_proj_z.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.norm.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.linear_attn.out_proj.weight": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.mlp.experts.down_proj": "model-00041-of-00042.safetensors", + "model.language_model.layers.9.mlp.experts.gate_up_proj": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.mlp.gate.weight": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.mlp.shared_expert.down_proj.weight": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.mlp.shared_expert.gate_proj.weight": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.mlp.shared_expert.up_proj.weight": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.mlp.shared_expert_gate.weight": "model-00042-of-00042.safetensors", + "model.language_model.layers.9.post_attention_layernorm.weight": "model-00042-of-00042.safetensors", + "model.language_model.norm.weight": "model-00042-of-00042.safetensors", + "model.vector_embedding.0.weight": "model-00042-of-00042.safetensors", + "model.vector_embedding.2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.0.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.1.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.10.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.11.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.12.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.13.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.14.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.15.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.16.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.17.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.18.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.19.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.2.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.20.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.21.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.22.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.23.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.24.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.25.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.26.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.3.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.4.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.5.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.6.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.7.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.8.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.attn.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.attn.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.attn.qkv.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.attn.qkv.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.mlp.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.mlp.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.mlp.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.mlp.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.norm1.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.norm1.weight": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.norm2.bias": "model-00042-of-00042.safetensors", + "model.visual.blocks.9.norm2.weight": "model-00042-of-00042.safetensors", + "model.visual.merger.linear_fc1.bias": "model-00042-of-00042.safetensors", + "model.visual.merger.linear_fc1.weight": "model-00042-of-00042.safetensors", + "model.visual.merger.linear_fc2.bias": "model-00042-of-00042.safetensors", + "model.visual.merger.linear_fc2.weight": "model-00042-of-00042.safetensors", + "model.visual.merger.norm.bias": "model-00042-of-00042.safetensors", + "model.visual.merger.norm.weight": "model-00042-of-00042.safetensors", + "model.visual.patch_embed.proj.bias": "model-00042-of-00042.safetensors", + "model.visual.patch_embed.proj.weight": "model-00042-of-00042.safetensors", + "model.visual.pos_embed.weight": "model-00042-of-00042.safetensors" + } +} \ No newline at end of file diff --git a/modeling_isaac05.py b/modeling_isaac05.py new file mode 100644 index 0000000000000000000000000000000000000000..e7e5fc64b5f7d5969c951c68f9907cad83a3528a --- /dev/null +++ b/modeling_isaac05.py @@ -0,0 +1,241 @@ +"""Transformers AutoModel entry point for portable Isaac-0.5.""" + +from __future__ import annotations + +from typing import Any + +import torch +import torch.nn.functional as F +import transformers +from transformers import GenerationMixin +from transformers.cache_utils import Cache +from transformers.modeling_outputs import CausalLMOutputWithPast +from transformers.models.qwen3_5_moe.modeling_qwen3_5_moe import Qwen3_5MoeModel + +from .configuration_isaac05 import Isaac05Config +from .modeling_isaac05_vla import Isaac05Qwen36VLAForActionGeneration +from .modeling_qwen35_vla import DiTActionExpertHead as _DiTActionExpertHead +from .modeling_qwen36_moe import Isaac05Qwen36Model as _Isaac05Qwen36Model +from .rtc import ResolvedRTCActionPrefix as _ResolvedRTCActionPrefix +from .tensor_stream import ALL_TYPES, TensorStream +from .tensor_stream_mrope import ( + compute_mrope_pos_tensor_common as _compute_mrope_pos_tensor_common, +) +from .tensor_stream_utils import compute_mrope_pos_tensor as _compute_mrope_pos_tensor + +# Transformers 5.5.4 copies only direct relative imports for local model paths. +# Keep these anchors so local and Hub loading receive the same transitive runtime files. +_REMOTE_CODE_DEPENDENCIES = ( + _DiTActionExpertHead, + _Isaac05Qwen36Model, + _ResolvedRTCActionPrefix, + _compute_mrope_pos_tensor_common, + _compute_mrope_pos_tensor, +) + +_QUALIFIED_TRANSFORMERS_VERSION = "5.5.4" +_QUALIFIED_CUDA_VERSION = "12.8" +_QUALIFIED_CUDA_CAPABILITY = (9, 0) + + +def require_qualified_runtime(device: str | torch.device) -> None: + """Fail before allocation outside the artifact-qualified inference runtime.""" + if transformers.__version__ != _QUALIFIED_TRANSFORMERS_VERSION: + raise RuntimeError( + f"Isaac-0.5 requires Transformers {_QUALIFIED_TRANSFORMERS_VERSION}, " + f"got {transformers.__version__}." + ) + resolved_device = torch.device(device) + if resolved_device.type != "cuda": + return + if torch.version.cuda != _QUALIFIED_CUDA_VERSION: + installed_cuda = torch.version.cuda or "unavailable" + raise RuntimeError( + f"Isaac-0.5 CUDA inference requires CUDA {_QUALIFIED_CUDA_VERSION}, got {installed_cuda}." + ) + capability = torch.cuda.get_device_capability(resolved_device) + if capability != _QUALIFIED_CUDA_CAPABILITY: + raise RuntimeError( + "Isaac-0.5 CUDA inference requires Hopper SM90, " + f"got compute capability {capability[0]}.{capability[1]}." + ) + device_name = torch.cuda.get_device_name(resolved_device) + if not device_name.startswith("NVIDIA H100"): + raise RuntimeError( + f"Isaac-0.5 CUDA inference requires NVIDIA H100, got {device_name!r}." + ) + + +def _device_from_map(device_map: Any) -> str | torch.device: + if isinstance(device_map, dict): + devices = set(device_map.values()) + if len(devices) != 1: + raise RuntimeError("Isaac-0.5 requires one model device.") + device_map = devices.pop() + if isinstance(device_map, int): + return f"cuda:{device_map}" + if device_map in {"auto", "balanced", "balanced_low_0", "sequential"}: + return "cuda" if torch.cuda.is_available() else "cpu" + return device_map or "cpu" + + +def coerce_tensor_stream_modality_types(tensor_stream: TensorStream) -> TensorStream: + """Map foreign TensorStream enums onto this dynamic module namespace.""" + modality_types = { + int(modality_type.value): modality_type for modality_type in ALL_TYPES + } + try: + for stream in tensor_stream.streams: + stream.priority = [ + modality_types[int(item.value)] for item in stream.priority + ] + for event in stream.events: + event.type = modality_types[int(event.type.value)] + except (AttributeError, KeyError) as exc: + raise ValueError("TensorStream contains an unsupported modality type.") from exc + return tensor_stream + + +class Isaac05ForConditionalGeneration( + Isaac05Qwen36VLAForActionGeneration, GenerationMixin +): + """ISAAC05 Qwen3.6 null-MoE VLA with standard causal-LM and action APIs.""" + + config_class = Isaac05Config + + @classmethod + def from_pretrained( + cls, + pretrained_model_name_or_path: Any, + *model_args: Any, + **kwargs: Any, + ) -> Isaac05ForConditionalGeneration: + require_qualified_runtime(_device_from_map(kwargs.get("device_map"))) + return super().from_pretrained( + pretrained_model_name_or_path, *model_args, **kwargs + ) + + def sample_action(self, tensor_stream: TensorStream, **kwargs: Any) -> torch.Tensor: + return super().sample_action( + coerce_tensor_stream_modality_types(tensor_stream), **kwargs + ) + + def get_output_embeddings(self) -> torch.nn.Module: + return self.lm_head + + def set_output_embeddings(self, value: torch.nn.Module) -> None: + self.lm_head = value + + def forward( + self, + input_ids: torch.LongTensor | None = None, + attention_mask: torch.Tensor | None = None, + position_ids: torch.LongTensor | None = None, + past_key_values: Cache | None = None, + inputs_embeds: torch.FloatTensor | None = None, + labels: torch.LongTensor | None = None, + pixel_values: torch.Tensor | None = None, + pixel_values_videos: torch.FloatTensor | None = None, + image_grid_thw: torch.LongTensor | None = None, + video_grid_thw: torch.LongTensor | None = None, + mm_token_type_ids: torch.IntTensor | None = None, + tensor_stream: TensorStream | None = None, + logits_to_keep: int | torch.Tensor = 0, + use_cache: bool | None = None, + output_hidden_states: bool | None = None, + **kwargs: Any, + ) -> CausalLMOutputWithPast: + if tensor_stream is not None: + if any( + value is not None + for value in ( + input_ids, + inputs_embeds, + pixel_values, + pixel_values_videos, + ) + ): + raise ValueError( + "tensor_stream cannot be combined with token, embedding, image, or video inputs." + ) + outputs = self.model(coerce_tensor_stream_modality_types(tensor_stream)) + else: + outputs = Qwen3_5MoeModel.forward( + self.model, + input_ids=input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + pixel_values=pixel_values, + pixel_values_videos=pixel_values_videos, + image_grid_thw=image_grid_thw, + video_grid_thw=video_grid_thw, + mm_token_type_ids=mm_token_type_ids, + use_cache=use_cache, + output_hidden_states=output_hidden_states, + **kwargs, + ) + + hidden_states = outputs[0].to(dtype=self.lm_head.weight.dtype) + slice_indices = ( + slice(-logits_to_keep, None) + if isinstance(logits_to_keep, int) + else logits_to_keep + ) + logits = self.lm_head(hidden_states[:, slice_indices, :]) + + loss = None + if labels is not None: + if labels.shape[-1] != logits.shape[-2]: + raise ValueError( + f"labels length {labels.shape[-1]} does not match logits length {logits.shape[-2]}." + ) + shift_logits = logits[:, :-1].float().contiguous() + shift_labels = labels[:, 1:].contiguous() + loss = F.cross_entropy( + shift_logits.view(-1, shift_logits.shape[-1]), + shift_labels.view(-1), + ignore_index=-100, + ) + + return CausalLMOutputWithPast( + loss=loss, + logits=logits, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + ) + + def prepare_inputs_for_generation( + self, + input_ids: torch.LongTensor, + past_key_values: Cache | None = None, + attention_mask: torch.Tensor | None = None, + inputs_embeds: torch.FloatTensor | None = None, + position_ids: torch.LongTensor | None = None, + use_cache: bool = True, + pixel_values: torch.Tensor | None = None, + pixel_values_videos: torch.FloatTensor | None = None, + image_grid_thw: torch.LongTensor | None = None, + video_grid_thw: torch.LongTensor | None = None, + **kwargs: Any, + ) -> dict[str, Any]: + model_inputs = GenerationMixin.prepare_inputs_for_generation( + self, + input_ids, + past_key_values=past_key_values, + attention_mask=attention_mask, + inputs_embeds=inputs_embeds, + position_ids=position_ids, + use_cache=use_cache, + pixel_values=pixel_values, + pixel_values_videos=pixel_values_videos, + image_grid_thw=image_grid_thw, + video_grid_thw=video_grid_thw, + **kwargs, + ) + if past_key_values is not None and use_cache: + model_inputs["pixel_values"] = None + model_inputs["pixel_values_videos"] = None + return model_inputs diff --git a/modeling_isaac05_vla.py b/modeling_isaac05_vla.py new file mode 100644 index 0000000000000000000000000000000000000000..b1ef5eab7ca77151312eb4d8b13b3351c5db533b --- /dev/null +++ b/modeling_isaac05_vla.py @@ -0,0 +1,91 @@ +"""Config-driven ISAAC05 Qwen3.6 null-MoE composition for the existing ISAAC VLA shell.""" + +from __future__ import annotations + +from typing import Any + +from torch import nn +from transformers.models.qwen3_5_moe.modeling_qwen3_5_moe import Qwen3_5MoePreTrainedModel + +from .modeling_qwen35_vla import ( + Qwen35VLAForActionGeneration, + Qwen35VLAModel, + build_action_expert_head, + build_vector_encoder, +) +from .modeling_qwen36_moe import ( + Isaac05Qwen36Model, + Isaac05Qwen36MoeConfig, + reset_isaac05_qwen36_nonpersistent_buffers, +) + + +class Isaac05Qwen36VLAConfig(Isaac05Qwen36MoeConfig): + """ISAAC05 backbone config with the two already-reviewed PR #3154 attachments.""" + + def __init__( + self, + *, + vector_max_states: int, + action_expert: dict[str, Any], + **kwargs: Any, + ) -> None: + kwargs["tie_word_embeddings"] = False + super().__init__(**kwargs) + self.tie_word_embeddings = False + self.vector_max_states = int(vector_max_states) + self.action_expert = dict(action_expert) + + +class Isaac05Qwen36VLAModel(Isaac05Qwen36Model): + """The existing VLA modality shell around the null-aware ISAAC05 backbone.""" + + config_class = Isaac05Qwen36VLAConfig + + def __init__(self, config: Isaac05Qwen36VLAConfig) -> None: + super().__init__(config) + hidden = int(config.text_config.hidden_size) + self.vector_embedding = build_vector_encoder(config.vector_max_states, hidden) + self.action_expert = build_action_expert_head(config.action_expert, vlm_dim=hidden) + + # These methods are the reviewed PR #3154 VLA shell. Assigning the method + # descriptors keeps one implementation of rendering, mRoPE, masking, and + # final-hidden semantics while changing only the backbone base class. + _embed_text = Qwen35VLAModel._embed_text + _embed_vector = Qwen35VLAModel._embed_vector + _embed_vision = Qwen35VLAModel._embed_vision + embed_stream = Qwen35VLAModel.embed_stream + forward = Qwen35VLAModel.forward + + +class Isaac05Qwen36VLAForActionGeneration(Qwen3_5MoePreTrainedModel): + """ISAAC05 backbone plus the unchanged vector encoder, lm head, and MolmoAct2 DiT.""" + + config_class = Isaac05Qwen36VLAConfig + _no_split_modules = ["Isaac05Qwen36DecoderLayer", "Qwen3_5MoeVisionBlock", "ActionExpertBlock"] + + def __init__(self, config: Isaac05Qwen36VLAConfig) -> None: + super().__init__(config) + self.model = Isaac05Qwen36VLAModel(config) + self.lm_head = nn.Linear( + config.text_config.hidden_size, + config.text_config.vocab_size, + bias=False, + ) + self.post_init() + + def tie_weights(self, *args: Any, **kwargs: Any) -> None: + super().tie_weights(*args, **kwargs) + reset_isaac05_qwen36_nonpersistent_buffers(self) + + get_input_embeddings = Qwen35VLAForActionGeneration.get_input_embeddings + action_expert = Qwen35VLAForActionGeneration.action_expert + sample_action = Qwen35VLAForActionGeneration.sample_action + train_forward = Qwen35VLAForActionGeneration.train_forward + + +__all__ = [ + "Isaac05Qwen36VLAConfig", + "Isaac05Qwen36VLAForActionGeneration", + "Isaac05Qwen36VLAModel", +] diff --git a/modeling_qwen35_vla.py b/modeling_qwen35_vla.py new file mode 100644 index 0000000000000000000000000000000000000000..a7903da15163750d39db54078ff0790d14237d69 --- /dev/null +++ b/modeling_qwen35_vla.py @@ -0,0 +1,1609 @@ +"""HuggingFace modeling def for the Isaac05 Qwen3.5-VL flow-matching VLA. + +This wraps the **native** transformers ``Qwen3_5Model`` (visual + language_model) by composition and +adds the two VLA blocks that the base Qwen3.5-VL export drops: + + * ``model.vector_embedding.*`` — proprio encoder ``Linear(128->2048) -> SiLU -> Linear(2048->2048)`` + * ``model.action_expert.*`` — DiT flow-matching expert (clean-at-1), initialized from + the upstream MolmoAct2 weights and ported isaac05-free from + ``isaac05/public/huggingface/modular_isaac.py`` (which ported it from isaac05 ``DiTActionExpert``). + +It loads the output of ``isaac05/scripts/core/initializations/convert_isaac05_qwen35_to_hf.py`` whose keys +are exactly: ``lm_head.weight``, ``model.language_model.*``, ``model.visual.*``, +``model.vector_embedding.{0,2}.weight``, ``model.action_expert.action_expert.*``. + +``sample_action(tensor_stream)`` mirrors isaac05 ``PerceptronTransformer.sample_action``: +run the VLM forward once over the rendered ``TensorStream``, take the post-final-norm last-layer +activations with the next-token-prediction truncation ``[:, :-1]`` (so ``L_model = stream_len - 1``), +mask out the action-marker positions so the expert conditions only on pre-action context +(text + image + proprio), and integrate the flow expert (10-step Euler, clean-at-1) into a +``[B, H, action_dim]`` chunk in normalized action space. + +isaac05 ``precompute_cos_sin_3d`` is built to match HF ``apply_interleaved_mrope`` +(``isaac05/core/models/rope.py``), so feeding isaac05 integer positions +(``compute_mrope_pos_tensor`` -> ``[3, B, L]``) to the native decoder reproduces the training-time +rotary phases. + +The TensorStream layout/mrope/mask utilities come from ``isaac05.core`` because the +``InferenceStreamBuilder`` emits core-typed streams; reusing the exact isaac05 functions keeps the +native decoder and vision tower as the only numerical variables vs the training-time path. +""" + +from __future__ import annotations + +import math +from collections import defaultdict +from collections.abc import Sequence +from dataclasses import dataclass +from numbers import Real +from typing import Any, Literal + +import torch +import torch.nn as nn +import torch.nn.functional as F +from transformers.modeling_outputs import BaseModelOutputWithPast +from transformers.models.qwen3_5.configuration_qwen3_5 import Qwen3_5Config +from transformers.models.qwen3_5.modeling_qwen3_5 import Qwen3_5Model, Qwen3_5PreTrainedModel, Qwen3_5RMSNorm + +from .tensor_stream import TensorStream, TextType, VisionType, group_streams +from .tensor_stream_utils import ( + build_action_context_mask, + compute_mrope_pos_tensor, + first_event_start_indices, + modality_mask, + reconstruct_tensor_stream_from_compact_dict, +) +from .rtc import ( + DIT_ACTION_EXPERT_CONFIG_SCHEMA_VERSION, + DIT_ACTION_EXPERT_CONFIG_V1_FIELDS, + ActionExpertStepModulation, + integrate_rtc_euler, + materialize_rtc_action_prefix, + prepare_rtc_conditioning, + project_rtc_modulation, + resolve_rtc_action_prefix, +) + +# The continuous-action marker type that delimits where the action chunk begins. Isaac05 sets +# FLOW_ACTION_TEXT_TYPE = TextType.action_c (value 15); the expert never attends to action tokens. +FLOW_ACTION_TEXT_TYPE = TextType.action_c + + +def normalize_vector_tokens(vector_tokens: torch.Tensor, max_states: int | None) -> torch.Tensor: + """Normalize vector tokens without silently truncating policy state.""" + if vector_tokens.dim() < 1: + raise ValueError("vector tokens must have at least one dimension") + if vector_tokens.dim() == 1: + vector_tokens = vector_tokens.unsqueeze(0) + elif vector_tokens.dim() > 2: + vector_tokens = vector_tokens.reshape(-1, vector_tokens.shape[-1]) + if max_states is None: + return vector_tokens + if max_states < 1: + raise ValueError("max_states must be >= 1") + if vector_tokens.shape[-1] < max_states: + return F.pad(vector_tokens, (0, max_states - vector_tokens.shape[-1])) + if vector_tokens.shape[-1] > max_states: + raise ValueError( + f"vector width {vector_tokens.shape[-1]} exceeds the configured model budget " + f"vector_max_states={max_states}; silent truncation is not allowed." + ) + return vector_tokens + + +def expand_single_frame_patches_to_temporal_tubelets( + hidden_states: torch.Tensor, + *, + in_channels: int, + patch_size: int, + temporal_patch_size: int, +) -> torch.Tensor: + """Expand ``[N, C*P*P]`` per-frame patch rows to Qwen-temporal ``[N, C*T*P*P]`` rows. + + Vendored verbatim from ``isaac05/core/models/perceptron/vision/qwen35.py``. The isaac05 + rendering emits per-frame ``C*P*P`` patches, but the native ``Qwen3_5VisionPatchEmbed`` expects + pre-tiled ``C*T*P*P`` rows (it does ``.view(-1, C, T, P, P)``). This tiles along the temporal axis + so the same packed patches feed the native Conv3d. + """ + if hidden_states.ndim != 2: + raise ValueError(f"hidden_states must be rank-2 [N, D], got shape={tuple(hidden_states.shape)}") + patch_dim = int(in_channels * patch_size * patch_size) + if hidden_states.shape[-1] != patch_dim: + raise ValueError( + f"single-frame patch rows must have width C*P*P; expected {patch_dim}, got {hidden_states.shape[-1]}" + ) + return ( + hidden_states.view(-1, in_channels, 1, patch_size, patch_size) + .expand(-1, -1, temporal_patch_size, -1, -1) + .reshape(-1, in_channels * temporal_patch_size * patch_size * patch_size) + ) + + +def build_vector_encoder(vector_max_states: int, hidden: int) -> nn.Module: + """Proprio encoder mirroring isaac05 ``build_vector_encoder`` (2-Linear SiLU MLP, no bias). + + Loads ``model.vector_embedding.0.weight`` ``[hidden, vector_max_states]`` and + ``model.vector_embedding.2.weight`` ``[hidden, hidden]``. + """ + return nn.Sequential( + nn.Linear(vector_max_states, hidden, bias=False), + nn.SiLU(), + nn.Linear(hidden, hidden, bias=False), + ) + + +@torch.no_grad() +def apply_qwen35_offset_norm_correction(language_model: nn.Module) -> int: + """Convert isaac05 (standard) RMSNorm weights to the native Qwen3.5 unit-offset convention. + + Native ``Qwen3_5RMSNorm`` computes ``x_normed * (1 + weight)`` (weight init = 0), whereas isaac05 + trains a standard ``Qwen2RMSNorm`` (``x_normed * weight``, weight ~ 1). ``convert_isaac05_qwen35_to_hf`` + writes the isaac05 weights verbatim, so native would apply ``(1 + w)`` instead of ``w`` — a per-channel + direction change that compounds across layers into a garbage final state. Subtracting + 1.0 makes native compute ``(1 + (w - 1)) = w``. Only ``Qwen3_5RMSNorm`` modules are touched — the gated + ``Qwen3_5RMSNormGated`` (a different class, standard convention) and the vision LayerNorms are untouched. + Idempotency is the caller's responsibility (apply exactly once, right after loading raw isaac05 weights). + """ + corrected = 0 + for module in language_model.modules(): + if isinstance(module, Qwen3_5RMSNorm): + module.weight.sub_(1.0) + corrected += 1 + return corrected + + +# === DiT action expert (vendored upstream implementation) === +@dataclass +class DiTActionExpertConfig: + """Plain-dataclass mirror of MolmoAct2's action-expert config (defaults = config.json).""" + + hidden_size: int = 768 + num_layers: int = 36 + num_heads: int = 8 + max_action_dim: int = 32 + max_action_horizon: int = 30 + mlp_ratio: float = 4.0 + ffn_multiple_of: int = 256 + timestep_embed_dim: int = 256 + attn_dropout: float = 0.0 + dropout: float = 0.0 + qk_norm: bool = True + qk_norm_eps: float = 1e-6 + rope: bool = True + context_layer_norm: bool = True + causal_attn: bool = False + + +@dataclass +class DiTActionExpertArgs: + """Configuration for the sole Isaac05 continuous-action DiT expert. + + Architecture defaults mirror the released MolmoAct2 ActionExpert. Isaac05 uses a + catalog-wide action width and can extend the horizon without changing checkpoint + parameter shapes. The objective is always MolmoAct2's clean-at-1 flow convention. + """ + + action_dim: int = 64 + action_horizon: int = 30 + num_layers: int = 36 + hidden_dim: int = 768 + num_heads: int = 8 + mlp_ratio: float = 4.0 + num_inference_steps: int = 10 + timestep_sampling_alpha: float = 1.5 + timestep_sampling_beta: float = 1.0 + timestep_sampling_scale: float = 0.999 + timestep_sampling_offset: float = 0.001 + train_samples_per_chunk: int = 1 + timestep_embed_dim: int = 256 + rtc_max_delay_steps: int = 0 + rtc_probability: float | None = None + rtc_delay_sampling: Literal["uniform", "exponential", "poisson"] = "uniform" + rtc_poisson_mean: float = 5.0 + mask_padded_action_rows: bool = False + # action_dim=64 spans the catalog (max 54), so no chunk overflows. Keep the + # loud-fail safety net (no silent drops). The upstream pretrained 32 dims + # load into the first 32; dims 32..63 are fresh-init and learned during adaptation. + drop_action_dim_overflow: bool = False + ffn_multiple_of: int = 256 + qk_norm: bool = True + qk_norm_eps: float = 1e-6 + rope: bool = True + context_layer_norm: bool = True + causal_attn: bool = False + # WS4: batch the K flow samples in one pass by folding K into + # cross-attention QUERY heads (GQA), keeping the VLM context K/V at batch B (not K*B). Removes the + # serial per-sample loop. K=1 is unchanged either way. Default True (validated in the 4B VLA run). + k_batched_cross_attn: bool = True + # "flash_gqa" (default): FA3 GQA over FA3-varlen ("CrossVarLen") — context K/V stays flat with K (the memory + # win), the production path; bf16/fp16 only, so it transparently falls back to sdpa_gqa for fp32/CPU (see + # ActionExpertCrossAttention.forward). "sdpa_gqa": SDPA(enable_gqa) — mask-correct fp32/CPU reference that + # materializes K/V (memory grows with K). Both are proven equal to the serial loop (see the k-batched tests). + k_batched_cross_attn_backend: str = "flash_gqa" + + def __post_init__(self) -> None: + integer_fields = ( + ("action_dim", self.action_dim), + ("action_horizon", self.action_horizon), + ("num_layers", self.num_layers), + ("hidden_dim", self.hidden_dim), + ("num_heads", self.num_heads), + ("num_inference_steps", self.num_inference_steps), + ("train_samples_per_chunk", self.train_samples_per_chunk), + ("timestep_embed_dim", self.timestep_embed_dim), + ("rtc_max_delay_steps", self.rtc_max_delay_steps), + ("ffn_multiple_of", self.ffn_multiple_of), + ) + for field_name, value in integer_fields: + if not isinstance(value, int) or isinstance(value, bool): + raise ValueError(f"{field_name} must be an int.") + boolean_fields = ( + ("mask_padded_action_rows", self.mask_padded_action_rows), + ("drop_action_dim_overflow", self.drop_action_dim_overflow), + ("qk_norm", self.qk_norm), + ("rope", self.rope), + ("context_layer_norm", self.context_layer_norm), + ("causal_attn", self.causal_attn), + ("k_batched_cross_attn", self.k_batched_cross_attn), + ) + for field_name, value in boolean_fields: + if not isinstance(value, bool): + raise ValueError(f"{field_name} must be a bool.") + numeric_fields = ( + ("mlp_ratio", self.mlp_ratio), + ("qk_norm_eps", self.qk_norm_eps), + ("timestep_sampling_alpha", self.timestep_sampling_alpha), + ("timestep_sampling_beta", self.timestep_sampling_beta), + ("timestep_sampling_scale", self.timestep_sampling_scale), + ("timestep_sampling_offset", self.timestep_sampling_offset), + ("rtc_poisson_mean", self.rtc_poisson_mean), + ) + for field_name, value in numeric_fields: + if not isinstance(value, Real) or isinstance(value, bool) or not math.isfinite(float(value)): + raise ValueError(f"{field_name} must be a finite number.") + if self.rtc_probability is not None and ( + not isinstance(self.rtc_probability, Real) + or isinstance(self.rtc_probability, bool) + or not math.isfinite(float(self.rtc_probability)) + ): + raise ValueError("rtc_probability must be None or a finite number in [0, 1].") + if self.hidden_dim < 1 or self.num_heads < 1 or self.timestep_embed_dim < 1: + raise ValueError("hidden_dim, num_heads, and timestep_embed_dim must be >= 1.") + if self.hidden_dim % self.num_heads != 0: + raise ValueError(f"hidden_dim ({self.hidden_dim}) must be divisible by num_heads ({self.num_heads}).") + if self.action_dim < 1 or self.action_horizon < 1: + raise ValueError("action_dim and action_horizon must be >= 1.") + if self.num_layers < 1 or self.num_inference_steps < 1: + raise ValueError("num_layers and num_inference_steps must be >= 1.") + if self.timestep_sampling_alpha <= 0 or self.timestep_sampling_beta <= 0: + raise ValueError("Beta distribution parameters must be positive.") + if self.mlp_ratio <= 0 or self.qk_norm_eps <= 0: + raise ValueError("mlp_ratio and qk_norm_eps must be positive.") + if self.timestep_sampling_scale <= 0 or self.timestep_sampling_offset < 0: + raise ValueError("timestep sampling scale must be positive and offset must be non-negative.") + if self.timestep_sampling_offset + self.timestep_sampling_scale > 1: + raise ValueError("timestep_sampling_offset + timestep_sampling_scale must be <= 1.") + if self.train_samples_per_chunk < 1: + raise ValueError("train_samples_per_chunk must be >= 1.") + if self.rtc_max_delay_steps < 0: + raise ValueError("rtc_max_delay_steps must be >= 0.") + if self.rtc_probability is not None and not 0.0 <= self.rtc_probability <= 1.0: + raise ValueError("rtc_probability must be None or in [0, 1].") + if self.rtc_max_delay_steps == 0 and self.rtc_probability not in (None, 0.0): + raise ValueError("rtc_probability > 0 requires rtc_max_delay_steps > 0.") + if self.rtc_delay_sampling not in ("uniform", "exponential", "poisson"): + raise ValueError("rtc_delay_sampling must be 'uniform', 'exponential', or 'poisson'.") + if not math.isfinite(self.rtc_poisson_mean) or self.rtc_poisson_mean <= 0: + raise ValueError("rtc_poisson_mean must be finite and > 0.") + if self.ffn_multiple_of < 1: + raise ValueError("ffn_multiple_of must be >= 1.") + if self.k_batched_cross_attn_backend not in ("flash_gqa", "sdpa_gqa"): + raise ValueError("k_batched_cross_attn_backend must be 'flash_gqa' or 'sdpa_gqa'.") + + def to_action_expert_config(self) -> DiTActionExpertConfig: + return DiTActionExpertConfig( + hidden_size=self.hidden_dim, + num_layers=self.num_layers, + num_heads=self.num_heads, + max_action_dim=self.action_dim, + max_action_horizon=self.action_horizon, + mlp_ratio=self.mlp_ratio, + ffn_multiple_of=self.ffn_multiple_of, + timestep_embed_dim=self.timestep_embed_dim, + attn_dropout=0.0, + dropout=0.0, + qk_norm=self.qk_norm, + qk_norm_eps=self.qk_norm_eps, + rope=self.rope, + context_layer_norm=self.context_layer_norm, + causal_attn=self.causal_attn, + ) + + +def _broadcast_action_condition(condition: torch.Tensor, actions: torch.Tensor) -> torch.Tensor: + if condition.dim() == actions.dim() - 1: + return condition.unsqueeze(1) + if condition.dim() == actions.dim(): + return condition + raise ValueError( + f"Action conditioning must be [B,D] or [B,H,D]; got {tuple(condition.shape)} " + f"for actions {tuple(actions.shape)}." + ) + + +def _modulate(x: torch.Tensor, shift: torch.Tensor, scale: torch.Tensor) -> torch.Tensor: + shift = _broadcast_action_condition(shift, x) + scale = _broadcast_action_condition(scale, x) + return x * (1 + scale) + shift + + +def _round_up_multiple(value: int, multiple_of: int) -> int: + if multiple_of <= 0: + return value + return int(math.ceil(value / multiple_of) * multiple_of) + + +def _init_linear(linear: nn.Linear, *, zero: bool = False, scale: float = 1.0) -> None: + if zero: + nn.init.zeros_(linear.weight) + else: + nn.init.xavier_uniform_(linear.weight) + if scale != 1.0: + with torch.no_grad(): + linear.weight.mul_(scale) + if linear.bias is not None: + nn.init.zeros_(linear.bias) + + +@dataclass(eq=False) +class ActionExpertContext: + kv_contexts: Sequence[tuple[torch.Tensor, torch.Tensor]] + cross_mask: torch.Tensor | None + self_mask: torch.Tensor | None + valid_action: torch.Tensor | None + rope_cache: tuple[torch.Tensor, torch.Tensor] | None = None + + +class ActionExpertRMSNorm(nn.Module): + def __init__( + self, + size: int, + *, + eps: float = 1e-6, + elementwise_affine: bool = False, + device=None, + ) -> None: + super().__init__() + self.size = size + self.eps = eps + if elementwise_affine: + self.weight = nn.Parameter(torch.ones(size, device=device)) + else: + self.register_parameter("weight", None) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + with torch.autocast(enabled=False, device_type=x.device.type): + dtype = x.dtype + x_float = x.to(torch.float32) + variance = x_float.pow(2).mean(dim=-1, keepdim=True) + out = x_float * torch.rsqrt(variance + self.eps) + out = out.to(dtype) + if self.weight is not None: + out = out * self.weight + return out + + def reset_parameters(self) -> None: + if self.weight is not None: + nn.init.ones_(self.weight) + + +class ActionExpertRotaryEmbedding(nn.Module): + def __init__(self, head_dim: int, base: float = 10000.0) -> None: + super().__init__() + if head_dim % 2 != 0: + raise ValueError("RoPE requires an even head_dim.") + self.head_dim = head_dim + self.base = base + + def build_cache( + self, + *, + seq_len: int, + device: torch.device, + dtype: torch.dtype, + ) -> tuple[torch.Tensor, torch.Tensor]: + half_dim = self.head_dim // 2 + inv_freq = 1.0 / ( + self.base ** (torch.arange(0, half_dim, device=device, dtype=torch.float32) / max(half_dim, 1)) + ) + positions = torch.arange(seq_len, device=device, dtype=torch.float32) + freqs = torch.outer(positions, inv_freq) + cos = freqs.cos().to(dtype=dtype).view(1, 1, seq_len, half_dim) + sin = freqs.sin().to(dtype=dtype).view(1, 1, seq_len, half_dim) + return cos, sin + + def forward( + self, + q: torch.Tensor, + k: torch.Tensor, + *, + rope_cache: tuple[torch.Tensor, torch.Tensor] | None = None, + ) -> tuple[torch.Tensor, torch.Tensor]: + if rope_cache is None: + rope_cache = self.build_cache(seq_len=q.shape[-2], device=q.device, dtype=q.dtype) + cos, sin = rope_cache + half_dim = self.head_dim // 2 + + def _apply(x: torch.Tensor) -> torch.Tensor: + x1, x2 = x[..., :half_dim], x[..., half_dim:] + return torch.cat([x1 * cos - x2 * sin, x1 * sin + x2 * cos], dim=-1) + + return _apply(q), _apply(k) + + +class ActionExpertSelfAttention(nn.Module): + def __init__( + self, + hidden_size: int, + num_heads: int, + *, + attn_dropout: float = 0.0, + proj_dropout: float = 0.0, + qk_norm: bool = True, + qk_norm_eps: float = 1e-6, + use_rope: bool = True, + ) -> None: + super().__init__() + if hidden_size % num_heads != 0: + raise ValueError("hidden_size must be divisible by num_heads") + self.hidden_size = hidden_size + self.num_heads = num_heads + self.head_dim = hidden_size // num_heads + self.attn_dropout = attn_dropout + self.q_norm = ActionExpertRMSNorm(self.head_dim, eps=qk_norm_eps) if qk_norm else None + self.k_norm = ActionExpertRMSNorm(self.head_dim, eps=qk_norm_eps) if qk_norm else None + self.rope = ActionExpertRotaryEmbedding(self.head_dim) if use_rope else None + self.qkv = nn.Linear(hidden_size, hidden_size * 3) + self.out_proj = nn.Linear(hidden_size, hidden_size) + self.out_drop = nn.Dropout(proj_dropout) + + def _apply_qk_norm(self, q: torch.Tensor, k: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor]: + if self.q_norm is None or self.k_norm is None: + return q, k + return self.q_norm(q), self.k_norm(k) + + def _attention( + self, + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, + *, + attn_mask: torch.Tensor | None = None, + is_causal: bool = False, + ) -> torch.Tensor: + dropout_p = self.attn_dropout if self.training else 0.0 + out = F.scaled_dot_product_attention( + q.transpose(1, 2), + k.transpose(1, 2), + v.transpose(1, 2), + attn_mask=attn_mask, + dropout_p=dropout_p, + is_causal=is_causal, + ) + return out.transpose(1, 2).contiguous() + + def forward( + self, + x: torch.Tensor, + *, + attn_mask: torch.Tensor | None = None, + is_causal: bool = False, + rope_cache: tuple[torch.Tensor, torch.Tensor] | None = None, + ) -> torch.Tensor: + bsz, seq_len, _ = x.shape + qkv = self.qkv(x).view(bsz, seq_len, 3, self.num_heads, self.head_dim) + q = qkv[:, :, 0].transpose(1, 2) + k = qkv[:, :, 1].transpose(1, 2) + v = qkv[:, :, 2].contiguous() + q, k = self._apply_qk_norm(q, k) + if self.rope is not None: + q, k = self.rope(q, k, rope_cache=rope_cache) + q = q.transpose(1, 2) + k = k.transpose(1, 2) + out = self._attention(q, k, v, attn_mask=attn_mask, is_causal=is_causal) + out = out.reshape(bsz, seq_len, self.hidden_size) + return self.out_drop(self.out_proj(out)) + + +class ActionExpertCrossAttention(nn.Module): + def __init__( + self, + hidden_size: int, + num_heads: int, + *, + attn_dropout: float = 0.0, + proj_dropout: float = 0.0, + qk_norm: bool = True, + qk_norm_eps: float = 1e-6, + ) -> None: + super().__init__() + if hidden_size % num_heads != 0: + raise ValueError("hidden_size must be divisible by num_heads") + self.hidden_size = hidden_size + self.num_heads = num_heads + self.head_dim = hidden_size // num_heads + self.attn_dropout = attn_dropout + self.q_norm = ActionExpertRMSNorm(self.head_dim, eps=qk_norm_eps) if qk_norm else None + self.k_norm = ActionExpertRMSNorm(self.head_dim, eps=qk_norm_eps) if qk_norm else None + self.q_proj = nn.Linear(hidden_size, hidden_size) + self.out_proj = nn.Linear(hidden_size, hidden_size) + self.out_drop = nn.Dropout(proj_dropout) + + def _as_heads(self, x: torch.Tensor) -> torch.Tensor: + if x.dim() == 4: + if x.shape[2] == self.num_heads: + return x + if x.shape[1] == self.num_heads: + return x.transpose(1, 2).contiguous() + raise ValueError(f"Unexpected cross-attention KV shape {tuple(x.shape)}") + if x.dim() != 3: + raise ValueError(f"Expected 3D/4D cross-attention KV, got {tuple(x.shape)}") + bsz, seq_len, _ = x.shape + return x.view(bsz, seq_len, self.num_heads, self.head_dim) + + def _attention( + self, + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, + *, + attn_mask: torch.Tensor | None = None, + ) -> torch.Tensor: + dropout_p = self.attn_dropout if self.training else 0.0 + out = F.scaled_dot_product_attention( + q.transpose(1, 2), + k.transpose(1, 2), + v.transpose(1, 2), + attn_mask=attn_mask, + dropout_p=dropout_p, + is_causal=False, + ) + return out.transpose(1, 2).contiguous() + + def forward( + self, + x: torch.Tensor, + *, + kv_k: torch.Tensor, + kv_v: torch.Tensor, + attn_mask: torch.Tensor | None = None, + ) -> torch.Tensor: + bsz, tgt_len, _ = x.shape + q = self.q_proj(x).view(bsz, tgt_len, self.num_heads, self.head_dim) + k = self._as_heads(kv_k) + v = self._as_heads(kv_v) + q = q.transpose(1, 2) + k = k.transpose(1, 2) + if self.q_norm is not None: + q = self.q_norm(q) + q = q.transpose(1, 2) + k = k.transpose(1, 2) + out = self._attention(q, k, v, attn_mask=attn_mask) + out = out.reshape(bsz, tgt_len, self.hidden_size) + return self.out_drop(self.out_proj(out)) + + +class ActionExpertMLP(nn.Module): + def __init__( + self, + hidden_size: int, + *, + mlp_ratio: float, + multiple_of: int, + dropout: float = 0.0, + ) -> None: + super().__init__() + inner_dim = _round_up_multiple(int(hidden_size * mlp_ratio), multiple_of) + self.up_proj = nn.Linear(hidden_size, inner_dim) + self.gate_proj = nn.Linear(hidden_size, inner_dim) + self.down_proj = nn.Linear(inner_dim, hidden_size) + self.dropout = nn.Dropout(dropout) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = F.silu(self.gate_proj(x)) * self.up_proj(x) + x = self.dropout(x) + x = self.down_proj(x) + return self.dropout(x) + + +class ActionExpertModulation(nn.Module): + def __init__(self, hidden_size: int, num_chunks: int) -> None: + super().__init__() + self.act = nn.SiLU() + self.linear = nn.Linear(hidden_size, num_chunks * hidden_size) + + def forward(self, conditioning: torch.Tensor) -> torch.Tensor: + return self.linear(self.act(conditioning)) + + +class ActionExpertBlock(nn.Module): + def __init__( + self, + hidden_size: int, + num_heads: int, + *, + mlp_ratio: float, + ffn_multiple_of: int, + attn_dropout: float = 0.0, + dropout: float = 0.0, + qk_norm: bool = True, + qk_norm_eps: float = 1e-6, + rope: bool = True, + ) -> None: + super().__init__() + self.self_norm = ActionExpertRMSNorm(hidden_size, eps=1e-6) + self.cross_norm = ActionExpertRMSNorm(hidden_size, eps=1e-6) + self.ff_norm = ActionExpertRMSNorm(hidden_size, eps=1e-6) + self.self_attn = ActionExpertSelfAttention( + hidden_size, + num_heads, + attn_dropout=attn_dropout, + proj_dropout=dropout, + qk_norm=qk_norm, + qk_norm_eps=qk_norm_eps, + use_rope=rope, + ) + self.cross_attn = ActionExpertCrossAttention( + hidden_size, + num_heads, + attn_dropout=attn_dropout, + proj_dropout=dropout, + qk_norm=qk_norm, + qk_norm_eps=qk_norm_eps, + ) + self.mlp = ActionExpertMLP( + hidden_size, + mlp_ratio=mlp_ratio, + multiple_of=ffn_multiple_of, + dropout=dropout, + ) + self.modulation = ActionExpertModulation(hidden_size, 9) + + def forward( + self, + x: torch.Tensor, + conditioning: torch.Tensor, + *, + cross_kv: tuple[torch.Tensor, torch.Tensor], + self_attn_mask: torch.Tensor | None = None, + attn_mask: torch.Tensor | None = None, + is_causal: bool = False, + modulation: tuple[torch.Tensor, ...] | None = None, + rope_cache: tuple[torch.Tensor, torch.Tensor] | None = None, + rtc_suffix_conditioning: torch.Tensor | None = None, + rtc_prefix_conditioning: torch.Tensor | None = None, + rtc_prefix_mask: torch.Tensor | None = None, + ) -> torch.Tensor: + if rtc_suffix_conditioning is not None: + assert rtc_prefix_conditioning is not None + assert rtc_prefix_mask is not None + if modulation is not None: + raise ValueError("precomputed modulation and RTC conditioning are mutually exclusive.") + modulation = project_rtc_modulation( + rtc_suffix_conditioning, + rtc_prefix_conditioning, + rtc_prefix_mask, + modulation=self.modulation, + chunks=9, + ) + elif modulation is None: + modulation = self.modulation(conditioning).chunk(9, dim=-1) + ( + shift_msa, + scale_msa, + gate_msa, + shift_mca, + scale_mca, + gate_mca, + shift_mlp, + scale_mlp, + gate_mlp, + ) = modulation + x = x + _broadcast_action_condition(gate_msa, x) * self.self_attn( + _modulate(self.self_norm(x), shift_msa, scale_msa), + attn_mask=self_attn_mask, + is_causal=is_causal, + rope_cache=rope_cache, + ) + x = x + _broadcast_action_condition(gate_mca, x) * self.cross_attn( + _modulate(self.cross_norm(x), shift_mca, scale_mca), + kv_k=cross_kv[0], + kv_v=cross_kv[1], + attn_mask=attn_mask, + ) + x = x + _broadcast_action_condition(gate_mlp, x) * self.mlp(_modulate(self.ff_norm(x), shift_mlp, scale_mlp)) + return x + + +class ActionExpertFinalLayer(nn.Module): + def __init__(self, hidden_size: int, output_dim: int) -> None: + super().__init__() + self.norm = ActionExpertRMSNorm(hidden_size, eps=1e-6) + self.modulation = ActionExpertModulation(hidden_size, 2) + self.linear = nn.Linear(hidden_size, output_dim) + + def forward( + self, + x: torch.Tensor, + conditioning: torch.Tensor, + *, + modulation: tuple[torch.Tensor, torch.Tensor] | None = None, + rtc_suffix_conditioning: torch.Tensor | None = None, + rtc_prefix_conditioning: torch.Tensor | None = None, + rtc_prefix_mask: torch.Tensor | None = None, + ) -> torch.Tensor: + if rtc_suffix_conditioning is not None: + assert rtc_prefix_conditioning is not None + assert rtc_prefix_mask is not None + if modulation is not None: + raise ValueError("precomputed modulation and RTC conditioning are mutually exclusive.") + modulation = project_rtc_modulation( + rtc_suffix_conditioning, + rtc_prefix_conditioning, + rtc_prefix_mask, + modulation=self.modulation, + chunks=2, + ) + elif modulation is None: + modulation = self.modulation(conditioning).chunk(2, dim=-1) + shift, scale = modulation + return self.linear(_modulate(self.norm(x), shift, scale)) + + +class SinusoidalTimeEmbedding(nn.Module): + def __init__(self, dim: int): + super().__init__() + self.dim = dim + + def forward(self, timesteps: torch.Tensor) -> torch.Tensor: + timestep_shape = timesteps.shape + timesteps = timesteps.reshape(-1) + half_dim = self.dim // 2 + freq = torch.exp( + torch.arange(half_dim, device=timesteps.device, dtype=timesteps.dtype) + * (-math.log(10000.0) / max(half_dim - 1, 1)) + ) + args = timesteps[:, None] * freq[None, :] + emb = torch.cat([torch.sin(args), torch.cos(args)], dim=-1) + if self.dim % 2 == 1: + emb = F.pad(emb, (0, 1)) + return emb.reshape(*timestep_shape, self.dim) + + +class ActionExpert(nn.Module): + """Vendored upstream DiT implementation for HF remote-code inference.""" + + def __init__( + self, + config: DiTActionExpertConfig, + *, + llm_dim: int, + llm_kv_dim: int, + llm_num_layers: int, + device=None, + ): + super().__init__() + if config.num_layers != llm_num_layers: + raise ValueError( + "DiT action expert supports only per-layer conditioning with one " + f"action block per LLM layer (action={config.num_layers}, llm={llm_num_layers})." + ) + self.config = config + self.hidden_size = config.hidden_size + self.llm_dim = llm_dim + self.llm_kv_dim = llm_kv_dim + self.action_head_dim = config.hidden_size // config.num_heads + + self.time_embed = nn.Sequential( + SinusoidalTimeEmbedding(config.timestep_embed_dim), + nn.Linear(config.timestep_embed_dim, config.hidden_size, device=device), + nn.SiLU(), + nn.Linear(config.hidden_size, config.hidden_size, device=device), + ) + self.action_embed = nn.Linear(config.max_action_dim, config.hidden_size, device=device) + self.context_k_proj = nn.Linear(self.llm_kv_dim, config.hidden_size, bias=False, device=device) + self.context_v_proj = nn.Linear(self.llm_kv_dim, config.hidden_size, bias=False, device=device) + self.context_norm = ( + ActionExpertRMSNorm(config.hidden_size, eps=1e-6) if config.context_layer_norm else nn.Identity() + ) + self._modulation_cache_key: tuple[Any, ...] | None = None + self._modulation_cache_value: Sequence[ActionExpertStepModulation] | None = None + self.blocks = nn.ModuleList( + [ + ActionExpertBlock( + config.hidden_size, + config.num_heads, + mlp_ratio=config.mlp_ratio, + ffn_multiple_of=config.ffn_multiple_of, + attn_dropout=config.attn_dropout, + dropout=config.dropout, + qk_norm=config.qk_norm, + qk_norm_eps=config.qk_norm_eps, + rope=config.rope, + ) + for _ in range(config.num_layers) + ] + ) + self.final_layer = ActionExpertFinalLayer(config.hidden_size, config.max_action_dim) + self.reset_parameters() + + def reset_parameters(self) -> None: + for module in self.time_embed.modules(): + if isinstance(module, nn.Linear): + _init_linear(module) + _init_linear(self.action_embed) + _init_linear(self.context_k_proj) + _init_linear(self.context_v_proj) + if isinstance(self.context_norm, ActionExpertRMSNorm): + self.context_norm.reset_parameters() + residual_scale = (2 * max(self.config.num_layers, 1)) ** -0.5 + for block in self.blocks: + _init_linear(block.self_attn.qkv) + _init_linear(block.self_attn.out_proj, scale=residual_scale) + _init_linear(block.cross_attn.q_proj) + _init_linear(block.cross_attn.out_proj, scale=residual_scale) + _init_linear(block.mlp.up_proj) + _init_linear(block.mlp.gate_proj) + _init_linear(block.mlp.down_proj, scale=residual_scale) + _init_linear(block.modulation.linear, zero=True) + block.self_norm.reset_parameters() + block.cross_norm.reset_parameters() + block.ff_norm.reset_parameters() + if block.self_attn.q_norm is not None: + block.self_attn.q_norm.reset_parameters() + if block.self_attn.k_norm is not None: + block.self_attn.k_norm.reset_parameters() + if block.cross_attn.q_norm is not None: + block.cross_attn.q_norm.reset_parameters() + if block.cross_attn.k_norm is not None: + block.cross_attn.k_norm.reset_parameters() + self.final_layer.norm.reset_parameters() + _init_linear(self.final_layer.modulation.linear, zero=True) + _init_linear(self.final_layer.linear, zero=True) + + def _reshape_hidden_to_heads(self, x: torch.Tensor) -> torch.Tensor: + return x.view(x.shape[0], x.shape[1], self.config.num_heads, self.action_head_dim) + + def _time_conditioning(self, timesteps: torch.Tensor) -> torch.Tensor: + conditioning = self.time_embed[0](timesteps) + first_linear = self.time_embed[1] + if isinstance(first_linear, nn.Linear): + conditioning = conditioning.to(dtype=first_linear.weight.dtype) + for module in list(self.time_embed.children())[1:]: + conditioning = module(conditioning) + return conditioning + + def prepare_rtc_conditioning( + self, + base_timesteps: torch.Tensor, + prefix_mask: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + return prepare_rtc_conditioning( + base_timesteps, + prefix_mask, + time_conditioning=self._time_conditioning, + ) + + def _project_kv_tensor(self, x: torch.Tensor, proj: nn.Linear) -> torch.Tensor: + flat = self.context_norm(proj(x)) + return self._reshape_hidden_to_heads(flat) + + def _prepare_kv_context( + self, + encoder_kv_states: Sequence[tuple[torch.Tensor, torch.Tensor]], + ) -> Sequence[tuple[torch.Tensor, torch.Tensor]]: + if len(encoder_kv_states) != len(self.blocks): + raise ValueError( + f"Expected {len(self.blocks)} KV layers for per-layer conditioning, got {len(encoder_kv_states)}." + ) + kv_contexts = [] + for block, (k_in, v_in) in zip(self.blocks, encoder_kv_states, strict=False): + k_ctx = self._project_kv_tensor(k_in, self.context_k_proj) + v_ctx = self._project_kv_tensor(v_in, self.context_v_proj) + k_norm = block.cross_attn.k_norm + if k_norm is not None: + k_ctx = k_norm(k_ctx.transpose(1, 2)).transpose(1, 2) + kv_contexts.append((k_ctx, v_ctx)) + return kv_contexts + + @staticmethod + def _build_cross_attention_mask( + encoder_attention_mask: torch.Tensor | None, + batch_size: int, + dtype: torch.dtype, + ) -> torch.Tensor | None: + if encoder_attention_mask is None: + return None + mask = encoder_attention_mask[:, None, None, :].to(dtype=dtype) + return (1.0 - mask) * torch.finfo(dtype).min + + def _build_self_attention_mask( + self, + action_attention_mask: torch.Tensor | None, + seq_len: int, + device: torch.device, + dtype: torch.dtype, + ) -> torch.Tensor | None: + mask = None + if action_attention_mask is not None: + valid = action_attention_mask.to(device=device, dtype=torch.bool) + key_mask = (~valid)[:, None, None, :].to(dtype=dtype) + mask = key_mask * torch.finfo(dtype).min + if self.config.causal_attn: + causal = torch.ones(seq_len, seq_len, device=device, dtype=torch.bool).triu(diagonal=1) + causal = causal.unsqueeze(0).unsqueeze(0).to(dtype=dtype) * torch.finfo(dtype).min + mask = causal if mask is None else mask + causal + return mask + + def prepare_context( + self, + *, + encoder_kv_states: Sequence[tuple[torch.Tensor, torch.Tensor]], + encoder_attention_mask: torch.Tensor | None = None, + action_attention_mask: torch.Tensor | None = None, + state_embeddings: torch.Tensor | None = None, + batch_size: int, + seq_len: int, + device: torch.device, + dtype: torch.dtype, + ) -> ActionExpertContext: + if state_embeddings is not None: + raise ValueError( + "DiT action expert supports only discrete state tokens. Continuous state embeddings are not supported." + ) + valid_action = None + if action_attention_mask is not None: + valid_action = action_attention_mask.to(device=device, dtype=dtype).unsqueeze(-1) + rope_cache = None + if len(self.blocks) > 0 and self.blocks[0].self_attn.rope is not None: + rope_cache = self.blocks[0].self_attn.rope.build_cache( + seq_len=seq_len, + device=device, + dtype=dtype, + ) + kv_contexts = self._prepare_kv_context(encoder_kv_states) + cross_mask = self._build_cross_attention_mask( + encoder_attention_mask, + batch_size, + dtype, + ) + self_mask = self._build_self_attention_mask(action_attention_mask, seq_len, device, dtype) + return ActionExpertContext( + kv_contexts=kv_contexts, + cross_mask=cross_mask, + self_mask=self_mask, + valid_action=valid_action, + rope_cache=rope_cache, + ) + + def prepare_modulation_cache( + self, + timesteps: Sequence[torch.Tensor], + ) -> Sequence[ActionExpertStepModulation]: + cache = [] + for _idx, step_t in enumerate(timesteps): + conditioning = self._time_conditioning(step_t) + block_modulations = [] + for block in self.blocks: + block_modulations.append(tuple(block.modulation(conditioning).chunk(9, dim=-1))) + final_modulation = tuple(self.final_layer.modulation(conditioning).chunk(2, dim=-1)) + cache.append( + ActionExpertStepModulation( + conditioning=conditioning, + block_modulations=block_modulations, + final_modulation=final_modulation, + ) + ) + return cache + + def get_or_prepare_modulation_cache( + self, + timesteps: Sequence[torch.Tensor], + *, + cache_key: tuple[Any, ...] | None = None, + ) -> Sequence[ActionExpertStepModulation]: + if self.training or cache_key is None: + return self.prepare_modulation_cache(timesteps) + if self._modulation_cache_key == cache_key and self._modulation_cache_value is not None: + return self._modulation_cache_value + cached = self.prepare_modulation_cache(timesteps) + self._modulation_cache_key = cache_key + self._modulation_cache_value = cached + return cached + + def forward_with_context( + self, + actions: torch.Tensor, + timesteps: torch.Tensor, + *, + context: ActionExpertContext, + modulation: ActionExpertStepModulation | None = None, + rtc_conditioning: tuple[torch.Tensor, torch.Tensor, torch.Tensor] | None = None, + ) -> torch.Tensor: + bsz, seq_len, _ = actions.shape + if seq_len > self.config.max_action_horizon: + raise ValueError( + f"Action sequence length {seq_len} exceeds configured max_action_horizon={self.config.max_action_horizon}" + ) + if rtc_conditioning is not None: + if modulation is not None: + raise ValueError("precomputed modulation and RTC conditioning are mutually exclusive.") + rtc_suffix_conditioning, rtc_prefix_conditioning, rtc_prefix_mask = rtc_conditioning + conditioning = rtc_suffix_conditioning + block_modulations = [None] * len(self.blocks) + final_modulation = None + elif modulation is None: + rtc_suffix_conditioning = rtc_prefix_conditioning = rtc_prefix_mask = None + conditioning = self._time_conditioning(timesteps) + block_modulations: Sequence[tuple[torch.Tensor, ...] | None] = [None] * len(self.blocks) + final_modulation = None + else: + rtc_suffix_conditioning = rtc_prefix_conditioning = rtc_prefix_mask = None + conditioning = modulation.conditioning + block_modulations = modulation.block_modulations + final_modulation = modulation.final_modulation + x = self.action_embed(actions) + if context.valid_action is not None: + x = x * context.valid_action + for _idx, (block, kv_context, block_modulation) in enumerate( + zip(self.blocks, context.kv_contexts, block_modulations, strict=False) + ): + x = block( + x, + conditioning, + cross_kv=kv_context, + self_attn_mask=context.self_mask, + attn_mask=context.cross_mask, + is_causal=self.config.causal_attn, + modulation=block_modulation, + rope_cache=context.rope_cache, + rtc_suffix_conditioning=rtc_suffix_conditioning, + rtc_prefix_conditioning=rtc_prefix_conditioning, + rtc_prefix_mask=rtc_prefix_mask, + ) + if context.valid_action is not None: + x = x * context.valid_action + out = self.final_layer( + x, + conditioning, + modulation=final_modulation, + rtc_suffix_conditioning=rtc_suffix_conditioning, + rtc_prefix_conditioning=rtc_prefix_conditioning, + rtc_prefix_mask=rtc_prefix_mask, + ) + if context.valid_action is not None: + out = out * context.valid_action + return out + + def forward( + self, + actions: torch.Tensor, + timesteps: torch.Tensor, + *, + encoder_kv_states: Sequence[tuple[torch.Tensor, torch.Tensor]], + encoder_attention_mask: torch.Tensor | None = None, + action_attention_mask: torch.Tensor | None = None, + state_embeddings: torch.Tensor | None = None, + ) -> torch.Tensor: + bsz, seq_len, _ = actions.shape + context = self.prepare_context( + encoder_kv_states=encoder_kv_states, + encoder_attention_mask=encoder_attention_mask, + action_attention_mask=action_attention_mask, + state_embeddings=state_embeddings, + batch_size=bsz, + seq_len=seq_len, + device=actions.device, + dtype=actions.dtype, + ) + return self.forward_with_context(actions, timesteps, context=context) + + +# --------------------------------------------------------------------------- +# DiT action-expert head. The vendored upstream ActionExpert (above) is driven from +# the backbone's FINAL-layer activations as a single shared cross-attention +# context (clean-at-1), ported from isaac05 DiTActionExpert. Geometry comes +# from IsaacConfig.action_expert; weights nest as action_expert.action_expert.* +# (mirrors isaac05 flow_matching_expert.action_expert.* -> pure converter prefix swap). +# --------------------------------------------------------------------------- + + +def _validate_action_expert_contract(action_expert_cfg: dict[str, Any]) -> DiTActionExpertArgs: + schema_version = action_expert_cfg.get("schema_version") + if schema_version != DIT_ACTION_EXPERT_CONFIG_SCHEMA_VERSION: + raise ValueError( + "action_expert metadata must carry " + f"schema_version={DIT_ACTION_EXPERT_CONFIG_SCHEMA_VERSION}; got {schema_version!r}. " + "Re-export the checkpoint with the current converter." + ) + expert_type = action_expert_cfg.get("type") + if expert_type != "dit": + raise ValueError(f"only the 'dit' action expert is supported; got {expert_type!r}") + required = DIT_ACTION_EXPERT_CONFIG_V1_FIELDS + missing = [key for key in required if key not in action_expert_cfg] + if missing: + raise ValueError(f"action_expert metadata is missing required fields: {missing}.") + unexpected = sorted(set(action_expert_cfg) - set(required) - {"schema_version", "type"}) + if unexpected: + raise ValueError(f"action_expert metadata has unexpected fields for schema v1: {unexpected}.") + values = {key: action_expert_cfg[key] for key in required} + try: + return DiTActionExpertArgs(**values) + except (TypeError, ValueError) as exc: + raise ValueError(f"invalid action_expert metadata: {exc}") from exc + + +class DiTActionExpertHead(nn.Module): + """DiT ActionExpert wired to a single shared final-layer context. + + Ported from isaac05 ``DiTActionExpert``: context_k/v_proj project vlm_dim->hidden + (the isaac05-wired projections ARE the trained weights), every other weight loads + verbatim. The flow convention is always clean-at-1 (feed ``1 - tau``). + """ + + def __init__(self, action_expert_cfg: dict, vlm_dim: int) -> None: + super().__init__() + c = dict(action_expert_cfg) + args = _validate_action_expert_contract(c) + self.vlm_dim = int(vlm_dim) + self.action_dim = args.action_dim + self.action_horizon = args.action_horizon + self.num_inference_steps = args.num_inference_steps + cfg = args.to_action_expert_config() + # llm_kv_dim=vlm_dim => context_k/v_proj are vlm_dim->hidden; one shared context fed + # to all blocks, so llm_num_layers is nominal (satisfies the one-block-per-layer assert). + self.action_expert = ActionExpert(cfg, llm_dim=vlm_dim, llm_kv_dim=vlm_dim, llm_num_layers=cfg.num_layers) + self.hidden_dim = args.hidden_dim + self.args = args + + def _flow_time(self, tau): + # Isaac05 tau is the noise level (1=noise); the DiT uses clean-at-1, so feed 1-tau. + return 1.0 - tau + + def _build_single_context(self, vlm_activations, vlm_mask, action_mask, *, seq_len, batch_size, device, dtype): + ae = self.action_expert + encoder_attention_mask = None if vlm_mask is None else vlm_mask.to(device=device, dtype=dtype) + action_attention_mask = None if action_mask is None else action_mask.to(device=device) + k_base = ae._project_kv_tensor(vlm_activations, ae.context_k_proj) # noqa: SLF001 + v_ctx = ae._project_kv_tensor(vlm_activations, ae.context_v_proj) # noqa: SLF001 + kv_contexts = [] + for block in ae.blocks: + k_ctx = k_base + k_norm = block.cross_attn.k_norm + if k_norm is not None: + k_ctx = k_norm(k_ctx.transpose(1, 2)).transpose(1, 2) + kv_contexts.append((k_ctx, v_ctx)) + cross_mask = ae._build_cross_attention_mask(encoder_attention_mask, batch_size, dtype) # noqa: SLF001 + self_mask = ae._build_self_attention_mask(action_attention_mask, seq_len, device, dtype) # noqa: SLF001 + valid_action = None + if action_attention_mask is not None: + valid_action = action_attention_mask.to(dtype=dtype).unsqueeze(-1) + rope_cache = None + if len(ae.blocks) > 0 and ae.blocks[0].self_attn.rope is not None: + rope_cache = ae.blocks[0].self_attn.rope.build_cache(seq_len=seq_len, device=device, dtype=dtype) + return ActionExpertContext( + kv_contexts=kv_contexts, + cross_mask=cross_mask, + self_mask=self_mask, + valid_action=valid_action, + rope_cache=rope_cache, + ) + + # -- training timestep sampling: isaac05 Beta(1.5,1.0) noise level (== MolmoAct2's t-dist) -- + def sample_timesteps(self, batch_size: int, device: torch.device, dtype: torch.dtype) -> torch.Tensor: + a = self.args + beta = torch.distributions.Beta( + torch.tensor(a.timestep_sampling_alpha, device=device, dtype=torch.float32), + torch.tensor(a.timestep_sampling_beta, device=device, dtype=torch.float32), + ).sample((batch_size,)) + tau = beta * a.timestep_sampling_scale + a.timestep_sampling_offset + return tau.to(device=device, dtype=dtype) + + # -- horizon embedding unused (MolmoAct2 positions come from RoPE); zeros placeholder -- + def horizon_embeddings( + self, + horizons: int | Sequence[int], + *, + h_max: int | None = None, + device: torch.device, + dtype: torch.dtype, + ) -> torch.Tensor: + real = [horizons] if isinstance(horizons, int) else list(horizons) + h = max(real) if h_max is None else h_max + return torch.zeros(len(real), h, self.hidden_dim, device=device, dtype=dtype) + + def forward( + self, + vlm_activations: torch.Tensor, + vlm_mask: torch.Tensor | None, + x_tau: torch.Tensor, + tau: torch.Tensor, + horizon_emb: torch.Tensor | None = None, + action_mask: torch.Tensor | None = None, + ) -> torch.Tensor: + """Differentiable single-step velocity prediction (training). Mirrors isaac05 + ``DiTActionExpert.forward``: build the shared final-layer context once, run the expert at the + clean-at-1 flow time. ``x_tau`` is ``[B,H,D]`` or ``[K,B,H,D]`` (K MC samples looped against the + shared context to bound memory). ``horizon_emb`` is ignored (positions come from RoPE).""" + del horizon_emb + if x_tau.dim() == 4: + sample_count, batch_size, horizon, _ = x_tau.shape + elif x_tau.dim() == 3: + sample_count, batch_size, horizon = 1, x_tau.shape[0], x_tau.shape[1] + else: + raise ValueError(f"x_tau must be [B,H,D] or [K,B,H,D]; got {tuple(x_tau.shape)}") + context = self._build_single_context( + vlm_activations, + vlm_mask, + action_mask, + seq_len=horizon, + batch_size=batch_size, + device=x_tau.device, + dtype=x_tau.dtype, + ) + if x_tau.dim() == 3: + return self.action_expert.forward_with_context(x_tau, self._flow_time(tau), context=context) + outs = [ + self.action_expert.forward_with_context(x_tau[k], self._flow_time(tau[k]), context=context) + for k in range(sample_count) + ] + return torch.stack(outs, dim=0) + + @torch.no_grad() + def sample( + self, + vlm_activations: torch.Tensor, + vlm_mask: torch.Tensor | None = None, + num_steps: int | None = None, + num_action_steps: int | None = None, + action_dim: int | None = None, + action_prefix: torch.Tensor | None = None, + prefix_length: int | Sequence[int] | torch.Tensor | None = None, + num_flow_samples: int = 1, + allow_ood_rtc_prefix: bool = False, + ) -> torch.Tensor: + num_steps = self.num_inference_steps if num_steps is None else int(num_steps) + horizon = self.action_horizon if num_action_steps is None else int(num_action_steps) + if num_steps < 1: + raise ValueError(f"num_steps must be >= 1; got {num_steps}.") + if horizon < 1 or horizon > self.action_horizon: + raise ValueError(f"num_action_steps must be in [1, {self.action_horizon}]; got {horizon}.") + full_dim = self.action_dim + batch_size = vlm_activations.shape[0] + device = vlm_activations.device + model_dtype = vlm_activations.dtype + state_dtype = torch.float32 + + resolved_prefix = resolve_rtc_action_prefix( + action_prefix=action_prefix, + prefix_length=prefix_length, + action_dim=action_dim, + batch_size=batch_size, + action_horizon=horizon, + expert_action_dim=full_dim, + rtc_max_delay_steps=self.args.rtc_max_delay_steps, + rtc_probability=self.args.rtc_probability, + device=device, + allow_ood=bool(allow_ood_rtc_prefix), + ) + out_dim = resolved_prefix.output_dim + + context = self._build_single_context( + vlm_activations, + vlm_mask, + action_mask=None, + seq_len=horizon, + batch_size=batch_size, + device=device, + dtype=model_dtype, + ) + + dim_mask = None + if out_dim < full_dim: + dim_mask = torch.zeros(1, 1, full_dim, dtype=state_dtype, device=device) + dim_mask[:, :, :out_dim] = 1.0 + + prefix_tensor, prefix_mask = materialize_rtc_action_prefix( + resolved_prefix, + action_prefix, + batch_size=batch_size, + action_horizon=horizon, + expert_action_dim=full_dim, + device=device, + dtype=state_dtype, + dim_mask=dim_mask, + ) + + def velocity_fn(state: torch.Tensor, flow_time: float): + # Preserve the released checkpoint path exactly when RTC is not requested: + # scalar [B] timesteps and no per-action conditioning tensors. + t_tensor = torch.full((batch_size,), flow_time, dtype=model_dtype, device=device) + rtc_conditioning = None + if prefix_mask is not None: + rtc_conditioning = self.action_expert.prepare_rtc_conditioning( + t_tensor, + prefix_mask.squeeze(-1), + ) + return self.action_expert.forward_with_context( + state.to(model_dtype), + t_tensor, + context=context, + rtc_conditioning=rtc_conditioning, + ).to(state_dtype) + + def sample_once() -> torch.Tensor: + x = torch.randn(batch_size, horizon, full_dim, dtype=state_dtype, device=device) + return integrate_rtc_euler( + x, + num_steps=num_steps, + velocity_fn=velocity_fn, + prefix_tensor=prefix_tensor, + prefix_mask=prefix_mask, + dim_mask=dim_mask, + ) + + sample_count = max(1, int(num_flow_samples or 1)) + if sample_count == 1: + return sample_once() + return torch.stack([sample_once() for _ in range(sample_count)], dim=0).mean(dim=0) + + +# === Config === + + +def build_action_expert_head(action_expert_cfg: dict[str, Any] | None, vlm_dim: int) -> nn.Module | None: + """Build the checkpoint-native DiT action expert from serialized metadata.""" + if action_expert_cfg is None: + return None + return DiTActionExpertHead(action_expert_cfg, vlm_dim=vlm_dim) + + +class Qwen35VLAConfig(Qwen3_5Config): + """Native Qwen3.5-VL config extended with the two VLA blocks. + + Adds ``vector_max_states`` (proprio input width, padded to this dim before the encoder) and + ``action_expert`` (the DiT flow-matching head config dict). + Everything else (text_config / vision_config / token ids) is inherited from ``Qwen3_5Config``. + """ + + model_type = "qwen3_5_vla" + + def __init__( + self, + vector_max_states: int = 128, + action_expert: dict[str, Any] | None = None, + **kwargs: Any, + ) -> None: + super().__init__(**kwargs) + self.vector_max_states = vector_max_states + self.action_expert = action_expert + + +# === Inner model: native Qwen3.5-VL + proprio encoder + action expert === + + +class Qwen35VLAModel(Qwen3_5Model): + """Native ``Qwen3_5Model`` (``visual`` + ``language_model``) plus ``vector_embedding`` + ``action_expert``. + + State-dict keys reproduce the converted checkpoint exactly: ``visual.*``, ``language_model.*``, + ``vector_embedding.{0,2}.weight``, ``action_expert.action_expert.*`` (all under the outer ``model.`` prefix). + """ + + config_class = Qwen35VLAConfig + + def __init__(self, config: Qwen35VLAConfig) -> None: + super().__init__(config) + hidden = config.text_config.hidden_size + self.vector_embedding = build_vector_encoder(config.vector_max_states, hidden) + self.action_expert = ( + None if config.action_expert is None else DiTActionExpertHead(config.action_expert, vlm_dim=hidden) + ) + + # -- per-modality embedders -- + + def _embed_text(self, token_ids: torch.Tensor) -> torch.Tensor: + h = self.language_model.embed_tokens(token_ids) + # Text events are shaped (..., 1); squeeze the singleton index dim. + if h.dim() >= 2 and h.size(-2) == 1: + h = h[..., 0, :] + return h + + def _embed_vector(self, vector_tokens: torch.Tensor) -> torch.Tensor: + vt = normalize_vector_tokens(vector_tokens, self.config.vector_max_states) + return self.vector_embedding(vt) + + def _embed_vision(self, patches: torch.Tensor, grid_thw: torch.Tensor) -> torch.Tensor: + vcfg = self.config.vision_config + # The InferenceStreamBuilder already patchifies to temporal tubelets (C*T*P*P) when + # temporal_patch_size>1, so the stream payload is the native-expected width. Only tile if + # the renderer emitted per-frame (C*P*P) rows — mirrors isaac05 Qwen35MoeVisionPatchEmbed. + per_frame_dim = vcfg.in_channels * vcfg.patch_size * vcfg.patch_size + if patches.shape[-1] == per_frame_dim: + patches = expand_single_frame_patches_to_temporal_tubelets( + patches, + in_channels=vcfg.in_channels, + patch_size=vcfg.patch_size, + temporal_patch_size=vcfg.temporal_patch_size, + ) + # Native Qwen3_5Model.get_image_features -> BaseModelOutputWithPooling; pooler_output is a + # per-image tuple of merged (out_hidden_size) embeds. Concatenate back to stream order. + feats = self.get_image_features(patches, image_grid_thw=grid_thw) + return torch.cat(list(feats.pooler_output), dim=0) + + def embed_stream(self, tensor_stream: TensorStream) -> torch.Tensor: + """Embed each modality in place and compact -> ``[B, T, D]`` interleaved embeddings. + + Mirrors isaac05 ``balanced_embed_stream`` / ``embed_and_interleave``: group events by + modality, embed each group with the matching encoder, write back, then ``compact()`` (events + are stored in sequence order, so the concat IS the interleave). + """ + flat_stream = tensor_stream.flat_stream() + per_modality_stream = group_streams(flat_stream, group_fn=lambda ev: ev.type, schedule=False) + per_modality_compact = {k: v.compact() for k, v in per_modality_stream.items()} + + # Per-event spatial grids for vision events: dims(virtual=False) == [T, H, W]. + grids: dict[Any, list[list[int]]] = defaultdict(list) + for stream in tensor_stream.streams: + for event in stream: + grids[event.type].append(event.dims(virtual=False)) + + embedded: dict[Any, torch.Tensor] = {} + for stype, payload in per_modality_compact.items(): + mod_name = stype.modality.__name__ + if mod_name == "VisionType": + grid_thw = torch.tensor(grids[stype], dtype=torch.long, device=tensor_stream.device) + embedded[stype] = self._embed_vision(payload, grid_thw) + elif mod_name == "VectorType": + embedded[stype] = self._embed_vector(payload) + else: + embedded[stype] = self._embed_text(payload) + + embedded_ts = reconstruct_tensor_stream_from_compact_dict(tensor_stream, embedded) + return embedded_ts.compact() # [B, T, D] + + def forward(self, tensor_stream: TensorStream, **kwargs: Any) -> BaseModelOutputWithPast: # type: ignore[override] + """Run the VLM over the rendered stream and return post-final-norm activations. + + Replicates isaac05 ``PerceptronTransformer.forward``: interleave -> MRoPE positions -> + next-token-prediction truncation ``[:, :-1]`` -> native hybrid decoder -> final norm. + ``last_hidden_state`` has length ``L_model = stream_len - 1`` (= isaac05 ``final_activations``). + """ + inputs_embeds = self.embed_stream(tensor_stream) # [B, L, D] + + # MRoPE positions with isaac05's "1-D rotation equivalence": only image tokens keep their + # (t, h, w) grid; every non-spatial token (text / proprio / action / timestamp) collapses to + # (t, t, t). Mirrors PerceptronTransformer.compute_position_embeddings. Skipping this is + # silently wrong: raw (t, h, w) on text tokens compounds into a garbage final state. + pos = compute_mrope_pos_tensor(tensor_stream) # [B, L, 3] + mod = modality_mask(tensor_stream) # [B, L] + not_spatial = ~((mod == VisionType.I.value) | (mod == VisionType.P.value)) + pos = pos.clone() + pos[not_spatial] = pos[not_spatial][..., 0:1].expand(-1, pos.shape[-1]) + position_ids = pos.permute(2, 0, 1).contiguous() # [3, B, L] (native mrope format) + + # Next-token-prediction truncation, exactly as isaac05 model.forward (h, pos = h[:, :-1], pos[:, :-1]). + inputs_embeds = inputs_embeds[:, :-1] + position_ids = position_ids[:, :, :-1] + + # Padding-aware key mask: 1 for real tokens, 0 for TextType.padding. The training collate + # right-pads variable-length per-sample streams to a common length; batch=1 inference has no + # padding so this is all-ones (identical to the prior behavior). Truncate `mod` to L_model to + # match the [:, :-1] NTP shift. + attention_mask = (mod != TextType.padding.value).to(torch.long)[:, :-1] + out = self.language_model( + inputs_embeds=inputs_embeds, + position_ids=position_ids, + attention_mask=attention_mask, + use_cache=False, + ) + return BaseModelOutputWithPast(last_hidden_state=out.last_hidden_state) + + +# === Top-level model: inner VLA model + lm_head + sample_action === + + +@dataclass +class Isaac05TrainingOutput: + """Differentiable VLA surfaces consumed by an outer training adapter.""" + + final_activations: torch.Tensor + final_embedding: nn.Module + flow_matching_expert: nn.Module | None + + +class Qwen35VLAForActionGeneration(Qwen3_5PreTrainedModel): + """Top-level VLA model: ``model`` (Qwen35VLAModel) + ``lm_head``; exposes ``sample_action``. + + State-dict keys: ``model.*`` + ``lm_head.weight`` — exactly the converted checkpoint. ``lm_head`` is + kept for future scene-generation (the trained checkpoint is ``include_scene_description=true``); it is + unused by ``sample_action`` (which only needs the backbone activations). + """ + + config_class = Qwen35VLAConfig + + def __init__(self, config: Qwen35VLAConfig) -> None: + super().__init__(config) + self.model = Qwen35VLAModel(config) + self.lm_head = nn.Linear(config.text_config.hidden_size, config.text_config.vocab_size, bias=False) + self.post_init() + + def get_input_embeddings(self) -> nn.Module: + return self.model.language_model.embed_tokens + + @property + def action_expert(self) -> nn.Module: + return self.model.action_expert + + @torch.no_grad() + def sample_action( + self, + tensor_stream: TensorStream, + *, + num_steps: int | None = None, + action_dim: int | None = None, + num_action_steps: int | None = None, + action_prefix: torch.Tensor | None = None, + prefix_length: int | Sequence[int] | torch.Tensor | None = None, + num_flow_samples: int = 1, + allow_ood_rtc_prefix: bool = False, + ) -> torch.Tensor: + """Integrate the flow expert into a ``[B, num_action_steps or H, action_dim]`` chunk. + + Numerically mirrors isaac05 ``PerceptronTransformer.sample_action``: one VLM forward over the + stream, take the post-norm final activations (already ``[:, :-1]``-truncated by ``forward``), + build the pre-action context mask (excludes action-marker positions), and run the expert's + clean-at-1 Euler ODE. Output is in normalized action space (caller unnormalizes). + """ + expert = self.model.action_expert + if expert is None: + raise RuntimeError("sample_action requires config.action_expert to be set (this is a VLM-only checkpoint).") + output = self.model(tensor_stream) + final = output.last_hidden_state # [B, L_model, D] + bsz, l_model = final.shape[0], final.shape[1] + device = final.device + + action_start = first_event_start_indices(tensor_stream, FLOW_ACTION_TEXT_TYPE, fallback_start=int(l_model)) + vlm_mask, _ = build_action_context_mask( + tensor_stream, + action_batch_indices=list(range(bsz)), + action_start_indices=action_start, + l_model=l_model, + device=device, + ) + actions = expert.sample( + vlm_activations=final, + vlm_mask=vlm_mask, + num_steps=num_steps, + num_action_steps=num_action_steps, + action_dim=action_dim, + action_prefix=action_prefix, + prefix_length=prefix_length, + num_flow_samples=num_flow_samples, + allow_ood_rtc_prefix=allow_ood_rtc_prefix, + ) + if action_dim is not None and action_dim < expert.action_dim: + actions = actions[:, :, :action_dim].contiguous() + return actions + + def train_forward(self, tensor_stream: TensorStream) -> Any: + """Differentiable training forward → a isaac05 ``ModelOutput`` for isaac05 ``MultimodalLoss``. + + Runs the VLM backbone once (already ``[:, :-1]``-truncated + post-final-norm) and exposes the + activations, the ``lm_head`` (the NTP classifier), and the action expert (flow MSE), exactly the + three surfaces an outer CE+Flow loss adapter reads.""" + out = self.model(tensor_stream) + return Isaac05TrainingOutput( + final_activations=out.last_hidden_state, + final_embedding=self.lm_head, + flow_matching_expert=self.model.action_expert, + ) diff --git a/modeling_qwen36_moe.py b/modeling_qwen36_moe.py new file mode 100644 index 0000000000000000000000000000000000000000..2d232996e4df14c145ce823a34956f1c8ebe5d99 --- /dev/null +++ b/modeling_qwen36_moe.py @@ -0,0 +1,1203 @@ +"""Native Qwen3.6 null-MoE components for the ISAAC05 Fast backbone. + +Qwen3.6 uses the Hugging Face Qwen3.5-MoE weight ABI, but Isaac05 extends its +router with logical null experts. A checkpoint stores one physical null row +and expands it to many equal logical routes at runtime. Selected null routes +skip expert compute; the remaining real routes are renormalized before the +independently gated shared expert is added. + +The classes in this module deliberately reuse the Transformers attention, +GatedDeltaNet, vision, cache, RMSNorm, rotary, and fused-expert layouts. The +only new numerical path is null-aware routing and dispatch. +""" + +from __future__ import annotations + +import math +from collections.abc import Callable, Mapping +from dataclasses import dataclass +from typing import Any, Literal, NamedTuple + +import torch +from torch import nn +from torch.nn import functional +from transformers.modeling_layers import GradientCheckpointingLayer +from transformers.models.qwen3_5_moe import modeling_qwen3_5_moe as qwen35_modeling +from transformers.models.qwen3_5_moe.configuration_qwen3_5_moe import ( + Qwen3_5MoeConfig, + Qwen3_5MoeTextConfig, +) +from transformers.models.qwen3_5_moe.modeling_qwen3_5_moe import ( + Qwen3_5MoeDecoderLayer, + Qwen3_5MoeExperts, + Qwen3_5MoeGatedDeltaNet, + Qwen3_5MoeMLP, + Qwen3_5MoeModel, + Qwen3_5MoePreTrainedModel, + Qwen3_5MoeRMSNorm, + Qwen3_5MoeTextModel, + Qwen3_5MoeVisionModel, +) + +_ROUTER_CONTRACT_VERSION = 1 +DETERMINISTIC_ROUTE_REDUCTION = "stable_token_segment_sum_v1" +ISAAC05_ROTARY_PRECISION = "checkpoint_bf16_inv_freq_fp32_phase_v1" + + +class _ExplicitRepeatKvSdpaResult(NamedTuple): + output: torch.Tensor + repeated_key: torch.Tensor + repeated_value: torch.Tensor + raw_output: torch.Tensor + + +def _isaac05_layout_repeat_kv(hidden_states: torch.Tensor, num_repetitions: int) -> torch.Tensor: + """Repeat KV heads in Isaac05' [batch, length, heads, dim] layout.""" + batch, sequence_length, num_key_value_heads, head_dim = hidden_states.shape + if num_repetitions == 1: + return hidden_states + return ( + hidden_states.unsqueeze(3) + .expand(batch, sequence_length, num_key_value_heads, num_repetitions, head_dim) + .reshape(batch, sequence_length, num_key_value_heads * num_repetitions, head_dim) + ) + + +def _sdpa_with_repeated_kv( + module: nn.Module, + query: torch.Tensor, + repeated_key: torch.Tensor, + repeated_value: torch.Tensor, + attention_mask: torch.Tensor | None, + *, + dropout: float, + scaling: float | None, + is_causal: bool | None = None, +) -> _ExplicitRepeatKvSdpaResult: + causal = is_causal if is_causal is not None else bool(getattr(module, "is_causal", True)) + causal = query.shape[2] > 1 and attention_mask is None and causal + if torch.jit.is_tracing() and isinstance(causal, torch.Tensor): + causal = bool(causal.item()) + raw_output = functional.scaled_dot_product_attention( + query, + repeated_key, + repeated_value, + attn_mask=attention_mask, + dropout_p=dropout, + scale=scaling, + is_causal=causal, + ) + return _ExplicitRepeatKvSdpaResult( + output=raw_output.transpose(1, 2).contiguous(), + repeated_key=repeated_key, + repeated_value=repeated_value, + raw_output=raw_output, + ) + + +def _explicit_repeat_kv_sdpa_components( + module: nn.Module, + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + attention_mask: torch.Tensor | None, + *, + dropout: float = 0.0, + scaling: float | None = None, + is_causal: bool | None = None, +) -> _ExplicitRepeatKvSdpaResult: + num_key_value_groups = getattr(module, "num_key_value_groups", None) + if not isinstance(num_key_value_groups, int) or num_key_value_groups <= 0: + raise ValueError("ISAAC05 SDPA requires a positive integer num_key_value_groups") + repeated_key = qwen35_modeling.repeat_kv(key, num_key_value_groups) + repeated_value = qwen35_modeling.repeat_kv(value, num_key_value_groups) + return _sdpa_with_repeated_kv( + module, + query, + repeated_key=repeated_key, + repeated_value=repeated_value, + attention_mask=attention_mask, + dropout=dropout, + scaling=scaling, + is_causal=is_causal, + ) + + +def explicit_repeat_kv_sdpa( + module: nn.Module, + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + attention_mask: torch.Tensor | None, + *, + dropout: float = 0.0, + scaling: float | None = None, + is_causal: bool | None = None, +) -> torch.Tensor: + """Run the qualified ISAAC05 SDPA path after materializing grouped KV heads.""" + return _explicit_repeat_kv_sdpa_components( + module, + query, + key, + value, + attention_mask, + dropout=dropout, + scaling=scaling, + is_causal=is_causal, + ).output + + +def deterministic_token_segment_sum( + base_output: torch.Tensor, + token_indices: torch.Tensor, + routed_output: torch.Tensor, +) -> torch.Tensor: + """Add routed rows by token without repeated-index CUDA atomics.""" + if token_indices.ndim != 1 or routed_output.ndim != 2 or base_output.ndim != 2: + raise ValueError("deterministic route reduction requires base [N,D], indices [R], and routes [R,D]") + if routed_output.shape != (token_indices.numel(), base_output.shape[1]): + raise ValueError("route rows and token indices must match the base output width") + if token_indices.numel() == 0: + return base_output.clone() + if token_indices.dtype != torch.long or token_indices.device != base_output.device: + raise ValueError("route token indices must be int64 on the base output device") + if routed_output.device != base_output.device or routed_output.dtype != base_output.dtype: + raise ValueError("route rows must match the base output device and dtype") + + order = torch.argsort(token_indices, stable=True) + sorted_indices = token_indices[order] + sorted_routes = routed_output[order] + unique_indices, counts = torch.unique_consecutive(sorted_indices, return_counts=True) + reduced = torch.segment_reduce(sorted_routes, "sum", lengths=counts) + output = base_output.clone() + output[unique_indices] = output[unique_indices] + reduced + return output + + +def _required_metadata_value( + metadata: Mapping[str, Any], + key: str, + expected_type: type | tuple[type, ...], +) -> Any: + value = metadata.get(key) + if not isinstance(value, expected_type) or (isinstance(value, bool) and expected_type is not bool): + raise ValueError(f"isaac05_moe.{key} has invalid value {value!r}") + return value + + +@dataclass(frozen=True, slots=True) +class Isaac05NullMoeContract: + """Validated, artifact-owned null-routing geometry and behavior.""" + + num_real_experts: int + num_null_experts: int + top_k: int + route_scale: float + + @property + def physical_router_outputs(self) -> int: + return self.num_real_experts + 1 + + @property + def logical_router_outputs(self) -> int: + return self.num_real_experts + self.num_null_experts + + @classmethod + def from_metadata(cls, metadata: Mapping[str, Any]) -> Isaac05NullMoeContract: + """Parse the versioned Isaac05 metadata, rejecting unsupported variants.""" + + version = _required_metadata_value(metadata, "router_contract_version", int) + if version != _ROUTER_CONTRACT_VERSION: + raise ValueError(f"isaac05_moe.router_contract_version must be {_ROUTER_CONTRACT_VERSION}, got {version}") + + num_real = _required_metadata_value(metadata, "num_real_experts", int) + num_null = _required_metadata_value(metadata, "num_null_experts", int) + top_k = _required_metadata_value(metadata, "top_k", int) + route_scale = float(_required_metadata_value(metadata, "route_scale", (int, float))) + if num_real <= 0 or num_null <= 0: + raise ValueError("isaac05_moe requires positive real and null expert counts") + if top_k <= 0 or top_k > num_real + num_null: + raise ValueError(f"isaac05_moe.top_k must be in [1, {num_real + num_null}], got {top_k}") + if not math.isfinite(route_scale) or route_scale <= 0: + raise ValueError(f"isaac05_moe.route_scale must be finite and positive, got {route_scale}") + + contract = cls( + num_real_experts=num_real, + num_null_experts=num_null, + top_k=top_k, + route_scale=route_scale, + ) + exact_values: dict[str, object] = { + "router_contract": [num_real, num_null], + "physical_router_outputs": contract.physical_router_outputs, + "logical_router_outputs": contract.logical_router_outputs, + "shared_null_router_row": True, + "score_func": "softmax", + "route_norm": True, + "score_before_experts": False, + "uses_expert_bias": False, + } + for key, expected in exact_values.items(): + actual = metadata.get(key) + if actual != expected: + raise ValueError(f"isaac05_moe.{key} must be {expected!r}, got {actual!r}") + return contract + + @classmethod + def from_text_config(cls, config: Qwen3_5MoeTextConfig) -> Isaac05NullMoeContract: + metadata = getattr(config, "isaac05_moe", None) + if not isinstance(metadata, Mapping): + raise ValueError("ISAAC05 Qwen3.6 text_config requires a isaac05_moe object") + contract = cls.from_metadata(metadata) + if config.num_experts != contract.num_real_experts: + raise ValueError( + "text_config.num_experts must match isaac05_moe.num_real_experts: " + f"{config.num_experts} != {contract.num_real_experts}" + ) + if config.num_experts_per_tok != contract.top_k: + raise ValueError( + "text_config.num_experts_per_tok must match isaac05_moe.top_k: " + f"{config.num_experts_per_tok} != {contract.top_k}" + ) + if config.shared_expert_intermediate_size != config.moe_intermediate_size: + raise ValueError( + "ISAAC05 Qwen3.6 requires exactly one shared expert: " + "shared_expert_intermediate_size must equal moe_intermediate_size" + ) + return contract + + +class Isaac05Qwen36MoeConfig(Qwen3_5MoeConfig): + """Qwen3.5-MoE ABI config that requires the complete ISAAC05 null contract.""" + + def __post_init__(self, **kwargs: Any) -> None: + super().__post_init__(**kwargs) + root_metadata = getattr(self, "isaac05_moe", None) + text_metadata = getattr(self.text_config, "isaac05_moe", None) + if not isinstance(root_metadata, Mapping) or not isinstance(text_metadata, Mapping): + raise ValueError("ISAAC05 Qwen3.6 config requires matching root and text_config isaac05_moe objects") + if dict(root_metadata) != dict(text_metadata): + raise ValueError("ISAAC05 Qwen3.6 root and text_config isaac05_moe objects must be identical") + Isaac05NullMoeContract.from_text_config(self.text_config) + + +class Isaac05NullRoutingOutput(NamedTuple): + """Router values retained for numerical parity tests and compact dispatch.""" + + physical_logits: torch.Tensor + logical_probabilities: torch.Tensor + selected_experts: torch.Tensor + real_route_weights: torch.Tensor + + +class Isaac05NullTopKRouter(nn.Linear): + """Compact physical projection with deterministic logical null routing. + + Subclassing ``nn.Linear`` preserves the exported ``gate.weight`` state key. + ``_router_contract`` is nonpersistent because the Isaac05 exporter consumes + the DCP buffer and records it in ``config.json`` instead of the HF shards. + """ + + def __init__(self, config: Qwen3_5MoeTextConfig) -> None: + contract = Isaac05NullMoeContract.from_text_config(config) + super().__init__( + config.hidden_size, + contract.physical_router_outputs, + bias=False, + ) + self.contract = contract + self.top_k = contract.top_k + self.num_experts = contract.num_real_experts + self.num_null_experts = contract.num_null_experts + self.num_logical_experts = contract.logical_router_outputs + self.register_buffer( + "_router_contract", + torch.tensor([self.num_experts, self.num_null_experts], dtype=torch.int64), + persistent=False, + ) + + def reset_nonpersistent_buffer(self) -> None: + self._router_contract = torch.tensor( + [self.num_experts, self.num_null_experts], + dtype=torch.int64, + device=self.weight.device, + ) + + def route(self, hidden_states: torch.Tensor) -> Isaac05NullRoutingOutput: + hidden_states = hidden_states.reshape(-1, self.in_features) + physical_logits = functional.linear(hidden_states, self.weight) + real_logits = physical_logits[:, : self.num_experts] + shared_null_logit = physical_logits[:, self.num_experts :] + logical_logits = torch.cat( + [real_logits, shared_null_logit.expand(-1, self.num_null_experts)], + dim=-1, + ) + + # Isaac05 performs scoring in fp32. + logical_probabilities = functional.softmax(logical_logits, dtype=torch.float32, dim=-1) + # The logical tensor already exists for the router ABI and auxiliary + # outputs. One stable sort is faster than two candidate sorts at the + # production 256-real/256-null geometry while retaining exact Isaac05 + # tie behavior. + selected_experts = self._expanded_stable_topk(logical_probabilities) + selected_probabilities = logical_probabilities.gather(-1, selected_experts) + + real_route_mask = selected_experts < self.num_experts + selected_real_probabilities = torch.where( + real_route_mask, + selected_probabilities, + torch.zeros_like(selected_probabilities), + ) + real_mass = selected_real_probabilities.sum(dim=-1, keepdim=True) + # Avoid a hidden 0/0 branch in autograd. All-null tokens stay exactly zero. + safe_real_mass = torch.where(real_mass > 0, real_mass, torch.ones_like(real_mass)) + real_route_weights = selected_real_probabilities / safe_real_mass + real_route_weights = real_route_weights * self.contract.route_scale + + return Isaac05NullRoutingOutput( + physical_logits=physical_logits, + logical_probabilities=logical_probabilities, + selected_experts=selected_experts, + real_route_weights=real_route_weights, + ) + + def _expanded_stable_topk(self, logical_probabilities: torch.Tensor) -> torch.Tensor: + """Exact logical-slot selector used by the runtime and parity tests.""" + + return torch.argsort( + logical_probabilities, + dim=-1, + descending=True, + stable=True, + )[:, : self.top_k].contiguous() + + def forward(self, hidden_states: torch.Tensor) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + """Return the same tuple shape as the stock Qwen3.5-MoE router.""" + + routing = self.route(hidden_states) + return routing.logical_probabilities, routing.real_route_weights, routing.selected_experts + + +class Isaac05NullMoeBranches(NamedTuple): + """Separated routed/shared branches used by the parity ladder.""" + + output: torch.Tensor + routed_output: torch.Tensor + shared_expert_output: torch.Tensor + routing: Isaac05NullRoutingOutput + + +class _CompactRealRoutes(NamedTuple): + token_indices: torch.Tensor + expert_indices: torch.Tensor + expert_scores: torch.Tensor + offsets: torch.Tensor + + +class Isaac05NullDispatchTrace(NamedTuple): + """Exact route values at the two dispatch normalization boundaries.""" + + logical_probabilities: torch.Tensor + selected_experts: torch.Tensor + selected_route_weights: torch.Tensor + dispatch_token_indices: torch.Tensor + dispatch_expert_indices: torch.Tensor + dispatch_route_weights: torch.Tensor + + +class Isaac05NullSparseMoeBlock(nn.Module): + """Qwen fused real experts with Isaac05 null-route dropping.""" + + def __init__(self, config: Qwen3_5MoeTextConfig) -> None: + super().__init__() + self.contract = Isaac05NullMoeContract.from_text_config(config) + self.gate = Isaac05NullTopKRouter(config) + self.experts = Qwen3_5MoeExperts(config) + self.shared_expert = Qwen3_5MoeMLP( + config, + intermediate_size=config.shared_expert_intermediate_size, + ) + self.shared_expert_gate = nn.Linear(config.hidden_size, 1, bias=False) + route_reduction = getattr(config, "_isaac05_route_reduction", DETERMINISTIC_ROUTE_REDUCTION) + if route_reduction != DETERMINISTIC_ROUTE_REDUCTION: + raise ValueError( + f"Unsupported ISAAC05 route reduction {route_reduction!r}; expected {DETERMINISTIC_ROUTE_REDUCTION!r}." + ) + # Grouped GEMMs remain unchanged; only repeated-token accumulation uses + # the stable segment reducer qualified by the Step-0 parity workflow. + self.deterministic_route_reduction = True + self.dispatch_trace_observer: Callable[[Isaac05NullDispatchTrace], None] | None = None + + @property + def _is_production_geometry(self) -> bool: + return ( + self.contract.num_real_experts == 256 and self.contract.num_null_experts == 256 and self.contract.top_k == 8 + ) + + @staticmethod + def _grouped_mm_operator() -> Any | None: + if hasattr(functional, "grouped_mm"): + return functional.grouped_mm + return getattr(torch, "_grouped_mm", None) + + def _supports_grouped_mm(self, hidden_states: torch.Tensor) -> bool: + if hidden_states.device.type != "cuda" or hidden_states.dtype is not torch.bfloat16: + return False + if ( + self.experts.gate_up_proj.device != hidden_states.device + or self.experts.down_proj.device != hidden_states.device + ): + return False + if self.experts.gate_up_proj.dtype is not torch.bfloat16 or self.experts.down_proj.dtype is not torch.bfloat16: + return False + # CUDA grouped GEMM requires row strides aligned to 16 bytes for BF16. + if hidden_states.shape[-1] % 8 != 0 or self.experts.intermediate_dim % 8 != 0: + return False + if self._grouped_mm_operator() is None: + return False + major, _ = torch.cuda.get_device_capability(hidden_states.device) + return major >= 8 + + def dispatch_backend(self, hidden_states: torch.Tensor) -> Literal["grouped_mm", "eager"]: + """Select the qualified backend and fail closed for production CUDA.""" + + if self._supports_grouped_mm(hidden_states): + return "grouped_mm" + if self._is_production_geometry and hidden_states.device.type == "cuda": + raise RuntimeError( + "Production ISAAC05 null-MoE CUDA inference requires BF16 torch grouped_mm on SM80 or newer; " + f"got dtype={hidden_states.dtype}, capability={torch.cuda.get_device_capability(hidden_states.device)}" + ) + return "eager" + + def _compact_real_routes( + self, + hidden_states: torch.Tensor, + routing: Isaac05NullRoutingOutput, + ) -> _CompactRealRoutes: + num_tokens, top_k = routing.selected_experts.shape + token_indices = torch.arange(num_tokens, device=hidden_states.device).unsqueeze(1).expand(-1, top_k) + real_mask = routing.selected_experts < self.contract.num_real_experts + expert_indices = routing.selected_experts[real_mask] + token_indices = token_indices[real_mask] + + # Reproduce Isaac05's two normalization stages and their operation + # order. The first normalizes all selected logical routes; after null + # routes are removed, the second renormalizes the real-route prefix. + selected_probabilities = routing.logical_probabilities.gather(-1, routing.selected_experts) + selected_scores = selected_probabilities / (selected_probabilities.sum(dim=-1, keepdim=True) + 1e-20) + selected_scores = selected_scores * self.contract.route_scale + expert_scores = selected_scores[real_mask] + + order = torch.argsort(expert_indices, stable=True) + expert_indices = expert_indices[order] + token_indices = token_indices[order] + expert_scores = expert_scores[order] + counts = torch.bincount(expert_indices, minlength=self.contract.num_real_experts) + offsets = torch.cumsum(counts, dim=0, dtype=torch.int32) + + unscaled_scores = expert_scores / self.contract.route_scale + if self.deterministic_route_reduction: + selected_unscaled_scores = selected_scores / self.contract.route_scale + real_mass = torch.where( + real_mask, + selected_unscaled_scores, + torch.zeros_like(selected_unscaled_scores), + ).sum(dim=-1) + else: + real_mass = unscaled_scores.new_zeros(num_tokens) + real_mass.index_add_(0, token_indices, unscaled_scores) + expert_scores = (unscaled_scores / real_mass.clamp_min(1e-6)[token_indices]) * self.contract.route_scale + routes = _CompactRealRoutes(token_indices, expert_indices, expert_scores, offsets) + if self.dispatch_trace_observer is not None: + self.dispatch_trace_observer( + Isaac05NullDispatchTrace( + logical_probabilities=routing.logical_probabilities, + selected_experts=routing.selected_experts, + selected_route_weights=selected_scores, + dispatch_token_indices=routes.token_indices, + dispatch_expert_indices=routes.expert_indices, + dispatch_route_weights=routes.expert_scores, + ) + ) + return routes + + def _dispatch_real_experts_eager( + self, + hidden_states: torch.Tensor, + routes: _CompactRealRoutes, + shared_output: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor]: + routed_output = torch.zeros_like(hidden_states) + combined_output = shared_output.clone() + start = 0 + deterministic_token_indices: list[torch.Tensor] = [] + deterministic_outputs: list[torch.Tensor] = [] + # One device-to-host transfer avoids one synchronization per active expert. + for expert_index, end in enumerate(routes.offsets.tolist()): + if start == end: + continue + token_indices = routes.token_indices[start:end] + current_state = hidden_states[token_indices] + gate, up = functional.linear(current_state, self.experts.gate_up_proj[expert_index]).chunk(2, dim=-1) + swiglu = self.experts.act_fn(gate) * up + + # Match Isaac05 BF16 operation order: score after SwiGLU and before + # this expert's down projection. + expert_scores = routes.expert_scores[start:end] + weighted_swiglu = (swiglu.float() * expert_scores[:, None]).to(swiglu.dtype) + current_output = functional.linear(weighted_swiglu, self.experts.down_proj[expert_index]) + current_output = current_output.to(routed_output.dtype) + if self.deterministic_route_reduction: + deterministic_token_indices.append(token_indices) + deterministic_outputs.append(current_output) + else: + routed_output.index_add_(0, token_indices, current_output) + # Isaac05 scatters route rows directly into the shared-expert base. + # Keeping that accumulation order avoids an extra BF16 rounding step. + combined_output.index_add_(0, token_indices, current_output) + start = end + if deterministic_outputs: + all_token_indices = torch.cat(deterministic_token_indices) + all_outputs = torch.cat(deterministic_outputs) + routed_output = deterministic_token_segment_sum(routed_output, all_token_indices, all_outputs) + combined_output = deterministic_token_segment_sum(combined_output, all_token_indices, all_outputs) + return routed_output, combined_output + + def _dispatch_real_experts_grouped_mm( + self, + hidden_states: torch.Tensor, + routes: _CompactRealRoutes, + shared_output: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor]: + routed_output = torch.zeros_like(hidden_states) + combined_output = shared_output.clone() + if routes.token_indices.numel() == 0: + return routed_output, combined_output + + grouped_mm = self._grouped_mm_operator() + if grouped_mm is None: # pragma: no cover - guarded by dispatch_backend + raise RuntimeError("torch grouped_mm disappeared after backend selection") + routed_input = hidden_states[routes.token_indices] + gate_up = grouped_mm( + routed_input, + self.experts.gate_up_proj.transpose(-2, -1), + offs=routes.offsets, + ) + gate, up = gate_up.chunk(2, dim=-1) + swiglu = self.experts.act_fn(gate) * up + weighted_swiglu = (swiglu.float() * routes.expert_scores[:, None]).to(swiglu.dtype) + current_output = grouped_mm( + weighted_swiglu, + self.experts.down_proj.transpose(-2, -1), + offs=routes.offsets, + ).to(routed_output.dtype) + if self.deterministic_route_reduction: + routed_output = deterministic_token_segment_sum(routed_output, routes.token_indices, current_output) + combined_output = deterministic_token_segment_sum(combined_output, routes.token_indices, current_output) + else: + routed_output.index_add_(0, routes.token_indices, current_output) + combined_output.index_add_(0, routes.token_indices, current_output) + return routed_output, combined_output + + def _dispatch_real_experts( + self, + hidden_states: torch.Tensor, + routing: Isaac05NullRoutingOutput, + shared_output: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor]: + routes = self._compact_real_routes(hidden_states, routing) + if self.dispatch_backend(hidden_states) == "grouped_mm": + return self._dispatch_real_experts_grouped_mm(hidden_states, routes, shared_output) + return self._dispatch_real_experts_eager(hidden_states, routes, shared_output) + + def _shared_expert_output(self, hidden_states: torch.Tensor) -> torch.Tensor: + shared_output = self.shared_expert(hidden_states) + gate_input = hidden_states.to(self.shared_expert_gate.weight.dtype) + shared_gate = torch.sigmoid(self.shared_expert_gate(gate_input).float()) + return shared_output * shared_gate.to(shared_output.dtype) + + def forward_with_branches(self, hidden_states: torch.Tensor) -> Isaac05NullMoeBranches: + batch_size, sequence_length, hidden_dim = hidden_states.shape + flattened = hidden_states.reshape(-1, hidden_dim) + routing = self.gate.route(flattened) + shared_output = self._shared_expert_output(flattened) + routed_output, combined_output = self._dispatch_real_experts(flattened, routing, shared_output) + output = combined_output.reshape(batch_size, sequence_length, hidden_dim) + return Isaac05NullMoeBranches( + output=output, + routed_output=routed_output.reshape(batch_size, sequence_length, hidden_dim), + shared_expert_output=shared_output.reshape(batch_size, sequence_length, hidden_dim), + routing=routing, + ) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.forward_with_branches(hidden_states).output + + +class _DeviceAwareRMSNormGated(qwen35_modeling.Qwen3_5MoeRMSNormGated): + """One state-compatible norm that dispatches by its input device.""" + + def __init__(self, hidden_size: int, *, eps: float, activation: str) -> None: + super().__init__(hidden_size, eps=eps) + self.eps = eps + self.activation = activation + self.register_parameter("bias", None) + + def forward(self, hidden_states: torch.Tensor, gate: torch.Tensor | None = None) -> torch.Tensor: + if gate is None: + raise ValueError("ISAAC05 GatedDeltaNet normalization requires a gate tensor") + if hidden_states.device.type == "cuda" and qwen35_modeling.FusedRMSNormGated is not None: + # The FLA module's forward only depends on the attributes defined + # above. Calling it unbound keeps one norm.weight state key while + # retaining the exact stock CUDA kernel. + return qwen35_modeling.FusedRMSNormGated.forward(self, hidden_states, gate) + return super().forward(hidden_states, gate) + + +class Isaac05Qwen36GatedDeltaNet(Qwen3_5MoeGatedDeltaNet): + """Stock GatedDeltaNet ABI with input-device-aware kernel dispatch. + + Transformers selects optional FLA and causal-conv kernels at import and + construction time. When those packages are installed, the stock module + consequently creates a CUDA norm even inside a CPU or meta construction + context and later sends CPU tensors to CUDA-only functions. This subclass + retains the stock forward implementation and parameter names, but binds + thin dispatchers that select the same stock fast kernels only for CUDA + inputs and the same stock Torch fallbacks otherwise. + """ + + def __init__(self, config: Qwen3_5MoeTextConfig, layer_idx: int) -> None: + # Qwen3_5MoeGatedDeltaNet.__init__ explicitly places the optional fused + # norm on the current CUDA device, which breaks CPU and meta contexts. + nn.Module.__init__(self) + self.hidden_size = config.hidden_size + self.num_v_heads = config.linear_num_value_heads + self.num_k_heads = config.linear_num_key_heads + self.head_k_dim = config.linear_key_head_dim + self.head_v_dim = config.linear_value_head_dim + self.key_dim = self.head_k_dim * self.num_k_heads + self.value_dim = self.head_v_dim * self.num_v_heads + + self.conv_kernel_size = config.linear_conv_kernel_dim + self.layer_idx = layer_idx + self.activation = config.hidden_act + self.act = qwen35_modeling.ACT2FN[config.hidden_act] + self.layer_norm_epsilon = config.rms_norm_eps + self.conv_dim = self.key_dim * 2 + self.value_dim + self.conv1d = nn.Conv1d( + in_channels=self.conv_dim, + out_channels=self.conv_dim, + bias=False, + kernel_size=self.conv_kernel_size, + groups=self.conv_dim, + padding=self.conv_kernel_size - 1, + ) + self.dt_bias = nn.Parameter(torch.ones(self.num_v_heads)) + self.A_log = nn.Parameter(torch.log(torch.empty(self.num_v_heads).uniform_(0, 16))) + self.norm = _DeviceAwareRMSNormGated( + self.head_v_dim, + eps=self.layer_norm_epsilon, + activation=self.activation, + ) + self.out_proj = nn.Linear(self.value_dim, self.hidden_size, bias=False) + + # The inherited stock forward calls these attributes. The wrappers do + # not alter arguments, cache updates, masks, or fast-kernel behavior. + self.causal_conv1d_fn = self._causal_conv1d + self.causal_conv1d_update = self._causal_conv1d_update + self.chunk_gated_delta_rule = self._chunk_gated_delta_rule + self.recurrent_gated_delta_rule = self._recurrent_gated_delta_rule + + self.in_proj_qkv = nn.Linear(self.hidden_size, self.conv_dim, bias=False) + self.in_proj_z = nn.Linear(self.hidden_size, self.value_dim, bias=False) + self.in_proj_b = nn.Linear(self.hidden_size, self.num_v_heads, bias=False) + self.in_proj_a = nn.Linear(self.hidden_size, self.num_v_heads, bias=False) + + def _causal_conv1d( + self, + *, + x: torch.Tensor, + weight: torch.Tensor, + bias: torch.Tensor | None, + activation: str, + seq_idx: torch.Tensor | None, + ) -> torch.Tensor: + if x.device.type == "cuda" and qwen35_modeling.causal_conv1d_fn is not None: + return qwen35_modeling.causal_conv1d_fn( + x=x, + weight=weight, + bias=bias, + activation=activation, + seq_idx=seq_idx, + ) + output = functional.conv1d( + x, + weight.unsqueeze(1), + bias, + padding=self.conv_kernel_size - 1, + groups=self.conv_dim, + ) + return functional.silu(output[:, :, : x.shape[-1]]) + + @staticmethod + def _causal_conv1d_update( + hidden_states: torch.Tensor, + conv_state: torch.Tensor, + weight: torch.Tensor, + bias: torch.Tensor | None = None, + activation: str | None = None, + ) -> torch.Tensor: + if hidden_states.device.type == "cuda" and qwen35_modeling.causal_conv1d_update is not None: + return qwen35_modeling.causal_conv1d_update( + hidden_states, + conv_state, + weight, + bias, + activation, + ) + return qwen35_modeling.torch_causal_conv1d_update( + hidden_states, + conv_state, + weight, + bias, + activation, + ) + + @staticmethod + def _chunk_gated_delta_rule( + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + **kwargs: Any, + ) -> tuple[torch.Tensor, torch.Tensor | None]: + if query.device.type == "cuda" and qwen35_modeling.chunk_gated_delta_rule is not None: + return qwen35_modeling.chunk_gated_delta_rule(query, key, value, **kwargs) + return qwen35_modeling.torch_chunk_gated_delta_rule(query, key, value, **kwargs) + + @staticmethod + def _recurrent_gated_delta_rule( + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + **kwargs: Any, + ) -> tuple[torch.Tensor, torch.Tensor | None]: + if query.device.type == "cuda" and qwen35_modeling.fused_recurrent_gated_delta_rule is not None: + return qwen35_modeling.fused_recurrent_gated_delta_rule(query, key, value, **kwargs) + return qwen35_modeling.torch_recurrent_gated_delta_rule(query, key, value, **kwargs) + + +class Isaac05Qwen36AttentionTrace(NamedTuple): + """Non-mutating component boundaries for cross-runtime attention parity.""" + + query_projection: torch.Tensor + query_gate: torch.Tensor + query_norm: torch.Tensor + key_projection: torch.Tensor + key_norm: torch.Tensor + value_projection: torch.Tensor + rotary_query: torch.Tensor + rotary_key: torch.Tensor + sdpa_query: torch.Tensor + repeated_key: torch.Tensor + repeated_value: torch.Tensor + raw_sdpa_output: torch.Tensor + post_transpose_output: torch.Tensor + gated_output: torch.Tensor + token_mixer: torch.Tensor + + +class Isaac05Qwen36Attention(qwen35_modeling.Qwen3_5MoeAttention): + """Qwen3.6 text attention using the Isaac05-qualified explicit-KV SDPA path.""" + + def __init__(self, config: Qwen3_5MoeTextConfig, layer_idx: int) -> None: + super().__init__(config, layer_idx) + self.trace_observer: Callable[[Isaac05Qwen36AttentionTrace], None] | None = None + + def forward( + self, + hidden_states: torch.Tensor, + position_embeddings: tuple[torch.Tensor, torch.Tensor], + attention_mask: torch.Tensor | None, + past_key_values: Any | None = None, + **kwargs: Any, + ) -> tuple[torch.Tensor, None]: + del kwargs + input_shape = hidden_states.shape[:-1] + hidden_shape = (*input_shape, -1, self.head_dim) + + query_states, gate = torch.chunk( + self.q_proj(hidden_states).view(*input_shape, -1, self.head_dim * 2), + 2, + dim=-1, + ) + gate = gate.reshape(*input_shape, -1) + + query_projection = query_states.view(hidden_shape) + key_projection = self.k_proj(hidden_states).view(hidden_shape) + value_projection = self.v_proj(hidden_states).view(hidden_shape) + query_norm = self.q_norm(query_projection) + key_norm = self.k_norm(key_projection) + cos, sin = position_embeddings + rotary_query, rotary_key = qwen35_modeling.apply_rotary_pos_emb( + query_norm, + key_norm, + cos, + sin, + unsqueeze_dim=2, + ) + sdpa_query = rotary_query.transpose(1, 2) + if past_key_values is not None: + cached_key, cached_value = past_key_values.update( + rotary_key.transpose(1, 2), + value_projection.transpose(1, 2), + self.layer_idx, + ) + repeated_key = qwen35_modeling.repeat_kv(cached_key, self.num_key_value_groups) + repeated_value = qwen35_modeling.repeat_kv(cached_value, self.num_key_value_groups) + else: + repeated_key = _isaac05_layout_repeat_kv( + rotary_key, + self.num_key_value_groups, + ).transpose(1, 2) + repeated_value = _isaac05_layout_repeat_kv( + value_projection, + self.num_key_value_groups, + ).transpose(1, 2) + + sdpa = _sdpa_with_repeated_kv( + self, + sdpa_query, + repeated_key, + repeated_value, + attention_mask, + dropout=0.0 if not self.training else self.attention_dropout, + scaling=self.scaling, + ) + post_transpose_output = sdpa.output + attention_output = post_transpose_output.reshape(*input_shape, -1).contiguous() + gated_output = attention_output * torch.sigmoid(gate) + token_mixer = self.o_proj(gated_output) + if self.trace_observer is not None: + self.trace_observer( + Isaac05Qwen36AttentionTrace( + query_projection=query_projection, + query_gate=gate, + query_norm=query_norm, + key_projection=key_projection, + key_norm=key_norm, + value_projection=value_projection, + rotary_query=rotary_query, + rotary_key=rotary_key, + sdpa_query=sdpa_query, + repeated_key=sdpa.repeated_key, + repeated_value=sdpa.repeated_value, + raw_sdpa_output=sdpa.raw_output, + post_transpose_output=post_transpose_output, + gated_output=gated_output, + token_mixer=token_mixer, + ) + ) + return token_mixer, None + + +class Isaac05Qwen36TextRotaryEmbedding(nn.Module): + """Isaac05 mRoPE with model-dtype inverse-frequency quantization. + + Isaac05 registers ``inv_freq`` on the backbone before casting the complete + model to its inference dtype. Its phase calculation then promotes that + already-quantized table back to FP32. Keeping this derived buffer + nonpersistent preserves the HF checkpoint tensor ABI, while the loader + places it using the same dtype as the checkpoint parameters. + """ + + precision_contract = ISAAC05_ROTARY_PRECISION + + def __init__(self, config: Qwen3_5MoeTextConfig) -> None: + super().__init__() + rope_parameters = config.rope_parameters + if rope_parameters.get("rope_type") != "default": + raise ValueError("ISAAC05 Isaac05 rotary precision only supports default RoPE") + head_dim = getattr(config, "head_dim", None) or config.hidden_size // config.num_attention_heads + rotary_dim = int(head_dim * rope_parameters.get("partial_rotary_factor", 1.0)) + if rotary_dim <= 0 or rotary_dim % 2 != 0: + raise ValueError(f"ISAAC05 rotary dimension must be positive and even, got {rotary_dim}") + self.rotary_dim = rotary_dim + self.theta = float(rope_parameters["rope_theta"]) + inv_freq = self._build_inv_freq(device=None) + # The trained Isaac05 checkpoint owns this BF16 quantization regardless + # of an optional FP32 debug runtime requested by the caller. + self.register_buffer("inv_freq", inv_freq, persistent=False) + self.mrope_section = list(rope_parameters.get("mrope_section", [11, 11, 10])) + if sum(self.mrope_section) != rotary_dim // 2: + raise ValueError( + "ISAAC05 mrope_section must sum to half the rotary dimension: " + f"sum={sum(self.mrope_section)}, rotary_dim={rotary_dim}" + ) + + def _build_inv_freq(self, *, device: torch.device | None) -> torch.Tensor: + positions = torch.arange(0, self.rotary_dim, 2, dtype=torch.float32, device=device) + inv_freq = 1.0 / (self.theta ** (positions / self.rotary_dim)) + return inv_freq.to(torch.bfloat16) + + def reset_nonpersistent_buffer(self) -> None: + self.inv_freq = self._build_inv_freq(device=self.inv_freq.device) + + @torch.no_grad() + def forward( + self, + hidden_states: torch.Tensor, + position_ids: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor]: + if position_ids.ndim == 2: + position_ids = position_ids[None, ...].expand(3, position_ids.shape[0], -1) + if position_ids.ndim != 3 or position_ids.shape[0] != 3: + raise ValueError( + f"ISAAC05 position_ids must have shape [3, batch, length], got {tuple(position_ids.shape)}" + ) + + # Match Isaac05 precompute_cos_sin_3d exactly: the model-dtype table is + # promoted to FP32 before phase construction, then trig results are cast + # back to the activation dtype before rotary multiplication. + inv_freq = self.inv_freq.to(device=position_ids.device, dtype=torch.float32) + phases = position_ids.float().unsqueeze(-1) * inv_freq.view(1, 1, 1, -1) + interleaved = phases[0].clone() + for axis, offset in enumerate((1, 2), start=1): + length = int(self.mrope_section[axis]) * 3 + interleaved[..., slice(offset, length, 3)] = phases[axis, ..., slice(offset, length, 3)] + embedding = torch.cat((interleaved, interleaved), dim=-1) + return embedding.cos().to(hidden_states.dtype), embedding.sin().to(hidden_states.dtype) + + +class Isaac05Qwen36VisionAttention(qwen35_modeling.Qwen3_5MoeVisionAttention): + """Packed vision attention using the same explicit-KV SDPA primitive.""" + + def forward( + self, + hidden_states: torch.Tensor, + cu_seqlens: torch.Tensor, + rotary_pos_emb: torch.Tensor | None = None, + position_embeddings: tuple[torch.Tensor, torch.Tensor] | None = None, + **kwargs: Any, + ) -> torch.Tensor: + del rotary_pos_emb, kwargs + if position_embeddings is None: + raise ValueError("ISAAC05 vision attention requires precomputed position embeddings") + sequence_length = hidden_states.shape[0] + query_states, key_states, value_states = ( + self.qkv(hidden_states).reshape(sequence_length, 3, self.num_heads, -1).permute(1, 0, 2, 3).unbind(0) + ) + cos, sin = position_embeddings + query_states, key_states = qwen35_modeling.apply_rotary_pos_emb_vision( + query_states, + key_states, + cos, + sin, + ) + query_states = query_states.transpose(0, 1).unsqueeze(0) + key_states = key_states.transpose(0, 1).unsqueeze(0) + value_states = value_states.transpose(0, 1).unsqueeze(0) + + lengths = (cu_seqlens[1:] - cu_seqlens[:-1]).tolist() + if not lengths or any(length <= 0 for length in lengths) or sum(lengths) != sequence_length: + raise ValueError("ISAAC05 vision cu_seqlens must describe positive chunks covering every token") + splits = [torch.split(tensor, lengths, dim=2) for tensor in (query_states, key_states, value_states)] + outputs = [ + explicit_repeat_kv_sdpa( + self, + query, + key, + value, + None, + dropout=0.0 if not self.training else self.attention_dropout, + scaling=self.scaling, + is_causal=False, + ) + for query, key, value in zip(*splits, strict=True) + ] + attention_output = torch.cat(outputs, dim=1) + return self.proj(attention_output.reshape(sequence_length, -1).contiguous()) + + +class Isaac05Qwen36VisionModel(Qwen3_5MoeVisionModel): + """Qwen3.5 vision stack with Isaac05-order positional interpolation.""" + + def fast_pos_embed_interpolate(self, grid_thw: torch.Tensor) -> torch.Tensor: + grid_thw_list = grid_thw.tolist() + grid_ts = [row[0] for row in grid_thw_list] + grid_hs = [row[1] for row in grid_thw_list] + grid_ws = [row[2] for row in grid_thw_list] + device = self.pos_embed.weight.device + + idx_list = [[] for _ in range(4)] + weight_list = [[] for _ in range(4)] + for _t, height, width in grid_thw_list: + height_indices = torch.linspace(0, self.num_grid_per_side - 1, height) + width_indices = torch.linspace(0, self.num_grid_per_side - 1, width) + height_floor = height_indices.int() + width_floor = width_indices.int() + height_ceil = (height_floor + 1).clip(max=self.num_grid_per_side - 1) + width_ceil = (width_floor + 1).clip(max=self.num_grid_per_side - 1) + height_delta = height_indices - height_floor + width_delta = width_indices - width_floor + base_height = height_floor * self.num_grid_per_side + base_height_ceil = height_ceil * self.num_grid_per_side + + indices = [ + (base_height[None].T + width_floor[None]).flatten(), + (base_height[None].T + width_ceil[None]).flatten(), + (base_height_ceil[None].T + width_floor[None]).flatten(), + (base_height_ceil[None].T + width_ceil[None]).flatten(), + ] + weights = [ + ((1 - height_delta)[None].T * (1 - width_delta)[None]).flatten(), + ((1 - height_delta)[None].T * width_delta[None]).flatten(), + (height_delta[None].T * (1 - width_delta)[None]).flatten(), + (height_delta[None].T * width_delta[None]).flatten(), + ] + for index in range(4): + idx_list[index].extend(indices[index].tolist()) + weight_list[index].extend(weights[index].tolist()) + + index_tensor = torch.tensor(idx_list, dtype=torch.long, device=device) + weight_tensor = torch.tensor( + weight_list, + dtype=self.pos_embed.weight.dtype, + device=device, + ) + interpolated = self.pos_embed(index_tensor).to(device) * weight_tensor[:, :, None] + # Isaac05 performs one BF16 reduction; chained additions round at three + # different boundaries and diverge at production image resolutions. + patch_pos_embeds = interpolated.sum(dim=0) + patch_pos_embeds = patch_pos_embeds.split( + [height * width for height, width in zip(grid_hs, grid_ws, strict=True)] + ) + + permuted = [] + merge_size = self.config.spatial_merge_size + for pos_embed, frames, height, width in zip( + patch_pos_embeds, + grid_ts, + grid_hs, + grid_ws, + strict=True, + ): + pos_embed = pos_embed.repeat(frames, 1) + pos_embed = ( + pos_embed.view( + frames, + height // merge_size, + merge_size, + width // merge_size, + merge_size, + -1, + ) + .permute(0, 1, 3, 2, 4, 5) + .flatten(0, 4) + ) + permuted.append(pos_embed) + return torch.cat(permuted) + + +class Isaac05Qwen36DecoderLayer(Qwen3_5MoeDecoderLayer): + """Stock Qwen hybrid token mixer with the Isaac05 null-MoE block.""" + + def __init__(self, config: Qwen3_5MoeTextConfig, layer_idx: int) -> None: + # Avoid constructing and then discarding a stock sparse-MoE block. + GradientCheckpointingLayer.__init__(self) + Isaac05NullMoeContract.from_text_config(config) + self.hidden_size = config.hidden_size + self.layer_type = config.layer_types[layer_idx] + if self.layer_type == "linear_attention": + self.linear_attn = Isaac05Qwen36GatedDeltaNet(config, layer_idx) + elif self.layer_type == "full_attention": + self.self_attn = Isaac05Qwen36Attention(config, layer_idx) + else: + raise ValueError(f"Unsupported ISAAC05 layer type {self.layer_type!r} at index {layer_idx}") + self.mlp = Isaac05NullSparseMoeBlock(config) + self.input_layernorm = Qwen3_5MoeRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + self.post_attention_layernorm = Qwen3_5MoeRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + + +class Isaac05Qwen36TextModel(Qwen3_5MoeTextModel): + """Qwen3.6 hybrid text stack constructed directly with null-aware layers.""" + + _no_split_modules = ["Isaac05Qwen36DecoderLayer"] + + def __init__(self, config: Qwen3_5MoeTextConfig) -> None: + Qwen3_5MoePreTrainedModel.__init__(self, config) + Isaac05NullMoeContract.from_text_config(config) + full_attention_interval = getattr(config, "full_attention_interval", 4) + if isinstance(full_attention_interval, bool) or not isinstance(full_attention_interval, int): + raise ValueError("ISAAC05 Qwen3.6 full_attention_interval must be an integer") + if full_attention_interval <= 0: + raise ValueError("ISAAC05 Qwen3.6 full_attention_interval must be positive") + expected_layer_types = [ + "full_attention" if (layer_index + 1) % full_attention_interval == 0 else "linear_attention" + for layer_index in range(config.num_hidden_layers) + ] + if config.layer_types != expected_layer_types: + raise ValueError( + f"ISAAC05 Qwen3.6 requires full attention every {full_attention_interval} layers " + "and linear attention elsewhere" + ) + self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, config.pad_token_id) + self.layers = nn.ModuleList( + [Isaac05Qwen36DecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)] + ) + self.norm = Qwen3_5MoeRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + self.rotary_emb = Isaac05Qwen36TextRotaryEmbedding(config) + self.gradient_checkpointing = False + self.post_init() + + +def reset_isaac05_qwen36_nonpersistent_buffers(model: nn.Module) -> None: + """Rebuild derived buffers after Transformers meta-device checkpoint loading.""" + for module in model.modules(): + if isinstance(module, Isaac05NullTopKRouter): + module.reset_nonpersistent_buffer() + elif isinstance(module, Isaac05Qwen36TextRotaryEmbedding): + module.reset_nonpersistent_buffer() + elif isinstance(module, qwen35_modeling.Qwen3_5MoeVisionRotaryEmbedding): + positions = torch.arange(0, module.dim, 2, dtype=torch.float32, device=module.inv_freq.device) + module.inv_freq = 1.0 / (module.theta ** (positions / module.dim)) + + +class Isaac05Qwen36Model(Qwen3_5MoeModel): + """Multimodal Qwen3.6 backbone exposing the existing Qwen VLA interface.""" + + _no_split_modules = ["Isaac05Qwen36DecoderLayer", "Qwen3_5MoeVisionBlock"] + + def __init__(self, config: Isaac05Qwen36MoeConfig) -> None: + Qwen3_5MoePreTrainedModel.__init__(self, config) + Isaac05NullMoeContract.from_text_config(config.text_config) + self.visual = Isaac05Qwen36VisionModel._from_config(config.vision_config) + for block in self.visual.blocks: + block.attn = Isaac05Qwen36VisionAttention(config.vision_config) + self.language_model = Isaac05Qwen36TextModel._from_config(config.text_config) + self.rope_deltas = None + self.post_init() + + +__all__ = [ + "Isaac05NullMoeBranches", + "Isaac05NullMoeContract", + "Isaac05NullDispatchTrace", + "Isaac05NullRoutingOutput", + "Isaac05NullSparseMoeBlock", + "Isaac05NullTopKRouter", + "Isaac05Qwen36DecoderLayer", + "Isaac05Qwen36Attention", + "Isaac05Qwen36AttentionTrace", + "Isaac05Qwen36GatedDeltaNet", + "Isaac05Qwen36Model", + "Isaac05Qwen36TextModel", + "Isaac05Qwen36TextRotaryEmbedding", + "Isaac05Qwen36VisionAttention", + "Isaac05Qwen36VisionModel", + "Isaac05Qwen36MoeConfig", + "ISAAC05_ROTARY_PRECISION", + "deterministic_token_segment_sum", + "explicit_repeat_kv_sdpa", + "reset_isaac05_qwen36_nonpersistent_buffers", +] diff --git a/policy_inference_recipe.json b/policy_inference_recipe.json new file mode 100644 index 0000000000000000000000000000000000000000..7c881a507c42b4439d5b462c0eee2b80c8ae7a88 --- /dev/null +++ b/policy_inference_recipe.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85e5f52d50a3c89b6ff3adc594189bde3e1d345fbecc7bda082561308b3ee905 +size 32810275 diff --git a/policy_normalization.json b/policy_normalization.json new file mode 100644 index 0000000000000000000000000000000000000000..78dc160feab650e23d6f1bf05be5e0dff2496a00 --- /dev/null +++ b/policy_normalization.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f829a6f6f72be41196820a1591fb8e7047d9ab674f77a0bec1ba53713ac0c1dc +size 11752281 diff --git a/policy_state_contracts.json b/policy_state_contracts.json new file mode 100644 index 0000000000000000000000000000000000000000..a8f8f02aba740df25fd48f17605a6fa78047c63c --- /dev/null +++ b/policy_state_contracts.json @@ -0,0 +1,18753 @@ +{ + "datasets": { + "AIRBOT_MMK2_beauty_sponge_and_cake_to_place": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_beauty_sponge_and_cake_to_place", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_beauty_sponge_and_cake_to_place", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_bowl_storage_pepper": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_bowl_storage_pepper", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_bowl_storage_pepper", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_boxs_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_boxs_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_boxs_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_building_block_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_building_block_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_building_block_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_cake_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_cake_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_cake_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_chop_the_scallions": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_chop_the_scallions", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_chop_the_scallions", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_clean_the_desktop": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_clean_the_desktop", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_clean_the_desktop", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_clean_the_desktop_a": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_clean_the_desktop_a", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_clean_the_desktop_a", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_close_the_computer": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_close_the_computer", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_close_the_computer", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_cup_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_cup_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_cup_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_desktop_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_desktop_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_desktop_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_diamond_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_diamond_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_diamond_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_double-sided_tape_placement": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_double-sided_tape_placement", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_double-sided_tape_placement", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_egg_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_egg_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_egg_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_food_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_food_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_food_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_item_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_item_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_item_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_lemon_and_orange_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_lemon_and_orange_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_lemon_and_orange_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_medicine_bottle_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_medicine_bottle_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_medicine_bottle_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_mobile_calculator_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_mobile_calculator_box", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_mobile_calculator_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_mobile_car": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_mobile_car", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_mobile_car", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_mobile_phone_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_mobile_phone_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_mobile_phone_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_open_notebook": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_open_notebook", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_open_notebook", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_organize_and_place_books": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_organize_and_place_books", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_organize_and_place_books", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_organize_books": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_organize_books", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_organize_books", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_cookies_and_beer": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_cookies_and_beer", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_cookies_and_beer", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_basin": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_basin", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_basin", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_blue_and_purple_blocks": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_blue_and_purple_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_blue_and_purple_blocks", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_books": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_books", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_books", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_building_blocks": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_building_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_building_blocks", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_cake": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_cake", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_cake", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_glasses_case_and_gold_bars": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_glasses_case_and_gold_bars", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_glasses_case_and_gold_bars", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_network_cable_and_mouse_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_network_cable_and_mouse_box", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_network_cable_and_mouse_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_paper_drawer": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_paper_drawer", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_paper_drawer", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_piano_and_the_needle-nose_pliers": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_piano_and_the_needle-nose_pliers", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_piano_and_the_needle-nose_pliers", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_pliers_and_wallpaper_knife": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_pliers_and_wallpaper_knife", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_pliers_and_wallpaper_knife", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_shark_toys_and_gold_bars": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_shark_toys_and_gold_bars", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_shark_toys_and_gold_bars", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_small_bowl_of_canned_food": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_small_bowl_of_canned_food", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_small_bowl_of_canned_food", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_sponge_and_wet_wipes": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_sponge_and_wet_wipes", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_sponge_and_wet_wipes", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_umbrella_and_the_ruler": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_umbrella_and_the_ruler", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_umbrella_and_the_ruler", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_place_the_yellow_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_place_the_yellow_block", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_place_the_yellow_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_play_the_guitar": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_play_the_guitar", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_play_the_guitar", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_potato_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_potato_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_potato_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_pour_out_the_beauty_blender": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_pour_out_the_beauty_blender", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_pour_out_the_beauty_blender", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_pull_the_syringe_piston": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_pull_the_syringe_piston", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_pull_the_syringe_piston", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_pumpkin_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_pumpkin_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_pumpkin_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_push_building_blocks": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_push_building_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_push_building_blocks", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_push_piston": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_push_piston", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_push_piston", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_screw_the_bottle_cap": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_screw_the_bottle_cap", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_screw_the_bottle_cap", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_square_arrangement": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_square_arrangement", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_square_arrangement", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_stacking_blocks": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_stacking_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_stacking_blocks", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_box_for_mouse_and_sponge": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_box_for_mouse_and_sponge", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_box_for_mouse_and_sponge", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_computer_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_computer_box", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_computer_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_for_building_blocks_and_beauty_sponges": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_for_building_blocks_and_beauty_sponges", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_for_building_blocks_and_beauty_sponges", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_item": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_item", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_item", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_remote_control_clip_box_water_bottle": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_remote_control_clip_box_water_bottle", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_remote_control_clip_box_water_bottle", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_rubiks_cube_and_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_rubiks_cube_and_cup", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_rubiks_cube_and_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_spoon": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_spoon", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_spoon", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_tissue_and_milk_carton": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_tissue_and_milk_carton", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_tissue_and_milk_carton", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_tissue_paper": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_tissue_paper", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_tissue_paper", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_toy_cars_and_cookies": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_toy_cars_and_cookies", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_toy_cars_and_cookies", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_storage_wet_tissue_and_building_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_storage_wet_tissue_and_building_block", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_storage_wet_tissue_and_building_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_store_beauty_blender_and_building_blocks": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_store_beauty_blender_and_building_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_store_beauty_blender_and_building_blocks", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_store_coffee_cups": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_store_coffee_cups", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_store_coffee_cups", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_store_peaches_and_pears": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_store_peaches_and_pears", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_store_peaches_and_pears", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_store_pomegranates_and_mangoes": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_store_pomegranates_and_mangoes", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_store_pomegranates_and_mangoes", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_store_wet_wipes_and_bowls": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_store_wet_wipes_and_bowls", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_store_wet_wipes_and_bowls", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_take_down_paper_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_take_down_paper_cup", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_take_down_paper_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_take_down_umbrella_and_mineral_water": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_take_down_umbrella_and_mineral_water", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_take_down_umbrella_and_mineral_water", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_take_the_book": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_take_the_book", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_take_the_book", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_the_cup_is_put_into_the_bucket": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_the_cup_is_put_into_the_bucket", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_the_cup_is_put_into_the_bucket", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AIRBOT_MMK2_toy_storage": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AIRBOT_MMK2_toy_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AIRBOT_MMK2_toy_storage", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "AgiBot-g1_battery_storage_c": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_battery_storage_c", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_battery_storage_c", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_box_storage_a": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_box_storage_a", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_box_storage_a", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_box_storage_c": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_box_storage_c", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_box_storage_c", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_box_storage_e": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_box_storage_e", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_box_storage_e", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_box_storage_tool": { + "contract_hash": "f224eee5c68d27bc0a49f06be663f285fdd656ab19e074d10b5a4d28fc17040c", + "contract_version": 1, + "deployment_profile_hash": "33b05be8da1ae40c9afc6e425792634354473f246286f76f1d9a2f668ebf6312", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_box_storage_tool", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_box_storage_tool", + "objective": "Flow" + } + ], + "target_dim": 17 + }, + "AgiBot-g1_mobile_accessory_storage_box_a": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_a", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_a", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_mobile_accessory_storage_box_c": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_c", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_c", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_mobile_accessory_storage_box_d": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_d", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_d", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_mobile_accessory_storage_box_e": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_e", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_e", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_mobile_accessory_storage_box_f": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_f", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_mobile_accessory_storage_box_f", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_remove_the_accessory": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_remove_the_accessory", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_remove_the_accessory", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_right_capture_part": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_right_capture_part", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_right_capture_part", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_robotic_arm_picks_up_battery": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_robotic_arm_picks_up_battery", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_robotic_arm_picks_up_battery", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_robotic_arm_picks_up_parts": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_robotic_arm_picks_up_parts", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_robotic_arm_picks_up_parts", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "AgiBot-g1_tool_storage": { + "contract_hash": "7bcbd5c1f1cef972e1cc0217a3b0feaa97afd1140e24d1932a73c88e44d50709", + "contract_version": 1, + "deployment_profile_hash": "fbe7d2d7e9f2b9e22b2908468f4df5cf0eb49e56b463794bb1b5b6c0c1619efa", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "AgiBot-g1_tool_storage", + "objective": "FAST" + }, + { + "normalization_scope": "AgiBot-g1_tool_storage", + "objective": "Flow" + } + ], + "target_dim": 41 + }, + "Agilex_Cobot_Magic_Agilex_Cobot_Magic_move_object": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_Agilex_Cobot_Magic_move_object", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_Agilex_Cobot_Magic_move_object", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_classify_objects_eight": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_classify_objects_eight", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_classify_objects_eight", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_classify_objects_six": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_classify_objects_six", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_classify_objects_six", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_close_drawer_bottom": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_bottom", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_bottom", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_close_drawer_top": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_top", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_top", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_close_drawer_upper": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_upper", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_close_drawer_upper", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_connect_block": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_connect_block", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_connect_block", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board_left": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_left", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_left", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board_left_side": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_left_side", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_left_side", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board_passing_left_to_right": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_passing_left_to_right", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_passing_left_to_right", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board_passing_right_to_left": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_passing_right_to_left", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_passing_right_to_left", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_erase_board_right": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_right", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_erase_board_right", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_jeans_shorts_children_s": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_jeans_shorts_children_s", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_jeans_shorts_children_s", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_short_sleeve_black": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_short_sleeve_black", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_short_sleeve_black", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_shorts_khaki": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_shorts_khaki", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_shorts_khaki", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_towel": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_towel_blue_tray": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_blue_tray", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_blue_tray", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_towel_grey_tray": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_grey_tray", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_grey_tray", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_towel_pink_tray": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_pink_tray", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_pink_tray", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_fold_towel_yellow_tray": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_yellow_tray", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_fold_towel_yellow_tray", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse_pen": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse_pen_black_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_black_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_black_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse_pen_green_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_green_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_green_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse_pen_khaki_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_khaki_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_khaki_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_mouse_pen_red_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_red_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_mouse_pen_red_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_object_beige_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_beige_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_beige_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_object_black_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_black_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_black_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_object_green_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_green_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_green_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_object_red_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_red_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_object_red_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_move_pencil_sharpener": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_move_pencil_sharpener", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_move_pencil_sharpener", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_open_drawer_bottom": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_open_drawer_bottom", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_open_drawer_bottom", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_organize_test_tube": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_organize_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_organize_test_tube", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_left_to_right_black_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_black_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_black_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_left_to_right_green_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_green_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_green_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_left_to_right_khaki_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_khaki_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_khaki_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_left_to_right_white_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_white_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_left_to_right_white_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_right_to_left_black_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_black_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_black_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_right_to_left_green_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_green_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_green_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_right_to_left_khaki_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_khaki_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_khaki_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_right_to_left_red_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_red_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_red_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pass_object_right_to_left_white_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_white_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pass_object_right_to_left_white_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_pour_drink_bottle_cup": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_pour_drink_bottle_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_pour_drink_bottle_cup", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_bread_basket": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_bread_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_bread_basket", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_fruit_bowl": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_fruit_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_fruit_bowl", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_lemon_mango": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_lemon_mango", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_lemon_mango", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_object": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_object_closest": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_closest", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_closest", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_object_closest_apple": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_closest_apple", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_closest_apple", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_object_left": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_left", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_left", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_object_red_tablecloth": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_red_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_object_red_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_orange_basket_left": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_basket_left", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_basket_left", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_orange_basket_right": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_basket_right", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_basket_right", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_orange_white_bag": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_white_bag", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_orange_white_bag", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_peach_brown_bag": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_brown_bag", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_brown_bag", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_peach_left": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_left", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_left", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_peach_right": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_right", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_right", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Cobot_Magic_storage_peach_white_bag": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_white_bag", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Cobot_Magic_storage_peach_white_bag", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Agilex_Split_Aloha_organize_desk_fail": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "faeb129e3c3b089598833c2ff88b328fd54795fcbb05c35015f5febedd79b164", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Agilex_Split_Aloha_organize_desk_fail", + "objective": "FAST" + }, + { + "normalization_scope": "Agilex_Split_Aloha_organize_desk_fail", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Airbot_MMK2_Airbot_MMK2_stack_bowl": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_stack_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_stack_bowl", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_bell_pepper_bowl": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_bell_pepper_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_bell_pepper_bowl", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_mango_pomegranate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_mango_pomegranate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_mango_pomegranate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_potato_left": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_potato_left", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_potato_left", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_potato_pumpkin": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_potato_pumpkin", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_potato_pumpkin", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_left": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_left", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_left", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_right": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_right", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_Airbot_MMK2_storage_pumpkin_right", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_click_pen": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_click_pen", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_click_pen", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_close_door_left": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_close_door_left", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_close_door_left", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_close_door_right": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_close_door_right", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_close_door_right", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_close_doors": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_close_doors", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_close_doors", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_close_drawer": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_close_drawer", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_close_drawer", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_close_lid": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_close_lid", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_close_lid", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_cover_lid": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_cover_lid", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_cover_lid", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_cut_scallion": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_cut_scallion", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_cut_scallion", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_dial_number": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_dial_number", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_dial_number", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_doodled_line": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_doodled_line", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_doodled_line", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_apple_orange_pomegranate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_apple_orange_pomegranate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_apple_orange_pomegranate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_block_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_block_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_block_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_block_gold_bar_models": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_block_gold_bar_models", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_block_gold_bar_models", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_block_twice": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_block_twice", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_block_twice", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_block_wet_wipes": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_block_wet_wipes", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_block_wet_wipes", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_book_front": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_book_front", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_book_front", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_book_right_side": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_book_right_side", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_book_right_side", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_bottle_tape_measure": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_bottle_tape_measure", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_bottle_tape_measure", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_cake": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_cake", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_cake", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_cake_tape_measure": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_cake_tape_measure", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_cake_tape_measure", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_cup_paper_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_cup_paper_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_cup_paper_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_fake_food": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_fake_food", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_fake_food", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_medicine_bottle": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_medicine_bottle", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_medicine_bottle", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_pan": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_pan", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_pan", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_paper_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_paper_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_paper_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_phone_twice": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_phone_twice", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_phone_twice", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_sword_doll": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_sword_doll", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_sword_doll", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_tennis_racket_ball": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_tennis_racket_ball", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_tennis_racket_ball", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_tub": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_tub", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_tub", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_move_umbrella_tissues": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_move_umbrella_tissues", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_move_umbrella_tissues", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_open_door_left": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_open_door_left", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_open_door_left", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_open_door_right": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_open_door_right", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_open_door_right", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_open_laptop": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_open_laptop", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_open_laptop", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_open_lid": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_open_lid", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_open_lid", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_pass_paper_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_pass_paper_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_pass_paper_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_pick_up_and_place_tub": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_pick_up_and_place_tub", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_pick_up_and_place_tub", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_play_guitar": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_play_guitar", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_play_guitar", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_play_toy_piano": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_play_toy_piano", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_play_toy_piano", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_pour_BBs": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_pour_BBs", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_pour_BBs", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_prepare_tea": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_prepare_tea", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_prepare_tea", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_pull_plunger": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_pull_plunger", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_pull_plunger", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_pull_tissue": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_pull_tissue", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_pull_tissue", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_push_away_book": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_push_away_book", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_push_away_book", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_push_plunger": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_push_plunger", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_push_plunger", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_push_toy_car": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_push_toy_car", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_push_toy_car", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_remove_lid": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_remove_lid", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_remove_lid", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_remove_pen_cap": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_remove_pen_cap", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_remove_pen_cap", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_rotate_cube_face": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_rotate_cube_face", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_rotate_cube_face", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_slide_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_slide_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_slide_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_slide_block_onto_post": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_slide_block_onto_post", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_slide_block_onto_post", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_slide_tape_onto_can": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_slide_tape_onto_can", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_slide_tape_onto_can", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_stack_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_stack_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_stack_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_stack_cubic_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_stack_cubic_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_stack_cubic_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_stack_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_stack_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_stack_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_and_take_cake_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_and_take_cake_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_and_take_cake_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_apple_orange": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_apple_orange", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_apple_orange", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_badminton": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_badminton", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_badminton", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_bell_pepper": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_bell_pepper", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_bell_pepper", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_block_BBs": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_block_BBs", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_block_BBs", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_block_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_block_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_block_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_block_tape_measure": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_block_tape_measure", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_block_tape_measure", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_book": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_book", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_book", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_bottle_part": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_bottle_part", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_bottle_part", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_bowl": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_bowl", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_bowl_wet_wipes": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_bowl_wet_wipes", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_bowl_wet_wipes", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_braised_pork_belly_shrimp": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_braised_pork_belly_shrimp", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_braised_pork_belly_shrimp", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_ice_cream": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_ice_cream", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_ice_cream", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_pan": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_pan", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_pan", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cake_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cake_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cake_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cookie_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cookie_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cookie_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cookie_toy_car": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cookie_toy_car", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cookie_toy_car", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cup_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cup_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cup_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_cup_rubik_s_cube": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_cup_rubik_s_cube", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_cup_rubik_s_cube", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_diamond_ring": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_diamond_ring", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_diamond_ring", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_egg_bowl": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_egg_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_egg_bowl", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_egg_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_egg_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_egg_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_egg_white_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_egg_white_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_egg_white_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_egg_yellow_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_egg_yellow_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_egg_yellow_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_electronics_white_basket": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_electronics_white_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_electronics_white_basket", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_electronics_yellow_baket": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_electronics_yellow_baket", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_electronics_yellow_baket", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_gold_bar_model_shark_doll": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_gold_bar_model_shark_doll", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_gold_bar_model_shark_doll", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_grape": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_grape", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_grape", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_hourglass": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_hourglass", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_hourglass", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_ice_cream": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_ice_cream", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_ice_cream", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_lemon_mango": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_lemon_mango", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_lemon_mango", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_milk_tissue": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_milk_tissue", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_milk_tissue", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_network_cable_paper_box": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_network_cable_paper_box", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_network_cable_paper_box", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_onion_sweet_potato": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_onion_sweet_potato", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_onion_sweet_potato", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_paper_box_sponge": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_paper_box_sponge", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_paper_box_sponge", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_peach_pear": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_peach_pear", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_peach_pear", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_penguin_doll_tiger_doll": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_penguin_doll_tiger_doll", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_penguin_doll_tiger_doll", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_pineapple": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_pineapple", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_pineapple", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_shark_doll": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_shark_doll", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_shark_doll", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_sponge_wet_wipes": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_sponge_wet_wipes", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_sponge_wet_wipes", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_stationery_xylophone": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_stationery_xylophone", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_stationery_xylophone", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_tape_measure_umbrella": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_tape_measure_umbrella", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_tape_measure_umbrella", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_tissues_tub": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_tissues_tub", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_tissues_tub", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_tomato_potato": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_tomato_potato", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_tomato_potato", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_tools": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_tools", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_tools", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storage_tumbler_umbrella": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storage_tumbler_umbrella", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storage_tumbler_umbrella", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_storge_cake_ice_cream": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_storge_cake_ice_cream", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_storge_cake_ice_cream", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_apple_cake_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_apple_cake_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_apple_cake_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_bbs_block_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_bbs_block_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_bbs_block_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_bbs_cake_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_bbs_cake_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_bbs_cake_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_bottle_wet_wipes_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_bottle_wet_wipes_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_bottle_wet_wipes_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_bread_cake_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_bread_cake_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_bread_cake_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_cake_pumpkin_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_cake_pumpkin_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_cake_pumpkin_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_cake_sponge_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_cake_sponge_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_cake_sponge_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_swap_sponge_paper_box_plate": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_swap_sponge_paper_box_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_swap_sponge_paper_box_plate", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_sweep_peaper": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_sweep_peaper", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_sweep_peaper", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_BBs_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_BBs_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_BBs_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_block": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_block", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_block", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_block_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_block_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_block_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_book": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_book", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_book", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_bottle_umbrella": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_bottle_umbrella", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_bottle_umbrella", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_bowl_sponge": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_bowl_sponge", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_bowl_sponge", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_cake_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_cake_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_cake_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_cup": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_cup", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_dog_doll": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_dog_doll", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_dog_doll", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_drink": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_drink", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_drink", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_egg": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_egg", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_egg", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_electronics": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_electronics", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_electronics", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_part_both_hands": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_part_both_hands", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_part_both_hands", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_tissues": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_tissues", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_tissues", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_take_toy_car": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "b9b0fc571ee1ce13a5b55877ae4535be119b53a78ecc19196a99eda71101d738", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_take_toy_car", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_take_toy_car", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_turn_page": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_turn_page", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_turn_page", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_unplug": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_unplug", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_unplug", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Airbot_MMK2_unscrew_bottle_cap": { + "contract_hash": "8d1b4543d6dffe8050a72d00f1475d40d1addee73179af3e89513c24fe31cc9f", + "contract_version": 1, + "deployment_profile_hash": "1bb3f0e0fd25a2686baaa991a733aab5b2ffdc05873f05111833eb485616c88b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Airbot_MMK2_unscrew_bottle_cap", + "objective": "FAST" + }, + { + "normalization_scope": "Airbot_MMK2_unscrew_bottle_cap", + "objective": "Flow" + } + ], + "target_dim": 36 + }, + "Cobot_Magic_box_storage_chopsticks": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_box_storage_chopsticks", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_box_storage_chopsticks", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_cap_the_pen_a": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_cap_the_pen_a", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_cap_the_pen_a", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_catch_the_ball": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_catch_the_ball", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_catch_the_ball", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_classification_of_fruits_and_vegetables": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_classification_of_fruits_and_vegetables", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_classification_of_fruits_and_vegetables", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_classification_of_fruits_and_vegetables_a": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_classification_of_fruits_and_vegetables_a", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_classification_of_fruits_and_vegetables_a", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_classification_of_tableware": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_classification_of_tableware", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_classification_of_tableware", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_clean_blackboard": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_clean_blackboard", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_clean_blackboard", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_clean_up_the_tableware": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_clean_up_the_tableware", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_clean_up_the_tableware", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_clear_the_desktop": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_clear_the_desktop", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_clear_the_desktop", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_close_book": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_close_book", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_close_book", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_close_button": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_close_button", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_close_button", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_cube_reset": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_cube_reset", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_cube_reset", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_cut_banana": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_cut_banana", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_cut_banana", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_desktop_organization": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "abfda9fb7c902a8a45d18e2c7669bbe7c1305a2a7595fb137dbf69dd722899b2", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_desktop_organization", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_desktop_organization", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_drawer_storage_mineral_water": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_drawer_storage_mineral_water", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_drawer_storage_mineral_water", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_fold_the_towel": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_fold_the_towel", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_fold_the_towel", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_fold_towel_a": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_fold_towel_a", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_fold_towel_a", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_make_fruit_salad": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_make_fruit_salad", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_make_fruit_salad", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_mobile_cube": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_mobile_cube", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_mobile_cube", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_mobile_cube_blackboard": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_mobile_cube_blackboard", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_mobile_cube_blackboard", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_beverage": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_beverage", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_beverage", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_plate": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_plate", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_the_ball": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_ball", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_ball", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_the_ball_and_the_cube_block": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_ball_and_the_cube_block", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_ball_and_the_cube_block", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_the_ball_interference": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_ball_interference", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_ball_interference", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_move_the_bread": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_bread", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_bread", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_move_the_cup": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_cup", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_cup", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_move_the_plate": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_plate", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_move_the_small_ball": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_move_the_small_ball", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_move_the_small_ball", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_movethe_position_of_the_bluetooth": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_movethe_position_of_the_bluetooth", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_movethe_position_of_the_bluetooth", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_open_the_shoebox": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_open_the_shoebox", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_open_the_shoebox", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_place_square_pyramid": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_place_square_pyramid", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_place_square_pyramid", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_place_the_cube_block": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_place_the_cube_block", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_place_the_cube_block", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_place_the_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_place_the_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_place_the_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_plate_storage_apple": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_plate_storage_apple", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_plate_storage_apple", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_plate_storage_bread": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_plate_storage_bread", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_plate_storage_bread", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_plate_storaje_baozi": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_plate_storaje_baozi", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_plate_storaje_baozi", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_pour_drink": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_pour_drink", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_pour_drink", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_pour_water_a": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_pour_water_a", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_pour_water_a", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_pour_water_bottle": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_pour_water_bottle", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_pour_water_bottle", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_prepare_breakfast": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_prepare_breakfast", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_prepare_breakfast", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_pull_zipper": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_pull_zipper", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_pull_zipper", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_pushing_magnet": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_pushing_magnet", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_pushing_magnet", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_put_in_the_pear": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_put_in_the_pear", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_put_in_the_pear", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_put_the_building_block_on_the_table": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_put_the_building_block_on_the_table", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_put_the_building_block_on_the_table", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_storage_plate": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_storage_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_storage_plate", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_take_out_a_pen_from_the_pen_holder": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "84f833204b849988137847ba123c9d1ab48ccbdef90c567dbcdf79fbb845bc17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_take_out_a_pen_from_the_pen_holder", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_take_out_a_pen_from_the_pen_holder", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_take_out_the_bread": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_take_out_the_bread", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_take_out_the_bread", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_take_the_shoes_off_the_shelf": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_take_the_shoes_off_the_shelf", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_take_the_shoes_off_the_shelf", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_the_plate_holds_the_fruit": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_the_plate_holds_the_fruit", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_the_plate_holds_the_fruit", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_the_plate_holds_the_vegetables": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_the_plate_holds_the_vegetables", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_the_plate_holds_the_vegetables", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_turn_off_the_desk_lamp": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_turn_off_the_desk_lamp", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_turn_off_the_desk_lamp", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_turn_on_the_bulb": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "eaa467cbf7cdb23d80e70d85b4a0f5796e8a148ff8c41246a65e2ed954bbddbd", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_turn_on_the_bulb", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_turn_on_the_bulb", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_turn_on_the_desk_lamp": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_turn_on_the_desk_lamp", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_turn_on_the_desk_lamp", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_twist_bottle_cap": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_twist_bottle_cap", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_twist_bottle_cap", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Cobot_Magic_vase_storage_flower": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "a903b378bb003d629a46f04a223e6e5dcc435a2126312c823304e087e45e6c2e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_vase_storage_flower", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_vase_storage_flower", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Cobot_Magic_water_bottle_storage": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Cobot_Magic_water_bottle_storage", + "objective": "FAST" + }, + { + "normalization_scope": "Cobot_Magic_water_bottle_storage", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "G1_WBT_Brainco_Collect_Plates_Into_Dishwasher": { + "contract_hash": "8fec5da6e0533a896400d6bfc5b0004b22b787842c804b1788de3192caa505d3", + "contract_version": 1, + "deployment_profile_hash": "db4e4a1c7a5694474c666a4b2e45f07a6250e8de81f4302e19a15103992f3b5f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1_WBT_Brainco_Collect_Plates_Into_Dishwasher", + "objective": "FAST" + }, + { + "normalization_scope": "G1_WBT_Brainco_Collect_Plates_Into_Dishwasher", + "objective": "Flow" + } + ], + "target_dim": 60 + }, + "G1_WBT_Brainco_Make_The_Bed": { + "contract_hash": "8fec5da6e0533a896400d6bfc5b0004b22b787842c804b1788de3192caa505d3", + "contract_version": 1, + "deployment_profile_hash": "db4e4a1c7a5694474c666a4b2e45f07a6250e8de81f4302e19a15103992f3b5f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1_WBT_Brainco_Make_The_Bed", + "objective": "FAST" + }, + { + "normalization_scope": "G1_WBT_Brainco_Make_The_Bed", + "objective": "Flow" + } + ], + "target_dim": 60 + }, + "G1_WBT_Brainco_Pickup_Pillow": { + "contract_hash": "8fec5da6e0533a896400d6bfc5b0004b22b787842c804b1788de3192caa505d3", + "contract_version": 1, + "deployment_profile_hash": "db4e4a1c7a5694474c666a4b2e45f07a6250e8de81f4302e19a15103992f3b5f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1_WBT_Brainco_Pickup_Pillow", + "objective": "FAST" + }, + { + "normalization_scope": "G1_WBT_Brainco_Pickup_Pillow", + "objective": "Flow" + } + ], + "target_dim": 60 + }, + "G1_WBT_Inspire_Put_Clothes_Into_Basket": { + "contract_hash": "8fec5da6e0533a896400d6bfc5b0004b22b787842c804b1788de3192caa505d3", + "contract_version": 1, + "deployment_profile_hash": "db4e4a1c7a5694474c666a4b2e45f07a6250e8de81f4302e19a15103992f3b5f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1_WBT_Inspire_Put_Clothes_Into_Basket", + "objective": "FAST" + }, + { + "normalization_scope": "G1_WBT_Inspire_Put_Clothes_Into_Basket", + "objective": "Flow" + } + ], + "target_dim": 60 + }, + "G1_WBT_Inspire_Put_Clothes_into_Washing_Machine": { + "contract_hash": "8fec5da6e0533a896400d6bfc5b0004b22b787842c804b1788de3192caa505d3", + "contract_version": 1, + "deployment_profile_hash": "db4e4a1c7a5694474c666a4b2e45f07a6250e8de81f4302e19a15103992f3b5f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1_WBT_Inspire_Put_Clothes_into_Washing_Machine", + "objective": "FAST" + }, + { + "normalization_scope": "G1_WBT_Inspire_Put_Clothes_into_Washing_Machine", + "objective": "Flow" + } + ], + "target_dim": 60 + }, + "G1edu-u3_basket_storage_apple": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "e4c1d70c72fe813c872d2b52968971ad6cad58309b9c774fb10a6bd2a728af16", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_basket_storage_apple", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_basket_storage_apple", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_basket_storage_apple_b": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_basket_storage_apple_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_basket_storage_apple_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_bowl_storage_grape_singletry": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_bowl_storage_grape_singletry", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_bowl_storage_grape_singletry", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_food_storage": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "e4c1d70c72fe813c872d2b52968971ad6cad58309b9c774fb10a6bd2a728af16", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_food_storage", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_food_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_little_tray_storage_apple_b": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_little_tray_storage_apple_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_little_tray_storage_apple_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_little_tray_storage_lemon_b": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_little_tray_storage_lemon_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_little_tray_storage_lemon_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_apple_a": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_apple_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_apple_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_apple_b": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_apple_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_apple_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_crumpled_paper_aa": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_crumpled_paper_aa", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_crumpled_paper_aa", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_cup_a": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_cup_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_cup_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_empty_bottle_ab": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_empty_bottle_ab", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_empty_bottle_ab", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_leftover_food_ac": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_leftover_food_ac", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_leftover_food_ac", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_metal_bowl_aa": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_metal_bowl_aa", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_metal_bowl_aa", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_metal_bowl_ab": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_metal_bowl_ab", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_metal_bowl_ab", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_plastic_bowl_ac": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_plastic_bowl_ac", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_plastic_bowl_ac", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_plastic_bowl_ad": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_plastic_bowl_ad", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_plastic_bowl_ad", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_bottled_water_a": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_bottled_water_as": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_as", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_as", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_bottled_water_b": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_bottled_water_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_bread_az": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_bread_az", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_bread_az", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_lemon_a": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_lemon_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_lemon_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_lemon_at": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_lemon_at", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_lemon_at", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_tissue_box_ao": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_tissue_box_ao", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_tissue_box_ao", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pick_up_the_toy_ai": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pick_up_the_toy_ai", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pick_up_the_toy_ai", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_apple_c": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_apple_c", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_apple_c", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_bottle_c": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_bottle_c", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_bottle_c", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_metal_bowl_ae": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_metal_bowl_ae", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_metal_bowl_ae", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_metal_bowl_af": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_metal_bowl_af", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_metal_bowl_af", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_plastic_bowl_ag": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_plastic_bowl_ag", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_plastic_bowl_ag", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_place_plastic_bowl_ah": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_place_plastic_bowl_ah", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_place_plastic_bowl_ah", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_plate_storage_doll": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "e4c1d70c72fe813c872d2b52968971ad6cad58309b9c774fb10a6bd2a728af16", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_plate_storage_doll", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_plate_storage_doll", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_plate_storage_rabbit_doll": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "c9fcf962e132748801f3636097d3058d8117be206fa5113774909c3b8d6360a1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_plate_storage_rabbit_doll", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_plate_storage_rabbit_doll", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pullBowl_storage_bread_a": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pullBowl_storage_bread_b": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pullBowl_storage_bread_unordered_C": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_C", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_C", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pullBowl_storage_bread_unordered_a": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_pullBowl_storage_bread_unordered_b": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "7d6dff5a282dc51d0c148c53b0d6e9a0a52b1d88dd8d5eeca59c3f40ce3efb8f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_pullBowl_storage_bread_unordered_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_bread_aw": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_bread_aw", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_bread_aw", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_cup_b": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_cup_b", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_cup_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_lemon_af": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_lemon_af", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_lemon_af", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_lemon_on_the_plate_ah": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_lemon_on_the_plate_ah", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_lemon_on_the_plate_ah", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_tissue_box_al": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_tissue_box_al", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_tissue_box_al", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_toy_ap": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_toy_ap", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_toy_ap", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_water_bottle_aq": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_water_bottle_aq", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_water_bottle_aq", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_put_the_water_bottle_on_the_table_d": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_put_the_water_bottle_on_the_table_d", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_put_the_water_bottle_on_the_table_d", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_stack_bowls": { + "contract_hash": "0c63a8d62e234b05373121d261b93c96f0953e490912cafd7ee2a96ed3779fa6", + "contract_version": 1, + "deployment_profile_hash": "e4c1d70c72fe813c872d2b52968971ad6cad58309b9c774fb10a6bd2a728af16", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_stack_bowls", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_stack_bowls", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "G1edu-u3_tray_storage_lemon_a": { + "contract_hash": "9d71103f537398b49c44f9a7bfb3b86b2143d8b3d447a69c7c13e37827c0f383", + "contract_version": 1, + "deployment_profile_hash": "90107951e52b807134dc1208e291320202d475294be4e7772e063a09c77cfbc4", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "G1edu-u3_tray_storage_lemon_a", + "objective": "FAST" + }, + { + "normalization_scope": "G1edu-u3_tray_storage_lemon_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_arrange_baai_then_brain": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_arrange_baai_then_brain", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_arrange_baai_then_brain", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_fold_towel_twice": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_fold_towel_twice", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_fold_towel_twice", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_right": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_right", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_blue_yellow_right", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_color": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_color", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_color", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_left_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_left_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_left_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_right": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_right", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_blue_right", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_left_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_left_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_left_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_right": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_right", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_mix_red_yellow_right", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_move_mouse": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_move_mouse", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_move_mouse", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_liquid_mrable_bar_counter": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_liquid_mrable_bar_counter", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_liquid_mrable_bar_counter", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_powder_marble_bar_counter": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_powder_marble_bar_counter", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_powder_marble_bar_counter", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_solid": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_solid", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_solid", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water_black_tablecloth": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water_black_tablecloth", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_pour_water_black_tablecloth", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_red": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_red", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_red", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_yellow": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_yellow", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_Galaxea_R1_Lite_toggle_drawer_yellow", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_change_baai_into_brain": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_change_baai_into_brain", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_change_baai_into_brain", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_classify_object_five": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_five", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_five", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_classify_object_four": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_four", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_four", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_classify_object_six": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_six", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_six", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_classify_object_three": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_three", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_classify_object_three", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_mix_blue_yellow_left_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_mix_blue_yellow_left_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_mix_blue_yellow_left_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_mix_blue_yellow_left_small_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_mix_blue_yellow_left_small_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_mix_blue_yellow_left_small_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_mix_color_large_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_mix_color_large_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_mix_color_large_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_mix_color_small_test_tube": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_mix_color_small_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_mix_color_small_test_tube", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_pour_solid_marble_bar_counter": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_pour_solid_marble_bar_counter", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_pour_solid_marble_bar_counter", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_blue_plate": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_blue_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_blue_plate", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_brown_basket": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_basket", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_brown_bowl": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_bowl", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_brown_plate": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_brown_plate", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_dish": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_dish", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_dish", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_gray_plate": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_gray_plate", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_gray_plate", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_pink_bowl": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_pink_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_pink_bowl", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_white_box": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_white_box", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_white_box", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galaxea_R1_Lite_storage_object_yellow_basket": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "bcc11c7889810f3daba45fd12af9d27eafe434ef77bb7df5ffeb528c02c7f2a3", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_yellow_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Galaxea_R1_Lite_storage_object_yellow_basket", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "Galbot_g1_fold_clothe_b": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_fold_clothe_b", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_fold_clothe_b", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_a": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_a", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_a", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_b": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_b", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_b", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_c": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_c", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_c", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_d": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_d", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_d", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_e": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_e", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_e", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_f": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_f", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_f", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_g": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_g", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_g", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_h": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_h", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_h", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_i": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_i", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_i", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "Galbot_g1_steamer_storage_baozi_j": { + "contract_hash": "f821188dd8755c86f331342a63e998c4d9993ac3913aca3660365a40a0757e5f", + "contract_version": 1, + "deployment_profile_hash": "d91839a84c736dc61fb3526a403485af3a97d3cf585f2f825fc565a10fa5b371", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_j", + "objective": "FAST" + }, + { + "normalization_scope": "Galbot_g1_steamer_storage_baozi_j", + "objective": "Flow" + } + ], + "target_dim": 35 + }, + "R1_Lite_boil_water_in_a_kettle": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_boil_water_in_a_kettle", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_boil_water_in_a_kettle", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_build_blocks": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_build_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_build_blocks", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_catch_the_water": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_catch_the_water", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_catch_the_water", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_clean_the_floor": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_clean_the_floor", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_clean_the_floor", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_clean_the_sink": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_clean_the_sink", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_clean_the_sink", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_connect_the_router_cable": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_connect_the_router_cable", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_connect_the_router_cable", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_cook_a_meal": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_cook_a_meal", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_cook_a_meal", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_cover_the_pot_lid": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_cover_the_pot_lid", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_cover_the_pot_lid", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_dispose_of_leftover_food": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_dispose_of_leftover_food", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_dispose_of_leftover_food", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_drawer_storage_hair_dryer": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_drawer_storage_hair_dryer", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_drawer_storage_hair_dryer", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_garbage_disposal": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_garbage_disposal", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_garbage_disposal", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_make_a_landline_call": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_make_a_landline_call", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_make_a_landline_call", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_make_breakfast": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_make_breakfast", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_make_breakfast", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_make_tea": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_make_tea", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_make_tea", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_make_the_bed": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_make_the_bed", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_make_the_bed", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_move_the_position_of_the_apple": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_apple", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_apple", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_black_marker": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_black_marker", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_black_marker", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_brush": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_brush", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_brush", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_coffee_capsule": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_coffee_capsule", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_coffee_capsule", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_cookie": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_cookie", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_cookie", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_duck": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_duck", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_duck", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_glass": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_glass", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_glass", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_long_bread": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_long_bread", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_long_bread", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_milk": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_milk", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_milk", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_orange": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_orange", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_orange", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_peeler": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_peeler", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_peeler", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_pen": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_pen", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_pen", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_rubiks_cube": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_rubiks_cube", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_rubiks_cube", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_soda": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_soda", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_soda", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_spoon": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_spoon", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_spoon", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_move_the_position_of_the_triangle_bread": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_move_the_position_of_the_triangle_bread", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_move_the_position_of_the_triangle_bread", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_open_and_close_curtains": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_open_and_close_curtains", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_open_and_close_curtains", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_open_and_close_microwave_oven": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_open_and_close_microwave_oven", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_open_and_close_microwave_oven", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_open_and_close_nightstand_drawer": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_open_and_close_nightstand_drawer", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_open_and_close_nightstand_drawer", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_open_and_close_the_freezer_door": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_open_and_close_the_freezer_door", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_open_and_close_the_freezer_door", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_open_the_food_pan": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_open_the_food_pan", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_open_the_food_pan", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_opening_and_closing_aalcony_sliding_doors": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_opening_and_closing_aalcony_sliding_doors", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_opening_and_closing_aalcony_sliding_doors", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_peach_storage": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_peach_storage", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_peach_storage", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_pick_up_and_store_items": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_pick_up_and_store_items", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_pick_up_and_store_items", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_place_the_dress_shirt_on_the_hanger": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_place_the_dress_shirt_on_the_hanger", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_place_the_dress_shirt_on_the_hanger", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_plug_the_socket": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_plug_the_socket", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_plug_the_socket", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_pour_water": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_pour_water", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_pour_water", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_put_on_a_garbage_bag": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_put_on_a_garbage_bag", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_put_on_a_garbage_bag", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_put_slippers_into_floor_standing_shoe_cabinet": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_put_slippers_into_floor_standing_shoe_cabinet", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_put_slippers_into_floor_standing_shoe_cabinet", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_put_the_pillow_on_the_bed": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_put_the_pillow_on_the_bed", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_put_the_pillow_on_the_bed", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_put_the_shoes_into_the_shoe_box": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_put_the_shoes_into_the_shoe_box", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_put_the_shoes_into_the_shoe_box", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_put_the_tableware_into_the_cupboard": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_put_the_tableware_into_the_cupboard", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_put_the_tableware_into_the_cupboard", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_sliding_chair": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_sliding_chair", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_sliding_chair", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_stack_baskets": { + "contract_hash": "bd2de8ca7aac4c16edd03984d55561fdcbac694e74185fbfac913027ce4ad882", + "contract_version": 1, + "deployment_profile_hash": "90a58d57d51a74a48289ac288d08bf314d02418f158d08060a1ba8281eaca980", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_stack_baskets", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_stack_baskets", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "R1_Lite_storage_of_toiletries": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_storage_of_toiletries", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_storage_of_toiletries", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_switch_labels": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_switch_labels", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_switch_labels", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_switch_on_and_off_the_central_air_conditioning": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_switch_on_and_off_the_central_air_conditioning", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_switch_on_and_off_the_central_air_conditioning", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_tableware_arrangement": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_tableware_arrangement", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_tableware_arrangement", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_take_and_place_the_portable_power_bank": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_take_and_place_the_portable_power_bank", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_take_and_place_the_portable_power_bank", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_take_and_put_away_garden_stuff": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_take_and_put_away_garden_stuff", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_take_and_put_away_garden_stuff", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_take_and_put_away_items": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_take_and_put_away_items", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_take_and_put_away_items", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_take_and_put_the_bowl": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_take_and_put_the_bowl", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_take_and_put_the_bowl", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_take_or_store_plates": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_take_or_store_plates", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_take_or_store_plates", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_tea_service_table_setting": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_tea_service_table_setting", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_tea_service_table_setting", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_throw_out_the_trash": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_throw_out_the_trash", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_throw_out_the_trash", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_tidy_up_toiletries": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_tidy_up_toiletries", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_tidy_up_toiletries", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_wash_the_tableware": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_wash_the_tableware", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_wash_the_tableware", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_washing_board": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_washing_board", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_washing_board", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "R1_Lite_wipe_the_table": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "83b891f7edf965fffb76877f632799731a376a58d344b09050229a09a9799a53", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "R1_Lite_wipe_the_table", + "objective": "FAST" + }, + { + "normalization_scope": "R1_Lite_wipe_the_table", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "RMC-AIDA-L_basket_storage_banana": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_basket_storage_banana", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_basket_storage_banana", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_basket_storage_egg_yolk_pastry": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_basket_storage_egg_yolk_pastry", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_basket_storage_egg_yolk_pastry", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_basket_storage_long_bread": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_basket_storage_long_bread", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_basket_storage_long_bread", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_basket_storage_orange": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_basket_storage_orange", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_basket_storage_orange", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_basket_storage_peach": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_basket_storage_peach", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_basket_storage_peach", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_box_up_down": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_box_up_down", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_box_up_down", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_clean_table": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_clean_table", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_clean_table", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_fold_shorts": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_fold_shorts", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_fold_shorts", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_fold_towel": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_fold_towel", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_fold_towel", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_food_packaging": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_food_packaging", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_food_packaging", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_food_storage": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_food_storage", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_food_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_fruit_storage": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_fruit_storage", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_fruit_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_get_water": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_get_water", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_get_water", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_glasses_storage": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_glasses_storage", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_glasses_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_organise_the_document_bag": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_organise_the_document_bag", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_organise_the_document_bag", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_place_test_tube": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_place_test_tube", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_place_test_tube", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_place_the_fruits_repeatedly": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_place_the_fruits_repeatedly", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_place_the_fruits_repeatedly", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_place_towel": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_place_towel", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_place_towel", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_plate_storage": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_plate_storage", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_plate_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_pour_coffee_beans": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_pour_coffee_beans", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_pour_coffee_beans", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_pour_rice": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_pour_rice", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_pour_rice", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_pour_tea": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_pour_tea", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_pour_tea", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_stack_baskets": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_stack_baskets", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_stack_baskets", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_stir_coffee": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_stir_coffee", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_stir_coffee", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "RMC-AIDA-L_storage_bin_storage": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "5d83507398a83f8076bc31ef4a46d52c9cd2eebfe9d12edcd814b722bcd44945", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "RMC-AIDA-L_storage_bin_storage", + "objective": "FAST" + }, + { + "normalization_scope": "RMC-AIDA-L_storage_bin_storage", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_arrange_flowers": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_arrange_flowers", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_arrange_flowers", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_fold_towel": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_fold_towel", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_fold_towel", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_hang_clothes": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_hang_clothes", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_hang_clothes", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_storage_block_basket": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_block_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_block_basket", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_storage_peach_box": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_peach_box", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_peach_box", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_storage_peach_drawer": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_peach_drawer", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_peach_drawer", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Realman_RMC_AIDA_L_storage_towel_basket": { + "contract_hash": "2df0bfdd2e6d1a272c3bba3afadcdcc71852eee71ad0395d2fd8d434976c5931", + "contract_version": 1, + "deployment_profile_hash": "40698d763e0ed6993a0f2c87df07915ac9cdbaa1ed88dc041fcdc51a8e2e38a9", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_towel_basket", + "objective": "FAST" + }, + { + "normalization_scope": "Realman_RMC_AIDA_L_storage_towel_basket", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "Split_aloha_basket_storage_banana": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_banana", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_banana", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_basket_storage_bread": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_bread", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_bread", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_basket_storage_egg_yolk_pastry": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_egg_yolk_pastry", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_egg_yolk_pastry", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_basket_storage_long_bread": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_long_bread", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_long_bread", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_basket_storage_orange": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_orange", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_orange", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_basket_storage_peach": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_basket_storage_peach", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_basket_storage_peach", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_fold_the_pants": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_fold_the_pants", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_fold_the_pants", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_plate_storage": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_plate_storage", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_plate_storage", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_pour_rice": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_pour_rice", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_pour_rice", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_pour_tea": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_pour_tea", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_pour_tea", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_scoop_coffee_beans": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_scoop_coffee_beans", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_scoop_coffee_beans", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_stack_baskets": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_stack_baskets", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_stack_baskets", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_stir_coffee": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_stir_coffee", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_stir_coffee", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_wipe_table": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_wipe_table", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_wipe_table", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_wipe_the_table": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_wipe_the_table", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_wipe_the_table", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Split_aloha_zip_up_the_document_bag": { + "contract_hash": "1b81dc6a7d0beb9c34eb9806d5781136f4e4085e7eec2c27e7a51906c3ca532d", + "contract_version": 1, + "deployment_profile_hash": "2224a56dfdc5607602469ce6cc7d68a2f71f032957d09875a4120684a0dd6b80", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Split_aloha_zip_up_the_document_bag", + "objective": "FAST" + }, + { + "normalization_scope": "Split_aloha_zip_up_the_document_bag", + "objective": "Flow" + } + ], + "target_dim": 26 + }, + "Tianqin_A2_container_storage_graphics_card": { + "contract_hash": "f224eee5c68d27bc0a49f06be663f285fdd656ab19e074d10b5a4d28fc17040c", + "contract_version": 1, + "deployment_profile_hash": "33b05be8da1ae40c9afc6e425792634354473f246286f76f1d9a2f668ebf6312", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Tianqin_A2_container_storage_graphics_card", + "objective": "FAST" + }, + { + "normalization_scope": "Tianqin_A2_container_storage_graphics_card", + "objective": "Flow" + } + ], + "target_dim": 17 + }, + "Tianqin_A2_place_the_paper_box": { + "contract_hash": "f224eee5c68d27bc0a49f06be663f285fdd656ab19e074d10b5a4d28fc17040c", + "contract_version": 1, + "deployment_profile_hash": "33b05be8da1ae40c9afc6e425792634354473f246286f76f1d9a2f668ebf6312", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "Tianqin_A2_place_the_paper_box", + "objective": "FAST" + }, + { + "normalization_scope": "Tianqin_A2_place_the_paper_box", + "objective": "Flow" + } + ], + "target_dim": 17 + }, + "alpha_bot_2_carry_the_clothes_basket": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_carry_the_clothes_basket", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_carry_the_clothes_basket", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_item_reversal": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_item_reversal", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_item_reversal", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_move_the_table": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_move_the_table", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_move_the_table", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_operate_the_microwave_oven": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_operate_the_microwave_oven", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_operate_the_microwave_oven", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_pass_the_sandbag": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_pass_the_sandbag", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_pass_the_sandbag", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_press_the_button_a": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_press_the_button_a", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_press_the_button_a", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_press_the_button_b": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_press_the_button_b", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_press_the_button_b", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_recover_after_touching_an_obstacle": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_recover_after_touching_an_obstacle", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_recover_after_touching_an_obstacle", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_stack_building_blocks": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_stack_building_blocks", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_stack_building_blocks", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "alpha_bot_2_sticker": { + "contract_hash": "74518619a7474715cd751f9bcd9b562ea45518ada319e415290bb77a195736f2", + "contract_version": 1, + "deployment_profile_hash": "1307f6cc08c3975a2aa3295b4d20abbd5f967999e970935752427ffe99d81e17", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "alpha_bot_2_sticker", + "objective": "FAST" + }, + { + "normalization_scope": "alpha_bot_2_sticker", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "austin_buds_dataset_converted_externally_to_rlds": { + "contract_hash": "7fff7ce8cdbc9fd01bd3390b8e13ac1a8584442cf295428461271987432786bb", + "contract_version": 1, + "deployment_profile_hash": "9f1cc1fa8897fd08e445c2cda1035cc95771c871a039de4c9c38c785e471d45a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "austin_buds_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "austin_buds_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "austin_sailor_dataset_converted_externally_to_rlds": { + "contract_hash": "faece5ea29ac8ce39ca44c64ea1af090efef9ca7ac7658717f1c95c8f53dfbb0", + "contract_version": 1, + "deployment_profile_hash": "9f1cc1fa8897fd08e445c2cda1035cc95771c871a039de4c9c38c785e471d45a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "austin_sailor_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "austin_sailor_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "austin_sirius_dataset_converted_externally_to_rlds": { + "contract_hash": "faece5ea29ac8ce39ca44c64ea1af090efef9ca7ac7658717f1c95c8f53dfbb0", + "contract_version": 1, + "deployment_profile_hash": "9f1cc1fa8897fd08e445c2cda1035cc95771c871a039de4c9c38c785e471d45a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "austin_sirius_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "austin_sirius_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "bc_z": { + "contract_hash": "ff314969c503b4bff1888a6994a26c6dcd0b01a0b520f5f32488e6c9dfbab647", + "contract_version": 1, + "deployment_profile_hash": "e5ae2c02e6e29dbbf52a6300c7a6f537a6d865fdb390533431cb50d0bd4e0f40", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "bc_z", + "objective": "FAST" + }, + { + "normalization_scope": "bc_z", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "berkeley_autolab_ur5": { + "contract_hash": "558a84555727b047c82ba9fd6762f2d8ce04e1c473fdb4aed5382b42600a6084", + "contract_version": 1, + "deployment_profile_hash": "3f6a33889057b1d72a0bc6658d415bc33efa790e0f0887c40ea1ddbb7b4e3a29", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "berkeley_autolab_ur5", + "objective": "FAST" + }, + { + "normalization_scope": "berkeley_autolab_ur5", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "berkeley_cable_routing": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "833e88fe39ab1b6c7bb3f102ccfeee829daba8b34800f43fb4b73ed3e7ed553c", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "berkeley_cable_routing", + "objective": "FAST" + }, + { + "normalization_scope": "berkeley_cable_routing", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "berkeley_mvp_converted_externally_to_rlds": { + "contract_hash": "13d9b93c7dda6fdc17ca94ae98740d9a30ea79de27d3d0faf84aeab2ba97aa32", + "contract_version": 1, + "deployment_profile_hash": "4ddec2e0cc46d028d2642049051f9589d168ba13d4c7ca7833d5b753a867238f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "berkeley_mvp_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "berkeley_mvp_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 15 + }, + "berkeley_rpt_converted_externally_to_rlds": { + "contract_hash": "21bd091a0129a6dd6b8ac3478ea293d1de59e952a986979f716d32734dc145c2", + "contract_version": 1, + "deployment_profile_hash": "cc872aab1ab236519b1c50f176cd34fa8dc16bf97b849351dcd581b6e3e28a2d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "berkeley_rpt_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "berkeley_rpt_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "bridge": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "e6fd0d2bc2969bdc29a1f6d5e55f243a6cf93873be5c94894f0729bcc222c99d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "bridge", + "objective": "FAST" + }, + { + "normalization_scope": "bridge", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "bridge_v2": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "e6fd0d2bc2969bdc29a1f6d5e55f243a6cf93873be5c94894f0729bcc222c99d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "bridge_v2", + "objective": "FAST" + }, + { + "normalization_scope": "bridge_v2", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "cmu_franka_exploration_dataset_converted_externally_to_rlds": { + "contract_hash": "59704c11b4f9b612e75f68fac891e4dca743d52d7a946d6d64db287c7b620633", + "contract_version": 1, + "deployment_profile_hash": "a515a940883961ad86ffedb431714d95ca792f96b6f35cdb63aff27a774b5ef4", + "mode": "none", + "normalization_identities": [ + { + "normalization_scope": "cmu_franka_exploration_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "cmu_franka_exploration_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 0 + }, + "columbia_cairlab_pusht_real": { + "contract_hash": "43caecfcb765a08fba31a3b3b31fb81e60e422c634a0d4458cdb83a7ca435c4d", + "contract_version": 1, + "deployment_profile_hash": "d10c8a485c131e1c875f692692c3f1f852c9829b3bc4d33152634806508d0c02", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "columbia_cairlab_pusht_real", + "objective": "FAST" + }, + { + "normalization_scope": "columbia_cairlab_pusht_real", + "objective": "Flow" + } + ], + "target_dim": 2 + }, + "dobbe": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "86226d8001121942c50e6d703fbd0d77be7f8acb51da634cadbbd0df198b8fca", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "dobbe", + "objective": "FAST" + }, + { + "normalization_scope": "dobbe", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "droid": { + "contract_hash": "048099f1553a3f333f9ce4bd6023dab02b7cfbcf8b29b37372f26589c5bafd72", + "contract_version": 1, + "deployment_profile_hash": "e790ccf5c0a3a11b84ec080d77efa1c581165c97c05cb44803216cc51e3c139c", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "droid_part_00_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_00_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_01_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_01_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_02_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_02_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_03_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_03_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_04_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_04_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_05_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_05_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_06_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_06_stats", + "objective": "Flow" + }, + { + "normalization_scope": "droid_part_07_stats", + "objective": "FAST" + }, + { + "normalization_scope": "droid_part_07_stats", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "fractal20220817_data": { + "contract_hash": "fbbc7b273f14485b0d0d3321f2b623ad832ffde0307df94e24ac8e8c35f94a11", + "contract_version": 1, + "deployment_profile_hash": "3277df36d5e69aead6c755ba65c3b32b793481a49d9a5f25ecfe4e763fa8728f", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "fractal20220817_data", + "objective": "FAST" + }, + { + "normalization_scope": "fractal20220817_data", + "objective": "Flow" + } + ], + "target_dim": 9 + }, + "furniture_bench_dataset_converted_externally_to_rlds": { + "contract_hash": "f6463d417743ae0ae5ea9bf93a1cb0fa29e1cbaa58f33f4ff12d2c87f997253d", + "contract_version": 1, + "deployment_profile_hash": "8ead59cabfa4b08f5e7a1c3b24d2cebca96d0f96d544ace13b07dbf146602a1d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "furniture_bench_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "furniture_bench_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "high_quality_folding": { + "contract_hash": "223f44bdfdd7cbff3c8c73b534f27d61883a7dc3b4a0c08f434c78f7eb52b9c3", + "contract_version": 1, + "deployment_profile_hash": "ca0baf580d0db0c7bfacb6a8934b8266fec609d48afcdd6f085f008307119f47", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "high_quality_folding", + "objective": "FAST" + }, + { + "normalization_scope": "high_quality_folding", + "objective": "Flow" + } + ], + "target_dim": 16 + }, + "iamlab_cmu_pickup_insert_converted_externally_to_rlds": { + "contract_hash": "0f1d88d5080e442c37293e8ebefc4de8e7b2c0a1eb93f4e0a0028054b431d625", + "contract_version": 1, + "deployment_profile_hash": "8ead59cabfa4b08f5e7a1c3b24d2cebca96d0f96d544ace13b07dbf146602a1d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "iamlab_cmu_pickup_insert_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "iamlab_cmu_pickup_insert_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "jaco_play": { + "contract_hash": "dae4d51f85c0db3bceefcc2ac7f68d8a2431032456aadbc24dc7479598ffdc63", + "contract_version": 1, + "deployment_profile_hash": "75724ae43b3530f5427d82ea66b381be3fbedda094b6609c31e0257d8f2cf816", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "jaco_play", + "objective": "FAST" + }, + { + "normalization_scope": "jaco_play", + "objective": "Flow" + } + ], + "target_dim": 21 + }, + "kaist_nonprehensile_converted_externally_to_rlds": { + "contract_hash": "40b52bb31aac1d0514cd0a8caa58ed332ab061b8bbf0edfb31bd5b4c1d07ff27", + "contract_version": 1, + "deployment_profile_hash": "abe274c3352761713e3469068a98609bd96b2a325721ec0f1df89e7e925e1251", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "kaist_nonprehensile_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "kaist_nonprehensile_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 21 + }, + "language_table": { + "contract_hash": "da2ee881a873f90a82a61acb138bbc8ed353e6e211b72e90671d9f4d1e1509ce", + "contract_version": 1, + "deployment_profile_hash": "354f606e1c385450294a602a7b786deb6330f54aac2c214eea37858d340324eb", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "language_table_stats_v1", + "objective": "FAST" + }, + { + "normalization_scope": "language_table_stats_v1", + "objective": "Flow" + }, + { + "normalization_scope": "language_table_stats_v2", + "objective": "FAST" + }, + { + "normalization_scope": "language_table_stats_v2", + "objective": "Flow" + }, + { + "normalization_scope": "language_table_stats_v3", + "objective": "FAST" + }, + { + "normalization_scope": "language_table_stats_v3", + "objective": "Flow" + } + ], + "target_dim": 2 + }, + "leju_robot_box_storage_parcel_a": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_a", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_a", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_b": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_b", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_b", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_c": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_c", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_c", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_d": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_d", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_d", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_f": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_f", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_f", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_g": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_g", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_g", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_box_storage_parcel_h": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_box_storage_parcel_h", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_box_storage_parcel_h", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_a": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_a", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_a", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_aa": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_aa", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_aa", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ab": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ab", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ab", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ac": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ac", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ac", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ad": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ad", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ad", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ae": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ae", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ae", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_af": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_af", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_af", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ag": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ag", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ag", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_ah": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_ah", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_ah", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_b": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_b", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_b", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_c": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_c", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_c", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_d": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_d", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_d", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_e": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_e", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_e", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_f": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_f", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_f", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_hotel_services_h": { + "contract_hash": "575e94bbfc9219b0e9df74efcc1a9f5b0e6d6a29f70a64c84507eb52f3c40775", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_h", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_h", + "objective": "Flow" + } + ], + "target_dim": 54 + }, + "leju_robot_hotel_services_i": { + "contract_hash": "575e94bbfc9219b0e9df74efcc1a9f5b0e6d6a29f70a64c84507eb52f3c40775", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_hotel_services_i", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_hotel_services_i", + "objective": "Flow" + } + ], + "target_dim": 54 + }, + "leju_robot_moving_parts_g": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_g", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_g", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_moving_parts_h": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_h", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_h", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_moving_parts_i": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_i", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_i", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_moving_parts_j": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_j", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_j", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_moving_parts_k": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_k", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_k", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_moving_parts_u": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_moving_parts_u", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_moving_parts_u", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_pass_the_cleaner_a": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_pass_the_cleaner_a", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_pass_the_cleaner_a", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_pass_the_cleaner_b": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_pass_the_cleaner_b", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_pass_the_cleaner_b", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_pass_the_cleaner_c": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_pass_the_cleaner_c", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_pass_the_cleaner_c", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "leju_robot_pass_the_cleaner_d": { + "contract_hash": "c4e1f6dfd1152744b14a99fcea458d7377dccc3c36ad91dafabcc49fe4931fb2", + "contract_version": 1, + "deployment_profile_hash": "d64bd1d12bdb149831af4d89cad48400337c3c57904479968158aba2a347c068", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "leju_robot_pass_the_cleaner_d", + "objective": "FAST" + }, + { + "normalization_scope": "leju_robot_pass_the_cleaner_d", + "objective": "Flow" + } + ], + "target_dim": 90 + }, + "libero": { + "contract_hash": "680a8b7b295469e7fdeec2b8aa620c9f68584488cecd9f207d9f4d60ef55fc23", + "contract_version": 1, + "deployment_profile_hash": "3c5d28e2ed7250d520446ce545c60fa111b8babf4a8ce92ab73bdb3dc8b27a79", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "libero_10", + "objective": "FAST" + }, + { + "normalization_scope": "libero_10", + "objective": "Flow" + }, + { + "normalization_scope": "libero_goal", + "objective": "FAST" + }, + { + "normalization_scope": "libero_goal", + "objective": "Flow" + }, + { + "normalization_scope": "libero_object", + "objective": "FAST" + }, + { + "normalization_scope": "libero_object", + "objective": "Flow" + }, + { + "normalization_scope": "libero_spatial", + "objective": "FAST" + }, + { + "normalization_scope": "libero_spatial", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "maniskill_dataset_converted_externally_to_rlds": { + "contract_hash": "842c91c82a80b57fc257e7a612546b9594b2e03d62724122c6fd0d753c126d9f", + "contract_version": 1, + "deployment_profile_hash": "9f1cc1fa8897fd08e445c2cda1035cc95771c871a039de4c9c38c785e471d45a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "maniskill_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "maniskill_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 25 + }, + "molmoact2_bimanualyam": { + "contract_hash": "f8b5e092bfd8f6adf31bca7e541d5bfd94df97f45720b3a9658f16aa34835a96", + "contract_version": 1, + "deployment_profile_hash": "cee5e582cfbc1f919a51994eecf956969f7afd91720ceb086be02ebf4a174eeb", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "01122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "01122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "01122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "01122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-01-1", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-01-1", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-02-2", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-02-2", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-03-3", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-03-3", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "02012026-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "02012026-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "02122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "02122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "02122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "02122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "02122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "02122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "03012026-tablebuss-13", + "objective": "FAST" + }, + { + "normalization_scope": "03012026-tablebuss-13", + "objective": "Flow" + }, + { + "normalization_scope": "03122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "03122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "03122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "03122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "03122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "03122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-013", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-013", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-02", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-02", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "04012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "04012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "04122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "04122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "04122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "04122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "04122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "04122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-02", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-02", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "05012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "05012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "05122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "05122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "05122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "05122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "05122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "05122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "05122025-box-04", + "objective": "FAST" + }, + { + "normalization_scope": "05122025-box-04", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-02", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-02", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "06012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "06012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "06122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "06122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "06122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "06122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "06122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "06122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "06122025-box-04", + "objective": "FAST" + }, + { + "normalization_scope": "06122025-box-04", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-02", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-02", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "07012026-plate-cleaning-13", + "objective": "FAST" + }, + { + "normalization_scope": "07012026-plate-cleaning-13", + "objective": "Flow" + }, + { + "normalization_scope": "07122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "07122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "07122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "07122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-14", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-14", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-15", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-15", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-16", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-16", + "objective": "Flow" + }, + { + "normalization_scope": "08012026-plate-cleaning-17", + "objective": "FAST" + }, + { + "normalization_scope": "08012026-plate-cleaning-17", + "objective": "Flow" + }, + { + "normalization_scope": "08122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "08122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "08122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "08122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-01", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-01", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-02", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-02", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-03", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-03", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-04", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-04", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-05", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-05", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-06", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-06", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-07", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-07", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-08", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-08", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-09", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-09", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-10", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-10", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-11", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-11", + "objective": "Flow" + }, + { + "normalization_scope": "09012026-plate-cleaning-12", + "objective": "FAST" + }, + { + "normalization_scope": "09012026-plate-cleaning-12", + "objective": "Flow" + }, + { + "normalization_scope": "09122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "09122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "09122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "09122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "09122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "09122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "09122025-box-04", + "objective": "FAST" + }, + { + "normalization_scope": "09122025-box-04", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-04", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-04", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-05", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-05", + "objective": "Flow" + }, + { + "normalization_scope": "10122025-box-06", + "objective": "FAST" + }, + { + "normalization_scope": "10122025-box-06", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-04", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-04", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-05", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-05", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-box-06", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-box-06", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-01", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-01", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-02", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-02", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-03", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-03", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-04", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-04", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-05", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-05", + "objective": "Flow" + }, + { + "normalization_scope": "11122025-gro-06", + "objective": "FAST" + }, + { + "normalization_scope": "11122025-gro-06", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block1-1", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block1-1", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block1-2", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block1-2", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block1-3", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block1-3", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block2-1", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block2-1", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block2-2", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block2-2", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block2-3", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block2-3", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block3-1", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block3-1", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block3-2", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block3-2", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-block3-3", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-block3-3", + "objective": "Flow" + }, + { + "normalization_scope": "12012026-scan-1", + "objective": "FAST" + }, + { + "normalization_scope": "12012026-scan-1", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-01", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-01", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-02", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-02", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-03", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-03", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-04", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-04", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-05", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-05", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-gro-06", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-gro-06", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-01", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-01", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-02", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-02", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-03", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-03", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-04", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-04", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-05", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-05", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-06", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-06", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-07", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-07", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-08", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-08", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-09", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-09", + "objective": "Flow" + }, + { + "normalization_scope": "12122025-tool-10", + "objective": "FAST" + }, + { + "normalization_scope": "12122025-tool-10", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-1", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-1", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-10", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-10", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-12", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-12", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-13", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-13", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-2", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-2", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-3", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-3", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-4", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-4", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-5", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-5", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-6", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-6", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-7", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-7", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-8", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-8", + "objective": "Flow" + }, + { + "normalization_scope": "13012026-scan-9", + "objective": "FAST" + }, + { + "normalization_scope": "13012026-scan-9", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-01", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-01", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-02", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-02", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-03", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-03", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-04", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-04", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-05", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-05", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-06", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-06", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-07", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-07", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-08", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-08", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-09", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-09", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-10", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-10", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-11", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-11", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-cut-12", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-cut-12", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-01", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-01", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-02", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-02", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-03", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-03", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-04", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-04", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-05", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-05", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-06", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-06", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-07", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-07", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-08", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-08", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-09", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-09", + "objective": "Flow" + }, + { + "normalization_scope": "13122025-tool-10", + "objective": "FAST" + }, + { + "normalization_scope": "13122025-tool-10", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-1", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-1", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-10", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-10", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-11", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-11", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-12", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-12", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-13", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-13", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-14", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-14", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-2", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-2", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-3", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-3", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-4", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-4", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-5", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-5", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-6", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-6", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-7", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-7", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-8", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-8", + "objective": "Flow" + }, + { + "normalization_scope": "14012026-scan-9", + "objective": "FAST" + }, + { + "normalization_scope": "14012026-scan-9", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-01", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-01", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-02", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-02", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-03", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-03", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-04", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-04", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-05", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-05", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-06", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-06", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-07", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-07", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-08", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-08", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-09", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-09", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-10", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-10", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-12", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-12", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-cut-13", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-cut-13", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-01", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-01", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-02", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-02", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-03", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-03", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-04", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-04", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-05", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-05", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-06", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-06", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-07", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-07", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-08", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-08", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-10", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-10", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-11", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-11", + "objective": "Flow" + }, + { + "normalization_scope": "14122025-toy-12", + "objective": "FAST" + }, + { + "normalization_scope": "14122025-toy-12", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-0", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-0", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-01", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-01", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-02", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-02", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-03", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-03", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-07", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-07", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-08", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-08", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-09", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-09", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-10", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-10", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-11", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-11", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-12", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-12", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-13", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-13", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-14", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-14", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-15", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-15", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-4", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-4", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-5", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-5", + "objective": "Flow" + }, + { + "normalization_scope": "15012026-scan-6", + "objective": "FAST" + }, + { + "normalization_scope": "15012026-scan-6", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-01", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-01", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-02", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-02", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-03", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-03", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-04", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-04", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-05", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-05", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-06", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-06", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-07", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-07", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-08", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-08", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-09", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-09", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-10", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-10", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-11", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-11", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-12", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-12", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-cup-13", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-cup-13", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-01", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-01", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-02", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-02", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-03", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-03", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-04", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-04", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-05", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-05", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-06", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-06", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-07", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-07", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-09", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-09", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-11", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-11", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-12", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-12", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-13", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-13", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toilet-14", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toilet-14", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-01", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-01", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-02", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-02", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-04", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-04", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-05", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-05", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-07", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-07", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-08", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-08", + "objective": "Flow" + }, + { + "normalization_scope": "15122025-toy-10", + "objective": "FAST" + }, + { + "normalization_scope": "15122025-toy-10", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-01", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-01", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-02", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-02", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-03", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-03", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-04", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-04", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-05", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-05", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-06", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-06", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-07", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-07", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-08", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-08", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-09", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-09", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-10", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-10", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-11", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-11", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-12", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-12", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-13", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-13", + "objective": "Flow" + }, + { + "normalization_scope": "16012026-scan-14", + "objective": "FAST" + }, + { + "normalization_scope": "16012026-scan-14", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-01", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-01", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-02", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-02", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-03", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-03", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-04", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-04", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-05", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-05", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-06", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-06", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-07", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-07", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-08", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-08", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-09", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-09", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-10", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-10", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-11", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-11", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-med-12", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-med-12", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-01", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-01", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-02", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-02", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-03", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-03", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-04", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-04", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-05", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-05", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-06", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-06", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-07", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-07", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-08", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-08", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-09", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-09", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-10", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-10", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-11", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-11", + "objective": "Flow" + }, + { + "normalization_scope": "16122025-toilet-12", + "objective": "FAST" + }, + { + "normalization_scope": "16122025-toilet-12", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-01", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-01", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-02", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-02", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-03", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-03", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-04", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-04", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-05", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-05", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-06", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-06", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-07", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-07", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-08", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-08", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-09", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-09", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-10", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-10", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-11", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-11", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-12", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-12", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-13", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-13", + "objective": "Flow" + }, + { + "normalization_scope": "17012026-scan-14", + "objective": "FAST" + }, + { + "normalization_scope": "17012026-scan-14", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-02", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-02", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-03", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-03", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-04", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-04", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-05", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-05", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-06", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-06", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-07", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-07", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-08", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-08", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-09", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-09", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-10", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-10", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-11", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-11", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-12", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-12", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-13", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-13", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-clo-14", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-clo-14", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-01", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-01", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-02", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-02", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-03", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-03", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-04", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-04", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-05", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-05", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-06", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-06", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-07", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-07", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-08", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-08", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-09", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-09", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-10", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-10", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-11", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-11", + "objective": "Flow" + }, + { + "normalization_scope": "17122025-med-12", + "objective": "FAST" + }, + { + "normalization_scope": "17122025-med-12", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-01", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-01", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-02", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-02", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-03", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-03", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-04", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-04", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-05", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-05", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-06", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-06", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-07-1", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-07-1", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-08-1", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-08-1", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-09-1", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-09-1", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-10-2", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-10-2", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-11-2", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-11-2", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-12-2", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-12-2", + "objective": "Flow" + }, + { + "normalization_scope": "18012026-block-13", + "objective": "FAST" + }, + { + "normalization_scope": "18012026-block-13", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-01", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-01", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "18122025-foldclo-13", + "objective": "FAST" + }, + { + "normalization_scope": "18122025-foldclo-13", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-01", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-01", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-02", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-02", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-03", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-03", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-04", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-04", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-05", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-05", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-06", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-06", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-07-1", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-07-1", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-07-3", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-07-3", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-08-1", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-08-1", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-08-3", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-08-3", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-09-1", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-09-1", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-09-3", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-09-3", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-10-2", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-10-2", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-11-2", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-11-2", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-12-2", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-12-2", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-block-13", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-block-13", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-01", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-01", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-02", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-02", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-03", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-03", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-04", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-04", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-05", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-05", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-06", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-06", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-07", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-07", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-08", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-08", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-09", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-09", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-10", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-10", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-11", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-11", + "objective": "Flow" + }, + { + "normalization_scope": "19012026-charging-12", + "objective": "FAST" + }, + { + "normalization_scope": "19012026-charging-12", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "19122025-foldclo-13", + "objective": "FAST" + }, + { + "normalization_scope": "19122025-foldclo-13", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-01", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-01", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-02", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-02", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-03", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-03", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-04", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-04", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-05", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-05", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-06", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-06", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-07", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-07", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-08", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-08", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-09", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-09", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-10", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-10", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-11", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-11", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-12", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-12", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-13", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-13", + "objective": "Flow" + }, + { + "normalization_scope": "20012026-charging-14", + "objective": "FAST" + }, + { + "normalization_scope": "20012026-charging-14", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "20122025-foldclo-13", + "objective": "FAST" + }, + { + "normalization_scope": "20122025-foldclo-13", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-01", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-01", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-02", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-02", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-03", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-03", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-04", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-04", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-05", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-05", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-06", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-06", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-07", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-07", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-08", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-08", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-09", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-09", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-10", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-10", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-11", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-11", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-12", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-12", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-13", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-13", + "objective": "Flow" + }, + { + "normalization_scope": "21012026-charging-14", + "objective": "FAST" + }, + { + "normalization_scope": "21012026-charging-14", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-01", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-01", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "21122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "21122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-01", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-01", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-02", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-02", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-03", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-03", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-04", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-04", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-05", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-05", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-06", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-06", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-07", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-07", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-08", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-08", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-09", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-09", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-10", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-10", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-11", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-11", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-12", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-12", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-13", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-13", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-14", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-14", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-15", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-15", + "objective": "Flow" + }, + { + "normalization_scope": "22012026-scoop-16", + "objective": "FAST" + }, + { + "normalization_scope": "22012026-scoop-16", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-01", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-01", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "22122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "22122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-01", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-01", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-02", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-02", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-03", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-03", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-04", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-04", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-05", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-05", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-06", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-06", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-07", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-07", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-08", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-08", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-09", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-09", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-10", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-10", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-11", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-11", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-12", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-12", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-scoop-13", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-scoop-13", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-01", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-01", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-02", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-02", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-03", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-03", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-04", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-04", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-05", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-05", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-06", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-06", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-07", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-07", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-08", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-08", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-09", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-09", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-10", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-10", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-11", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-11", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-12", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-12", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-13", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-13", + "objective": "Flow" + }, + { + "normalization_scope": "23012026-untangle-14", + "objective": "FAST" + }, + { + "normalization_scope": "23012026-untangle-14", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-01", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-01", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "23122025-foldclo-13", + "objective": "FAST" + }, + { + "normalization_scope": "23122025-foldclo-13", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-01", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-01", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-02", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-02", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-03", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-03", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-04", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-04", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-05", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-05", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-06", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-06", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-07", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-07", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-08", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-08", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-09", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-09", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-11", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-11", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-12", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-12", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-13", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-13", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-14", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-14", + "objective": "Flow" + }, + { + "normalization_scope": "24012026-untangle-15", + "objective": "FAST" + }, + { + "normalization_scope": "24012026-untangle-15", + "objective": "Flow" + }, + { + "normalization_scope": "24112025-yam-01", + "objective": "FAST" + }, + { + "normalization_scope": "24112025-yam-01", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-01", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-01", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-02", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-02", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-03", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-03", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "24122025-foldclo-12", + "objective": "FAST" + }, + { + "normalization_scope": "24122025-foldclo-12", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-01", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-01", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-02", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-02", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-03", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-03", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-04", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-04", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-05", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-05", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-06", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-06", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-07", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-07", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-08", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-08", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-09", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-09", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-10", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-10", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-11", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-11", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-12", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-12", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-13", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-13", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-14", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-14", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-15", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-15", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-16", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-16", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-17", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-17", + "objective": "Flow" + }, + { + "normalization_scope": "25012026-untangle-18", + "objective": "FAST" + }, + { + "normalization_scope": "25012026-untangle-18", + "objective": "Flow" + }, + { + "normalization_scope": "25112025-yam-01", + "objective": "FAST" + }, + { + "normalization_scope": "25112025-yam-01", + "objective": "Flow" + }, + { + "normalization_scope": "25112025-yam-02", + "objective": "FAST" + }, + { + "normalization_scope": "25112025-yam-02", + "objective": "Flow" + }, + { + "normalization_scope": "25112025-yam-03", + "objective": "FAST" + }, + { + "normalization_scope": "25112025-yam-03", + "objective": "Flow" + }, + { + "normalization_scope": "25112025-yam-04", + "objective": "FAST" + }, + { + "normalization_scope": "25112025-yam-04", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-01", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-01", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-02", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-02", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-03", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-03", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-04", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-04", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-05", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-05", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-06", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-06", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-07", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-07", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-08", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-08", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-09", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-09", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-10", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-10", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-11", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-11", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-12", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-12", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-13", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-13", + "objective": "Flow" + }, + { + "normalization_scope": "26012026-untangle-14", + "objective": "FAST" + }, + { + "normalization_scope": "26012026-untangle-14", + "objective": "Flow" + }, + { + "normalization_scope": "26112025-yam-01", + "objective": "FAST" + }, + { + "normalization_scope": "26112025-yam-01", + "objective": "Flow" + }, + { + "normalization_scope": "26112025-yam-02", + "objective": "FAST" + }, + { + "normalization_scope": "26112025-yam-02", + "objective": "Flow" + }, + { + "normalization_scope": "26112025-yam-03", + "objective": "FAST" + }, + { + "normalization_scope": "26112025-yam-03", + "objective": "Flow" + }, + { + "normalization_scope": "26112025-yam-04", + "objective": "FAST" + }, + { + "normalization_scope": "26112025-yam-04", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-04", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-04", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-05", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-05", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-06", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-06", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-07", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-07", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-08", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-08", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-09", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-09", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-10", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-10", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-11", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-11", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-foldclo-13", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-foldclo-13", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-03-1", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-03-1", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "26122025-tablebuss-13", + "objective": "FAST" + }, + { + "normalization_scope": "26122025-tablebuss-13", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-01", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-01", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-02", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-02", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-03", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-03", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-04", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-04", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-05", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-05", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-06", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-06", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-07", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-07", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-08", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-08", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-09", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-09", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-10", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-10", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-11", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-11", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-12", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-12", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-13", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-13", + "objective": "Flow" + }, + { + "normalization_scope": "27012026-untangle-14", + "objective": "FAST" + }, + { + "normalization_scope": "27012026-untangle-14", + "objective": "Flow" + }, + { + "normalization_scope": "27112025-yam-01", + "objective": "FAST" + }, + { + "normalization_scope": "27112025-yam-01", + "objective": "Flow" + }, + { + "normalization_scope": "27112025-yam-02", + "objective": "FAST" + }, + { + "normalization_scope": "27112025-yam-02", + "objective": "Flow" + }, + { + "normalization_scope": "27112025-yam-03", + "objective": "FAST" + }, + { + "normalization_scope": "27112025-yam-03", + "objective": "Flow" + }, + { + "normalization_scope": "27112025-yam-04", + "objective": "FAST" + }, + { + "normalization_scope": "27112025-yam-04", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "27122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "27122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "28112025-block-02", + "objective": "FAST" + }, + { + "normalization_scope": "28112025-block-02", + "objective": "Flow" + }, + { + "normalization_scope": "28112025-yam-01", + "objective": "FAST" + }, + { + "normalization_scope": "28112025-yam-01", + "objective": "Flow" + }, + { + "normalization_scope": "28112025-yam-02", + "objective": "FAST" + }, + { + "normalization_scope": "28112025-yam-02", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "28122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "28122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "29112025-block-01", + "objective": "FAST" + }, + { + "normalization_scope": "29112025-block-01", + "objective": "Flow" + }, + { + "normalization_scope": "29112025-block-02", + "objective": "FAST" + }, + { + "normalization_scope": "29112025-block-02", + "objective": "Flow" + }, + { + "normalization_scope": "29112025-block-03", + "objective": "FAST" + }, + { + "normalization_scope": "29112025-block-03", + "objective": "Flow" + }, + { + "normalization_scope": "29112025-block-04", + "objective": "FAST" + }, + { + "normalization_scope": "29112025-block-04", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "29122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "29122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "30112025-box-01", + "objective": "FAST" + }, + { + "normalization_scope": "30112025-box-01", + "objective": "Flow" + }, + { + "normalization_scope": "30112025-box-02", + "objective": "FAST" + }, + { + "normalization_scope": "30112025-box-02", + "objective": "Flow" + }, + { + "normalization_scope": "30112025-box-03", + "objective": "FAST" + }, + { + "normalization_scope": "30112025-box-03", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "30122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "30122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-01", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-01", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-02", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-02", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-03", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-03", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-04", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-04", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-05", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-05", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-06", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-06", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-07", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-07", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-08", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-08", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-09", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-09", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-10", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-10", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-11", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-11", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-12", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-12", + "objective": "Flow" + }, + { + "normalization_scope": "31122025-tablebuss-13", + "objective": "FAST" + }, + { + "normalization_scope": "31122025-tablebuss-13", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "mt_opt": { + "contract_hash": "3856112e4af618dc5c3483c284431e124e202d5e4ba974aacbbeb648f65de734", + "contract_version": 1, + "deployment_profile_hash": "47bacdba288ac7282d15fd3ef5cfc9253562a5602b75ee4af2d5bb9b92f6e8fc", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "mt_opt_stats_v1", + "objective": "FAST" + }, + { + "normalization_scope": "mt_opt_stats_v1", + "objective": "Flow" + }, + { + "normalization_scope": "mt_opt_stats_v2", + "objective": "FAST" + }, + { + "normalization_scope": "mt_opt_stats_v2", + "objective": "Flow" + }, + { + "normalization_scope": "mt_opt_stats_v3", + "objective": "FAST" + }, + { + "normalization_scope": "mt_opt_stats_v3", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "nitrogen_shuffled": { + "contract_hash": "59704c11b4f9b612e75f68fac891e4dca743d52d7a946d6d64db287c7b620633", + "contract_version": 1, + "deployment_profile_hash": "a11cbf438d4362c1d40e5f0a696591e16a6358bf2bdc978001b03b04d3cf7cf2", + "mode": "none", + "normalization_identities": [ + { + "normalization_scope": "nitrogen_shuffled_fps30", + "objective": "FAST" + }, + { + "normalization_scope": "nitrogen_shuffled_fps30", + "objective": "Flow" + }, + { + "normalization_scope": "nitrogen_shuffled_fps60", + "objective": "FAST" + }, + { + "normalization_scope": "nitrogen_shuffled_fps60", + "objective": "Flow" + } + ], + "target_dim": 0 + }, + "nyu_door_opening_surprising_effectiveness": { + "contract_hash": "59704c11b4f9b612e75f68fac891e4dca743d52d7a946d6d64db287c7b620633", + "contract_version": 1, + "deployment_profile_hash": "a682f1c366a9a4c54fd999c365a8d658751524841371b6027dae695c1553c46b", + "mode": "none", + "normalization_identities": [ + { + "normalization_scope": "nyu_door_opening_surprising_effectiveness", + "objective": "FAST" + }, + { + "normalization_scope": "nyu_door_opening_surprising_effectiveness", + "objective": "Flow" + } + ], + "target_dim": 0 + }, + "nyu_franka_play_dataset_converted_externally_to_rlds": { + "contract_hash": "64afb594ddb8a9a85202197b9f45a11bfa2f8ef61eda1e77f6a0d91e19c5416e", + "contract_version": 1, + "deployment_profile_hash": "77075f01ed2e9871cc861248a6000c64fd3dd1c7a40d24418780d013be89c94e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "nyu_franka_play_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "nyu_franka_play_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 13 + }, + "nyu_rot_dataset_converted_externally_to_rlds": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "d8389817022fafe6ef6e4c63b4347026f1c93577266e5f6c888ceb8562322a5d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "nyu_rot_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "nyu_rot_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "robo_net": { + "contract_hash": "3df59286ca480af3941c9b4e80f8b6e9f125998ba54ac605b7c9e17b3e109271", + "contract_version": 1, + "deployment_profile_hash": "e96a2a4146352e3b72539d4edd587f97469862c74be1265e5653303ac3581b88", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "robo_net_stats_v1", + "objective": "FAST" + }, + { + "normalization_scope": "robo_net_stats_v1", + "objective": "Flow" + }, + { + "normalization_scope": "robo_net_stats_v2", + "objective": "FAST" + }, + { + "normalization_scope": "robo_net_stats_v2", + "objective": "Flow" + } + ], + "target_dim": 5 + }, + "robocasa_gr1": { + "contract_hash": "12be4c5243026f3703a0afbe1415499f6c50a213acac98e38baf108295b0db0f", + "contract_version": 1, + "deployment_profile_hash": "8c64b270a94102374b39bf9e20d05e031a18191f0abbb6d031b753ae74b8a4fb", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "PnPBottleToCabinetClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPBottleToCabinetClose", + "objective": "Flow" + }, + { + "normalization_scope": "PnPCanToDrawerClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPCanToDrawerClose", + "objective": "Flow" + }, + { + "normalization_scope": "PnPCupToDrawerClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPCupToDrawerClose", + "objective": "Flow" + }, + { + "normalization_scope": "PnPMilkToMicrowaveClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPMilkToMicrowaveClose", + "objective": "Flow" + }, + { + "normalization_scope": "PnPPotatoToMicrowaveClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPPotatoToMicrowaveClose", + "objective": "Flow" + }, + { + "normalization_scope": "PnPWineToCabinetClose", + "objective": "FAST" + }, + { + "normalization_scope": "PnPWineToCabinetClose", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToBasketSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToBasketSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToCardboardboxSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToCardboardboxSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToPanSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToPanSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToPotSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToPotSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToTieredbasketSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromCuttingboardToTieredbasketSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToBasketSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToBasketSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToBowlSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToBowlSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToPlateSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToPlateSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToTieredshelfSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlacematToTieredshelfSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToBowlSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToBowlSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToCardboardboxSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToCardboardboxSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToPanSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToPanSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToPlateSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromPlateToPlateSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToCardboardboxSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToCardboardboxSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToPlateSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToPlateSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToPotSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToPotSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToTieredbasketSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToTieredbasketSplitA", + "objective": "Flow" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToTieredshelfSplitA", + "objective": "FAST" + }, + { + "normalization_scope": "PosttrainPnPNovelFromTrayToTieredshelfSplitA", + "objective": "Flow" + } + ], + "target_dim": 29 + }, + "roboturk": { + "contract_hash": "59704c11b4f9b612e75f68fac891e4dca743d52d7a946d6d64db287c7b620633", + "contract_version": 1, + "deployment_profile_hash": "edb0a16ba62968c7bee0eee17addbce1ae71c9b7bf536fb28f8e54f0c024c858", + "mode": "none", + "normalization_identities": [ + { + "normalization_scope": "roboturk", + "objective": "FAST" + }, + { + "normalization_scope": "roboturk", + "objective": "Flow" + } + ], + "target_dim": 0 + }, + "stanford_hydra_dataset_converted_externally_to_rlds": { + "contract_hash": "9d599713d4bc9c56561ff5454e2efa1113164fa3f5297a1624165eeb7c95a93e", + "contract_version": 1, + "deployment_profile_hash": "9f1cc1fa8897fd08e445c2cda1035cc95771c871a039de4c9c38c785e471d45a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "stanford_hydra_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "stanford_hydra_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 24 + }, + "stanford_kuka_multimodal_dataset_converted_externally_to_rlds": { + "contract_hash": "4d831d4ab71098cb777d3cd358cc18ccd2b250062666e066493dfaf29b9ff07e", + "contract_version": 1, + "deployment_profile_hash": "2ef353f7d69993d216c20b8177b55633c67b4b7a397deee84521a9e685961e6a", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "stanford_kuka_multimodal_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "stanford_kuka_multimodal_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 28 + }, + "stanford_mask_vit_converted_externally_to_rlds": { + "contract_hash": "90d8b3f4fb92595c8637c0d5dfc5f708ef0ffaddd3601b483af5ecd30e15cc92", + "contract_version": 1, + "deployment_profile_hash": "6c84687da2bcf3254519ce1dd98f3a05a5343024bb1255636d212c8b8173af9e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "stanford_mask_vit_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "stanford_mask_vit_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 21 + }, + "stanford_robocook_converted_externally_to_rlds": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "210c81d97c6929a3dd534c0ac5df90c5dfc84532a7f3da48e2f7f0bda8834015", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "stanford_robocook_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "stanford_robocook_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "taco_play": { + "contract_hash": "558a84555727b047c82ba9fd6762f2d8ce04e1c473fdb4aed5382b42600a6084", + "contract_version": 1, + "deployment_profile_hash": "17d00838113150a57b92ec80badafff4b04b7e440fd291af9fddaf39bd759b4d", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "taco_play", + "objective": "FAST" + }, + { + "normalization_scope": "taco_play", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "task_3400_313498_314085": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_313498_314085", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_313498_314085", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3400_314096_314575": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_314096_314575", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_314096_314575", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3400_314576_315886": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_314576_315886", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_314576_315886", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3400_315903_317024": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_315903_317024", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_315903_317024", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3400_317029_317933": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_317029_317933", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_317029_317933", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3400_346206_347749": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3400_346206_347749", + "objective": "FAST" + }, + { + "normalization_scope": "task_3400_346206_347749", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_352507_353983": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_352507_353983", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_352507_353983", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_353984_357369": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_353984_357369", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_353984_357369", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_357385_358520": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_357385_358520", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_357385_358520", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_358525_362596": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_358525_362596", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_358525_362596", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_363333_364278": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_363333_364278", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_363333_364278", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_364289_366221": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_364289_366221", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_364289_366221", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_366235_366995": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_366235_366995", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_366235_366995", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_366997_368165": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_366997_368165", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_366997_368165", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_368167_368944": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_368167_368944", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_368167_368944", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_368945_369053": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_368945_369053", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_368945_369053", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_369057_369226": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_369057_369226", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_369057_369226", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_369229_370144": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_369229_370144", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_369229_370144", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_370198_371077": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_370198_371077", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_370198_371077", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_371092_371850": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_371092_371850", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_371092_371850", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_371906_372880": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_371906_372880", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_371906_372880", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_372890_399007": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_372890_399007", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_372890_399007", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3401_399093_399454": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3401_399093_399454", + "objective": "FAST" + }, + { + "normalization_scope": "task_3401_399093_399454", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3402_373661_375235": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3402_373661_375235", + "objective": "FAST" + }, + { + "normalization_scope": "task_3402_373661_375235", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3402_375260_377477": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3402_375260_377477", + "objective": "FAST" + }, + { + "normalization_scope": "task_3402_375260_377477", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3402_377489_380881": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3402_377489_380881", + "objective": "FAST" + }, + { + "normalization_scope": "task_3402_377489_380881", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3402_380892_384933": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3402_380892_384933", + "objective": "FAST" + }, + { + "normalization_scope": "task_3402_380892_384933", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3402_384954_385428": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3402_384954_385428", + "objective": "FAST" + }, + { + "normalization_scope": "task_3402_384954_385428", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3404_305627_321730": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3404_305627_321730", + "objective": "FAST" + }, + { + "normalization_scope": "task_3404_305627_321730", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3404_321801_329470": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3404_321801_329470", + "objective": "FAST" + }, + { + "normalization_scope": "task_3404_321801_329470", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3404_374845_377721": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3404_374845_377721", + "objective": "FAST" + }, + { + "normalization_scope": "task_3404_374845_377721", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3404_377745_378588": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3404_377745_378588", + "objective": "FAST" + }, + { + "normalization_scope": "task_3404_377745_378588", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3404_389330_396655": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3404_389330_396655", + "objective": "FAST" + }, + { + "normalization_scope": "task_3404_389330_396655", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3405_389111_389369": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3405_389111_389369", + "objective": "FAST" + }, + { + "normalization_scope": "task_3405_389111_389369", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3477_250434_252697": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3477_250434_252697", + "objective": "FAST" + }, + { + "normalization_scope": "task_3477_250434_252697", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_304773_306558": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_304773_306558", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_304773_306558", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_306569_307774": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_306569_307774", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_306569_307774", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_307787_308785": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_307787_308785", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_307787_308785", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_308789_310351": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_308789_310351", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_308789_310351", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_312244_314720": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_312244_314720", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_312244_314720", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_314721_317680": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_314721_317680", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_314721_317680", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_317686_319845": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_317686_319845", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_317686_319845", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_319854_320987": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_319854_320987", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_319854_320987", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_321004_322875": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_321004_322875", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_321004_322875", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_322888_323129": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_322888_323129", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_322888_323129", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_323131_324270": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_323131_324270", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_323131_324270", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_324278_324936": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_324278_324936", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_324278_324936", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_324949_325550": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_324949_325550", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_324949_325550", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_325556_326880": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_325556_326880", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_325556_326880", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_327603_328738": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_327603_328738", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_327603_328738", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_328740_329556": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_328740_329556", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_328740_329556", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_329558_329877": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_329558_329877", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_329558_329877", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_329879_330176": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_329879_330176", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_329879_330176", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_330177_330503": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_330177_330503", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_330177_330503", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_330504_333131": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_330504_333131", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_330504_333131", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_333145_338811": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_333145_338811", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_333145_338811", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_338871_343681": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_338871_343681", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_338871_343681", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3641_343691_352441": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3641_343691_352441", + "objective": "FAST" + }, + { + "normalization_scope": "task_3641_343691_352441", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3705_312820_313211": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3705_312820_313211", + "objective": "FAST" + }, + { + "normalization_scope": "task_3705_312820_313211", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_325306_327364": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_325306_327364", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_325306_327364", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_327380_328715": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_327380_328715", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_327380_328715", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_328722_329585": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_328722_329585", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_328722_329585", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_329589_330129": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_329589_330129", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_329589_330129", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_330132_331330": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_330132_331330", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_330132_331330", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_331358_333284": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_331358_333284", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_331358_333284", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_333286_336077": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_333286_336077", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_333286_336077", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_336089_338299": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_336089_338299", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_336089_338299", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_338316_342675": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_338316_342675", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_338316_342675", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_342697_352057": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_342697_352057", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_342697_352057", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_352058_353519": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_352058_353519", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_352058_353519", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_353521_357589": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_353521_357589", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_353521_357589", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_357780_362729": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_357780_362729", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_357780_362729", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_362736_365107": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_362736_365107", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_362736_365107", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_365112_368927": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_365112_368927", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_365112_368927", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_368929_370517": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_368929_370517", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_368929_370517", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_370529_373068": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_370529_373068", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_370529_373068", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_373071_374770": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_373071_374770", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_373071_374770", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_374778_377296": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_374778_377296", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_374778_377296", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_377297_378412": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_377297_378412", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_377297_378412", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_378413_380089": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_378413_380089", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_378413_380089", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_380090_381352": { + "contract_hash": "588d73e407267a306811d3e9430f4886eae6f1990f6550797f4f656e7e024b08", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_380090_381352", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_380090_381352", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_381367_384922": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_381367_384922", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_381367_384922", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_3777_384931_386178": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_3777_384931_386178", + "objective": "FAST" + }, + { + "normalization_scope": "task_3777_384931_386178", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_4053_368961_369296": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_4053_368961_369296", + "objective": "FAST" + }, + { + "normalization_scope": "task_4053_368961_369296", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_4053_369297_371773": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_4053_369297_371773", + "objective": "FAST" + }, + { + "normalization_scope": "task_4053_369297_371773", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "task_4053_371782_373846": { + "contract_hash": "4e3d03912d60961250fe6b3fa05f2c2bfec21f7a0b47697196a0bad9fb4e99fd", + "contract_version": 1, + "deployment_profile_hash": "24f2a32a40f1447cf616f30ed00baab01e20e515a48f64d07c38240501de2fc1", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "task_4053_371782_373846", + "objective": "FAST" + }, + { + "normalization_scope": "task_4053_371782_373846", + "objective": "Flow" + } + ], + "target_dim": 71 + }, + "toto": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "4df1861c7e2704be5fd8a2295be9d1d843cc7d6f2984dcec6ed1089ed248c06e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "toto", + "objective": "FAST" + }, + { + "normalization_scope": "toto", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "ucsd_kitchen_dataset_converted_externally_to_rlds": { + "contract_hash": "8169713d4744fbb518293523b09eaf01a60bafba2286eee260d1021856646190", + "contract_version": 1, + "deployment_profile_hash": "fea43058a9b0ed05a34475afa9c710ae2f8e136483fc36b5c1aa14ab85591fb2", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "ucsd_kitchen_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "ucsd_kitchen_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 14 + }, + "ucsd_pick_and_place_dataset_converted_externally_to_rlds": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "d7ceb8dad0767b041e7f47546f4eb2ac85d241144a969d4b58bf2feb8339a272", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "ucsd_pick_and_place_dataset_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "ucsd_pick_and_place_dataset_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "usc_cloth_sim_converted_externally_to_rlds": { + "contract_hash": "59704c11b4f9b612e75f68fac891e4dca743d52d7a946d6d64db287c7b620633", + "contract_version": 1, + "deployment_profile_hash": "843814d9dc62d35a6f45a5de5ff65280e06998b84675d70c4bac8cecddc3a8bd", + "mode": "none", + "normalization_identities": [ + { + "normalization_scope": "usc_cloth_sim_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "usc_cloth_sim_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 0 + }, + "utaustin_mutex": { + "contract_hash": "7fff7ce8cdbc9fd01bd3390b8e13ac1a8584442cf295428461271987432786bb", + "contract_version": 1, + "deployment_profile_hash": "346a3c089582881eeef2f0aaef8c4dfb77ccfd573e8ddf4d57d70ce83cd2c695", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utaustin_mutex", + "objective": "FAST" + }, + { + "normalization_scope": "utaustin_mutex", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "utokyo_pr2_opening_fridge_converted_externally_to_rlds": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "ff8051c4413082c6e787427540131a60644642f6bbc48276a9c13d5839687c3e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utokyo_pr2_opening_fridge_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "utokyo_pr2_opening_fridge_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "utokyo_pr2_tabletop_manipulation_converted_externally_to_rlds": { + "contract_hash": "b8417f0629bb0da34987a438409ecba9c32d27bd6aeb542812829c5d3714d17c", + "contract_version": 1, + "deployment_profile_hash": "ff8051c4413082c6e787427540131a60644642f6bbc48276a9c13d5839687c3e", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utokyo_pr2_tabletop_manipulation_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "utokyo_pr2_tabletop_manipulation_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 7 + }, + "utokyo_saytap_converted_externally_to_rlds": { + "contract_hash": "f05d9c3b348190a532477ad0e2067863155c07cc6aed37ec87e931b8f8848d05", + "contract_version": 1, + "deployment_profile_hash": "dda65400bbac04133e866074f2db29e9779c58011d4e319ed75346b0c2c70c51", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utokyo_saytap_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "utokyo_saytap_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 68 + }, + "utokyo_xarm_bimanual_converted_externally_to_rlds": { + "contract_hash": "9edd6def9ed3cb4c1397cf7a3af07ba8cf7a36254517be455911ff78150b4e28", + "contract_version": 1, + "deployment_profile_hash": "15ba90a8f724ff66ff7f0cd519536f40711c6530855d170656c5b82d5697aea8", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utokyo_xarm_bimanual_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "utokyo_xarm_bimanual_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 12 + }, + "utokyo_xarm_pick_and_place_converted_externally_to_rlds": { + "contract_hash": "845faa9f343fa104e080a14cd408c3db4f8132dde8abfb92957a9cfe4cc02285", + "contract_version": 1, + "deployment_profile_hash": "f450651d7c53d7c097beccc5e1023808e034afbd6cd27bd0c76759f65a38ec4b", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "utokyo_xarm_pick_and_place_converted_externally_to_rlds", + "objective": "FAST" + }, + { + "normalization_scope": "utokyo_xarm_pick_and_place_converted_externally_to_rlds", + "objective": "Flow" + } + ], + "target_dim": 20 + }, + "viola": { + "contract_hash": "6c8e6005e22bae778a04af35ebcb3ff4c705b6ae4a7bfacd849c1daca01ec282", + "contract_version": 1, + "deployment_profile_hash": "d10c8a485c131e1c875f692692c3f1f852c9829b3bc4d33152634806508d0c02", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "viola", + "objective": "FAST" + }, + { + "normalization_scope": "viola", + "objective": "Flow" + } + ], + "target_dim": 8 + }, + "xdof_abc_130k": { + "contract_hash": "8a906c49a4c4389cf82825146b2a881c5ea5f9b6073c9a356feda6b95cbc21c8", + "contract_version": 1, + "deployment_profile_hash": "517d06968e576d660289cb70ed5e4a9e43d29fa39793c76bdd115ed3f4a757ed", + "mode": "components", + "normalization_identities": [ + { + "normalization_scope": "xdof_abc_130k_fps15", + "objective": "FAST" + }, + { + "normalization_scope": "xdof_abc_130k_fps15", + "objective": "Flow" + }, + { + "normalization_scope": "xdof_abc_130k_fps30", + "objective": "FAST" + }, + { + "normalization_scope": "xdof_abc_130k_fps30", + "objective": "Flow" + }, + { + "normalization_scope": "xdof_abc_130k_fps60", + "objective": "FAST" + }, + { + "normalization_scope": "xdof_abc_130k_fps60", + "objective": "Flow" + } + ], + "target_dim": 14 + } + }, + "policy_state_contract_version": 1, + "robotics_config_sha256": "c757b7778ffd808bfb30a02ecb0b16f2845f71718839cc803a30ac08f2484656", + "schema_version": 5, + "training_dataset_expression_sha256": "06b7904f7b13799118008985e195413635f7dc2a5ca95832b48aebe949a26c77" +} diff --git a/policy_state_identity.safetensors b/policy_state_identity.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..5618367f039971db6e9d532d70e97788483f9599 --- /dev/null +++ b/policy_state_identity.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:865c8093042fb77c279c877413fc07bd4409e57ef45cac41cf30d87d60e4129c +size 260 diff --git a/processing_isaac05.py b/processing_isaac05.py new file mode 100644 index 0000000000000000000000000000000000000000..6531ce6d4f2019e93a1df28e8507cbfc22d78a1a --- /dev/null +++ b/processing_isaac05.py @@ -0,0 +1,122 @@ +"""Portable Isaac-0.5 processor built on checkpoint-native Qwen3-VL assets.""" + +from __future__ import annotations + +import math +from typing import Any + +import torch +from transformers import BatchFeature, Qwen3VLProcessor + +from .tensor_stream import ALL_TYPES, Event, TensorStream, TextType, VectorType, VisionType, create_stream + + +class Isaac05Processor(Qwen3VLProcessor): + """Produce native Qwen inputs plus PR #5 TensorStream inputs for Isaac-0.5.""" + + def __call__( + self, + images: Any | None = None, + text: str | list[str] | list[list[str]] | None = None, + videos: Any | None = None, + **kwargs: Any, + ) -> BatchFeature: + vectors = kwargs.pop("vectors", None) + features = super().__call__(images=images, text=text, videos=videos, **kwargs) + features["tensor_stream"] = self._build_tensor_stream(features, vectors=vectors) + return features + + def _build_tensor_stream( + self, + features: BatchFeature, + *, + vectors: torch.Tensor | None, + ) -> TensorStream: + input_ids = features["input_ids"] + if not isinstance(input_ids, torch.Tensor): + input_ids = torch.as_tensor(input_ids, dtype=torch.long) + if input_ids.ndim != 2 or input_ids.shape[0] != 1: + raise ValueError("Isaac05Processor TensorStream output currently requires batch_size=1.") + + token_ids = input_ids[0] + pixel_values = features.get("pixel_values") + image_grid_thw = features.get("image_grid_thw") + if pixel_values is not None and not isinstance(pixel_values, torch.Tensor): + pixel_values = torch.as_tensor(pixel_values) + if image_grid_thw is not None and not isinstance(image_grid_thw, torch.Tensor): + image_grid_thw = torch.as_tensor(image_grid_thw, dtype=torch.long) + + events: list[Event] = [] + token_start = 0 + patch_start = 0 + image_index = 0 + image_token_id = int(self.tokenizer.convert_tokens_to_ids("<|image_pad|>")) + merge_size = int(self.image_processor.merge_size) + + while token_start < token_ids.numel(): + image_positions = torch.nonzero(token_ids[token_start:] == image_token_id, as_tuple=False) + if image_positions.numel() == 0: + self._append_text_event(events, token_ids[token_start:]) + break + + image_start = token_start + int(image_positions[0, 0]) + self._append_text_event(events, token_ids[token_start:image_start]) + if pixel_values is None or image_grid_thw is None or image_index >= image_grid_thw.shape[0]: + raise ValueError("Isaac05Processor image tokens require matching pixel_values and image_grid_thw.") + + grid = image_grid_thw[image_index].to(dtype=torch.long) + temporal, height, width = (int(value) for value in grid.tolist()) + real_patch_count = temporal * height * width + if height % merge_size or width % merge_size: + raise ValueError("Isaac05Processor image grid is not divisible by merge_size.") + virtual_dims = [temporal, height // merge_size, width // merge_size] + virtual_token_count = math.prod(virtual_dims) + image_end = image_start + virtual_token_count + if not torch.all(token_ids[image_start:image_end] == image_token_id): + raise ValueError("Isaac05Processor image-token run does not match image_grid_thw.") + + events.append( + Event( + data=pixel_values[patch_start : patch_start + real_patch_count], + time=(float(image_index), float(image_index)), + type=VisionType.I, + dims_virtual=virtual_dims, + dims_real=[temporal, height, width], + idx_range=(0, virtual_token_count), + ) + ) + patch_start += real_patch_count + image_index += 1 + token_start = image_end + + if pixel_values is not None and patch_start != pixel_values.shape[0]: + raise ValueError("Isaac05Processor did not consume every image patch.") + if image_grid_thw is not None and image_index != image_grid_thw.shape[0]: + raise ValueError("Isaac05Processor did not consume every image grid.") + + if vectors is not None: + vector_rows = vectors.reshape(-1, vectors.shape[-1]).to(dtype=torch.float32) + events.append( + Event( + data=vector_rows, + time=(float(len(events)), float(len(events))), + type=VectorType.vector, + dims_virtual=[vector_rows.shape[0]], + dims_real=[vector_rows.shape[0]], + idx_range=(0, vector_rows.shape[0]), + ) + ) + + return TensorStream([create_stream(events, ALL_TYPES, schedule=False)]) + + @staticmethod + def _append_text_event(events: list[Event], token_ids: torch.Tensor) -> None: + if token_ids.numel() == 0: + return + events.append( + Event.from_text_tokens( + token_ids, + time=(float(len(events)), float(len(events))), + type=TextType.text, + ) + ) diff --git a/processor_config.json b/processor_config.json new file mode 100644 index 0000000000000000000000000000000000000000..2fd04a215da9ee8d6b2d1f712ab3be0c6eb8b7d7 --- /dev/null +++ b/processor_config.json @@ -0,0 +1,66 @@ +{ + "auto_map": { + "AutoProcessor": "processing_isaac05.Isaac05Processor" + }, + "image_processor": { + "data_format": "channels_first", + "do_convert_rgb": true, + "do_normalize": true, + "do_rescale": true, + "do_resize": true, + "image_mean": [ + 0.5, + 0.5, + 0.5 + ], + "image_processor_type": "Qwen2VLImageProcessorFast", + "image_std": [ + 0.5, + 0.5, + 0.5 + ], + "merge_size": 2, + "patch_size": 16, + "resample": 3, + "rescale_factor": 0.00392156862745098, + "size": { + "longest_edge": 16777216, + "shortest_edge": 65536 + }, + "temporal_patch_size": 2 + }, + "processor_class": "Isaac05Processor", + "video_processor": { + "data_format": "channels_first", + "default_to_square": true, + "do_convert_rgb": true, + "do_normalize": true, + "do_rescale": true, + "do_resize": true, + "do_sample_frames": true, + "fps": 2, + "image_mean": [ + 0.5, + 0.5, + 0.5 + ], + "image_std": [ + 0.5, + 0.5, + 0.5 + ], + "max_frames": 768, + "merge_size": 2, + "min_frames": 4, + "patch_size": 16, + "resample": 3, + "rescale_factor": 0.00392156862745098, + "return_metadata": false, + "size": { + "longest_edge": 25165824, + "shortest_edge": 4096 + }, + "temporal_patch_size": 2, + "video_processor_type": "Qwen3VLVideoProcessor" + } +} diff --git a/rtc.py b/rtc.py new file mode 100644 index 0000000000000000000000000000000000000000..078558469d6d680a0c2e57d0ee21db9649b15889 --- /dev/null +++ b/rtc.py @@ -0,0 +1,302 @@ +"""Import-light runtime contracts for real-time chunking (RTC).""" + +from __future__ import annotations + +from collections.abc import Callable, Sequence +from dataclasses import dataclass + +import torch + + +def rtc_is_enabled(*, max_delay_steps: int, probability: float | None) -> bool: + """Return whether training can produce a non-empty RTC prefix.""" + return int(max_delay_steps) > 0 and probability != 0.0 + + +def effective_rtc_max_prefix_steps( + *, + max_delay_steps: int, + probability: float | None, + action_horizon: int, +) -> int: + """Return the largest prefix length in the RTC training support.""" + max_delay_steps = int(max_delay_steps) + action_horizon = int(action_horizon) + if max_delay_steps < 0: + raise ValueError(f"max_delay_steps must be >= 0; got {max_delay_steps}.") + if probability is not None and not 0.0 <= float(probability) <= 1.0: + raise ValueError(f"probability must be None or in [0, 1]; got {probability}.") + if action_horizon < 1: + raise ValueError(f"action_horizon must be >= 1; got {action_horizon}.") + if not rtc_is_enabled(max_delay_steps=max_delay_steps, probability=probability): + return 0 + return min(max_delay_steps, action_horizon - 1) + + +DIT_ACTION_EXPERT_CONFIG_SCHEMA_VERSION = 1 +DIT_ACTION_EXPERT_CONFIG_V1_FIELDS = ( + "action_dim", + "action_horizon", + "num_layers", + "hidden_dim", + "num_heads", + "mlp_ratio", + "num_inference_steps", + "timestep_sampling_alpha", + "timestep_sampling_beta", + "timestep_sampling_scale", + "timestep_sampling_offset", + "train_samples_per_chunk", + "timestep_embed_dim", + "rtc_max_delay_steps", + "rtc_probability", + "rtc_delay_sampling", + "rtc_poisson_mean", + "mask_padded_action_rows", + "drop_action_dim_overflow", + "ffn_multiple_of", + "qk_norm", + "qk_norm_eps", + "rope", + "context_layer_norm", + "causal_attn", + "k_batched_cross_attn", + "k_batched_cross_attn_backend", +) + + +@dataclass(frozen=True, eq=False) +class ResolvedRTCActionPrefix: + """Validated RTC prefix geometry shared by native and HF sampling.""" + + source_dim: int | None + output_dim: int + lengths: torch.Tensor | None + max_length: int + + +@dataclass(eq=False) +class ActionExpertStepModulation: + """Precomputed per-row AdaLN values for one action-expert step.""" + + conditioning: torch.Tensor + block_modulations: Sequence[tuple[torch.Tensor, ...]] + final_modulation: tuple[torch.Tensor, torch.Tensor] + + +def prepare_rtc_conditioning( + base_timesteps: torch.Tensor, + prefix_mask: torch.Tensor, + *, + time_conditioning: Callable[[torch.Tensor], torch.Tensor], +) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + """Build compact suffix/prefix conditioning for checkpointed DiT blocks. + + RTC has a sampled suffix timestep per chunk and the fixed clean timestep 1 + for prefix rows. Blocks project these two values inside their activation- + checkpointed forward, then select them per row. + """ + if base_timesteps.dim() != 1: + raise ValueError(f"base_timesteps must have shape [B]; got {tuple(base_timesteps.shape)}.") + if prefix_mask.dim() != 2 or prefix_mask.shape[0] != base_timesteps.shape[0]: + raise ValueError( + f"prefix_mask must have shape [B,H] with B={base_timesteps.shape[0]}; got {tuple(prefix_mask.shape)}." + ) + suffix_conditioning = time_conditioning(base_timesteps) + # The clean RTC prefix always uses flow time 1, independent of the chunk or + # flow draw. Compute it once; block projections broadcast this single row. + prefix_conditioning = time_conditioning(torch.ones(1, device=base_timesteps.device, dtype=base_timesteps.dtype)) + row_mask = prefix_mask.to(device=base_timesteps.device, dtype=torch.bool).unsqueeze(-1) + return suffix_conditioning, prefix_conditioning, row_mask + + +def project_rtc_modulation( + suffix_conditioning: torch.Tensor, + prefix_conditioning: torch.Tensor, + prefix_mask: torch.Tensor, + *, + modulation: Callable[[torch.Tensor], torch.Tensor], + chunks: int, +) -> tuple[torch.Tensor, ...]: + """Project two compact RTC values and select the result per action row.""" + suffix = modulation(suffix_conditioning) + prefix = modulation(prefix_conditioning) + selected = torch.where(prefix_mask, prefix.unsqueeze(1), suffix.unsqueeze(1)) + return tuple(selected.chunk(chunks, dim=-1)) + + +def validate_rtc_prefix_capability( + *, + prefix_length: int, + max_delay_steps: int, + probability: float | None, + action_horizon: int, + allow_ood: bool = False, +) -> int: + """Validate a requested prefix against the RTC training support.""" + prefix_length = int(prefix_length) + effective_max = effective_rtc_max_prefix_steps( + max_delay_steps=max_delay_steps, + probability=probability, + action_horizon=action_horizon, + ) + if prefix_length < 0: + raise ValueError(f"prefix_length must be >= 0; got {prefix_length}.") + if prefix_length > effective_max and not allow_ood: + raise ValueError( + f"prefix_length={prefix_length} exceeds the maximum supported RTC prefix {effective_max} " + f"(configured max_delay_steps={int(max_delay_steps)}, probability={probability}, " + f"action_horizon={int(action_horizon)}). Pass allow_ood_rtc_prefix=True only for an explicit " + "out-of-distribution research experiment." + ) + return effective_max + + +def resolve_rtc_action_prefix( + *, + action_prefix: torch.Tensor | None, + prefix_length: int | Sequence[int] | torch.Tensor | None, + action_dim: int | None, + batch_size: int, + action_horizon: int, + expert_action_dim: int, + rtc_max_delay_steps: int, + rtc_probability: float | None, + device: torch.device, + allow_ood: bool = False, +) -> ResolvedRTCActionPrefix: + """Validate and normalize an RTC action-prefix request.""" + action_horizon = int(action_horizon) + expert_action_dim = int(expert_action_dim) + output_dim = expert_action_dim if action_dim is None else int(action_dim) + if output_dim < 1 or output_dim > expert_action_dim: + raise ValueError(f"action_dim must be in [1, {expert_action_dim}]; got {output_dim}.") + + if action_prefix is None: + if isinstance(prefix_length, torch.Tensor): + has_prefix_length = bool(prefix_length.detach().to(device="cpu").any().item()) + elif prefix_length is None: + has_prefix_length = False + elif isinstance(prefix_length, int): + has_prefix_length = prefix_length != 0 + else: + has_prefix_length = any(int(value) != 0 for value in prefix_length) + if has_prefix_length: + raise ValueError("action_prefix is required when prefix_length is non-zero.") + return ResolvedRTCActionPrefix(None, output_dim, None, 0) + + if action_prefix.dim() != 3 or action_prefix.shape[0] != batch_size: + raise ValueError( + f"action_prefix must have shape [B, P, D] with B={batch_size}; got {tuple(action_prefix.shape)}." + ) + source_dim = int(action_prefix.shape[2]) + if source_dim < 1 or source_dim > expert_action_dim: + raise ValueError(f"action_prefix last dim must be in [1, {expert_action_dim}]; got {source_dim}.") + + if prefix_length is None: + lengths = torch.full((batch_size,), action_prefix.shape[1], device=device, dtype=torch.long) + elif isinstance(prefix_length, torch.Tensor): + lengths = prefix_length.to(device=device, dtype=torch.long) + if lengths.dim() == 0: + lengths = lengths.expand(batch_size) + elif tuple(lengths.shape) != (batch_size,): + raise ValueError(f"prefix_length tensor must have shape [] or [{batch_size}]; got {tuple(lengths.shape)}.") + elif isinstance(prefix_length, int): + lengths = torch.full((batch_size,), prefix_length, device=device, dtype=torch.long) + else: + lengths = torch.as_tensor(list(prefix_length), device=device, dtype=torch.long) + if tuple(lengths.shape) != (batch_size,): + raise ValueError(f"prefix_length sequence must have length {batch_size}; got {tuple(lengths.shape)}.") + + max_allowed = action_horizon - 1 + # One host transfer for every check below: this runs per /predict and per chunk in the + # inference-MSE eval, so each extra `.item()` on a device tensor is a blocking sync. + lengths_cpu = lengths.detach().to("cpu") + if bool(((lengths_cpu < 0) | (lengths_cpu > max_allowed)).any().item()): + raise ValueError( + f"prefix_length values must be in [0, {max_allowed}] so RTC leaves at least one model-generated " + f"suffix row; got {lengths_cpu.tolist()}." + ) + max_length = int(lengths_cpu.max().item()) if lengths_cpu.numel() else 0 + validate_rtc_prefix_capability( + prefix_length=max_length, + max_delay_steps=rtc_max_delay_steps, + probability=rtc_probability, + action_horizon=action_horizon, + allow_ood=allow_ood, + ) + if action_prefix.shape[1] < max_length: + raise ValueError(f"action_prefix has only {action_prefix.shape[1]} rows but max prefix_length={max_length}.") + if max_length > 0 and action_dim is None and source_dim != expert_action_dim: + raise ValueError( + "action_dim is required when action_prefix is narrower than the expert action width; " + f"got prefix dim {source_dim} and expert width {expert_action_dim}." + ) + if max_length > 0 and source_dim not in (output_dim, expert_action_dim): + raise ValueError( + "action_prefix last dim must match action_dim or the expert action width; " + f"got prefix dim {source_dim}, action_dim {output_dim}, expert width {expert_action_dim}." + ) + return ResolvedRTCActionPrefix(source_dim, output_dim, lengths, max_length) + + +def materialize_rtc_action_prefix( + resolved: ResolvedRTCActionPrefix, + action_prefix: torch.Tensor | None, + *, + batch_size: int, + action_horizon: int, + expert_action_dim: int, + device: torch.device, + dtype: torch.dtype, + dim_mask: torch.Tensor | None, +) -> tuple[torch.Tensor | None, torch.Tensor | None]: + """Materialize the fixed prefix values and their row mask.""" + if action_prefix is None or resolved.max_length == 0: + return None, None + assert resolved.lengths is not None + assert resolved.source_dim is not None + prefix_tensor = torch.zeros(batch_size, action_horizon, expert_action_dim, dtype=dtype, device=device) + prefix_tensor[:, : resolved.max_length, : resolved.source_dim] = action_prefix[:, : resolved.max_length].to( + device=device, + dtype=dtype, + ) + if dim_mask is not None: + prefix_tensor = prefix_tensor * dim_mask + prefix_mask = torch.arange(action_horizon, device=device).view(1, action_horizon, 1) < resolved.lengths.view( + batch_size, + 1, + 1, + ) + return prefix_tensor, prefix_mask + + +def integrate_rtc_euler( + initial_state: torch.Tensor, + *, + num_steps: int, + velocity_fn: Callable[[torch.Tensor, float], torch.Tensor], + prefix_tensor: torch.Tensor | None, + prefix_mask: torch.Tensor | None, + dim_mask: torch.Tensor | None, +) -> torch.Tensor: + """Integrate a flow velocity while pinning an optional RTC prefix.""" + + def apply_masks(state: torch.Tensor) -> torch.Tensor: + if dim_mask is not None: + state = state * dim_mask + if prefix_mask is not None and prefix_tensor is not None: + state = torch.where(prefix_mask, prefix_tensor, state) + return state + + state = apply_masks(initial_state) + dt = 1.0 / num_steps + for step in range(num_steps): + flow_time = step / num_steps + velocity = velocity_fn(state, flow_time) + if dim_mask is not None: + velocity = velocity * dim_mask + if prefix_mask is not None: + velocity = torch.where(prefix_mask, torch.zeros_like(velocity), velocity) + state = apply_masks(state + dt * velocity) + return state diff --git a/tensor_stream.py b/tensor_stream.py new file mode 100644 index 0000000000000000000000000000000000000000..370edb2851bbdd474a6408dea63265f1c11cd198 --- /dev/null +++ b/tensor_stream.py @@ -0,0 +1,945 @@ +# ruff: noqa +from __future__ import annotations + +import heapq +import math +from collections import defaultdict +from collections.abc import Callable, Hashable, Iterable +from dataclasses import dataclass, field, fields, replace +from enum import Enum +from typing import ( + Any, + TypeAlias, + TypeVar, +) + +import torch +from torch.profiler import record_function + + +class ModalityType(Enum): + """ + Base class for modality-type enumerations. + Each derived class (VisionType, AudioType, etc.) holds + an integer value that identifies a specific modality. + + Example usage: + If you have an object `my_event` of class `Event`, + you might write: + if my_event.type == AudioType.waveform: + # process an audio waveform + + The methods below implement ordering and hashing + based on the integer `.value` of each enum member. + """ + + @property + def modality(self): + # AudioType.spectrogram.modality = AudioType + # TODO: AudioType.modality = AudioType + return self.__class__ + + def __lt__(self, other): + if isinstance(other, ModalityType): + return self.value < other.value + raise NotImplementedError() + + def __eq__(self, other): + if isinstance(other, ModalityType): + return self.value == other.value + raise NotImplementedError() + + def __hash__(self): + return hash(self.value) + + +# NOTE: modality types need to be unique +class VisionType(ModalityType): + """ + Enum for vision modalities such as video frames. + Typically used in video processing or image sequences. + + Members: + I: An I-frame in a video (intra-coded, more complete data). + P: A P-frame in a video (predicted frame, partial data). + """ + + I = 0 # noqa: E741 + P = 1 + + +class AudioType(ModalityType): + """ + Enum for audio-related modalities. + + Members: + waveform: Raw time-domain audio samples. + spectrogram: Frequency-domain representation of audio. + encodec: Some compressed audio representation (e.g. EnCodec). + """ + + waveform = 2 + spectrogram = 3 + encodec = 4 + + +class SyntheticType(ModalityType): + """ + Enum for "synthetic" or derived modalities, such as + automatically generated annotations. + + Members: + audio_transcript: Text transcript derived from audio. + caption: Caption derived from an image/video. + segmentation: (e.g.) semantic or instance segmentation map. + """ + + audio_transcript = 5 + caption = 6 + segmentation = 7 + + +class TextType(ModalityType): + """ + Enum for text or text-like tokens (e.g. subtitles, timestamps, etc.). + + Members: + text: Actual textual tokens. + timestamp: Special tokens representing time boundaries or intervals. + padding: Padding tokens, often used in NLP or other sequence tasks. + """ + + text = 8 + timestamp = 9 + padding = 10 + eval = 11 + control = 12 + action = 14 + action_c = 15 + + +FLOW_ACTION_TEXT_TYPE = TextType.action_c + + +# NOTE: modality types need to be unique +class VectorType(ModalityType): + """ + Enum for vector-valued modalities (e.g. state vectors). + """ + + vector = 13 + + +# maps idx -> type (sorted by value to maintain ALL_TYPES[t.value] == t invariant) +ALL_TYPES = sorted( + [ + tp + for types in [ + list(VisionType), + list(AudioType), + list(SyntheticType), + list(TextType), + list(VectorType), + ] + for tp in types + ], + key=lambda t: t.value, +) +assert all(ALL_TYPES[t.value] == t for t in ALL_TYPES), "ALL_TYPES must preserve enum value -> type lookup" + +# Pre-computed set for hot-path dtype dispatch in TensorStream.to(). +_TEXT_OR_SYNTHETIC_TYPES: frozenset[ModalityType] = frozenset((*TextType, *SyntheticType)) + + +def _prod_dims(dims: list[int]) -> int: + total = 1 + for dim in dims: + total *= dim + return total + + +_LONG_TOKEN_MODALITIES = frozenset({TextType, SyntheticType}) +_BULK_LONG_TRANSFER_MIN_TENSORS = 4 + + +# @dataclass +@dataclass(slots=True) +class Event: + """ + Represents a single data occurrence (with a specific type, time interval, and data payload). + + Attributes: + data (Any): The actual data payload (e.g. a torch.Tensor, a string, etc.). + type (ModalityType): The modality type of the data (e.g., VisionType.I). + time (Tuple[float, float]): (start_time, end_time) indicating when this Event occurs. + role (Optional[str]): The role associated with this event (e.g., "user", "agent", "system"). + If None, the event is always included in loss calculation. + + Example usage: + evt = Event(data=torch.randn(1, 16000), # e.g. 1-second audio waveform + type=AudioType.waveform, + time=(0.0, 1.0), + role="user") + """ + + # Descriptors + data: Any + time: tuple[float, float] + type: ModalityType + role: str | None = None + + # Structure + dims_virtual: list[int] | None = None # virtual/processed dimensions (e.g., pixel-shuffled) + dims_real: list[int] | None = None # real/actual tensor dimensions + idx_range: tuple[int, int] | None = None + + # Misc Tags (data source, shard idx, etc.) + tags: dict = field(default_factory=dict) + + def dims(self, virtual: bool = True) -> list[int] | None: + """ + Get the dimensions of this event. + + Args: + virtual: If True (default), return virtual/processed dimensions (e.g., pixel-shuffled). + If False, return real/actual tensor dimensions. + + Returns: + Dimensions list or None if not measured. + """ + if virtual: + return self.dims_virtual + else: + return self.dims_real + + @property + def is_measured(self): + return self.dims_virtual is not None + + def slice_tokens(self, start: int | None = None, end: int | None = None): + """ + Converts into a partial event where the only valid data is between start and end indices of the flattened data + """ + assert self.is_measured + assert self.idx_range is not None + assert start is not None and end is not None + assert self.idx_range[0] <= start <= end <= self.idx_range[1] + dims = self.dims() + assert dims is not None + self.idx_range = (start or 0, end or _prod_dims(dims)) + + def num_tokens(self, partial=True, virtual=True) -> int: + if not virtual: + assert partial is False and isinstance(self.data, torch.Tensor) + dims = self.dims(virtual=False) + assert dims is not None + return _prod_dims(dims) + if partial: + assert self.idx_range is not None + return self.idx_range[1] - self.idx_range[0] + dims = self.dims() + assert dims is not None + return _prod_dims(dims) + + def shallow_copy(self) -> Event: + return replace( + self, + dims_virtual=list(self.dims_virtual) if self.dims_virtual is not None else None, + dims_real=list(self.dims_real) if self.dims_real is not None else None, + tags=dict(self.tags), + ) + + @classmethod + def from_text_tokens( + cls, + tokens: torch.Tensor, + *, + time: tuple[float, float], + type: TextType = TextType.text, + role: str | None = None, + tags: dict | None = None, + ) -> Event: + """ + Construct a text event from integer token ids. + + Contract: + - tokens must be a torch.Tensor with an integer dtype. + - type must be a TextType variant. + - tokens must be 1D or 2D; 1D tensors are normalized to (n_tokens, 1). + """ + if not isinstance(tokens, torch.Tensor): + raise TypeError("tokens must be a torch.Tensor") + if not isinstance(type, TextType): + raise ValueError("type must be a TextType") + if not isinstance(time, tuple) or len(time) != 2: + raise ValueError("time must be a tuple of (start, end)") + + int_dtypes = { + torch.int8, + torch.int16, + torch.int32, + torch.int64, + torch.uint8, + } + for dtype_name in ("uint16", "uint32", "uint64"): + dtype = getattr(torch, dtype_name, None) + if dtype is not None: + int_dtypes.add(dtype) + if tokens.dtype not in int_dtypes: + raise ValueError("tokens must use an integer dtype") + + if tokens.dim() == 1: + tokens = tokens.unsqueeze(1) + elif tokens.dim() == 2: + if tokens.shape[1] != 1: + raise ValueError("2D token tensors must have shape (n_tokens, 1)") + else: + raise ValueError("tokens must be 1D or 2D") + + dims = list(tokens.shape) + idx_range = (0, math.prod(dims)) + assert idx_range[0] <= idx_range[1] + + if tags is None: + tags = {} + else: + tags = dict(tags) + + return cls( + data=tokens, + time=time, + type=type, + role=role, + tags=tags, + dims_virtual=dims, + dims_real=dims, + idx_range=idx_range, + ) + + def __hash__(self) -> int: + """Hash Event based on structure, excluding data.""" + + def make_hashable(obj): + """Convert any object to hashable form.""" + if obj is None: + return None + elif isinstance(obj, str | int | float | bool | tuple): + return obj + elif isinstance(obj, list): + return tuple(make_hashable(item) for item in obj) if obj else None + elif isinstance(obj, dict): + return tuple(sorted((k, make_hashable(v)) for k, v in obj.items())) if obj else None + elif hasattr(obj, "value"): # Enum types + return obj.value + else: + return str(obj) # Fallback for other types + + hash_values = [] + for fld in fields(self): + if fld.name == "data": + continue # Skip tensor data + + value = getattr(self, fld.name) + hash_values.append(make_hashable(value)) + + return hash(tuple(hash_values)) + + def __eq__(self, other) -> bool: + """ + Compares two Event objects for strict equality, + allowing for float tolerances in torch.Tensors (via torch.allclose). + """ + if not isinstance(other, Event): + return False + + for fld in fields(self): + self_value = getattr(self, fld.name) + other_value = getattr(other, fld.name) + + if fld.name == "data": + # Special handling for tensor data with float tolerance + if isinstance(self_value, torch.Tensor) and isinstance(other_value, torch.Tensor): + if not torch.allclose(self_value, other_value): + return False + else: + if self_value != other_value: + return False + elif fld.name == "role": + # Special handling for role: both must be None or both must be set and equal + if (self_value is None) != (other_value is None): + return False + if self_value is not None and self_value != other_value: + return False + else: + # Standard equality for all other fields + if self_value != other_value: + return False + + return True + + +@dataclass +class Stream: + """ + Represents an ordered sequence of Event objects, each with + a specific ModalityType and a time range. + + Attributes: + events (List[Event]): The list of Event objects in the stream. + priority (List[ModalityType]): A list of modality types that define + how we might want to reorder or prioritize events if scheduling is needed. + + Example usage: + # Create two events of different types + evt1 = Event(torch.zeros((3, 224, 224)), VisionType.I, (0.0, 0.04)) + evt2 = Event(torch.randn((16000,)), AudioType.waveform, (0.0, 1.0)) + + # Make a stream with a given priority + s = Stream(events=[evt1, evt2], + priority=[VisionType.I, AudioType.waveform]) + + print(s) + """ + + events: list[Event] + priority: list[ModalityType] # priority of stream ordering + + def __len__(self): + """Returns the number of Event objects in this Stream.""" + return len(self.events) + + def __getitem__(self, key: int) -> Stream | Event: + return self.events[key] + + def __iter__(self): + """ + Yields each Event in the Stream, enabling iteration like: + for event in my_stream: + ... + """ + yield from self.events + + # --- after ------------------------------------------------------------ + @record_function("Stream.map") + def map( + self, + func: Callable[[Event], dict[str, Any]], + *, + copy_unchanged: bool = False, # opt-in if you really need isolation + ) -> Stream: + """ + Apply *func* to every event and return a new Stream. + + *func* must return a **dict of fields that actually change**. + We create **one shallow copy** only when something changes; + unchanged events are reused directly, which is inexpensive and + keeps autograd graphs intact. + """ + mapped: list[Event] = [] + for ev in self.events: + delta = func(ev) + if not delta: # fast-path: nothing changes + mapped.append(ev if not copy_unchanged else ev.shallow_copy()) + continue + + new_ev = ev.shallow_copy() # ⚡ no tensor clone + for k, v in delta.items(): + setattr(new_ev, k, v) + mapped.append(new_ev) + + return create_stream(mapped, priority=self.priority, schedule=False) + + @record_function("Stream.compact") + def compact(self) -> torch.Tensor: + assert all([(isinstance(ev.data, torch.Tensor) and ev.is_measured) for ev in self.events]), ( + "Stream.compact only works for streams with events that have measured tensor data" + ) + return torch.cat([ev.data for ev in self.events]).contiguous() + + @record_function("Stream.map_compact") + def map_compact(self, event_tf: Callable[[Event], list[Any]]) -> torch.Tensor: + mapped_list = [] + for event in self: + mapped_list.extend(event_tf(event)) + tensor = torch.tensor( + mapped_list, + dtype=torch.long, + device=next( + (ev.data.device for ev in self.events if isinstance(ev.data, torch.Tensor)), + "cpu", + ), + ).contiguous() + return tensor + + def flatten(self) -> Stream: + return self.map(lambda ev: {"data": ev.data.reshape(-1, ev.data.shape[-1])}) + + def shallow_copy(self) -> Stream: + events_copy = [ev.shallow_copy() for ev in self.events] + return create_stream(events=events_copy, priority=self.priority, schedule=False) + + def __hash__(self) -> int: + """Hash Stream based on structure.""" + return hash( + ( + tuple(p.value for p in self.priority), # Convert enums to values + tuple(hash(event) for event in self.events), # Use Event.__hash__ + ) + ) + + def __eq__(self, other) -> bool: + """Compare Streams structurally.""" + if not isinstance(other, Stream): + return False + + return ( + self.priority == other.priority + and len(self.events) == len(other.events) + and all(e1 == e2 for e1, e2 in zip(self.events, other.events, strict=False)) + ) + + +# TODO: implement all types of cool indexing which can happen since TensorStream assuems Event.data = Tensor +@dataclass +class TensorStream: + streams: list[Stream] + _device: torch.device | None = None + + def __post_init__(self): + for stream in self.streams: + for event in stream.events: + assert isinstance(event.data, torch.Tensor) + if self._device is None: + self._device = torch.device(event.data.device) + + # TODO: implement non-strict compaction modes + @record_function("TensorStream.compact") + def compact(self, mode="strict") -> torch.Tensor: + compact_tensor_stream = torch.stack([stream.compact() for stream in self.streams]).contiguous() + return compact_tensor_stream + + @record_function("TensorStream.map") + def map(self, event_tf: Callable[[Event], dict[str, Any]]) -> TensorStream: + mapped_streams = [stream.map(event_tf) for stream in self.streams] + return TensorStream(mapped_streams) + + @record_function("TensorStream.map_compact") + def map_compact(self, event_tf: Callable[[Event], list[Any]]) -> torch.Tensor: + mapped_list = [] + for stream in self.streams: + for event in stream: + mapped_list.extend(event_tf(event)) + B, T = self.shape + tensor = torch.tensor(mapped_list, dtype=torch.long, device=self.device).reshape(B, T) + return tensor + + def flat_stream(self) -> Stream: + if not self.streams: + return create_stream([], priority=[], schedule=False) + return create_stream( + [event for stream in self.streams for event in stream], + priority=self.streams[0].priority, + schedule=False, + ) + + @property + def device(self): + return self._device + + def _bulk_move_long_token_events( + self, + *, + target_device: torch.device, + non_blocking: bool, + ) -> set[int]: + if target_device.type != "cuda": + return set() + + long_token_events: list[Event] = [] + total_numel = 0 + for stream in self.streams: + for ev in stream: + if ( + ev.type.modality in _LONG_TOKEN_MODALITIES + and isinstance(ev.data, torch.Tensor) + and ev.data.device.type == "cpu" + and ev.data.ndim == 1 + and ev.data.is_contiguous() + ): + long_token_events.append(ev) + total_numel += ev.data.numel() + + if len(long_token_events) < _BULK_LONG_TRANSFER_MIN_TENSORS or total_numel == 0: + return set() + + # Many tiny token copies show up as TensorStream.to overhead in steady-state + # profiling. Flattening only the 1D long-token case keeps semantics unchanged + # while collapsing those H2D copies into one pinned transfer. + flat_cpu = torch.empty(total_numel, dtype=torch.long, pin_memory=True) + offset = 0 + lengths: list[int] = [] + original_shapes: list[torch.Size] = [] + for ev in long_token_events: + length = ev.data.numel() + flat_cpu[offset : offset + length].copy_(ev.data.reshape(-1)) + lengths.append(length) + original_shapes.append(ev.data.shape) + offset += length + + flat_gpu = flat_cpu.to(device=target_device, non_blocking=non_blocking) + + moved_event_ids: set[int] = set() + offset = 0 + for ev, length, original_shape in zip(long_token_events, lengths, original_shapes, strict=False): + ev.data = flat_gpu.narrow(0, offset, length).view(original_shape) + moved_event_ids.add(id(ev)) + offset += length + + return moved_event_ids + + @property + def shape(self): + seq_lens = [sum([ev.num_tokens() for ev in stream]) for stream in self.streams] + assert all([sl == seq_lens[0] for sl in seq_lens]), ( + f"each stream must have same token count to have a shape: {seq_lens}" + ) + return (len(seq_lens), seq_lens[0]) + + @record_function("TensorStream.to") + def to( + self, + device: torch.device | str, + dtype: torch.dtype | None = None, + non_blocking: bool = True, + ) -> TensorStream: + """ + Move **all** `Event.data` tensors to *device*. + + We send each tensor individually instead of the + flatten → unflatten round-trip: + + * one async H2D copy per tensor (still overlapped when + `pin_memory=True` is set on the DataLoader), + * no extra host-side concat, no extra device allocation, + * `requires_grad` flags are preserved. + + NOTE: textual & synthetic modalities are always cast + to `torch.long`; everything else keeps its original + dtype unless an explicit *dtype* argument is supplied. + """ + target_device = torch.device(device) + bulk_moved_event_ids = self._bulk_move_long_token_events( + target_device=target_device, + non_blocking=non_blocking, + ) + + for stream in self.streams: + for ev in stream: + if id(ev) in bulk_moved_event_ids: + continue + + # ------------------------------------------------------------------ + # Decide the dtype for *this* event. + # ------------------------------------------------------------------ + if ev.type.modality in _LONG_TOKEN_MODALITIES: + tgt_dtype = torch.long + else: + tgt_dtype = dtype or ev.data.dtype + + # ------------------------------------------------------------------ + # Perform the device / dtype move. + # ------------------------------------------------------------------ + # We clone no tensor here; torch will reuse storage + # if `dtype` and `device` are unchanged. + moved = ev.data.to( + device=target_device, + dtype=tgt_dtype, + non_blocking=non_blocking, + ) + + if ev.data.requires_grad: + moved.requires_grad_(True) + + ev.data = moved + + # Remember where the whole TensorStream lives now. + self._device = target_device + return self + + @record_function("TensorStream.pin_memory") + def pin_memory(self, non_blocking: bool = True) -> TensorStream: + """ + Page-lock (aka *pin*) all **CPU** tensors contained in this + `TensorStream`. Pinned tensors make subsequent asynchronous + H2D copies (e.g. inside `TensorStream.to("cuda")`) faster and, + when used together with a `DataLoader(pin_memory=True)`, + enable overlap of host-to-device transfers with GPU execution. + + The call is a no-op for tensors that are already on a CUDA / + MPS / other non-CPU device. + + Parameters + ---------- + non_blocking : bool, default = True + Forwarded to `Tensor.pin_memory()`; should almost always + stay *True* so later `to(device, non_blocking=True)` calls + can overlap. + + Returns + ------- + self : TensorStream + The same object (mutated in-place) to allow call chaining. + """ + for stream in self.streams: + for ev in stream: + if ev.data.device.type == "cpu": + # `pin_memory()` clones only when needed + pinned = ev.data.pin_memory() # noqa: F841 + # NB: pin_memory() preserves dtype/shape/grad/etc. + if not non_blocking: + # ensure the pinning work is done now + torch.cuda.current_stream().synchronize() # safe on CPU too + ev.data = pinned + + # `_device` **stays** the same (still CPU) – no change needed + return self + + def __hash__(self) -> int: + """Hash TensorStream based on structure.""" + return hash( + ( + tuple(hash(stream) for stream in self.streams), # Use Stream.__hash__ + str(self._device) if self._device else None, + self.shape, + ) + ) + + def __eq__(self, other) -> bool: + """Compare TensorStreams structurally.""" + if not isinstance(other, TensorStream): + return False + + return ( + self._device == other._device + and self.shape == other.shape + and len(self.streams) == len(other.streams) + and all(s1 == s2 for s1, s2 in zip(self.streams, other.streams, strict=False)) + ) + + +def collate_tensor_stream( + tensor_streams: list[TensorStream], +) -> TensorStream: + return TensorStream([stream.shallow_copy() for ts in tensor_streams for stream in ts.streams]) + + +def _schedule_stream(stream: Stream) -> Stream: + """ + Internal function that reorders (schedules) the events in a Stream + based on the stream's priority. + + By default, this calls schedule_events(...) and reorders the events accordingly. + The new ordering is assigned in-place to stream.events. + + Example usage (indirect): + new_stream = _schedule_stream(old_stream) + """ + scheduled_inds = schedule_events(stream, priority=stream.priority) + stream.events = [stream.events[i] for i in scheduled_inds] + return stream + + +def create_stream(events: list[Event], priority: list[ModalityType], schedule: bool = True) -> Stream: + """ + Creates a new Stream with the given events and priority. + If 'schedule' is True, the events are reordered by calling _schedule_stream. + + The events list is shallow-copied so that the returned Stream owns its + own events container. Without this, downstream code that appends to + `stream.events` would mutate the caller's list, leaking state across + independent operations. + + Example usage: + evt1 = Event(torch.zeros(10), AudioType.waveform, (0.0, 1.0)) + evt2 = Event(torch.ones(10), AudioType.waveform, (1.0, 2.0)) + my_stream = create_stream(events=[evt1, evt2], + priority=[AudioType.waveform], + schedule=False) + print(my_stream) + """ + stream = Stream(list(events), priority) + if schedule: + stream = _schedule_stream(stream) + return stream + + +def merge_streams(streams: Iterable[Stream]) -> Stream: + """ + Merges multiple Stream objects into one. + The priority of the merged stream is chosen from the longest priority list among the inputs. + Stream priorities must be consistent with the chosen priority. + + All events are concatenated, and a new Stream is created (and scheduled). + + Example usage: + merged = merge_streams([stream1, stream2]) + """ + chosen_priority = max([stream.priority for stream in streams], key=len) + assert all( + [str(stream.priority) in str([p for p in chosen_priority if p in stream.priority]) for stream in streams] + ), "One or more streams has a priority order that doesn't match the merged stream" + merged_event_list = [ev for stream in streams for ev in stream.events] + merged_stream = create_stream(merged_event_list, chosen_priority) # non-root stream creation + return merged_stream + + +EventDescriptor: TypeAlias = Any +GroupKeyT = TypeVar("GroupKeyT", bound=Hashable) + + +# NOTE: actually not used now but thought it *might* be useful +def get_stream_descriptor( + stream: Stream, measure_fn: Callable[[Event], EventDescriptor] = lambda ev: ev.type +) -> set[Any]: + """ + Create a set of descriptors for each Event in a Stream based on measure_fn. + + measure_fn maps an Event to a descriptive key. + For example, if events have different data shapes, one might use: + measure_fn = lambda ev: ev.data.shape + i.e. + stream of VisionTypes with tensors of shapes [(1, 3, 3), (1, 3, 3), (1, 4, 4)] + get_stream_descriptor(stream, measure_fn=lambda t: t.shape) = {(1, 3, 3), (1, 4, 4)} + now we can pass this into group_streams which will split out vision sub-streams which can be bundled + Returns: + A set of descriptors representing the Events in the stream. + + Example usage: + descriptor = get_stream_descriptor(my_stream, lambda ev: ev.type) + """ + stream_descriptor = set() + for ev in stream.events: + ev_measurement = measure_fn(ev) + stream_descriptor.add(ev_measurement) + return stream_descriptor + + +def group_streams( + stream: Stream, + group_fn: Callable[[Event], GroupKeyT], + schedule=True, +) -> dict[GroupKeyT, Stream]: + """ + Splits a single Stream into multiple sub-Streams, grouped by the output of group_fn(event). + + For example, group_fn could be: + - lambda ev: ev.type + - lambda ev: ev.type.modality + - lambda ev: (ev.type.modality, ev.data.shape) + + Returns: + A dictionary mapping each group key to a Stream of events belonging to that group. + If 'schedule' is True, each sub-Stream is scheduled via create_stream(..., schedule=True). + + Example usage: + substreams = group_streams(my_stream, lambda ev: ev.type) + """ + split_events: defaultdict[GroupKeyT, list[Event]] = defaultdict(list) + for event in stream: + split_events[group_fn(event)].append(event) + return {group: create_stream(events, stream.priority, schedule=schedule) for group, events in split_events.items()} + + +# Define Category for clarity +Category: TypeAlias = Any + + +def schedule_events(stream: Stream, priority: list[Category]) -> list[int]: + """ + Schedule events based on their start time and priority using a topological sort algorithm. + + The priority list defines the ordering of categories. + + This function: + 1. Pairs each event with its original index. + 2. Sorts events by start time. + 3. Builds a dependency graph based on overlapping events. + 4. Uses a heap to perform a deterministic topological sort with tie-breakers. + + Raises: + ValueError: If a cycle is detected in the events (i.e., no valid ordering exists). + + Returns: + List[int]: A list of original indices representing the scheduled order of events. + """ + priority_index: dict[Category, int] = {category: idx for idx, category in enumerate(priority)} + + # Pair each event metadata with its original index + events = [] + for i, event in enumerate(stream.events): + events.append( + ( + i, + event.time[0], + event.time[1], + event.type, + ) + ) + + sorted_events = sorted(events, key=lambda e: e[1]) # sort by start time + num_events = len(sorted_events) + + # Build dependency graph + graph = defaultdict(set) + indegree = {i: 0 for i in range(num_events)} + + for i in range(num_events): + idx_i, start_i, end_i, category_i = sorted_events[i] + prio_i = priority_index[category_i] + for j in range(i + 1, num_events): + idx_j, start_j, end_j, category_j = sorted_events[j] + if start_j >= end_i: + break + if end_i > start_j and end_j > start_i: + prio_j = priority_index[category_j] + if prio_i < prio_j: + graph[i].add(j) + indegree[j] += 1 + elif prio_i > prio_j: + graph[j].add(i) + indegree[i] += 1 + + # Use heap for deterministic tie-breakers: (start_time, priority, original_index) + heap = [ + ( + sorted_events[i][1], + priority_index[sorted_events[i][3]], + sorted_events[i][0], + i, + ) + for i in range(num_events) + if indegree[i] == 0 + ] + heapq.heapify(heap) + resolved_order = [] + + while heap: + _, _, _, u = heapq.heappop(heap) + resolved_order.append(u) + for v in graph[u]: + indegree[v] -= 1 + if indegree[v] == 0: + heapq.heappush( + heap, + ( + sorted_events[v][1], + priority_index[sorted_events[v][3]], + sorted_events[v][0], + v, + ), + ) + + if len(resolved_order) != num_events: + raise ValueError("Cycle detected in events, cannot resolve order") + + return [sorted_events[i][0] for i in resolved_order] diff --git a/tensor_stream_mrope.py b/tensor_stream_mrope.py new file mode 100644 index 0000000000000000000000000000000000000000..f758ec6693b3b0a6f1805c85fdf349308063c48c --- /dev/null +++ b/tensor_stream_mrope.py @@ -0,0 +1,50 @@ +import torch + +from .tensor_stream import TensorStream + + +def compute_mrope_pos_tensor_common(ts: TensorStream, n_pos_dims: int = 3) -> torch.Tensor: + """ + Create a (batch, T, n_pos_dims) position tensor in one sweep. + The first dim is the running "time" index, the rest are spatial (or 1-fillers). + """ + if n_pos_dims < 1: + raise ValueError(f"n_pos_dims must be >= 1, got {n_pos_dims}") + + bsz, seq_len = ts.shape + positions = torch.empty((bsz, seq_len, n_pos_dims), dtype=torch.long, device=ts.device) + + for batch_idx, stream in enumerate(ts.streams): # one stream == one batch sample + cumulative_offset = 0 + seq_offset = 0 + + for event in stream: + raw_dims = event.dims() or [1] + if len(raw_dims) > n_pos_dims: + raise ValueError( + f"event dims length ({len(raw_dims)}) exceeds n_pos_dims ({n_pos_dims}); " + "higher-rank MRoPE events are unsupported" + ) + dims = raw_dims + [1] * (n_pos_dims - len(raw_dims)) + if event.idx_range is None: + raise ValueError("TensorStream event is missing idx_range required for MRoPE positions.") + start, end = event.idx_range + token_count = end - start + if token_count == 0: + cumulative_offset += max(dims) + continue + + token_indices = torch.arange(start, end, dtype=torch.long, device=ts.device) + coords = torch.empty((token_count, n_pos_dims), dtype=torch.long, device=ts.device) + + stride = 1 + for dim_idx in range(n_pos_dims - 1, -1, -1): + dim = dims[dim_idx] + coords[:, dim_idx] = cumulative_offset + (token_indices // stride) % dim + stride *= dim + + positions[batch_idx, seq_offset : seq_offset + token_count] = coords + seq_offset += token_count + cumulative_offset += max(dims) + + return positions diff --git a/tensor_stream_utils.py b/tensor_stream_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..af2f2e6a527dbfdc78ef84dd75a23c7db1e2a908 --- /dev/null +++ b/tensor_stream_utils.py @@ -0,0 +1,231 @@ +"""TensorStream helpers copied from the restacked Isaac Phase-1 implementation.""" + +from __future__ import annotations + +from collections.abc import Callable, Iterable + +import torch + +from .tensor_stream import ( + FLOW_ACTION_TEXT_TYPE, + Event, + ModalityType, + Stream, + TensorStream, + TextType, + create_stream, +) +from .tensor_stream_mrope import compute_mrope_pos_tensor_common + +ACTION_CONTEXT_EXCLUDED_TYPES = frozenset({TextType.action, FLOW_ACTION_TEXT_TYPE}) +ACTION_CONTEXT_EXCLUDED_TYPE_VALUES = tuple(action_type.value for action_type in ACTION_CONTEXT_EXCLUDED_TYPES) +ACTION_CONTEXT_PROVENANCE_KEYS = ("source_stream_name", "shard_id", "shard_sample_id") + + +def _compute_event_mask_uncached( + tensor_stream: TensorStream, + tag_fn: Callable[[Event], int | None], + default: int = -1, +) -> torch.Tensor: + batch_size, sequence_length = tensor_stream.shape + device = tensor_stream.device or torch.device("cpu") + mask = torch.full((batch_size, sequence_length), default, dtype=torch.long, device=device) + + for batch_index, stream in enumerate(tensor_stream.streams): + sequence_offset = 0 + for event in stream: + token_count = event.num_tokens() + if token_count == 0: + continue + label = tag_fn(event) + mask[batch_index, sequence_offset : sequence_offset + token_count] = default if label is None else label + sequence_offset += token_count + if sequence_offset != sequence_length: + raise ValueError( + f"TensorStream stream {batch_index} covered {sequence_offset} tokens " + f"while shape expects {sequence_length}." + ) + + return mask + + +def compute_mrope_pos_tensor(tensor_stream: TensorStream, n_pos_dims: int = 3) -> torch.Tensor: + """Create ISAAC05 multidimensional rotary positions for a TensorStream.""" + return compute_mrope_pos_tensor_common(tensor_stream, n_pos_dims=n_pos_dims) + + +def modality_mask(tensor_stream: TensorStream) -> torch.Tensor: + """Return one modality ID per TensorStream token.""" + return _compute_event_mask_uncached(tensor_stream, lambda event: event.type.value) + + +def reconstruct_tensor_stream_from_compact_dict( + tensor_stream: TensorStream, + compact_dict: dict[ModalityType, torch.Tensor], +) -> TensorStream: + """Restore per-event payloads from tensors compacted by modality.""" + streams = [] + for stream in tensor_stream.streams: + event_list = [] + for event in stream: + if event.idx_range is None: + raise ValueError("TensorStream event is missing idx_range required for reconstruction.") + new_event = event.shallow_copy() + payload = compact_dict[event.type] + new_event.data = payload[event.idx_range[0] : event.idx_range[1]] + compact_dict[event.type] = payload[event.num_tokens(partial=False) :] + event_list.append(new_event) + streams.append(Stream(event_list, priority=stream.priority)) + return TensorStream(streams) + + +def first_event_start_indices( + tensor_stream: TensorStream, + event_type: ModalityType, + *, + fallback_start: int | None = None, +) -> list[int]: + """Return first token offset for an event type in each packed stream.""" + if fallback_start is None: + fallback_start = tensor_stream.shape[1] + starts: list[int] = [] + for stream in tensor_stream.streams: + sequence_offset = 0 + event_start = int(fallback_start) + for event in stream.events: + if int(event.type.value) == int(event_type.value): + event_start = sequence_offset + break + sequence_offset += event.num_tokens() + starts.append(event_start) + return starts + + +def action_event_provenance_key( + event: Event, + provenance_keys: Iterable[str] = ACTION_CONTEXT_PROVENANCE_KEYS, +) -> tuple[object, ...] | None: + """Return packed-document provenance used to isolate action context.""" + tags = event.tags or {} + keys = tuple(provenance_keys) + if not any(key in tags for key in keys): + return None + return tuple(tags.get(key) for key in keys) + + +def tensor_stream_token_view(tensor_stream: TensorStream) -> torch.Tensor: + """Return PR #5's `(batch, tokens)` integer view of event payloads.""" + + def to_token_view(event: Event) -> list[int]: + flat = event.data.sum(dim=-1).long().reshape(-1) + if event.idx_range is None: + return flat.tolist() + start, end = event.idx_range + return flat[start:end].tolist() + + return tensor_stream.map_compact(to_token_view) + + +def slice(tensor_stream: TensorStream, start: int, end: int) -> TensorStream: + """Return tokens in the half-open interval `[start, end)`.""" + _, sequence_length = tensor_stream.shape + if not 0 <= start <= end <= sequence_length: + raise ValueError(f"slice [{start}, {end}) is out of bounds for sequence length {sequence_length}") + + sliced_streams: list[Stream] = [] + for stream in tensor_stream.streams: + current_index = 0 + new_events: list[Event] = [] + for event in stream: + event_length = event.num_tokens() + event_start, event_end = current_index, current_index + event_length + if event_end <= start: + current_index = event_end + continue + if event_start >= end: + break + + keep_from = max(0, start - event_start) + keep_to = min(event_length, end - event_start) + part = event.shallow_copy() + if keep_from != 0 or keep_to != event_length: + if not event.is_measured or part.idx_range is None: + raise ValueError("TensorStream partial slice requires a measured event with idx_range.") + local_start = part.idx_range[0] + keep_from + local_end = part.idx_range[0] + keep_to + part.slice_tokens(local_start, local_end) + new_events.append(part) + current_index = event_end + sliced_streams.append(create_stream(new_events, stream.priority, schedule=False)) + return TensorStream(sliced_streams) + + +def build_action_context_mask( + tensor_stream: TensorStream, + *, + action_batch_indices: Iterable[int] | None = None, + action_start_indices: Iterable[int] | None = None, + action_provenance_keys: Iterable[tuple[object, ...] | None] | None = None, + l_model: int | None = None, + device: torch.device | None = None, +) -> tuple[torch.Tensor, int]: + """Build PR #5 non-action prefix masks for each action query.""" + if l_model is None: + l_model = tensor_stream.shape[1] + if device is None: + device = tensor_stream.device or torch.device("cpu") + + def as_int_list(values: Iterable[int] | None, default: Iterable[int]) -> list[int]: + return list(default) if values is None else [int(value) for value in values] + + batch_indices = as_int_list(action_batch_indices, range(len(tensor_stream.streams))) + action_starts = as_int_list(action_start_indices, [l_model] * len(batch_indices)) + provenance_keys = ( + list(action_provenance_keys) if action_provenance_keys is not None else [None] * len(batch_indices) + ) + if not (len(batch_indices) == len(action_starts) == len(provenance_keys)): + raise ValueError( + "action_batch_indices, action_start_indices, and action_provenance_keys must have the same length" + ) + + if all(action_key is None for action_key in provenance_keys): + if not batch_indices: + return torch.zeros(0, l_model, dtype=torch.bool, device=device), 0 + modality_ids = modality_mask(tensor_stream).to(device=device) + modality_width = min(l_model, modality_ids.shape[1]) + batch_index_tensor = torch.as_tensor(batch_indices, device=device, dtype=torch.long) + action_start_tensor = torch.as_tensor(action_starts, device=device, dtype=torch.long) + position_index = torch.arange(l_model, device=device).unsqueeze(0) + prefix_mask = position_index < action_start_tensor.unsqueeze(1) + non_action_mask = torch.zeros(len(batch_indices), l_model, dtype=torch.bool, device=device) + action_mask = modality_ids.index_select(0, batch_index_tensor)[:, :modality_width] + excluded_mask = torch.zeros_like(action_mask, dtype=torch.bool) + for action_type_value in ACTION_CONTEXT_EXCLUDED_TYPE_VALUES: + excluded_mask |= action_mask == action_type_value + non_action_mask[:, :modality_width] = ~excluded_mask + return non_action_mask & prefix_mask, len(batch_indices) + + context_mask = torch.zeros(len(batch_indices), l_model, dtype=torch.bool, device=device) + context_without_provenance = 0 + for row_index, (batch_index, action_start, action_key) in enumerate( + zip(batch_indices, action_starts, provenance_keys, strict=True) + ): + if action_key is None: + context_without_provenance += 1 + sequence_offset = 0 + for event in tensor_stream.streams[batch_index].events: + event_start = sequence_offset + event_end = sequence_offset + event.num_tokens() + sequence_offset = event_end + if event_start >= action_start or event_start >= l_model: + break + if event.type in ACTION_CONTEXT_EXCLUDED_TYPES: + continue + if action_key is not None and action_event_provenance_key(event) != action_key: + continue + span_start = max(event_start, 0) + span_end = min(event_end, action_start, l_model) + if span_end > span_start: + context_mask[row_index, span_start:span_end] = True + + return context_mask, context_without_provenance diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000000000000000000000000000000000000..67741b04f23bfdb46501f748ce27865ec82eccfb --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87a7830d63fcf43bf241c3c5242e96e62dd3fdc29224ca26fed8ea333db72de4 +size 19989343 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000000000000000000000000000000000000..907ae73e610dcf8b063f5cdd142e04f126301899 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,31 @@ +{ + "add_prefix_space": false, + "audio_bos_token": "<|audio_start|>", + "audio_eos_token": "<|audio_end|>", + "audio_token": "<|audio_pad|>", + "bos_token": null, + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "errors": "replace", + "image_token": "<|image_pad|>", + "is_local": false, + "model_max_length": 262144, + "model_specific_special_tokens": { + "audio_bos_token": "<|audio_start|>", + "audio_eos_token": "<|audio_end|>", + "audio_token": "<|audio_pad|>", + "image_token": "<|image_pad|>", + "video_token": "<|video_pad|>", + "vision_bos_token": "<|vision_start|>", + "vision_eos_token": "<|vision_end|>" + }, + "pad_token": "<|endoftext|>", + "pretokenize_regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?[\\p{L}\\p{M}]+|\\p{N}| ?[^\\s\\p{L}\\p{M}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+", + "processor_class": "Qwen3VLProcessor", + "split_special_tokens": false, + "tokenizer_class": "Qwen2Tokenizer", + "unk_token": null, + "video_token": "<|video_pad|>", + "vision_bos_token": "<|vision_start|>", + "vision_eos_token": "<|vision_end|>" +} \ No newline at end of file