吴恩达最新演讲:AI Agent驱动下一个创新浪潮

在2024年Snowflake峰会开发者日的Luminary演讲中,Landing AI创始人兼CEO吴恩达详细介绍了AI智能体工作流及其潜力。吴恩达认为,AI智能体工作流可能比下一代基础模型带来更大的AI进展。吴恩达在演讲中重点讲述了AI智能体工作流如何迭代地进行任务,从而比传统的零样本提示方式产生更优质的结果。

吴恩达还分享了Landing AI团队在视觉智能体方面的最新进展,并展示了视觉智能体在复杂任务中的应用,进一步证明了智能体工作流的有效性和广泛应用前景,并就其局限性和未来发展方向进行了分析和展望。他呼吁开发者们关注和参与AI智能体技术的发展,共同推动这一激动人心的趋势。

他表示,虽然目前技术依旧有缺陷,但AI智能体工作流已经开始从一种新奇的“玩具”过渡到真正的实用阶段,未来必将为开发者带来前所未有的高效创新体验。吴恩达相信,通过开源和社区合作,这些技术将不断进步,显著提升开发者的能力。

以下是演讲内容目录:

01 AI智能体工作流

02 视觉智能体

03 视觉智能体当前的技术不足

/ 01 / AI智能体工作流

因为这是一个开发者大会,我想借此机会和大家分享一些我对人工智能体 (AI agent) 感到兴奋的事情。实际上,我将分享一些从未公开过的新内容。大家都知道人工智能代理,对吧?我们很多人习惯于使用大型语言模型进行所谓的零样本提示,这意味着让它写一篇文章或者对提示做出回应。这有点像你去找一个人,对他说,请你写一篇关于某个主题的文章,从头到尾一次性写完,不允许使用退格键。尽管以这种方式写作是很困难的——我自己就不能这样写——但大型语言模型表现得相当不错。

500

相比之下,智能体工作流 (agentic workflow) 的工作流程要迭代得多。你可能会让一个语言模型先写一个文章大纲,然后问它是否需要进行网络搜索。如果需要,它会去网上搜索,获取一些信息,然后写出初稿。然后再读自己的初稿,看是否可以改进,之后再进行修改。

所以,智能体的工作流程看起来更像这样:模型可能会先思考一下,做一些研究,然后进行修改,再做更多的思考。

这种迭代循环实际上会产生更好的最终产品。如果你考虑用代理来写代码也是同样的情况,今天我们往往让一个模型直接写代码,这就像让一个开发者从头到尾一次性打出程序,并且运行代码,第一次和最后一次字符都是这样,虽然这样做效果也出奇的好。但是,代理的工作流程同样可以使工作效果更好。

500

我的团队收集了一些数据,这些数据基于一个叫做Human Eval的编码基准,这是OpenAI几年前发布的一个标准基准,里面有一些像这样的编码难题,比如给定一个非负整数数组,返回某些数据,结果是这样的解答。

事实证明,GPT-3.5在这个评价指标上的通过率是48%,也就是零样本提示下让它直接写出代码的准确率是48%。而GPT-4则好得多,准确率达到67%。但事实证明,如果你把GPT-3.5放入一个代理工作流程中,它的表现会更好。而GPT-4在这个流程中的表现也非常好。因此,我希望你们从中了解到的一点是,虽然从GPT-3.5到GPT-4的进步是巨大的,但与GPT-3.5在代理工作流程中的进步相比,这种进步其实显得相形见绌。对于所有正在构建应用程序的人来说,我认为这可能表明了代理工作流程的巨大潜力。

/ 02 / 视觉智能体

我的团队在Landing AI从事视觉AI的工作,我想与大家分享一些最新的进展,这是我以前从未展示过的。我们几天前刚刚开源了这个项目,我对此非常兴奋,即构建一个视觉智能体(visual agent)。

