用极简黑客方式给JEV接入视觉,成功了
别总想复杂方案,我用非常粗糙的黑客方式给JEV接入视觉,效果很不错。
上周我沉浸在机械臂相关内容里,包括硬件、训练流程、MuJoCo(多关节动力学模拟)、从仿真到现实这些技术。我希望搞懂各模块的配合,获得足够的实践认知来开始搭建项目。
上一次接触这类内容时,我接触的都是ABB RobotStudio、KUKA这类确定性极强、完全按照指令运行的设备,全都用Faro激光跟踪仪完成精确定位,视觉不参与循环。现在重新接触视觉语言动作模型和学习策略,感受很不一样。
现在训练视觉语言动作(VLA)模型已经变得非常容易,我在24小时内就让机械臂在TurboVLA和SmolVLA上运行起来,这已经成了基本门槛。那能不能用更简单的方法实现呢?
我不看好微调,更看好直接利用现有模型。很少有人接受「单个模型搞定一切只会得到惨痛教训」这个结论。那么,要怎么让一个低延迟纯文本分类器理解视觉场景中的有效信息?只需要回答特定问题,不需要理解整幅图。用多么离谱的信息表示才会失效?
答案是,老旧的ASCII文本 trick 效果出奇地好。我的目标是输入图像、输出动作,我运行一个Python进程做简单的颜色阈值处理(没有用OpenCV),把相机帧转换成100×100的字符数组,再输入给JEV,然后在MuJoCo中设置训练迭代所有调优系数。
经过数百万个覆盖各种复杂情形(比如白格上的白车、被八个棋子包围等等)的测试用例,我得到了一个相当稳定的系统。它的作用是在棋子位置偏离标称位置时提供精准校准,并且检测漏抓。
需要说明的是,整个流程并不全由JEV运行。Opus 5.5担任高级调度器,另外运行着Stockfish国际象棋引擎、经典运动轨迹规划器和其他一些常规工具。在问题边界比较清晰的场景下,合理利用传统编程就可以解决问题。
JEV只在开环模式大致定位后才启动,这种「先开环后闭环」的混合方法节省了大量计算和token。目前这套系统已经完成了大约10局完整对弈,我让Opus 5.5和Astra 6对弈,每晚开一局让它们自动对战,我做自己的研究时听着背景里的机械转动声,感觉很奇妙。
显然这是解决这个问题最粗糙的方案,但这恰恰是这次尝试的意义。有在旧金山的朋友下周想聊聊VLA吗?