发布时间2025-06-27 17:00:19 来源:小编 阅读次数:次
【新智元导读】软件3★◆◆.0,不止Vibe Coding!Karpathy重磅演讲,揭示软件深刻重构——已从「写代码」走向「说人话就能编程」的新时代。
虽然未来LLM也许能点击◆★、能导航■■■,但现在这些操作还成本高★◆、效率低。我们应该主动迎合它们,以最低成本获得最大效益。
当然,仅仅把文档变成markdown还不够。我们还得改变文档本身的写法。
软件一直在变,但在过去的70年里在根本层面上并没有太大变化,而在过去几年中却快速变化了两次★◆■。
另一个他喜欢的类比是:「当与ChatGPT利用文本交谈时,我就像是在用终端和操作系统对话。」这是文字输入,是最直接的操作系统访问方式。
它们是计算机★■■■★◆,但行为类似人类。它们就像「互联网的灵魂」,需要与软件基础设施交互■★。
目前LLM的计算成本仍然非常高,必须集中在云端运行,用户就像是当年的「哑终端」,通过网络与交互■★■,占用云端运行批处理任务中的一个维度。
智能参差不齐◆◆★■:它们在某些任务上表现超人,但有时却会犯一些基本错误★■,比如说「9.11大于9.9」★■◆◆■★。这种「锯齿形智能」现象很独特。
几年前,他注意到软件正在发生变化,出现了新型的软件,当时称之为「软件2.0」■◆◆★★。
今天可以在GPT■◆★■★、Claude★◆★◆★★、Gemini上运行同一个「LLM应用」,就像过去的软件一样。
软件2.0则是神经网络的权重参数。不再直接编写这些代码,而是更多地在调整数据集★◆◆★,并运行优化器来生成神经网络的参数。
我们使用全网的文本数据训练这个模型权重,因此这个模拟器具备了某种「人类心理」的涌现能力。
或者放手让AI自由操作整个项目(Command+I)——这就是「全自治」模式。
过去■■,想要在软件行业做点什么,通常需要花5到10年的时间学习编程语言、工具链、工程实践等等◆■◆■。但现在,不再是这样了■■◆★。
现在GitHub上的代码已经不仅仅是代码了◆■■,而是掺杂着大量英文,自然语言变成了新的「代码」。
但目前,面对尚不完美的LLM,Karpathy更倾向于「钢铁侠战衣」式的AI系统:
在LLM领域,也看到了这种格局:几个主流的闭源模型(如GPT、Claude等),再加上开源的LLaMA等。
另一个让他产生共鸣的类比是◆◆■:现在的AI处于「1960年代的计算机时代」★■★★。
缺点:LLM同时也存在很多「认知缺陷」,比如容易幻觉(hallucination),胡编乱造★◆★◆◆,缺乏对自身知识状态的良好感知。
它也有自治滑块:可以进行快速搜索■★◆、普通研究★■◆★■,或者更深入的研究■■,十分钟后返回结果★★。这些选项代表赋予工具的不同程度的自治权。
但目前还没有真正意义上的「通用GUI」(图形界面)来与这些模型交互,没有一个统一的GUI适用于所有任务。
「GitHub地图」展示了所有已经被编写的软件,也就是计算机在数字空间中执行任务的指令■★◆。放大来看,包含了不同类型的代码仓库,也就是编写的所有代码。
回顾历史,我们会发现很多变革性的技术,比如电力■◆■◆★★、密码学、计算、飞行、互联网、GPS等■◆◆★■◆,最初都是由政府或大型企业首先使用的——因为这些技术昂贵且复杂★■★◆,普通人无法早期接触◆★■★。
在YC放出的软件3.0的完整视频,Karpathy深入探讨了这种转变对开发者◆■、用户及软件设计本身的意义★■■:
在实际工作中,Karpathy总是害怕AI一次性给出太大改动。他追求的是高速◆★★、可控的协作循环◆★■■。
它也可以作为智能体(agent),在某些时候中它可以自己飞来找主人■■,自动完成任务。
软件3★◆■◆★.0:现在我们有了可编程的神经网络——大语言模型(LLM),而提示词(prompt)成了「编程语言」,而且这些提示词直接用人类语言写的!
「个人化AI计算机」尚未真正到来,也尚不清楚未来会是什么样子——或许在座的你们就将定义它。
加快验证速度■■■◆。GUI非常关键★★◆★■◆。视觉界面能调动人类大脑「图像识别GPU」■◆,而阅读文本费力又不直观。图形界面是直通大脑的高速通道。
如果用语音模式,这就是「软件3.0」的「言出法随」:真正做到了用嘴编程!
不仅仅是LLM本身的能力在提升,还包括它们使用工具的方式、多模态能力的扩展等等。这一切构成了一个真正复杂的软件生态系统。
目前大量的文档都是为「人类」写的,里面包含各种列表、加粗◆◆、图片……这对LLM来说很难直接理解。
Karpathy认为,这会成为下一代「走进软件开发」的入门方式■◆■,就像「网球王子」让人爱上网球一样◆■。
基于在斯坦福大学★★、OpenAI和特斯拉的工作经验,Karpathy观察到软件变革正在悄然发生——软件正在再次进化。
Karpathy非常喜欢钢铁侠的设定,它在许多方面都对技术的发展方向做了准确的预言。
这正对应早期计算时代的操作系统模型★◆:一切都在云端处理■◆◆★★,通过网络传输,进行批量运行■◆★。
现在有了「软件2.0」版GitHub平台★◆◆■,比如HuggingFace就是软件2.0世界中的GitHub★■■■。而Model Atlas也可以可视化这些模型全部参数的「代码」。
这就体现了「自治滑块」(Autonomy Slider):我们可以构建「增强型工具」(像战衣),也可以构建「自主代理」(像战衣自己飞行)◆◆■■。
Karpathy觉得LLM现在确实表现出了「基础设施」的一些特性★◆■■◆■,但更贴切的类比也许是:LLM更像是新的操作系统。
Vibe Coding真的很有趣。特别是当想快速做一个非常定制化的小项目,市面上又没有现成产品时◆★◆■■■,Vibe Coding非常合适。
他认为我们已进入「软件3.0」时代,自然语言成为新的编程接口◆■◆★■,而模型则完成剩余工作:
再举一个成功的例子:Perplexity◆◆◆,具备Cursor类似的特性:汇总大量信息、在后台协调多个LLM、提供可供用户「审核」的GUI等。
比如Vercel就正在做这件事◆◆:把文档中所有「点击」操作◆◆★,替换成相应的curl命令,这样LLM就可以自动化处理。还有像Anthropic的Model Context Protocol,提供了与代理沟通的一种标准化协议■◆◆。这是一个值得关注的方向。
Karpathy做了一个iOS应用Menu Gen虽然他并不懂需要的编程语言。
LLM非常容易受骗★■★◆◆◆,容易受到「提示注入攻击」(prompt injection),可能会泄露数据。
这和过去的操作系统生态有些相似:有闭源的操作系统■◆■,比如Windows或macOS,同时也有Linux之类的开源系统。
他还发明了「Vibe Coding」(氛围编程)这一词汇,来描述直接用自然语言编程的情景。
当然,LLM在一些方面也和传统操作系统或早期计算设备截然不同■★★■◆。LLM与传统技术扩散路径之间■★★◆■★,存在关键差异:它们颠覆了技术扩散的方向。
这是根本性的转变:过去程序要把人类需求翻译为「机器语言」,现在直接把需求输入到LLM即可。
牢牢地把AI控制在手上。很多人现在对「AI智能体」(agent)过于兴奋。但实际上,如果AI给软件repo提交了10,000行代码,那人类审查员就是最大瓶颈■★★★◆■:还得逐行确保没有引入bug,没有安全问题等等。
这些产品应该拥有专属的GUI和交互设计(UI/UX),确保人类可以快速生成与验证结果■■。
我们必须一边利用它的超能力■★■★■,一边绕过它的弱点,学会如何与它协作★■★■■■、如何编程◆★★■◆■。
产品设计中应包含「自治滑块」★★■◆■★,并思考如何逐步右移它,让产品变得越来越自主◆◆★■■。
当时神经网络只是被当作另一种分类器,比如决策树之类◆■■◆★,所以这个框架在当时还是很有意义的。
优点:LLM拥有百科全书般的知识与记忆能力,远远超过任何单一人类个体★■■◆★。它们可以轻松记住Git SHA哈希值、各种信息、文件结构等内容。就像电影《雨人》里的「自闭症天才」◆■★■★◆,能一字不差地背下电话簿。