Instructions to use Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA with PEFT:
Task type is invalid.
- LeRobot
How to use Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA 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=Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA \ --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=Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA - Notebooks
- Google Colab
- Kaggle
Configuration Parsing Warning:In adapter_config.json: "peft.task_type" must be a string
IsaacLab-smolVLA-SO101-Multitask-8epoch
lerobot/smolvla_base 를 IsaacLab 시뮬레이션 SO101 11-task 데이터셋 CoRL2026-CSI/Isaaclab-so101_11task_baseCaP_3300epi_10fps 으로 8 epoch 파인튜닝한 SmolVLA 정책.
이 체크포인트는 LoRA adapter 입니다 (adapter_model.safetensors). base 모델 lerobot/smolvla_base 와 함께 로드됩니다.
Model details
- Base model:
lerobot/smolvla_base(SmolVLM2-500M-Video-Instruct VLM + action expert) - Robot: SO101 (6-DOF, gripper 포함) — IsaacLab 시뮬레이션
- Cameras:
top,left_wrist(480×640) — 정책 키camera1(left_wrist) /camera2(top) 로 rename - Inputs:
observation.state[6] + 카메라 2개 + language instruction (task) - Output:
action[6] (joint position) - Action chunking:
chunk_size=50,n_action_steps=50
Fine-tuning strategy (PEFT / LoRA)
핵심: action expert 와 projection 레이어는 full fine-tune, VLM backbone 은 q/v_proj 에만 LoRA, 그 외 VLM 은 완전 freeze.
Trainable / Frozen breakdown
| 모듈 | 상태 | 설명 |
|---|---|---|
VLM q_proj, v_proj (attention query/value projection) |
🔵 LoRA 학습 | base weight 는 frozen, 저랭크 adapter(A·B)만 학습 |
VLM 그 외 전부 — k_proj, o_proj, MLP(gate/up/down_proj), token/position embeddings, vision encoder(SigLIP), LayerNorm |
❄️ 완전 Frozen | LoRA 도 안 붙고 full 학습도 아님 |
Action expert (lm_expert) 전체 — attention(q/k/v/o_proj), MLP(gate/up/down_proj), LayerNorm |
🔥 Full fine-tune | 전체 weight 직접 학습 |
state_proj (state → token embedding) |
🔥 Full fine-tune | |
action_in_proj, action_out_proj (action ↔ expert hidden) |
🔥 Full fine-tune | |
action_time_mlp_in, action_time_mlp_out (flow-matching time embedding) |
🔥 Full fine-tune |
즉 frozen 인 것은 VLM backbone 의 대부분(vision encoder 포함) + VLM 의 k_proj/o_proj/MLP/embedding/LayerNorm. 학습되는 것은 VLM q/v_proj 의 LoRA adapter + action expert 전체 + 모든 projection 레이어.
LoRA / PEFT config
| 항목 | 값 |
|---|---|
| PEFT method | LORA |
rank r |
32 |
lora_alpha |
8 |
lora_dropout |
0.0 |
bias |
none |
use_rslora / use_dora |
false / false |
target_modules (LoRA 적용) |
.*vlm_with_expert\.vlm\..*(q_proj|v_proj) |
modules_to_save (full fine-tune) |
lm_expert, state_proj, action_in_proj, action_out_proj, action_time_mlp_in, action_time_mlp_out |
저장된 adapter 텐서: 267개 (LoRA A/B 112개 — VLM q_proj·v_proj / full-trained 155개 — expert·projection).
Training hyperparameters
| 항목 | 값 |
|---|---|
| Dataset | Isaaclab-so101_11task_baseCaP_3300epi_10fps — 3,300 episodes / 1,175,352 frames / 11 tasks / 10 fps |
| Epochs | 8 |
| Steps | 36,800 |
| Global batch size | 256 (micro batch 64 × 4 GPU × grad_accum 1) |
| Optimizer | AdamW — lr 1e-4, weight_decay 1e-10, grad_clip_norm 10.0 |
| LR scheduler | cosine_decay_with_warmup — warmup 1,000 / decay 30,000 / peak_lr 1e-4 / decay_lr 2.5e-6 |
| Seed | 1000 |
| Dataloader workers | 24 |
| Mixed precision | no (bf16 inference) |
| Image augmentation | ColorJitter (brightness/contrast/saturation/hue) + SharpnessJitter, max 3 random — 기하학적 변형(회전/이동/반전) 없음 (VLA 좌우 의미 보존) |
| Hardware | 4 × NVIDIA H100 80GB |
| Training time | 약 11시간 12분 |
| Final loss | 0.016 (grad_norm 0.21) |
Camera rename
| Dataset key | Policy key |
|---|---|
observation.images.left_wrist |
observation.images.camera1 |
observation.images.top |
observation.images.camera2 |
Usage
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("CoRL2026-CSI/IsaacLab-smolVLA-SO101-Multitask-8epoch")
Citation / Acknowledgement
Built on top of LeRobot and the SmolVLA base checkpoint. Project: CoRL 2026 CSI submission.
Framework versions
- PEFT 0.19.1
- LeRobot 0.5.2
- Downloads last month
- 15
Model tree for Cache-SCA/IsaacLab-smolVLA-SO101-Multitask-8epoch_LoRA
Base model
HuggingFaceTB/SmolLM2-360M