引言
大家好,我是Aaron Erickson。今天我们要讨论的是:为什么并非所有事情都需要AI,但有些时候确实需要AI。这个演讲的题目是"确定性工具,探索性智能体"。
在座的各位有没有遇到过这样的问题?"我知道了,如果我们用AI来做这件事呢?"有没有人有过这样的想法,然后发现这其实是个糟糕的主意?我自己就有过很多糟糕的想法,比如GraphQL、敏捷开发等等。也许AI也会成为其中之一,成为这条铺满好意的地狱之路上的又一块铺路石。
Orgspace的探索
让我先谈谈我之前构建的一个产品。在加入NVIDIA之前,我在一家叫Orgspace的公司工作。我们的想法是:能否用软件来进行组织重组?2023年发生了一件事,那就是:如果你创立了一家初创公司,想要融资,如果你不做AI,你就不再是一家初创公司了。自2023年以来,有多少非AI初创公司获得了融资?并不多。我们必须对此有所回应。
于是我们做了一个ChatGPT插件。用户可以输入"我听说人们在扁平化组织结构,你能帮我吗?"然后ChatGPT会生成一个重组计划。说实话,这个计划的质量很一般——就像你请咨询公司写的那种方案。它属于那种"中规中矩"的输出。
我们可以用这个工具生成扁平化的组织结构,让AI来决定谁应该调动到哪个团队,甚至可以用五音步诗、荷马史诗或者俳句的形式来写重组邮件。这就是2023年大家都在做的事情。
在NVIDIA管理GPU集群
最终我们没有成为人力资源的未来。我来到了圣克拉拉的一家芯片公司——NVIDIA。我在那里的第一个项目不是做AI,而是构建一个GPU分配系统。
NVIDIA有很多内部研究人员在开发各种AI模型,比如Nemotron、BioNeMo、Cosmos等等。在旧世界里,我构建的是人力资源软件,有员工、职位、复杂的层级结构。在新世界里,很多事情其实很相似:
请求GPU就像请求人头预算,而且更贵——1000张H100一个月可能要2000万到4000万美元 空闲的GPU集群就像空缺职位 AI训练任务就像员工 云提供商的区域和区块就像复杂的组织层级 GPU也需要性能管理,需要监控风扇故障等
Llo11yPop项目
我们构建了一个叫Llo11yPop的系统(命名权被剥夺了,因为名字太奇怪)。这个系统使用了三种类型的智能体:
- 检索智能体
:将问题转换为API调用 - 分析师智能体
:理解应该问什么问题 - 任务智能体
:执行具体任务
我们使用了RAG(检索增强生成)技术,通过约束和示例来提高准确性。
从Llo11yPop项目学到的教训
稀有上下文的重要性
系统经常被一个问题难住:"僵尸节点在哪里?"在GPU集群中,僵尸节点是指无法正常连接到网络的8个GPU组。除非你提供足够的示例或进行后训练,否则AI很难理解这些专业术语。今天我们把这些称为"语义层"。
文本转SQL的局限性
我们尝试让LLM生成SQL查询来回答问题。虽然简单的查询效果不错,但复杂的JOIN操作效果很差。我们发现保持查询简单(只用SELECT、WHERE、GROUP BY等)可以显著提高准确率,从70%提升到90%以上。
分类优于编码
LLM在分类任务上表现得比编码更好。我们利用这一点,让系统识别查询模式,然后直接运行预定义的查询模板。
从确定性系统获得可靠性
这是最重要的教训之一:通往确定性的出口匝道真的能提高可靠性。当AI识别出某个查询模式时,直接使用确定性的查询模板,而不是每次都让AI重新生成代码。
选项过多导致错误增加
如果你有50个可选的智能体,很多功能相似,错误率会显著上升。就像芝士蛋糕工厂的菜单一样——选项太多反而让人难以选择。LLM也存在同样的问题。
目的构建的智能体层级
我们构建了类似公司组织结构的智能体层级:
- 副总裁智能体
:有广泛的上下文,但不擅长任何特定事情 - 经理智能体
:擅长提问和分配任务 - 个人智能体
:执行具体任务,就像公司里真正干活的IC(个人贡献者)
测试金字塔
我们重新学习了测试金字塔的概念:
顶层:调用多个LLM的端到端测试(数量少,成本高) 底层:单个LLM的简单测试(数量多,成本低)
如果你有这个评估金字塔,就像传统软件测试一样,效果会很好。你不能只靠"感觉测试",准确率真的很重要。
智能体原型
工人智能体
想象你有一群"笨实习生",每个人只能做一件事,但你可以扩展到1000或10000个。就像《大空头》里的场景:查看所有抵押贷款债券中的每一个,找出有风险的那个。
这就是工人智能体问题。任务是:给海滩上所有的石头画上图案。每个都要稍有不同,但基本任务相同。这种模式非常适合大规模检查,比如检查所有10万个GPU集群,分析特定问题。
沉思型智能体
这种智能体会"整夜思考",查看所有收集的数据,使用图技术或其他记忆技术,寻找跨集群的模式或具有共同特征的故障。
中层管理者智能体
"请去解决这个问题。这里有一组智能体可以使用,有一组能力可以利用。管理好所有这些的上下文,用可衡量的指标来衡量结果。"关键是可衡量的指标,这样才能评估智能体的行为是否有效。
顾问智能体
这是一种被动智能体,负责监控其他智能体之间的通信模式。它检查:我们是否在使用不当的语言?是否在使用有偏见的语言?是否给出了过大的退款?也被称为"观察者智能体"。
工具选择器智能体
当有太多可用工具时,工具选择器智能体可以理解工具的细节,将正确的工具映射到正确的任务。这在Claude的技能选择中特别重要。
导演智能体
导演智能体位于层级的顶端,负责将高层意图转化为具体的任务分配。它与多个管理者智能体交互,委派任务,尝试创造结果。这在封闭领域中是可行的。
关于幻觉
现在谈谈房间里的大象:如何让AI更准确、更实用、不产生幻觉?
使用代码进行计算
当被问到"strawberry中有几个R"时,让LLM用Python来计数,而不是自己数。我们早就知道LLM不擅长数学,所以用计算器(确定性工具)来解决。
确定性护栏
就像航空公司给客服代表设置退款上限一样,你需要给AI智能体设置确定性护栏。"不管你的推理是什么,退款不能超过这个金额。"这不是AI的事,这是硬性规定。
运维手册
管理大型分布式系统时,不要每次都重新发明如何修复DNS服务器。使用运维手册(runbook)。这是确定性的,不需要每次都重新发现。
确定性工具与AI发现的结合
如果你给AI正确的工具组合,AI可以发现正确的工具组合方式。它使用确定性工具来获得可靠性。这就是理论基础。
深度研究(Deep Research)就是这种模式的例子:持续将查询重新锚定在真实数据中,逐步理解事实、进行沉思、再次验证。运行时间越长,答案越准确。
有效AI智能体的特征
最有效的AI智能体具备以下特征:
访问有用的工具 受护栏治理 具有反馈循环
AI智能体是我职业生涯中见过的第一种理论上应该随着使用而变得更好的软件。如果设计得当,系统会随着使用而变得更准确。
平台架构的两个层次
我认为AI平台有两个重要层次:
工具层
由确定性软件组成。可能是AI辅助人类编写的,也可能是传统软件。不是所有东西都需要AI。
AI智能体层
允许你做模糊的事情,比如解释模糊输入、分类、路由调用、识别异常。这些智能体与确定性工具配合工作。
什么是好的智能体问题?
笨钻石问题
"TPS报告的封面填对了吗?"这类问题不难判断,但需要人工检查。大量业务问题都属于这类——人类主要就是打勾,但偶尔会发现例外。
分类器问题
LLM在分类任务上表现出色:"这是A还是B还是C?"视觉模型也可以做类似的事情。
内容组织器
我们团队构建了一个系统,使用"模板RAG"技术,将会议记录转换为标准格式的Wiki页面。它不仅能生成会议摘要,还能根据需要重新运行内容,生成新的视角。
规模化检查器
检查每一个X(GPU集群、交易流中的交易等),寻找特定条件,给AI一定自由度来发现你可能没想到的故障模式。
约束导航器
在复杂的问题空间中寻找解决方案,就像AlphaGo在围棋中的做法一样。
多样化的AI
AI不仅仅是LLM。LLM只是AI的一个小子类。
时间序列基础模型
我们团队开发的Tesseract是一种时间序列Transformer模型。它在时间序列数据上训练,能够基于数据中的模式进行预测。我们用它进行异常检测和预测,在金融、供应链等领域效果显著。
蛋白质语言模型
使用DNA和化学的语言(而非人类语言),配合Transformer模型,发现可能治愈疾病的分子。甚至可以预测药物是否会导致肝毒性。
领域特定推理模型
专门的推理模型(如数学推理模型、生物推理模型)可以与更大的模型配合,获得更好的结果。有公司花费15亿美元训练模型,但通过添加蛋白质推理模型,用十分之一大小的模型就能达到类似效果。
世界模型
Yann LeCun谈的世界模型——通过与世界互动10分钟学到的东西,可能比LLM知道的更多。我们的Cosmos模型就是这方面的探索。
开源策略
NVIDIA的Nemotron模型提供开放权重和训练数据,支持后训练和微调。我们希望最好的开源模型能在行业中可用,提高整个行业的基线。
总结
核心要点
- 确定性是好的
,随机系统也是好的。它们各有适用场景。 - 从简单智能体开始
,因为它们可能更可靠。 - 优秀智能体的定义
不仅是自动化工作流,还包括发现新的工作方式和理解失败原因。 - 自下而上优于自上而下
,让实际工作的人构建智能体。 - 稀有上下文
是LLM永远不会知道的、对你组织特有的知识。 - 无情地使用评估
,没有评估就不是认真的。 - 设计系统随时间改进
,反馈循环是关键。 - 世界属于拥有最狂野想象力的人
,不要限制自己的可能性。
求点赞 👍 求关注 ❤️ 求收藏 ⭐️你的支持是我更新的最大动力!
夜雨聆风