Instructions to use dgrachev/pi05_subtask_base with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use dgrachev/pi05_subtask_base with LeRobot:
- Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| library_name: lerobot | |
| pipeline_tag: robotics | |
| tags: | |
| - vision-language-action | |
| - imitation-learning | |
| - lerobot | |
| inference: false | |
| license: gemma | |
| base_model: lerobot/pi05_base | |
| # pi05_subtask base checkpoint | |
| A derived copy of [`lerobot/pi05_base`](https://huggingface.co/lerobot/pi05_base) prepared for the | |
| [`lerobot_policy_pi05_subtask`](https://github.com/) LeRobot plugin (π0.5 with System-1 subtask | |
| generation, following [openpi_subtask](https://github.com/Ke-Wang1017/openpi_subtask)). | |
| **The model weights are bit-identical to `lerobot/pi05_base`.** Only two metadata files differ: | |
| - `config.json`: policy `type` is `pi05_subtask` instead of `pi05`. | |
| - `policy_preprocessor.json`: pi05's `pi05_prepare_state_tokenizer_processor_step` + | |
| `tokenizer_processor` steps are replaced by `pi05_subtask_context_tokenize_processor_step`, | |
| which tokenizes the context segment of the two-segment prompt | |
| ``` | |
| context (no loss): "Task: {task}.; State: {256-bin ints}; Subtask: " | |
| predicted (CE loss): "{subtask}.;\nAction: " + EOS | |
| ``` | |
| into `observation.language.context_tokens`/`.context_mask`. The predicted segment is model | |
| territory: the policy appends it at training time (computing the CE region mask next to the | |
| loss) and decodes it autoregressively at inference. | |
| This exists because LeRobot instantiates processor pipelines from the checkpoint's | |
| `policy_preprocessor.json` (by processor-step registry name), so fine-tuning the subtask policy | |
| directly from `lerobot/pi05_base` would silently install plain pi05's tokenizer steps. | |
| The same artifact is the base for the `framepick` policy type (`lerobot_policy_framepick`): | |
| framepick has no processor steps of its own — frame selection, chunk re-expression and the | |
| assignment prefix all live in the policy, configured from the policy config. | |
| ## Usage | |
| Requires the `lerobot_policy_pi05_subtask` plugin installed (LeRobot auto-imports | |
| `lerobot_policy_*` distributions). In a training config: | |
| ```json | |
| "policy": { | |
| "type": "pi05_subtask", | |
| "pretrained_path": "dgrachev/pi05_subtask_base", | |
| ... | |
| } | |
| ``` | |
| During training the subtask string is read from `complementary_data["subtask"]` when the dataset | |
| provides one, and falls back to the task string otherwise. | |
| Regenerate with `scripts/prepare_base_checkpoint.py` from the plugin repository. | |