这个项目的负责人Dillon Laird是一个狂热的冲浪爱好者,他经常看鲨鱼视频。这是一条鲨鱼,而这是一位冲浪者在游动。Dillon对这类视频很感兴趣,比如这些鲨鱼离冲浪者有多近。这个视频是生成的,例如鲨鱼离冲浪者6.07米,7.2米,9.4米。现在鲨鱼离冲浪者足够远了,所以我们把颜色从红色变为绿色。当冲浪者离鲨鱼超过10米时,颜色就变成绿色。

如果你想写代码来实现这一点,你需要进行对象检测,进行一些测量,找到边界框,绘制一些东西。你可以做到,但这很麻烦,需要几个小时来写代码。现在我想展示一下我们构建这个视频的方式,我们编写了一个提示:你能在视频中检测到任何圆圈或鲨鱼吗?在视频中画一条绿色线表示冲浪者,假设30像素为1米,多条红线,等等。

这就是给视觉智能体的指令。根据这个自然语言提示,它会分解成一系列步骤的指令集,比如使用extract_frames工具来提取视频帧等等。这就是完成该任务所需的一系列步骤。之后会检索工具,也就是函数调用。比如save_video,这是一个实用函数,可以保存一系列帧。然后我们会检索save_video工具或save_video函数的详细说明。对于其他工具如closest_box_distance来测量鲨鱼和冲浪员之间的距离,也是如此。基于此,我们最终生成了代码,当运行这段自动生成的代码时,就会产生你之前看到的那段视频。所以我想再深入一些,解释这是如何实现的。

500

所以,我们构建的视觉代理是这样工作的。你输入一个提示。这是一个比我刚才用的提示稍微简单一点的提示,例如计算鲨鱼和最近的圆圈之间的距离。我们视觉代理的目标是编写代码来执行你提示的任务,这样你就可以输入单个图像,并生成所需的结果。

类似于编写非图像代码的代理工作流程,我们发现对于许多应用来说,这种方法比零样本提示要好得多。此外,我们还发现,对于许多图像用户来说,比如在Snowflake中如果你有10万张图像,那么拥有可以非常高效地在大量图像上运行的代码也很重要,因为一旦你有了代码,你就可以处理大量图像或视频帧,并通过相对高效的代码处理得到答案。

500

我想和大家分享一下视觉代理的工作原理。这是开源的,所以请看看,给我们反馈,也许可以帮助我们改进。视觉代理是用两个代理构建的。一个是编写代码的代理,另一个是测试代码的代理。给出一个像这样的提示,编写代码的代理首先运行一个计划程序,生成一个完成任务所需步骤的计划。比如加载图像,使用工具检测对象,计算距离等等。然后它会检索这些工具(即函数)的详细描述,最后生成代码。

不知道这一切听起来是否有点像魔法,但所有代码都在GitHub上。可以看看,看看我们使用的具体提示。当你看到细节时,可能会感到惊讶,虽然第一次看可能觉得这些东西像魔法,但看看代码和提示,也许你会发现其中的原理。当你这样做时,还有其他一些演示。比如检测每个人是否戴口罩,并将结果生成一个Python字典。生成了一堆代码,这是一个Python字典,八个人戴了口罩,两个人没有戴。

这是一个不同的提示,实际上生成了一个可视化,绘制了检测结果。所以这是自动生成的新代码。比如它漏掉了一些未戴口罩的人,未能检测到未戴口罩的人。

再举一个例子,这很有趣。分析视频,每两秒钟分类一次,看是否有车祸。输出一个JSON,显示是否有车祸。这个视频有16秒,我认为没有人受伤。当你这样做时,右边的代码会处理视频并生成一个JSON,显示在这个时间点没有车祸,在这个时间点有车祸。我的内部团队和一些用户给我的反馈是,虽然我自己也可以写这段代码,但这会花我几个小时。现在可以很快完成。

在计算机视觉领域,我们使用很多不同的函数。说实话,我经常记不住要用哪个函数,语法是什么。而这真的让构建视觉AI应用的过程变得更容易,只要它能正常工作。

