操作者 2026-09-06 提的问题。结论先行:这两句说的不是一件事;把「效果好」的人的共同做法列成清单,我们每一条都踩过,所以我们的 0/8 到今天还不能归因给 SmolVLA 本身 —— 清单全对的实验一次都没跑过。下面是清单、我们的对照、以及按「能证伪什么」排序的做法。
论文里的成功率是 SO-100/101 + 他们自己录的数据 + 他们的评测场景。拿预训练 smolvla_base 直接上自己的机器、自己的相机,对模型来说就是分布外,复现不出来是常态。lerobot 仓库里 #2915、#1239 就是这类帖子:loss 正常下降、曲线好看、真机 0%。外部来源
把几篇有代码、有数据的复现帖对一遍,共同点很具体:
| 他们都做到了 | 出处 |
|---|---|
| ~50 集、一个任务、固定几个位置各录 10 集,而不是 50 集各不相同 | OpenELAB 教程、ggando 复现 |
| 相机键名、state/action 布局、任务句训练和推理完全一致 | O'Keefe |
| 用自己数据的 stats,别沿用预训练的(作者踩过) | 同上 |
| 先在固定场景评 checkpoint,一次只改一个变量 | ggando |
| 数据里要有纠错 / 恢复;60 集 success-only 训出来「可训练但无效」 | Sawane, When Fine-Tuning Hurts |
| 推理频率:论文用异步推理跟上 30 Hz 控制;复现的人几乎都在桌面显卡上 | SmolVLA 论文 |
| 清单项 | 我们的实测 | 证据 |
|---|---|---|
| 任务句一致 | 09-04 下发 with the left arm 给只见过 with the right arm 的模型 | 跑测过 |
| 一次一个变量 | 09-04 同时 speed 0.3(轨迹实测削掉 11–20% 的下降动作)+ 任务句错 | 跑测过 |
| 起点在分布内 | 09-06 试跑起始 shoulder_lift +21.0°,40 集示范起点最高只到 +13.4°;19.5 s 里指尖只动 3.2 cm | 跑测过 |
| 视角一致 | sep2 批头 tilt 37.5°,0826 批 49.8°,差 12° | 数据里读的 |
| 位置覆盖 | 0826:40 集一个簇;sep2-trim:46 + 5,右侧 +27° 只有 5 集 | 数据里读的 |
| 纠错数据 | 全部 success-only,没有一集录过「抓偏了再抓」 | 数据里读的 |
| 控制频率 | 回路 2.4 Hz(训练 30 Hz),chunk auto 每拍消费 13 步;异步 RTC 路径有、真机没验 | 跑测过 |
| 用自己数据的 stats | 训练在远程 4090,train_config.json 里应是自己数据重算的 | 没核过 |
| # | 做什么 | 成本 | 回答的是 |
|---|---|---|---|
| 1 | 干净复跑一批:sep2-trim 或 0826 的模型 + 自动归位(已做)+ 头放到该数据集的 tilt + 任务句匹配 + speed 1.0 + 10 次,判据事先写死 | 半小时 | 管线对了,模型行不行 |
| 2 | ACT 对照(--model act,面板入口现成):同样数据、同样场景 | 训一次 + 10 次 | ACT 行 SmolVLA 不行 → SmolVLA 特有(推理慢 / chunk);都不行 → 数据问题 |
| 3 | 推理频率:2.4 Hz 是我们和「效果好」的人最大的工程差别(他们在桌面显卡,我们在 Orin)。验异步 RTC 路径 | 一次空跑 + 一次实跑 | 频率是不是瓶颈 |
| 4 | 数据:按配方补 —— 50 集、5 个位置各 10 集、录进纠错(抓偏了不要停,再抓一次);视角二选一别混;sep2-trim 分布宽是对的方向,补右侧 +27° 那簇 | 一个下午 | 数据够不够 |
| 5 | 训练侧:核一下 stats 来源;步数 / batch 按 b16 的记录 | 10 分钟 | 排除一个已知坑 |
第 1 步今天已经能跑:归位、面板、控制门、数据集都在 09-06 验收单里;sep2-trim 数据集在 Hub(51 集,每集开头归位跳变已切,杯位横向跨度 30 cm,头 tilt 37.5°)。