[Andrej Karpathy_2] vibe coding | 大型语言模型的1960年代 | 自主性滑块
Hugging Face的Tom Wolf分享了一段我非常喜欢的视频,这些孩子正在进行氛围编程。
我觉得这是一个非常治愈的视频,我爱这个视频。(they grow up "knowing" they can build anything 😭greatness)
未来是美好的
前文:[Andrej Karpathy] 大型语言模型作为新型操作系统
Perplexity:另一个成功的LLM应用案例
再举一个相当成功的大型语言模型应用的例子——Perplexity。
它也具有我刚才在Cursor中指出的一些非常相似的特性。它打包了大量信息,协调了多个大型语言模型,并且有一个GUI允许您审计其部分工作。
例如,它会引用来源,您可以想象检查它们,它还有一个自主性滑块。
您可以进行快速搜索,也可以进行研究,或者进行深度研究,并在10分钟后回来。所有这些都是您赋予工具的不同程度的自主性。
Perplexity通过结合搜索引擎和大型语言模型的能力,创造了一种新型的信息获取体验。
它不仅提供答案,还提供来源和背景,使用户能够验证信息的准确性,同时根据需要调整搜索的深度和广度。
部分自主软件的未来
软件的自主化转变
我想我的问题是,我觉得很多软件都会变得部分自主。
我正在思考这会是什么样子,对于你们中许多维护产品和服务的人来说,你们将如何使你们的产品和服务部分自主化?
关键设计问题
大型语言模型能否看到人类能看到的一切?大型语言模型能否以人类能做到的所有方式行动?人类能否监督并参与到这项活动中,因为这些系统是易出错的,尚未完美。
界面的重新设计
在Photoshop中,差异会是什么样子?现在许多传统软件都有各种开关和各种东西,这些都是为人类设计的,所有这些都必须改变,并变得对大型语言模型可访问。
人机协作:生成与验证循环
workflow
我想强调的是,对于许多大型语言模型应用,我不确定它是否得到了应有的关注,那就是我们现在正在与人工智能合作,通常它们负责生成,而我们人类负责验证。
让这个循环尽可能快地进行符合我们的利益,这样我们就能完成大量工作。
我认为有两种主要方式可以做到这一点:
第一,
- 您可以大大加快验证速度。我认为GUI在这方面极其重要,因为GUI利用了我们大脑中的计算机视觉GPU。
- 阅读文本是费力的,而且不好玩,但看东西很有趣,它就像一条通往大脑的高速公路。
第二,
- 我想说的是,我们必须"牵着"(leash)人工智能。
- 我认为很多人对AI Agent过于兴奋,但对我来说,收到一个包含10,000行代码的差异(diff),这并没有什么用。
- 我仍然是瓶颈,即使这10,000行代码是瞬间生成的,我仍然需要确保它没有引入错误,并且它正在做正确的事情
人工智能辅助编程的最佳实践
小增量工作
- 在我自己的工作中,我总是害怕出现过大的差异。我总是以小的增量块进行操作,我想确保一切都良好,我想让这个循环非常非常快地进行。
具体明确的提示
- 如果您的提示模糊不清,那么人工智能可能无法完全按照您的意愿行事,在这种情况下,验证将失败。如果验证失败,您将不得不重新开始。因此,花更多时间使您的提示更具体会更有意义。
快速验证循环
- 我倾向于处理小块的、单一的具体事物。我认为你们中的许多人可能正在开发与大型语言模型协作的类似方式,使验证过程尽可能高效。
AI辅助教育:课程创建与交付
在我自己的工作中,我也对人工智能和大型语言模型背景下的教育是什么样子很感兴趣。
- 我认为我大量思考的是如何"牵着"人工智能。我不认为仅仅去聊天并说"嘿,教我物理"就能奏效。
- 我认为这行不通,因为人工智能会迷失方向。
所以对我来说,这实际上是两个独立的应用程序。
例如,有一个应用程序是为教师创建课程的,然后有一个应用程序是接收课程并将其提供给学生的。在这两种情况下,我们现在都有一个中间产物——课程,它是可审计的,我们可以确保它良好,我们可以确保它一致。
这是"牵着"人工智能的一种方式,我认为它成功的可能性要大得多,而且人工智能不会迷失方向。
通过将过程分为课程创建和课程交付两个独立的步骤,我们可以在每个阶段应用适当的控制和验证,确保教育内容的质量和一致性。
自动驾驶:部分自主性的先例
我想提及的另一个类比是,我对部分自主性并不陌生,我在特斯拉为此工作了五年。
自动驾驶也是一个部分自主性产品,它具有许多特性,例如仪表盘上就有自动驾驶的GUI,它会显示神经网络看到了什么。我们也有自主性滑块,在我任职期间,我们为用户完成了越来越多的自主任务。
我第一次驾驶自动驾驶汽车是在2013年,我有一个在Waymo工作的朋友,他邀请我一起在帕洛阿尔托开车。
我们坐上那辆车,在帕洛阿尔托的高速公路和街道上行驶了大约30分钟,整个过程非常完美,没有任何人工干预。那是2013年,距今已有12年了(amazing😮)。这让我很震惊,因为当时我有了这次完美的驾驶体验,完美的演示,我觉得自动驾驶即将到来。
但12年过去了,我们仍在研究自主性,我们仍在研究驾驶代理。即使现在,我们也没有真正解决这个问题。
因此,我认为软件确实很棘手,就像驾驶一样棘手。
所以当我看到"2025年是Agent之年"这样的说法时,我非常担心。我觉得,这是"Agent的十年",这将需要相当长的时间。我们需要人类参与其中,我们需要谨慎行事,这是软件,我们应该认真对待。
钢铁侠类比:增强与代理
我经常思考的另一个类比是钢铁侠战衣。我一直很喜欢钢铁侠,我认为它在很多方面都非常准确地预示了技术将如何发展。
- 我喜欢钢铁侠战衣的原因是,它既是一种增强,托尼·斯塔克可以驾驶它,它也是一个Agent。在一些电影中,钢铁侠战衣非常自主,可以自行飞行并找到托尼等等。
- 所以,这就是自主性滑块。我们可以构建增强功能,也可以构建代理,我们希望两者兼顾。
- 但在现阶段,我认为,在使用易出错的大型语言模型时,您应该更多地构建钢铁侠战衣,而不是钢铁侠机器人。
也就是说,少一些炫目的自主Agent演示,多一些部分自主性产品。
这些产品拥有定制的图形用户界面和用户体验设计,目的是让人类进行生成和验证的循环尽可能快,但我们并没有忽视原则上自动化这项工作的可能性,并且您的产品中应该有一个自主性滑块。
(AI 在发展,我们的软件和数据库也应该和 AI 接轨化,促进智能化的发展)
氛围编程:人人都是程序员
现在我想稍微转换一下话题,谈谈另一个我认为非常独特的维度。
- 不仅出现了一种新的编程语言,它允许软件实现自主性,而且正如我所提到的,它是用英语编程的,这是一种自然的界面。
- 突然之间,每个人都成了程序员,因为每个人都会说自然语言,比如英语。
这对我来说是极其看好和非常有趣的,而且也是前所未有的。过去,您需要花费五到十年的时间学习才能在软件领域有所作为,但现在情况不再如此。我不知道有没有人听说过"氛围编程"(vibe coding),这条推文就是它的起源,但我听说它现在已经成为一个主要的梗。
关于这个有一个有趣的故事:我玩Twitter大概有15年了,但直到现在我仍然不知道哪条推文会火,哪条会默默无闻。
- 我当时以为这条推文会是后者,我不知道,它只是我洗澡时的一些想法,但它却成了一个彻头彻尾的梗。
- 我真的无法判断,但我想它触动了人们的心弦,并为每个人都能感受到但又无法用言语表达的东西命名。
氛围编程:让编程变得普及
Hugging Face的Tom Wolf分享了一段我非常喜欢的视频,这些孩子正在进行氛围编程。
我觉得这是一个非常治愈的视频,我爱这个视频。你怎么能看到这个视频,然后对未来感到悲观呢?未来是美好的。😭
(they grow up "knowing" they can build anything 😭greatness)
我认为这最终会成为软件开发的"入门毒品"。
我不是一个对未来感到悲观的人。我尝试过氛围编程,因为它很有趣。当您想构建一些超级定制的、似乎不存在的东西,并且您只是想随意尝试一下,比如在一个周六,氛围编程就非常棒。
所以我构建了这个iOS应用程序,我实际上不会用Swift编程,但我非常震惊,我竟然能够构建一个超级基础的应用程序。
我不会解释它,它真的很傻,但这就像是一天的工作量,当天晚些时候它就在我的手机上运行了。
我当时想:"哇,这太棒了!"我不需要花五天时间阅读Swift才能上手
Menu Genen:氛围编程的实际应用
我还用氛围编程开发了另一个应用程序,叫做Menu Genen,它已经上线了,您可以在menu.app上尝试。
我当时遇到的问题是,我去餐馆看菜单,但完全不知道那些菜是什么,我需要图片。但这种应用不存在,所以我想:"嘿,我要用氛围编程把它做出来。"
所以,这就是它的样子,您访问menu.app,然后拍下菜单的照片,Menu Genen就会生成图片。
- 每个人注册时都会获得5美元的免费积分,因此这对我来说是一个巨大的成本中心,它目前是一个负收入的应用程序,我在Menu Genen上损失了巨额资金。
- 但这个应用程序展示了氛围编程的力量,它让我能够快速实现一个想法,而不必深入学习所有相关的编程语言和框架。这种快速原型开发和实现的能力是氛围编程带来的最大优势之一。
氛围编程的挑战:从原型到产品
编码不是最大挑战
- 对我来说,Menu Genen最吸引人的地方在于,氛围编程部分的代码实际上是制作Menu Genen最简单的部分。
- 大部分的困难在于我试图让它变得真实,以便您可以进行身份验证、支付、拥有域名和部署。
DevOps的复杂性
- 这真的很难,所有这些都不是代码。
- 所有这些DevOps的工作都是我在浏览器中点击完成的,这非常慢,又花了一周时间。
- 所以,Menu Genen的演示版在我的笔记本电脑上几个小时就搞定了,但为了让它变得真实,我花了一周时间,这真的很有趣。
集成的烦恼
- 例如,如果您尝试为您的网页添加Google登录,这个Clerk库提供了大量的说明,告诉我如何集成它,这太疯狂了!它告诉我:"去这个URL,点击这个下拉菜单,选择这个,去那个,点击那个。"它就像一个计算机在告诉我应该采取哪些行动,你来做啊!
为Agent构建:面向未来的数字基础设施
因此,我认为我演讲的最后一部分将重点关注:我们能否为Agent构建?我不想做这些工作,Agent能做这些吗?
- 我们需要思考如何构建适合AI Agent操作的数字基础设施,使它们能够执行那些繁琐、重复的任务,特别是那些涉及多个系统集成和配置的工作。
- 这需要我们重新思考软件和服务的设计方式,使其不仅适合人类使用,也适合AI Agent使用。
- 这种转变将需要新的接口标准、协议和工具,使AI Agent能够无缝地与各种系统交互,执行复杂的任务流程,而无需人类的持续干预。
这不仅会提高效率,还会释放人类的时间和注意力,让我们专注于更具创造性和战略性的工作。
为AI Agent设计数字基础设施
新的信息使用者
- 粗略地说,我认为数字信息的使用者和操作者出现了一个新的类别。过去只有人类通过图形用户界面(GUI)或计算机通过应用程序接口(API)进行操作,现在我们有了一个全新的事物,Agent。
LM.txt文件
- 您可以在您的域名上放置lm.txt文件,这是一个简单的Markdown文件,它告诉大型语言模型这个域名是关于什么的。这对于大型语言模型来说非常易读,比直接解析HTML更有效。
AI友好文档
- 目前有大量的文档是为人类编写的,所以您会看到列表、粗体字和图片,这些都不能被大型语言模型直接访问。Vercel和Stripe等公司正在将他们的文档专门针对大型语言模型进行转换,以Markdown格式提供。
AI友好文档的实际应用1
也许我个人经验中的一个简单例子是,你们中有些人可能知道Three Blue One Brown,他在YouTube上制作了精美的动画视频。
- 我喜欢他编写的Manim库,我也想制作自己的动画。Manim有详细的文档,但我不想阅读它,所以我将整个文档复制粘贴到大型语言模型中,并描述了我想要什么,它就直接工作了!
- 大型语言模型直接为我编写了一个动画,完全符合我的要求。我当时想:"哇,这太棒了!"所以,如果我们能让文档对大型语言模型可读,那将解锁巨大的使用潜力,我认为这很棒,应该更多地发生。
(所以将现有的文档都转化 md 格式,是一个值得做的事情,应该是偏数据清洗方向的,可以联系这篇前文 [项目详解][boost搜索引擎#1] 概述 | 去标签 | 数据清洗 | scp, 然后结合具体协议传输,考量转化的落地性)
AI友好文档的实际应用2
我想指出的另一件事是,不幸的是,这不仅仅是将您的文档转换为Markdown格式那么简单,那只是容易的部分。
- 我们实际上必须更改文档,因为任何时候您的文档中出现"点击"这样的词,这都是不好的,大型语言模型目前无法原生执行此操作。
- 例如,Vercel正在将所有"点击"替换为等效的curl命令,您的语言模型代理可以代表您执行这些命令。
- 我认为这非常有趣。当然,Anthropic也有一个模型上下文协议,这也是另一种直接与代理对话的方式,将它们视为数字信息的新消费者和操作者。
相关专栏:MCP Servers
为AI Agent提供更好的数据访问
URL转换工具
- 当我访问GitHub仓库,比如我的nanoGPT仓库时,我无法将其提供给大型语言模型并询问有关它的问题,因为它是一个GitHub上的人类界面。
- 所以,当您将URL从GitHub更改为get.ingest时,它实际上会将所有文件连接成一个巨大的文本,并创建目录结构等等。
DeepWiki
也许更戏剧性的例子是DeepWiki,它不仅仅是这些文件的原始内容,这是来自Devin的,而且Devin基本上会对GitHub仓库进行分析,并为您的仓库构建完整的文档页面。
您可以想象,这对于复制粘贴到您的大型语言模型中会更有帮助。
- 未来大型语言模型绝对有可能,这甚至不是未来,而是现在,它们将能够四处浏览并点击东西等等。
- 但我仍然认为,让大型语言模型更容易访问所有这些信息是非常值得的,因为这仍然相当昂贵,而且困难得多。
所以我确实认为,许多软件会有一个长尾效应,它们不会适应应用程序,因为这些不是像实时播放器那样的仓库或数字基础设施,我们将需要这些工具。
(Ai 生态:AI 辅助性的工具市场)
总结:我们正处于大型语言模型的1960年代——是时候开始构建了
重写代码的时代
现在是进入这个行业的绝佳时机。我们需要重写大量的代码,这些代码将由专业人士和程序员编写。
(JOIN IT !!!!)
新型操作系统
这些大型语言模型有点像公用事业,有点像晶圆厂,但它们尤其像操作系统。
现在还处于早期阶段,就像操作系统的1960年代。
类人灵魂people spirit
这些大型语言模型有点像那些易犯错的"类人灵魂",我们需要学会如何与它们合作。为了正确地做到这一点,我们需要调整我们的基础设施。
自主性滑块
回到钢铁侠战衣的类比,我认为在未来十年左右,我们将看到我们将把滑块从左向右滑动。
这将非常有趣,我迫不及待地想和大家一起构建它。