晓曼: 咱们平时写代码,那真是一行一行敲出来的,对吧?但你有没有想过,要是哪天我们能直接用大白话跟电脑说:“嘿,帮我把这事儿办了!”那会是啥场面?听起来是不是有点像科幻电影?可特斯拉那位大牛Andrej Karpathy的亲身经历,好像已经在告诉我们,这事儿真不是瞎想。快给我们扒一扒呗?
原野: 哎呀,那必须的!Karpathy这哥们儿啊,讲了一个特别有意思的例子。他当年在特斯拉搞AI的时候,亲眼目睹了自动驾驶系统里头,简直是发生了一场“大变活人”!你瞧,以前那套系统,就是他说的“软件1.0”,那可都是用C++一行一行敲出来的老代码。结果呢?随着自动驾驶越来越牛,他们发现,神经网络,也就是“软件2.0”这玩意儿,就像个贪吃蛇似的,一点一点地把那些C++代码给“吃”掉了!好多以前工程师们吭哧吭哧手写的复杂逻辑,比如好几个摄像头的数据怎么拼到一块儿,现在全被神经网络给顶替了。
晓曼: 哇塞,这听着可不光是工具换了个样儿,简直是把咱们脑子里那套编程思维都给颠覆了呀!那你说,从软件1.0到2.0,再到现在这传说中的3.0,到底是什么在背后推着它,让它这么一路狂奔的呢?
原野: 核心啊,就是效率噌噌往上涨,能力嗖嗖往上飞!你想啊,从1.0到2.0,那是从你得把每一步都写清楚,变成了扔一堆数据它自己学。现在呢,从2.0到3.0,嘿,这又是一次更彻底的“变身”!Karpathy就说了,大语言模型(LLM)这东西一出来,就意味着我们一脚踏进了“软件3.0”时代。为啥?因为它自己就能被“编程”啊!而且,编程它的语言,就是咱们平时说的那些话,比如英语。你现在敲进去的那些提示词(prompt),可不就是你的程序嘛!他之前发了条推特,就说“用英语编程计算机”,结果呢,莫名其妙就火了,还一直被他置顶,你说这事儿是不是戳中了好多人的心窝子?
晓曼: 哎哟,这种用白话文就能编程的路子,听着确实是让人眼前一亮啊!不过要真想搞明白它到底有多厉害,咱们还得好好聊聊,作为这个新玩法核心的LLM,它到底是个啥样的“电脑”呢?
原野: 问得好!Karpathy这家伙,真是个比喻大师,他用了好几个特别绝的比喻来形容LLM。第一个,他说它就像“水电煤气”这种公用事业。我们用它,得按token给钱,就跟咱们交电费按度数来似的,而且大家都指望它能响应快,还不能老掉链子。他提到一个特逗的现象,说要是那些顶级的LLM服务突然“罢工”了,那感觉,简直就是全球性的“智商大停电”啊!整个地球都瞬间变傻了,你说我们对它依赖有多深?
晓曼: “智商大停电”?哈哈,这个比喻简直绝了,太到位了!不过,Andrej Karpathy最爱拿LLM跟“操作系统”比。你能不能给我们好好掰扯掰扯,为啥他觉得LLM更像是一个全新的操作系统,而不是咱们平时用的那种小工具呢?
原野: 没错,他觉得这才是最最贴切的比喻!因为LLM它可不是那种只干一件事儿的傻瓜工具,它厉害着呢,它能管理和调度各种资源。你看啊,LLM自己就像是CPU,负责“算”;它那个“上下文窗口”呢,就跟咱们电脑的内存(RAM)一样,专门用来“记”东西。更绝的是,现在好多应用,像那个编程助手Cursor,它就能在不同的LLM上跑,你想用GPT就用GPT,想换Claude、Gemini也行,这不就跟一个软件能在Windows、macOS或者Linux上跑一个道理嘛!这简直就是活脱脱的操作系统的生态模式啊!
晓曼: 哇,他那个“1960年代”的比喻,听着是挺让人琢磨的。那咱们普通用户来说,这种LLM计算模式,就是那种集中起来、大家轮流用的“分时共享”模式,对咱们平时用电脑,还有以后个人的计算体验,会有啥大影响呢?
原野: 这个比喻简直是点睛之笔!它一下就点醒了我们:咱们现在用的LLM,就跟上世纪六十年代那种老式的大型机一个样儿,贵得要死,而且都集中在云端。咱们每个人呢,就只是通过个网络终端,去“蹭”它的算力,跟分时租车似的。所以啊,真正意义上的“个人电脑革命”在LLM这块儿,还没影儿呢!咱们还没到那种家家户户都摆着一台超强、能本地跑LLM的机器的时代。不过呢,像Mac Mini这种内存带宽特别高的设备,已经开始冒出点小苗头了,未来可期啊!
晓曼: 听你这么一说,LLM这东西啊,可比咱们想象的要复杂多了,深奥多了!它不仅是个超级强大的计算平台,但你说它也跟人一样,有自己独特的“心理活动”和各种小毛病,这可太有意思了。那接下来,咱们就好好聊聊,这些所谓的“数字灵魂”,到底都有哪些特别的脾气秉性呢?
原野: Karpathy管它们叫“people spirits”,听着是不是有点玄乎?其实就是“数字灵魂”的意思。为啥这么说呢?因为它们都是在海量的人类数据上“喂”出来的,所以自然而然地,就会表现出一种“涌现出来的心理特征”。打个比方,它们一方面是知识渊博得像本百科全书,记忆力那叫一个惊人!Karpathy就拿电影雨人里那个主角来比,过目不忘,啥都记得住,LLM也是这样,各种代码片段、冷门知识,它都能给你背出来。
晓曼: 哎呀,这种“数字灵魂”啊,真是让人又爱又恨!它既有超能力,又能给你掉链子,这种矛盾劲儿可真让人上头。那你觉得,它们身上哪些“小毛病”最让人头疼呢?比如说,它那个“胡说八道”的幻觉,还有“时好时坏”的智能,到底会给咱们带来啥实际的麻烦?
原野: 这可真是说到点子上了!它们的智能啊,就是那种“参差不齐”的(jagged intelligence)。你瞅着它在某个领域,可能比专家还专家,结果呢,一个特简单的问题,它就能给你犯个低级错误,比如非说9.11比9.9大,或者咬定“strawberry”这个词里头有两个“r”,你说气不气人!还有个大麻烦,就是它有“顺行性遗忘症”,跟电影记忆碎片里那个主角一模一样,每次对话都像是初次见面。它可不像咱们人类同事,能通过长期合作,慢慢了解你,了解你的项目。它的记忆每次都得清零,这让咱们想跟它搞深度合作,简直是难上加难!
晓曼: 既然LLM有这么多天生的“小毛病”,那咱们到底该怎么跟它们打交道呢?是不是就意味着,咱们不能对它们百分之百信任啊?
原野: 哎,信任?那可真不能完全信!咱们必须得清醒地认识到,它们就是那种“容易犯错的系统”。所以啊,Karpathy就特别强调了,跟它们合作,最关键的就是要设计出一套高效的“人机验证循环”。你不能指望它一步登天,把活儿干得漂漂亮亮,而是要它一生成点东西,咱们就赶紧拿过来,快速地检查检查,修修补补。
晓曼: 确实,把LLM这些个“小脾气”摸透了,才能好好利用它。那咱们面对这些既厉害又有点“玻璃心”的AI,该怎么设计咱们的应用程序,才能把它们的优点发挥到极致,同时又避开那些潜在的坑呢?
原野: Karpathy提了一个特别棒的概念,叫“部分自主”应用,像Cursor和Perplexity就是典型的例子。这些应用有啥共同点呢?首先啊,它们都有专门的图形界面(GUI),比如你改代码,它会用红红绿绿的颜色给你标出来,这可比你盯着一堆纯文字要快多了,简直是利用了咱们大脑的“视觉GPU”!其次呢,它们还有一个特别有意思的“自主性滑块”,用户可以自己决定AI到底要插手多少,是从帮你补全几行代码,到直接改掉整个文件,再到让它在整个代码库里头随便折腾,全凭你说了算。
晓曼: 这个“自主性滑块”的概念,听着真是太重要了!Andrej Karpathy还拿“钢铁侠战衣”来比喻咱们现在跟AI的关系。你能不能给我们好好讲讲,为啥他觉得咱们现在应该多造点“钢铁侠战衣”,而不是那些“钢铁侠机器人”呢?
原野: 这个比喻简直是神来之笔!你想啊,钢铁侠战衣,那叫“增强”,它让托尼·斯塔克变得更牛了,可遥控器还在托尼自己手里呢。但钢铁侠机器人呢?它就是个完全自主的代理了。Karpathy就说了,就目前这个阶段,考虑到LLM还有那么多小毛病,咱们就应该老老实实地去造那些“钢铁侠战衣”式的产品,说白了,就是能让咱们人类更厉害的工具。别老想着那些看着特酷炫,但实际上根本靠不住的、完全自己做主的机器人了。
晓曼: 哎,你说的太对了,AI有时候可真是会“用力过猛”,一下子吐出来一大堆咱们根本消化不了的东西。那在实际用的时候,咱们到底该怎么才能“牵住AI的缰绳”,让它老老实实地在咱们的掌控之下,而不是被它牵着鼻子到处跑呢?
原野: 关键点啊,就是得控制它输出的量,还有得让它说得越具体越好。Karpathy就特别不待见那种,一口气给你吐出一万行代码的AI,为啥?因为你得花老鼻子劲儿去检查这些代码,那效率简直是低到家了。所以,想“牵住缰绳”的法子就是,让AI一次只干一个特别具体的小活儿,生成一小段你能轻松把控的代码,这样咱们就能飞快地检查,形成一个高效的“生成-验证”闭环。还有啊,你给它的提示词也得越具体越好,你模模糊糊地一说,它给你出来的结果也多半是模模糊糊甚至错的。
晓曼: 这种人机合作的模式,确实让AI用起来更顺手,也更安全了。不过啊,更让人拍案叫绝的是,随着咱们的日常语言都能拿来编程了,编程这事儿本身,简直是普及到了前所未有的程度!那接下来,咱们就好好聊聊,这种“随性编程”的潮流,到底会怎么改写咱们软件开发的未来呢?
原野: “随性编程”(vibe coding)这个词儿啊,是Karpathy这哥们儿无意中造出来的,结果现在可好,直接成了个网络热词!它为啥能引起这么大的共鸣呢?就是因为它一下子抓住了核心:编程的门槛,被直接拉低到地板上了!他自己就用这法子,一天之内,就捣鼓出了一个他压根儿不懂编程语言的iOS应用,你说牛不牛?当人人都能用大白话来把自己的想法变成软件的时候,整个创新的圈子,那可就彻底变天了!
晓曼: 哎呀,一想到连小孩子都能“随性编程”了,心里真是对未来充满了希望啊!Andrej Karpathy甚至管这事儿叫“软件开发的入门毒品”,你觉得这个比喻是不是特恰当?它会怎么改变咱们下一代跟技术打交道的方式呢?
原野: 我觉得这个比喻简直是太贴切了,而且还是个褒义词!你想啊,它意味着孩子们能用一种特别好玩儿、特别直观的方式,轻轻松松地踏入软件开发的殿堂,再也不用吭哧吭哧地苦学好几年语法和算法了。这可就厉害了,能从小培养他们创造的兴趣,而不是刚开始就被那些技术门槛给吓跑了。这会彻底改变他们跟数字世界玩耍的方式,从以前光会“消费”的,变成真正能“创造”的!
晓曼: 要是哪天真的人人都能编程了,那咱们这个数字世界的基础设施,下一步得怎么跟着变,才能适应这种新潮流呢?Andrej Karpathy提了个特别有意思的说法,叫“要为智能体构建基础设施”,这是啥意思啊?
原野: 哎哟,这个观点可真是超前得不像话!他当时就抱怨说,自己开发那个Menu Genen应用的时候,写代码的部分那是嗖嗖快,结果呢,光是部署、弄域名、搞支付这些DevOps的破事儿,就花了他整整一周的时间!为啥?因为他得在一个又一个网页上,手动地去点各种按钮。他当时就觉得这简直荒谬到家了:电脑这玩意儿,居然在用人类的语言指使我这个人类,去干那些机械化的点击操作!所以啊,他说的“为智能体构建”,意思就是,咱们的网站、文档、API,以后可不能再假设只有咱们人类会用了!
晓曼: 那咱们来脑洞一下,如果咱们的网站、文档和API,都开始专门为AI智能体设计了,那未来咱们跟数字世界打交道的方式,会发生啥天翻地覆的变化呢?
原野: 噢,那可就真是一场交互方式的“大革命”了!你想啊,现在好多文档都写着“点击这里”,AI它根本就不知道怎么点啊!未来呢,文档就应该直接给出一个AI能直接跑的`curl`命令。网站呢,可以搞个类似`robots.txt`的`lm.txt`文件,用那种AI一眼就能看懂的Markdown格式,清清楚楚地告诉它这个网站是干啥的。这样一来,AI就能当咱们的“小助理”,自己去完成任务,而不是咱们还得跟在它屁股后面,替它去干那些本来就该机器干的“点击”工作了。
晓曼: 从软件范式的大变身,到LLM那些独一无二的“小脾气”,再到咱们跟机器怎么合作,还有这个“随性编程”的横空出世,咱们今天可真是把AI时代软件发展的方方面面都给扒了个遍。最后啊,咱们来个大总结吧,Andrej Karpathy对这个时代有啥展望,又给那些刚想踏入这行的新人有啥金玉良言呢?
原野: 他觉得啊,咱们现在可真是赶上了一个“特别特别独特,也特别特别有意思”的时代,就跟当年计算机刚起步的六十年代似的,啥玩意儿都在被重新定义!他最核心的观点就是,咱们必须得搞懂并且接受LLM这种新型计算机的“真面目”。所以啊,你想在软件3.0时代混得风生水起,关键就在于要理解LLM的“心智”——它有哪些超能力咱们得好好利用,但它有哪些小毛病,咱们也得门儿清,然后设计出新的开发模式来避开那些坑。对于那些准备入行的新人来说,这简直是前所未有的超级大机遇啊!你想想,有多少软件等着被重写,又有多少新产品等着被咱们创造出来呢!