特斯拉VLA:删掉30万行代码,FSD更聪明了
大家好,好久不见,这段时间公司年会正好赶上司庆,忙得昏天黑地,好不容易把那一堆报表和PPT应付过去,终于能坐下来和大家闲聊几句了。这几天我虽然忙,但睡觉前还是习惯刷刷手机,看点科技圈的新鲜事,有一条消息特别引起了我的注意,是特斯拉的自动驾驶负责人阿肖克·埃鲁斯瓦米发的一条推文。他说,在特斯拉最新的FSD Beta v12版本里,他们删掉了超过30万行用来控制车辆的C++代码。对于咱们普通人来说,可能对代码行数没什么概念。一般一个熟练的人类程序员一天大概能写出150行有效代码,按一年平均250个工作日算,30万行差不多够这个哥们干上8年,这还不算代码调试、优化等等工作。所以这就是今天想和大家聊的话题,这不仅仅是特斯拉一家公司的事,这背后代表着人工智能技术的一个巨大分水岭,一个从“教机器做事”到“机器自己学会做事”的根本性转变。如果让你去教一个从来没摸过车的人开车,你会怎么教,你可能会告诉他,看到红灯要踩刹车,看到绿灯踩油门,转弯要打转向灯,看到行人要避让,这都是规则。在很长一段时间里,全世界做自动驾驶的工程师也是这么教电脑开车的,他们把人类开车时遇到的所有情况,都翻译成一条条电脑能听懂的指令,这叫做“规则驱动”。比如工程师会写一行代码,意思是“如果前方探测到红色信号灯,并且距离小于50米,那么刹车力度设为50%”,这就解决了一个红灯停车的问题。可是现实路况太复杂了,红灯可能是圆的,也可能是箭头的,有时候红灯坏了不亮,有时候前面的树叶把红灯挡住了一半,有时候虽然是红灯,但交警在路中间指挥让你走。这就麻烦了,工程师得为每一种情况都写一条新规则,于是代码越写越多,从几千行变成几万行,再变成几十万行。这30万行代码,就是过去好几年里,特斯拉的工程师们为了应对无数种稀奇古怪的路况,熬秃了头写出来的“补丁”,哪里出问题就补哪里,最后这些代码变成了一座巨大的迷宫,牵一发而动全身,改一个小Bug,可能会引出三个新Bug。这就是传统自动驾驶技术的瓶颈,人类世界的规则太模糊了,没办法用冷冰冰的代码完全覆盖。所以,特斯拉决定把这30万行规则代码全删了,取而代之的是一个巨大的神经网络。这个变化,就是所谓的“端到端”技术,也是我们今天要聊的主角——VLA,也就是视觉-语言-动作模型的基础。咱们换个好理解的说法,以前的自动驾驶像是在查字典翻译,看到一个词,查一下字典,翻译出来,现在的自动驾驶,更像是把一个孩子扔到了国外,让他每天听当地人说话,看当地人做事,慢慢地,这个孩子不需要查字典,凭语感就能流利交流了。特斯拉现在的做法就是这样,他们不再告诉车子“看到红灯要停”,而是把数百万人类老司机开车的视频喂给AI看。AI看视频的时候会发现,哦,原来每次画面里出现那个红红的亮光时,人类司机的脚都会踩在刹车上,车速会降下来,看了一百万次之后,AI就学会了,它甚至不需要知道那个红红的东西叫“红灯”,它只知道,看到这个图像,就该配合那个动作。因为那30万行代码是人类对世界的“拙劣模仿”,而AI通过看视频学到的,是人类行为的“神韵”。以前我们觉得AI要么是做图的,像Midjourney,这是视觉;要么是聊天的,像ChatGPT,这是语言,它们都生活在屏幕里,碰不到现实世界的东西。但自动驾驶,或者说未来的机器人,需要的是“动作”。VLA模型就是要把这三者打通,它有一双眼睛,能看懂周围的环境,这是一辆车,那是一棵树,这是一只突然冲出来的流浪猫。它有一个大脑,能理解这些东西意味着什么,比如它知道流浪猫可能会受惊乱跑,这不仅仅是识别物体,而是理解了场景的逻辑,这就是语言层面的智慧。最后,也是最重要的一步,它能直接输出动作,它不需要经过一堆“如果……那么……”的逻辑判断,直接指挥方向盘转动多少度,刹车踩多深。大家想象一下这个场景,以前的车看到路边有个塑料袋,传统的雷达和代码规则可能会判断:前方有障碍物,不知道是什么,为了安全,紧急刹车。结果就是你在车里被晃得七荤八素,后面跟着的车差点追尾,这就是所谓的“幽灵刹车”。而现在的VLA模型,因为它看过很多人类开车的视频,当它看到那个塑料袋,大脑就会像人类一样思考:这看起来是个轻飘飘的塑料袋,风一吹就动,人类司机通常不会为了这个刹车,直接开过去就行。于是,车子稳稳地开了过去,没有急刹车,一切都非常丝滑,就像一个开了十年出租车的老司机。这种能力的提升,不是靠堆砌代码堆出来的,而是靠喂数据喂出来的,你喂给它越多高质量的驾驶视频,它就越聪明。说到这里,你可能会觉得,这不就是让机器模仿人吗,有什么了不起的。其实这事儿意味着AI开始具备了“物理世界的常识”。以前的ChatGPT虽然博学,但它是个“缸中之脑”,它知道牛顿定律的公式,但它没踢过球,不知道脚触碰球那一瞬间的反馈感,特斯拉的VLA,实际上是在帮AI补上这一课。当AI学会了开车,它学会的不仅仅是开车,它学会的是如何根据眼睛看到的东西,控制身体去和物理世界交互。如果你把这个系统从车上拆下来,装到一个有手有脚的机器人身上,会发生什么?这正是马斯克在做的事情,特斯拉不仅有车,还有个人形机器人叫Optimus,用的就是同一套逻辑。以前我们让机器人去厨房拿一瓶可乐,需要极其复杂的编程:第一步走到冰箱前,第二步识别把手,第三步计算力矩拉开门,第四步识别可乐……任何一个环节稍微有点误差,机器人就卡住了。现在用VLA的思路,我们只需要让机器人看一千遍人类拿可乐的视频,机器人就能学会那个连贯的动作,它看到了把手,就知道伸手去拉,看到了可乐,就知道伸手去抓。我们的家不是工厂,工厂的流水线是固定的,家里的环境每时每刻都在变,鞋子可能乱踢在门口,猫可能趴在沙发上,孩子可能把玩具扔了一地。传统的写代码的方式,永远无法穷尽家庭里可能出现的混乱情况,只有这种像人类一样凭直觉行动的AI,才能在如此复杂的环境里生存。当然,这种技术也不是完美的,它带来了一个新的、巨大的挑战,那就是“黑盒问题”。以前的代码虽然繁琐,但每一行都是工程师写的,出了事故,我们可以去查日志,哦,原来是第1024行代码的逻辑判断错了,我们把它改过来。但现在的神经网络,是一个巨大的黑箱,它由几十亿个参数组成,车子突然向左转,是因为这几十亿个数字运算后的结果。如果你问工程师:它刚才为什么左转?工程师可能也答不上来,只能告诉你:因为它的神经网络计算认为这时候应该左转。这让我们失去了一种“掌控感”和“可解释性”,我们不知道AI什么时候会犯错,也不知道它为什么犯错。这就像你雇了一个天才司机,他开车技术极好,但他是个哑巴,没法跟你交流他为什么这么开,你只能选择信任他,或者不信任他。不过就目前看来,数据证明这种AI直觉比人类写的死规则要安全得多,因为人类写的规则总有漏洞,而大数据的统计规律往往能覆盖更多边缘情况。过去,程序员是“上帝”,我们制定规则,计算机会严格执行。现在,程序员更像是“老师”或者“饲养员”,我们筛选好的教材(数据),喂给AI,让AI自己去悟出规则。说句非常文青的话:那30万行被删掉的代码,就是旧时代的墓碑。这让我想起以前看过的一个观点,叫“苦涩的教训”,意思是说,在人工智能的历史上,人类总是试图把自己的知识写进程序里,比如教计算机下棋的定式,教计算机识别边缘的算法。短期看,这很有效,但长期看,这些人为的规则总是被纯粹的算力和大数据打败。AlphaGo战胜人类棋手,不是因为它背了更多棋谱,而是它通过自我对弈发现了人类都不知道的下法。现在的FSD也是一样,它不再模仿人类僵化的交通规则,它在模仿人类灵活的处理能力,甚至在某些方面超越了人类的反应速度。从这个角度看,特斯拉删代码这件事,其实是在给AI松绑。我们把自己那点可怜的、局限的逻辑拿走,让AI直接去面对真实的世界,自己去学习。也许在不久的将来,我们买车的时候,不再关注它的马力、扭矩,而是关注它的“智商”。我们会习惯坐在驾驶座上玩手机,把方向盘交给一个看不见的AI司机,虽然我们不知道它脑子里在想什么,但我们知道它比我们更懂如何安全回家。也许几年后,你买回家的扫地机器人不再是只会撞墙的傻瓜,它能看懂你挥挥手是让它出去,还是让它过来。家里的那个智能音箱,不再只会机械地回答天气预报,它能看着你的脸色,指挥家务机器人给你递上一杯热茶。在这个技术飞速迭代的时代,做减法往往比做加法更难,也更重要。我们要学会适应这种变化,适应一个“不可解释”但“极其好用”的智能世界。就像我们不需要懂得电力传输的原理也能开灯一样,未来我们也不需要懂得神经网络的参数,就能享受它带来的便利。只是,偶尔在深夜加班开车回家的时候,握着方向盘的手,可能会有些感慨。我们可能是这颗星球上,最后一代还需要亲自驾驶汽车的人类了。这种掌控机械的原始快感,正在一点点被温和的算法剥离。好了,今天就聊这么多,年关将至,估计大家的工作也都挺忙的,希望这篇小短文能让你在忙碌的间隙,稍微抬起头来看看远处正在发生的事情。