Robotics
LeRobot
Safetensors
PEFT
pi0
lora
so101
sim2real

SO-101 π0 LoRA(仿真 + 真机混训,10 个任务)

在 lerobot/pi0_old 上做 LoRA 微调,训练集与同批 SmolVLA LoRA 完全相同: 仿真三个抓放任务 1498 集 + 公开的 SO-101 真机遥操 9 个任务 2200 集 = 3698 集 / 10 个任务, 30000 步(约 2.25 轮),六卡。

秩按基座大小放大到 r=256,可训练参数 84,643,872(占全模型 2.06%,与 SmolVLA LoRA 的 2.1% 对齐)。

三个仿真场景各 50 局的验收

任务 π0 LoRA SmolVLA LoRA(同数据同评测)
Pick up a cube and place in the bin 92.0%(46/50) 94.0%
Pick up a small cube and place in the bin 88.0%(44/50) 84.0%
Pick up a can and place in the bin 92.0%(46/50) 98.0%

2026-10-21 用本仓的文件(底座从 HF 现场下载)按下面「加载」一节的命令测得,每场评测独占一张显卡。 20mm 那一场在两张不同的卡上各跑一次,结果逐位相同。

加载

适配器的底座是 lerobot/pi0_old(提交 e4ed526a,与 lerobot/pi0 当前版本是同一份文件,与训练时用的那份 model.safetensors 逐字节相同,sha256 e1bbcefd55ba…)。策略配置以本仓的 config.json 为准 —— LeRobot 加载适配器时把它传给底座,底座仓里那份过时的 config.json 不会被读到。

LeRobot 0.5 线不能直接把仓库 id 当适配器路径,先下载到本地目录再给路径(0.6 线可以直接给 id):

hf download Harrysunshine/so101-pi0-lora-sim-real-10task --local-dir ./pi0-lora
lerobot-eval --policy.path=./pi0-lora --policy.device=cuda \
  --rename_map='{"observation.images.top": "observation.images.camera1", "observation.images.wrist": "observation.images.camera2"}' \
  --env.type=so101_sim --env.task=SO101PickPlaceCube40-v1 --env.control_mode=pd_joint_pos \
  --env.observation_width=640 --env.observation_height=480 --env.episode_length=500 --env.fps=30 \
  --eval.n_episodes=50 --eval.batch_size=5

挂在哪些层上

动作专家、语言骨干、视觉塔三族的 q/v 投影全挂(共 180 个),r=256、lora_alpha=8; state_proj / action_in_proj / action_out_proj / action_time_mlp_in|out 这五个具身投影全量训练,不做低秩近似。

相关

Downloads last month
44
Video Preview
loading

Model tree for Harrysunshine/so101-pi0-lora-sim-real-10task

Base model

lerobot/pi0_old
Adapter
(2)
this model

Dataset used to train Harrysunshine/so101-pi0-lora-sim-real-10task

Collection including Harrysunshine/so101-pi0-lora-sim-real-10task