大神Andrej Karpathy最新万字演讲:AI时代的软件新范式- "软件3.0" | 附视频
大神Andrej Karpathy最新万字演讲:AI时代的软件新范式- "软件3.0" | 附视频
大神Andrej Karpathy最新万字演讲:AI时代的软件新范式 "软件3.0" | 附视频 大神Andrej Karpathy最新万字演讲:AI时代的软件新范式 "软件3.0" | 附视频 Modified June 19, 2025 No access 21 00:00 我们如何对它们进行编程,又如何规避缺陷并享受超人能力? 接下来谈谈机遇。 如何使用这些模型,以及其中最大的机遇有哪些? 第一件事是我称之为半自主应用程序的东西。 以编程为例:当然可以直接使用ChatGPT,然后开始到处复制粘贴代码、错误报告及其他内容。 但为什么那样做呢? 为什么直接去使用操作系统呢? 为此专门开发一个应用会更有意义。 Cursor是一个很好的早期大型语言模型应用范例,它拥有一系列适用于所有大型语言模型应用的特性。 你会特别注意到,有一个传统界面允许人类像以前一样手动完成所有工作。 此外,还集成了大型语言模型,能够以更大的批量进行处理。 因此,一些大型语言模型应用的共通特性是:第一,大型语言模型负责大量的上下文管理;第二,它们协调对多个大型语言模型的调用。 就Cursor而言,它在底层有用于所有文件的嵌入模型、实际的对话模型,以及将差异应用到代码中的模型,所有这些都进行了协调。 一个可能总是没有得到充分重视的非常重要的方面是应用程序专用GUI及其重要性。 不会只想通过文本直接与操作系统交互。 文本难以阅读、理解和领会,也不想直接以文本形式执行某些操作。 因此,最好是以红绿颜色变化的形式查看差异,清晰地看到哪些内容被添加或删除。 只需按Command Y键接受或Command N键拒绝,这样要容易得多。 GUI允许人类审查这些易出错系统的工作,并能加快速度。 最后一种特性是我所称的“自主性滑块”。 例如,在Cursor中,只需使用Tab键即可进行补全。 你大体上是主导者。 可以选择一段代码并使用Command K命令只更改那段代码,或使用Command L命令更改整个文件,或使用Command I命令在整个仓库中操作。 这是完全自主的代理版本。 因此,你负责自主性滑块的调节,根据当前任务的复杂程度,调整愿意为该任务放弃的自主程度。 另一个相当成功的大型语言模型应用例子是Perplexity,它也具有与Cursor中非常相似的功能。 它打包了大量信息,编排了多个大型语言模型。 它有一个图形用户界面,允许用户审计其部分工作,例如引用来源,可以对其进行检查。 此外,它有一个自主性滑块。 可以只进行快速搜索,也可以进行研究,或者进行深度研究并在十分钟后回来。 这些都是赋予该工具不同程度的自主性。 我的问题是,许多软件将变得部分自主。 那会是什么样子? 对于维护产品和服务的人来说,如何使产品和服务部分自主? 大型语言模型能看到人类所能看到的一切吗? 大型语言模型能以人类所能行动的所有方式行动吗? 而人类能够监督并保持对这种活动的参与吗? 因为这些系统仍然是会出错的,尚未完美。 在Photoshop或类似软件中,“差异”会是什么样子? 此外,目前许多传统软件都有各种开关和设置,它们都是为人类设计的。 所有这些都必须改变,并变得对大型语言模型(LLM)可访问。 关于许多大型语言模型(LLM)应用,我想强调的是,我们现在正在与人工智能合作。 通常是它们负责生成,而我们人类负责验证。 让这个循环尽可能快地运行符合我们的利益,以便完成大量工作。 这可以通过两种主要方式实现:第一,大幅加快验证速度。 例如,图形用户界面(GUI)对此极其重要,因为它利用了我们大脑中的视觉处理能力。 阅读文本费力且缺乏乐趣,但视觉呈现有趣,它就像一条通往大脑的高速公路。 因此,图形用户界面对于审计系统和一般的视觉呈现非常有用。 第二点,必须给人工智能套上缰绳。 许多人对人工智能代理过于兴奋,但我认为,如果我的代码库收到一个包含1000行代码差异的提交,这并没有实际用处。我仍然是瓶颈。即使这1000行代码瞬间生成,我仍需确保它没有引入bug,功能正确,并且没有安全问题。因此,让代码和AI的协作流程极其迅速符合我们的利益,我们必须设法控制住人工智能,因为它可能会变得过于活跃。这就是我进行人工智能辅助编程时的感受。如果我只进行字节码编程,一切都好,但如果我真的想完成工作,让一个反应过于激烈的代理来处理所有事情就不是那么理想了。 许多人可能都在探索如何在编程工作流程中利用AI代理并进行人工智能辅助编程,我也不例外。在我的工作中,我总是害怕出现过大的代码差异,倾向于以小步增量的方式进行,确保一切顺利,并让迭代循环快速运转,处理单一具体的、小块的事物。我想,你们中的许多人可能正在开发与大型语言模型相似的工作方式。我也看到了一些博客文章,试图开发这些与大型语言模型协作的最佳实践。 这里有一篇我最近读到并认为不错的文章,它探讨了一些技术,其中一些与如何让AI受控有关。例如,如果提示模糊,AI可能无法按预期执行,导致验证失败。这将迫使你反复修改。因此,投入更多时间使提示具体化,能显著提高成功验证的可能性,从而加快工作进程。我认为我们很多人最终都会找到这样的技术。 在我自己的工作中,我现在感兴趣的是,当我们拥有了人工智能和大型语言模型(LLMs)后,教育会是什么样子?我认为我大量的思考都投入到如何让AI受控的问题上。我不认为仅仅去ChatGPT说“嘿,教我物理”就能奏效。我认为这行不通,因为AI会迷失方向。例如,在我看来,这实际上是两个独立的应用程序:一个供教师创建课程,另一个则负责将课程提供给学生。在这两种情况下,我们现在都有了一个可审计的课程中间产物,我们可以确保它质量良好,确保它一致,并且AI在特定的教学大纲、特定的项目进展等方面都受到约束。这是一种让AI受控的方式,我认为这种方式成功的可能性要大得多,确保人工智能在复杂环境中不会迷失。 我想引用的另一个类比是,我曾就职于特斯拉,为自动驾驶工作了大约五年。这也是一个部分自动驾驶产品,并具备许多共同的特性,例如仪表盘上显示的自动驾驶系统图形用户界面,它向我展示了神经网络所看到的内容。我们拥有一个自动驾驶功能调节器,在我任职期间,我们为用户逐步增加了自动驾驶任务的完成度。 我第一次驾驶自动驾驶汽车是在2013年,当时我的一位在Waymo工作的朋友邀请我体验。我用谷歌眼镜拍下了那张照片。许多年轻观众可能不知道谷歌眼镜是什么,它在当时确实风靡一时。我们坐上那辆车,在帕洛阿尔托周边开了大约30分钟,包括高速公路和街道。这次驾驶完美无瑕,期间零人工干预。那是在2013年,也就是现在12年前。这让我深受触动,因为当时我经历了这次完美的驾驶体验和演示,我感觉自动驾驶指日可待,因为它就是这么成功。这简直不可思议。然而12年过去了,我们仍在研发自动驾驶技术,仍在研发驾驶智能体。即使现在,我们尚未完全解决这个问题。例如,你在路上看到的Waymo车辆,它们看起来是无人驾驶的,但实际上仍有大量远程操作和人工干预。我们尚未宣布完全成功,但我相信在现阶段它一定会成功,只是这需要大量时间。因此我认为,软件和驾驶一样棘手。 当我看到诸如“2025年是智能体(Agent)之年”的说法时,我感到担忧。这更像是智能体发展的十年,而非一年。这将持续相当长一段时间。我们需要人的参与,需要谨慎行事。这是软件,我们应认真对待。 我总是联想到钢铁侠的战甲,我认为它在很多方面都非常恰当,尤其是在技术及其未来发展方面。钢铁侠战甲的特点是,它既是一种增强,托尼·斯塔克可以操控它,它也是一个智能体。在某些电影中,钢铁侠战甲相当自主,能够四处飞行并找到托尼,执行类似任务。这体现了自主性调节器的概念:我们可以构建增强功能,也可以构建代理,我们希望两者兼顾。但在现阶段,我要说,鉴于目前与易犯错的大型语言模型等合作,你会想构建的与其说是钢铁侠机器人,不如说是钢铁侠战衣。与其说是构建自主代理的华而不实的演示,不如说是构建部分自主的产品。这些产品拥有定制的图形用户界面和用户体验设计。我们正在尝试这样做,是为了让人的生成验证循环非常非常快。但我们并没有忽视这样一个事实:原则上,这项工作是可以自动化的。你的产品中应该有一个自主性调节器,你应该思考如何调整它,并让你的产品随着时间的推移变得更加自主。我大致认为,这类产品蕴藏着大量机会。 我现在想稍微换个方向,谈谈我认为非常独特的另一个维度。不仅出现了一种允许软件自主性的新型编程语言,而且正如我之前提到的,它是用英语编程的,这正是一种自然界面。于是,突然之间,每个人都是程序员,因为每个人都会说像英语这样的自然语言。所以,我认为这极具看涨潜力,对我来说非常有趣,而且也是完全前所未有的。过去,你可能需要花费五到十年时间学习某样东西,才能在软件领域有所作为。现在情况不再是这样了。 不知道大家有没有听说过抹除式编程。这就是那条介绍这个概念的推文,但我听说这现在已经成为一个主要的模因。我上推特已经大约15年了,但直到现在,我仍然不知道哪条推文会走红,哪条推文会石沉大海无人问津。我当时以为它不会引起关注,但它完全变成了一个模因,我对此感到惊讶。它引起了共鸣,并为一个大家都有所感受却难以言喻的事物命名。现在维基百科上都有它的页面了。 Hugging Face的Tom Wolfe分享了一个我非常喜欢的视频。这些是孩子们在白板上编程。我非常喜欢这个视频,它令人感到温暖。看完它,很难不对未来感到乐观,未来是美好的。我认为这最终将成为软件开发的入门方式。我对这一代人的未来充满信心。 因此,我也尝试了即兴编程,因为它非常有趣。当你想要构建一些看起来不存在的、超级定制的东西,而且你只是想在周末即兴发挥时,即兴编程非常棒。我开发了一个iOS应用,尽管我不会用Swift编程,但我惊讶于自己竟然能开发出一个极其简单的应用。这只花了一天时间,当天晚些时候就在我的手机上运行起来,这令人惊喜。我因此不必花五天左右的时间研读Swift才能上手。 我还即兴编程了这款名为MenuGen的应用,它已经上线了,你可以在menugen.app上试用。我遇到的一个问题是,在餐馆翻阅菜单时,我完全不知道菜品是什么,需要图片辅助。由于当时没有这样的工具,我决定即兴编程一个。它的工作方式是:你访问menugen.app,拍摄一份菜单的照片,然后MenuGen就会生成图片。每个人注册时都能免费获得5美元积分,因此,这在我生活中是一个主要的成本中心。目前,这对我而言是一个亏损的应用。 MenuGen最令人着迷之处在于,编写核心代码实际上是整个编码过程中最容易的部分。实际上,大部分工作都集中在将其投入实际使用,例如实现身份验证、支付功能、域名配置和灵活部署。这些都非常困难,且并非代码本身。所有的开发运维工作都是我在浏览器中通过点击操作完成的。这异常辛苦,又花了一周时间。我花了几个小时就让MenuGen的基本演示版在我的笔记本电脑上运行起来,然后又花了我一周时间来让它真正投入使用,这确实令人着迷,因为其原因令人恼火。例如,如果你尝试将谷歌登录功能添加到你的网页,我知道这只是个小功能,但Clerk库的说明详细到告诉我:访问某个URL,点击下拉菜单,选择某个选项,然后前往某个地方再点击。这就像一台计算机在指示我执行操作,而不是它们自己完成。我不得不遵循所有这些指示,这确实荒谬。 因此,本演讲的最后一部分将聚焦于:我们能否直接为代理构建系统?我不想做这些工作,智能体能做到吗? 出现了一类新的数字信息消费者和操纵者。过去,只有人类通过图形用户界面(GUIs)或计算机通过应用程序接口(APIs)进行此类操作,而现在,我们有了一个全新的主体。智能体是计算机,但它们在某种程度上类似于人类心智,存在于互联网上,需要与我们的软件基础设施进行交互。那么,我们能否为它们构建相应的系统?这是一个新事物。 例如,你可以在你的域名上设置 robots.txt 文件,并以此指示网络爬虫如何在你的网站上行为。同样,你也可以有一个 lms.txt 文件,它只是一个简单的Markdown文件,告诉大型语言模型这个域名是关于什么的。这对于大型语言模型来说非常易读。如果它不得不去获取你网页的HTML并尝试解析它,那将极易出错且困难,它会搞砸,而且不会奏效。所以我们可以直接与大型语言模型沟通,这是有价值的。 大量的文档目前是为人编写的。所以你会看到列表、粗体和图片等内容,而这些大型语言模型无法直接访问。因此,我看到一些服务商正在将其大量文档进行转换,使其专门面向大型语言模型。例如,Vercel 和 Stripe 是这方面的先行者,而且这类服务商正在增多。他们以Markdown格式提供文档。Markdown对大型语言模型(LLM)来说超级容易理解,这很棒。 再举一个我个人经验中的简单例子。也许你们中有些人知道3Blue1Brown,他在YouTube上制作精美的动画视频。我喜欢他编写的Manim库,我也想制作我自己的动画。关于如何使用Manim有大量的文档,所以我不想真的通读一遍。我把整个内容复制粘贴给一个大型语言模型(LLM),然后描述了我想要什么,它就直接奏效了。大型语言模型刚刚为我字节编码了一个动画,完全是我想要的,这令人惊喜。所以如果我们能让文档对大型语言模型可读,它将释放巨大的价值。我认为这很棒,应该更多地发生。 另一点我想指出的是,这不仅仅是将你的文档转换成Markdown格式,那是容易的部分。我们实际上必须修改文档,因为只要你的文档提到“点击”,这就不好了。大型语言模型目前无法原生执行此操作。因此,例如,Vercel正在将所有出现“点击”的地方替换为等效的 curl 命令,你的大型语言模型代理可以代表你执行这些命令。我认为这非常有趣。还有,当然,Anthropic的模型上下文协议,这也是另一种方式。这是一种直接与代理对话的协议,将使用者视为数字信息的新消费者和操纵者。所以我非常看好这些想法。 我真正喜欢的另一点是,有一些零星的小工具正在帮助以非常适合大型语言模型(LLM)的格式摄取数据。例如,当访问我的nano gpt仓库时,我无法直接将其输入大型语言模型并提问,因为那是GitHub上的人机界面。所以,当你只是将URL从GitHub更改为 git ingest 时,它会将所有文件拼接成一个巨大的文本,并创建目录结构,这样就可以复制粘贴到喜欢的大型语言模型中进行操作。一个更显著的例子是DeepWiki,它不仅提供文件的原始内容(来自Devon),还让Devon对GitHub仓库进行分析。Devon会为仓库构建完整的文档页面,这对于复制粘贴到大型语言模型中会更有帮助。我喜欢所有这些小工具,它们只需改变URL就能让大型语言模型访问内容,这非常棒,我认为应该有更多这样的工具。 我想补充一点,大型语言模型在未来——甚至可以说就是今天——将能够自主操作并点击内容。但我仍认为,与大型语言模型协作并使其更容易访问所有信息非常有价值,因为目前通过其他方式仍相当昂贵且困难得多。因此,我确实认为许多软件将存在一个长尾效应,它们不会主动适应。对于那些不像活跃玩家资料库或数字基础设施的领域,我们仍将需要这些传统工具。但我认为,对于其他情况,达成一个中间共识非常有价值。如果这说得通,我对这两种模式都看好。 总而言之,现在是进入这个行业的绝佳时机。我们需要重写大量代码,其中大部分将由专业人士和程序员编写。大型语言模型有点像公用事业或晶圆厂,但它们尤其像操作系统——只是目前尚处于早期阶段,就像1960年代的操作系统。我认为许多类比都相通。这些大型语言模型类似于会犯错的智能实体,我们必须学会如何与它们合作。为了有效合作,我们需要调整基础设施以适应它们。 因此,在构建LLM应用时,我描述了一些与这些模型高效协作的方式,以及实现这种协作的工具,如何快速迭代以创建部分自主产品。此外,还需要为智能体更直接地编写大量代码。回到钢铁侠战甲的类比,我认为在未来十年左右,我们将看到自主性调节器被从左向右推动,这将带来非常有趣的变化。我迫不及待地想和大家一起构建它。 🔗 原文链接: https://mp.weixin.qq.com/s/lQtgLrf4... 天空之城城主 Web3天空之城2025年06月19日 16:40 北京 文:Web3天空之城|未经许可不得转载 https://mp.weixin.qq.com/s/lQtgLrf4... No access 21 00:00 No access 21 00:00 我们如何对它们进行编程,又如何规避缺陷并享受超人能力? 接下来谈谈机遇。 如何使用这些模型,以及其中最大的机遇有哪些? 第一件事是我称之为半自主应用程序的东西。 以编程为例:当然可以直接使用ChatGPT,然后开始到处复制粘贴代码、错误报告及其他内容。 但为什么那样做呢? 为什么直接去使用操作系统呢? 为此专门开发一个应用会更有意义。 Cursor是一个很好的早期大型语言模型应用范例,它拥有一系列适用于所有大型语言模型应用的特性。 你会特别注意到,有一个传统界面允许人类像以前一样手动完成所有工作。 此外,还集成了大型语言模型,能够以更大的批量进行处理。 因此,一些大型语言模型应用的共通特性是:第一,大型语言模型负责大量的上下文管理;第二,它们协调对多个大型语言模型的调用。 就Cursor而言,它在底层有用于所有文件的嵌入模型、实际的对话模型,以及将差异应用到代码中的模型,所有这些都进行了协调。 一个可能总是没有得到充分重视的非常重要的方面是应用程序专用GUI及其重要性。 不会只想通过文本直接与操作系统交互。 文本难以阅读、理解和领会,也不想直接以文本形式执行某些操作。 因此,最好是以红绿颜色变化的形式查看差异,清晰地看到哪些内容被添加或删除。 只需按Command Y键接受或Command N键拒绝,这样要容易得多。 GUI允许人类审查这些易出错系统的工作,并能加快速度。 最后一种特性是我所称的“自主性滑块”。 例如,在Cursor中,只需使用Tab键即可进行补全。 你大体上是主导者。 可以选择一段代码并使用Command K命令只更改那段代码,或使用Command L命令更改整个文件,或使用Command I命令在整个仓库中操作。 这是完全自主的代理版本。 因此,你负责自主性滑块的调节,根据当前任务的复杂程度,调整愿意为该任务放弃的自主程度。 另一个相当成功的大型语言模型应用例子是Perplexity,它也具有与Cursor中非常相似的功能。 它打包了大量信息,编排了多个大型语言模型。 它有一个图形用户界面,允许用户审计其部分工作,例如引用来源,可以对其进行检查。 此外,它有一个自主性滑块。 可以只进行快速搜索,也可以进行研究,或者进行深度研究并在十分钟后回来。 这些都是赋予该工具不同程度的自主性。 我的问题是,许多软件将变得部分自主。 那会是什么样子? 对于维护产品和服务的人来说,如何使产品和服务部分自主? 大型语言模型能看到人类所能看到的一切吗? 大型语言模型能以人类所能行动的所有方式行动吗? 而人类能够监督并保持对这种活动的参与吗? 因为这些系统仍然是会出错的,尚未完美。 在Photoshop或类似软件中,“差异”会是什么样子? 此外,目前许多传统软件都有各种开关和设置,它们都是为人类设计的。 所有这些都必须改变,并变得对大型语言模型(LLM)可访问。 关于许多大型语言模型(LLM)应用,我想强调的是,我们现在正在与人工智能合作。 通常是它们负责生成,而我们人类负责验证。 让这个循环尽可能快地运行符合我们的利益,以便完成大量工作。 这可以通过两种主要方式实现:第一,大幅加快验证速度。 例如,图形用户界面(GUI)对此极其重要,因为它利用了我们大脑中的视觉处理能力。 阅读文本费力且缺乏乐趣,但视觉呈现有趣,它就像一条通往大脑的高速公路。 因此,图形用户界面对于审计系统和一般的视觉呈现非常有用。 第二点,必须给人工智能套上缰绳。 许多人对人工智能代理过于兴奋,但我认为,如果我的代码库收到一个包含1000行代码差异的提交,这并没有实际用处。我仍然是瓶颈。即使这1000行代码瞬间生成,我仍需确保它没有引入bug,功能正确,并且没有安全问题。因此,让代码和AI的协作流程极其迅速符合我们的利益,我们必须设法控制住人工智能,因为它可能会变得过于活跃。这就是我进行人工智能辅助编程时的感受。如果我只进行字节码编程,一切都好,但如果我真的想完成工作,让一个反应过于激烈的代理来处理所有事情就不是那么理想了。 许多人可能都在探索如何在编程工作流程中利用AI代理并进行人工智能辅助编程,我也不例外。在我的工作中,我总是害怕出现过大的代码差异,倾向于以小步增量的方式进行,确保一切顺利,并让迭代循环快速运转,处理单一具体的、小块的事物。我想,你们中的许多人可能正在开发与大型语言模型相似的工作方式。我也看到了一些博客文章,试图开发这些与大型语言模型协作的最佳实践。 这里有一篇我最近读到并认为不错的文章,它探讨了一些技术,其中一些与如何让AI受控有关。例如,如果提示模糊,AI可能无法按预期执行,导致验证失败。这将迫使你反复修改。因此,投入更多时间使提示具体化,能显著提高成功验证的可能性,从而加快工作进程。我认为我们很多人最终都会找到这样的技术。 在我自己的工作中,我现在感兴趣的是,当我们拥有了人工智能和大型语言模型(LLMs)后,教育会是什么样子?我认为我大量的思考都投入到如何让AI受控的问题上。我不认为仅仅去ChatGPT说“嘿,教我物理”就能奏效。我认为这行不通,因为AI会迷失方向。例如,在我看来,这实际上是两个独立的应用程序:一个供教师创建课程,另一个则负责将课程提供给学生。在这两种情况下,我们现在都有了一个可审计的课程中间产物,我们可以确保它质量良好,确保它一致,并且AI在特定的教学大纲、特定的项目进展等方面都受到约束。这是一种让AI受控的方式,我认为这种方式成功的可能性要大得多,确保人工智能在复杂环境中不会迷失。 我想引用的另一个类比是,我曾就职于特斯拉,为自动驾驶工作了大约五年。这也是一个部分自动驾驶产品,并具备许多共同的特性,例如仪表盘上显示的自动驾驶系统图形用户界面,它向我展示了神经网络所看到的内容。我们拥有一个自动驾驶功能调节器,在我任职期间,我们为用户逐步增加了自动驾驶任务的完成度。 我第一次驾驶自动驾驶汽车是在2013年,当时我的一位在Waymo工作的朋友邀请我体验。我用谷歌眼镜拍下了那张照片。许多年轻观众可能不知道谷歌眼镜是什么,它在当时确实风靡一时。我们坐上那辆车,在帕洛阿尔托周边开了大约30分钟,包括高速公路和街道。这次驾驶完美无瑕,期间零人工干预。那是在2013年,也就是现在12年前。这让我深受触动,因为当时我经历了这次完美的驾驶体验和演示,我感觉自动驾驶指日可待,因为它就是这么成功。这简直不可思议。然而12年过去了,我们仍在研发自动驾驶技术,仍在研发驾驶智能体。即使现在,我们尚未完全解决这个问题。例如,你在路上看到的Waymo车辆,它们看起来是无人驾驶的,但实际上仍有大量远程操作和人工干预。我们尚未宣布完全成功,但我相信在现阶段它一定会成功,只是这需要大量时间。因此我认为,软件和驾驶一样棘手。 当我看到诸如“2025年是智能体(Agent)之年”的说法时,我感到担忧。这更像是智能体发展的十年,而非一年。这将持续相当长一段时间。我们需要人的参与,需要谨慎行事。这是软件,我们应认真对待。 我总是联想到钢铁侠的战甲,我认为它在很多方面都非常恰当,尤其是在技术及其未来发展方面。钢铁侠战甲的特点是,它既是一种增强,托尼·斯塔克可以操控它,它也是一个智能体。在某些电影中,钢铁侠战甲相当自主,能够四处飞行并找到托尼,执行类似任务。这体现了自主性调节器的概念:我们可以构建增强功能,也可以构建代理,我们希望两者兼顾。但在现阶段,我要说,鉴于目前与易犯错的大型语言模型等合作,你会想构建的与其说是钢铁侠机器人,不如说是钢铁侠战衣。与其说是构建自主代理的华而不实的演示,不如说是构建部分自主的产品。这些产品拥有定制的图形用户界面和用户体验设计。我们正在尝试这样做,是为了让人的生成验证循环非常非常快。但我们并没有忽视这样一个事实:原则上,这项工作是可以自动化的。你的产品中应该有一个自主性调节器,你应该思考如何调整它,并让你的产品随着时间的推移变得更加自主。我大致认为,这类产品蕴藏着大量机会。 我现在想稍微换个方向,谈谈我认为非常独特的另一个维度。不仅出现了一种允许软件自主性的新型编程语言,而且正如我之前提到的,它是用英语编程的,这正是一种自然界面。于是,突然之间,每个人都是程序员,因为每个人都会说像英语这样的自然语言。所以,我认为这极具看涨潜力,对我来说非常有趣,而且也是完全前所未有的。过去,你可能需要花费五到十年时间学习某样东西,才能在软件领域有所作为。现在情况不再是这样了。 不知道大家有没有听说过抹除式编程。这就是那条介绍这个概念的推文,但我听说这现在已经成为一个主要的模因。我上推特已经大约15年了,但直到现在,我仍然不知道哪条推文会走红,哪条推文会石沉大海无人问津。我当时以为它不会引起关注,但它完全变成了一个模因,我对此感到惊讶。它引起了共鸣,并为一个大家都有所感受却难以言喻的事物命名。现在维基百科上都有它的页面了。 Hugging Face的Tom Wolfe分享了一个我非常喜欢的视频。这些是孩子们在白板上编程。我非常喜欢这个视频,它令人感到温暖。看完它,很难不对未来感到乐观,未来是美好的。我认为这最终将成为软件开发的入门方式。我对这一代人的未来充满信心。 因此,我也尝试了即兴编程,因为它非常有趣。当你想要构建一些看起来不存在的、超级定制的东西,而且你只是想在周末即兴发挥时,即兴编程非常棒。我开发了一个iOS应用,尽管我不会用Swift编程,但我惊讶于自己竟然能开发出一个极其简单的应用。这只花了一天时间,当天晚些时候就在我的手机上运行起来,这令人惊喜。我因此不必花五天左右的时间研读Swift才能上手。 我还即兴编程了这款名为MenuGen的应用,它已经上线了,你可以在menugen.app上试用。我遇到的一个问题是,在餐馆翻阅菜单时,我完全不知道菜品是什么,需要图片辅助。由于当时没有这样的工具,我决定即兴编程一个。它的工作方式是:你访问menugen.app,拍摄一份菜单的照片,然后MenuGen就会生成图片。每个人注册时都能免费获得5美元积分,因此,这在我生活中是一个主要的成本中心。目前,这对我而言是一个亏损的应用。 MenuGen最令人着迷之处在于,编写核心代码实际上是整个编码过程中最容易的部分。实际上,大部分工作都集中在将其投入实际使用,例如实现身份验证、支付功能、域名配置和灵活部署。这些都非常困难,且并非代码本身。所有的开发运维工作都是我在浏览器中通过点击操作完成的。这异常辛苦,又花了一周时间。我花了几个小时就让MenuGen的基本演示版在我的笔记本电脑上运行起来,然后又花了我一周时间来让它真正投入使用,这确实令人着迷,因为其原因令人恼火。例如,如果你尝试将谷歌登录功能添加到你的网页,我知道这只是个小功能,但Clerk库的说明详细到告诉我:访问某个URL,点击下拉菜单,选择某个选项,然后前往某个地方再点击。这就像一台计算机在指示我执行操作,而不是它们自己完成。我不得不遵循所有这些指示,这确实荒谬。 因此,本演讲的最后一部分将聚焦于:我们能否直接为代理构建系统?我不想做这些工作,智能体能做到吗? 出现了一类新的数字信息消费者和操纵者。过去,只有人类通过图形用户界面(GUIs)或计算机通过应用程序接口(APIs)进行此类操作,而现在,我们有了一个全新的主体。智能体是计算机,但它们在某种程度上类似于人类心智,存在于互联网上,需要与我们的软件基础设施进行交互。那么,我们能否为它们构建相应的系统?这是一个新事物。 例如,你可以在你的域名上设置 robots.txt 文件,并以此指示网络爬虫如何在你的网站上行为。同样,你也可以有一个 lms.txt 文件,它只是一个简单的Markdown文件,告诉大型语言模型这个域名是关于什么的。这对于大型语言模型来说非常易读。如果它不得不去获取你网页的HTML并尝试解析它,那将极易出错且困难,它会搞砸,而且不会奏效。所以我们可以直接与大型语言模型沟通,这是有价值的。 大量的文档目前是为人编写的。所以你会看到列表、粗体和图片等内容,而这些大型语言模型无法直接访问。因此,我看到一些服务商正在将其大量文档进行转换,使其专门面向大型语言模型。例如,Vercel 和 Stripe 是这方面的先行者,而且这类服务商正在增多。他们以Markdown格式提供文档。Markdown对大型语言模型(LLM)来说超级容易理解,这很棒。 再举一个我个人经验中的简单例子。也许你们中有些人知道3Blue1Brown,他在YouTube上制作精美的动画视频。我喜欢他编写的Manim库,我也想制作我自己的动画。关于如何使用