Instructions to use v1tavitavita/lehome-residual-v4-global with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use v1tavitavita/lehome-residual-v4-global with LeRobot:
# See https://github.com/huggingface/lerobot?tab=readme-ov-file#installation for more details git clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e .[smolvla]
# Launch finetuning on your dataset python lerobot/scripts/train.py \ --policy.path=v1tavitavita/lehome-residual-v4-global \ --dataset.repo_id=lerobot/svla_so101_pickplace \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true
# Run the policy using the record function python -m lerobot.record \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ # <- Use your port --robot.id=my_blue_follower_arm \ # <- Use your robot id --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ # <- Use your cameras --dataset.single_task="Grasp a lego block and put it in the bin." \ # <- Use the same task description you used in your dataset recording --dataset.repo_id=HF_USER/dataset_name \ # <- This will be the dataset name on HF Hub --dataset.episode_time_s=50 \ --dataset.num_episodes=10 \ --policy.path=v1tavitavita/lehome-residual-v4-global - Notebooks
- Google Colab
- Kaggle
doc: bundled SmolVLM2 cache + offline launcher recipe
Browse files
README.md
CHANGED
|
@@ -1,17 +1,3 @@
|
|
| 1 |
-
---
|
| 2 |
-
base_model:
|
| 3 |
-
- HuggingFaceTB/SmolVLM2-500M-Video-Instruct
|
| 4 |
-
pipeline_tag: robotics
|
| 5 |
-
tags:
|
| 6 |
-
- robotics
|
| 7 |
-
- lerobot
|
| 8 |
-
- lehome-challenge
|
| 9 |
-
- smolVLA
|
| 10 |
-
- residual-rl
|
| 11 |
-
datasets:
|
| 12 |
-
- lehome/dataset_challenge_merged
|
| 13 |
-
- lehome/dataset_challenge
|
| 14 |
-
---
|
| 15 |
# LeHome Challenge 2026 β Submission
|
| 16 |
|
| 17 |
**Method**: SmolVLA (frozen four_types 30K backbone) + state-only residual MLP, trained with sparse-reward residual RL on 40 Seen garments. Single model, deterministic inference.
|
|
@@ -23,11 +9,20 @@ submission_v4_global/
|
|
| 23 |
βββ README.md # this file
|
| 24 |
βββ residual_v4_global.py # the policy module (drop into eval_policy/)
|
| 25 |
βββ submission_models/
|
| 26 |
-
βββ vla_backbone/ # SmolVLA four_types 30K (LeRobot pretrained_model)
|
| 27 |
-
βββ residual_averaged.pt # 40-garment averaged residual MLP
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
```
|
| 30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
## How To Run (evaluator side)
|
| 32 |
|
| 33 |
1. Drop `residual_v4_global.py` into `/opt/lehome-challenge/scripts/eval_policy/`.
|
|
@@ -41,6 +36,19 @@ submission_v4_global/
|
|
| 41 |
export LEHOME_VLA_DATASET_ROOT=<path to submission_models/dataset_meta or any LeRobot dataset>
|
| 42 |
export LEHOME_RESIDUAL_CHECKPOINT=<path to submission_models/residual_averaged.pt>
|
| 43 |
export LEHOME_RESIDUAL_SCALE=0.03
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
export HF_HUB_OFFLINE=1
|
| 45 |
export TRANSFORMERS_OFFLINE=1
|
| 46 |
```
|
|
@@ -140,6 +148,4 @@ Inference is fully deterministic. Two runs with the same backbone, residual chec
|
|
| 140 |
|
| 141 |
## Contact
|
| 142 |
|
| 143 |
-
vita / realvitacai@gmail.
|
| 144 |
-
|
| 145 |
-
klein /kleinlau17@gmail.com
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# LeHome Challenge 2026 β Submission
|
| 2 |
|
| 3 |
**Method**: SmolVLA (frozen four_types 30K backbone) + state-only residual MLP, trained with sparse-reward residual RL on 40 Seen garments. Single model, deterministic inference.
|
|
|
|
| 9 |
βββ README.md # this file
|
| 10 |
βββ residual_v4_global.py # the policy module (drop into eval_policy/)
|
| 11 |
βββ submission_models/
|
| 12 |
+
βββ vla_backbone/ # SmolVLA four_types 30K (LeRobot pretrained_model, ~865M)
|
| 13 |
+
βββ residual_averaged.pt # 40-garment averaged residual MLP (~286K)
|
| 14 |
+
βββ dataset_meta/ # LeRobot dataset metadata (stats.json etc.)
|
| 15 |
+
βββ hf_cache/ # bundled SmolVLM2 weights for offline VLM load (~1.9G)
|
| 16 |
+
βββ hub/models--HuggingFaceTB--SmolVLM2-500M-Video-Instruct/
|
| 17 |
+
βββ snapshots/<commit>/ # tokenizer + processor + model.safetensors
|
| 18 |
+
βββ refs/main # commit hash file
|
| 19 |
```
|
| 20 |
|
| 21 |
+
The wrapper detects `submission_models/hf_cache/` next to `vla_backbone/` and
|
| 22 |
+
sets `HF_HOME` to it during `__init__`, so the SmolVLM2 backbone load
|
| 23 |
+
(`vlm_model_name = "HuggingFaceTB/SmolVLM2-500M-Video-Instruct"`,
|
| 24 |
+
`load_vlm_weights = true`) resolves entirely offline against the bundled cache.
|
| 25 |
+
|
| 26 |
## How To Run (evaluator side)
|
| 27 |
|
| 28 |
1. Drop `residual_v4_global.py` into `/opt/lehome-challenge/scripts/eval_policy/`.
|
|
|
|
| 36 |
export LEHOME_VLA_DATASET_ROOT=<path to submission_models/dataset_meta or any LeRobot dataset>
|
| 37 |
export LEHOME_RESIDUAL_CHECKPOINT=<path to submission_models/residual_averaged.pt>
|
| 38 |
export LEHOME_RESIDUAL_SCALE=0.03
|
| 39 |
+
```
|
| 40 |
+
|
| 41 |
+
The wrapper sets `HF_HOME` automatically to the bundled `hf_cache/` when
|
| 42 |
+
it sees `LEHOME_VLA_POLICY_PATH`, so no network access is required even on
|
| 43 |
+
a fully offline evaluator.
|
| 44 |
+
|
| 45 |
+
**Belt-and-suspenders** β if the evaluator's launcher imports
|
| 46 |
+
`huggingface_hub` before our wrapper module loads (rare but possible),
|
| 47 |
+
the redirect may be too late. To be safe, set HF env vars **before**
|
| 48 |
+
invoking `python -m scripts.eval`:
|
| 49 |
+
```bash
|
| 50 |
+
export HF_HOME="$LEHOME_VLA_POLICY_PATH/../hf_cache"
|
| 51 |
+
export HF_HUB_CACHE="$HF_HOME/hub"
|
| 52 |
export HF_HUB_OFFLINE=1
|
| 53 |
export TRANSFORMERS_OFFLINE=1
|
| 54 |
```
|
|
|
|
| 148 |
|
| 149 |
## Contact
|
| 150 |
|
| 151 |
+
vita / realvitacai@gmail.com
|
|
|
|
|
|