写作
我在一台六核台式机上运行两个机器人基础模型

OpenPI的Pi0一个动作也没有生成。JAX还在恢复检查点时,操作系统就终止了进程。SmolVLA能够运行,但生成50个动作的中位耗时为7.1秒,而这些动作只覆盖2.5秒的控制时间。
这些数字并不漂亮,但回答了我的问题。我没有机器人专业背景,想看看在没有机器人实验室和昂贵GPU的情况下,常规AI工程能让我走多远。我从一个仿真任务出发,搭建了通往两个真实视觉语言动作模型的可复现路径,然后在桌上的六核电脑上运行它们。
先得到公平的输入
我从ManiSkill的PushCube-v1开始。Panda机械臂需要把蓝色方块推到红白目标上。我重放公开演示,把每条轨迹保留到首次成功,将动作裁剪到仿真器声明的范围,并把四个成功回合导出为LeRobot v3数据集。最终有62帧,每帧包含一张RGB图像、25个状态值、8维关节动作和一句语言指令。
计时前,我要求两条预处理路径证明它们接收的是同一组有序张量。SmolVLA和OpenPI Pi0都通过了全部62帧。图像和分词路径不同,但两者都输出32维状态和50 x 32动作块。数据集校验和、模型提交、分词器版本、归一化统计与输出校验和都在公开比较仓库中。
基准测试
测试使用第一帧已验证的PushCube输入,批量为1,十步流匹配去噪,以及固定的全零噪声。计时区间只有模型动作采样,不包含预处理、后处理、下载和模型加载。每个进程使用六个CPU线程。机器是Intel Core i5-8500T,14 GiB内存和4 GiB交换空间,没有受支持的加速器。
| 结果 | SmolVLA | OpenPI Pi0 |
|---|---|---|
| 检查点仓库 | 0.915 GB | 12.014 GB |
| 加载或恢复 | 11.04秒 | 恢复时失败 |
| 首次推理 | 7.069秒 | 未到达 |
| 热运行中位数 | 7.112秒 | 未到达 |
| 热运行p95 | 8.240秒 | 未到达 |
| 进程峰值内存 | 3.669 GiB | 终止前8.754 GiB |
SmolVLA完成了首次运行和五次热运行,范围为6.930至8.464秒。数据集控制频率为20 Hz,50个动作只够2.5秒,因此中位生成时间是执行窗口的2.84倍。把推理放到另一个线程也无法补上差额,动作队列仍会耗尽。
OpenPI发布的Pi0基础检查点大得多,并建议推理使用超过8 GB显存的NVIDIA GPU。我仍然尝试CPU路径,因为边界本身有意义。59.09秒后,进程在恢复参数时达到9,179,400 KiB常驻内存,随后被signal 9终止。模型尚未构建,因此表中没有Pi0延迟数字。
这次失败说明什么
在这台机器上的可部署性很清楚。SmolVLA装得下并能运行。Pi0在这套共享的14 GiB桌面环境中无法通过JAX恢复阶段。SmolVLA策略仓库不到1 GB,Pi0检查点超过12 GB。这个差距先于延迟,直接决定我能在本地开始哪些实验。
SmolVLA能运行仍不等于实时。每个动作块7.1秒,足以检查输出、验证适配器或做缓慢的离线评估,却无法持续供应20 Hz控制器。下一次延迟比较应在两者都能完成的加速器上进行,每次调用都要同步,并增加运行次数以描述波动。
这也不是策略质量比较。两个基础检查点都没有针对PushCube微调,我也没有在仿真中评估生成动作的成功率。测试只回答了在固定本地资源预算下,软件和模型能否把同一有效观测变成一个动作块。
为什么我把它算作机器人工作
有用的部分大多是工程工作:追踪观测和动作契约,把一个数据集适配到两个模型API,固定版本,检查张量语义,隔离高内存进程,并且不把失败的运行改写成虚构的比较。OpenPI的失败比一次成功的秒表读数更难记录。我使用独立子进程和外部资源监视器,避免内存终止抹掉证据。
完整基准测试包括脚本、测试、原始测量和“部分结果”标签,位于Experiment 005。下一步是在GPU上补齐Pi0数字,然后扩大PushCube数据集并用留出的种子做回放评估。到那时,比较才会从数据管道和部署限制走向两个模型能否学会任务。