500

我还想分享一个提高性能的其他方法,使用了测试代理。我展示了编写代码的代理,事实证明你可以提示一个语言模型来编写测试代码或测试脚本。基于这些,它可以执行测试代码。

现在我们的测试代码主要是类型检查,所以有些有限,但即便如此,我们也可以执行测试代码,如果测试代码失败,就把输出反馈给编写代码的代理,让它反思并重写代码。这可以进一步提高性能。

在学术文献方面,我们参考最多的两篇论文是Huang等人的代理代码论文和Huang等人的数据解释器论文。如果你想了解更多这些技术,可以看看这些论文。

500

最后展示一个演示,这是每两秒钟检测一次视频中的摩托车,并高亮显示。实际上这是为了处理闭路电视监控视频而制作的,就像特斯拉汽车那样拼接成视频,普通人认为需要高亮显示有趣的地方。

所以这是一个很长的提示和YouTube链接。它创建了指令,检索了工具。结果发现代码没有正常工作,对吧?所以这段代码实际上失败了几次。你可以看到这里有个索引错误的回溯。它将所有这些错误信息反馈给了大型语言模型。第三次失败时,没有名为PyTube的模块。

最后通过Pip安装PyTube解决了这个问题,成功运行了代码,并生成了突出显示监控摄像头视频中四个包含超过 10 辆车的视频片段的效果。我对这个方向非常感兴趣,它适用于许多应用,包括编程和视觉智能体。

/ 03 / 视觉智能体当前的技术不足

我也想分享一些限制。在我们的实验中,失败是常见的。我们使用通用对象检测系统,有时未能检测到对象。比如漏掉了一些黄色番茄。这是常见的错误之一。

500

我对Landing AI和Snowflake的合作非常兴奋,我们最近构建了Landing Lens,这是一个Snowflake原生应用的监督学习计算机视觉系统。我认为通过监督学习,我们可以减少一些错误。但它在复杂推理上表现不好。比如说每只鸟重半公斤,栅栏上一共承重多少。系统会天真地检测到所有鸟,但不会意识到有一只鸟在飞,不会施加重量。但如果你修改提示,说忽略飞翔的鸟,它就能正确识别。我觉得今天发布的视觉智能体是beta版,有时能正常工作,有时不能,对提示的措辞也有些挑剔,有时需要更具体地描述步骤。

所以,我不会说这是非常出色的软件,但有时它能工作,我对结果感到非常高兴和惊讶。团队的成员其实今天也在这里。希望你们能和他们聊聊,不论是在这里还是在Landing AI展台,也可以在线访问landing.ai。我们还将核心引擎开源了。我觉得AI智能体是非常重要且令人兴奋的趋势,我们做出了这一小小的开源贡献,希望能帮助大家。我希望我们能一起让智能体变得更好,这将显著提高我们作为开发者的能力。

我看到AI智能体正在被用于许多不同的应用。我觉得你们中的一些人可能在社交媒体上看到了Devin做的演示,我看到有些团队在做法律工作,例如分析复杂的法律文件,使用智能体来分析复杂的法律文件。

我认为AI研究智能体已经可以上网进行网页搜索,综合大量信息并写出一份深入的研究文档。这确实已经开始流行起来了。我其实也经常玩一些Agentic平台,比如Quora、AutoGen,有时还有LandGraph和其他平台。很多人基于这些框架构建了很多应用。目前,我发现很多智能体都是为特定目的构建的,但看看是否会有一个非常通用的智能体是很有趣的。我认为这很令人兴奋。

对于很多智能体,我认为我们刚刚跨过了从玩具新奇到实用的门槛。例如,AI研究智能体,几个月前我还只是玩玩,上网搜索信息,为你写研究论文。大约三个月前,这还是很有趣的玩具。但就在过去几个月里,我的朋友,斯坦福大学的Monica Lam,她的研究实验室发布了Storm,这是一个开源软件,我感觉这个确实开始变得有用。

500

全部专栏