理想中的开放域智能体系统应该如何落地?
大模型为人工智能的发展带来了颠覆式创新,如何利用好大模型以解决开放域问题成为大模型发展下一阶段的关键议题。近期的学术研究和工业实践表明,以大模型为基础的智能体(简称大模型智能体)是将大模型推向开放域的重要技术路径,具有重大研究和应用前景。
本文整理自清华大学智能产业研究院副研究员 / 副教授李鹏在 AICon 2024 北京的演讲“面向开放域的大模型智能体”,演讲中讨论了智能体 - 环境 - 用户统一对齐原则,介绍了大模型智能体与开放域问题相结合的若干前沿探索,并展望未来发展方向。
在 8 月 18-19 日即将举办的 AICon 上海站,我们也设置了「AI Agent 技术突破与应用」专题,本专题将深入探讨 AI Agent 的当前技术现状与发展趋势,揭示其在各行业中的广泛应用和未来潜力。目前大会已进入 8 折购票最后优惠期,感兴趣的同学请锁定大会官网:https://aicon.infoq.cn/2024/shanghai/track
本文由 InfoQ 整理,经李鹏老师授权发布。以下为演讲实录。
从 2023 年至今,在研究、框架、应用等各个领域,智能体一直是备受追捧的热点。
智能体这一概念并非去年才出现,实际上它在人工智能学科中有着悠久的历史,一直是研究中的重要对象。著名教材《人工智能:一种现代方法》对智能体这样定义:智能体具备感知环境的传感器(Sensor),并通过这些传感器来感知周围环境;同时,它们还拥有执行机构,能够根据感知到的信息对环境做出相应的动作。
那么,大模型智能体与传统智能体之间的核心区别是什么?我认为,面向开放域的能力是大模型智能体区别于传统智能体的一个非常重要的特点。
下图左边的例子是 DeepMind 研发的智能体 AlphaStar,它专门用于玩《星际争霸 2》这款游戏,并且表现出色。而右边的例子是 AutoGPT,它是大模型时代的一个代表性智能体。虽然它们都是智能体,但它们之间存在哪些区别呢?
AlphaStar 的训练过程是通过强化学习加上自我对弈来完成的。这种训练方式需要在特定的环境里收集大量的数据,以支撑其训练过程。尽管采用了这种复杂且专业的训练方法,AlphaStar 的专长仍然局限于《星际争霸 2》这款游戏。如果换成《星际争霸 1》或其他类似游戏,它的性能就可能大打折扣。这表明 AlphaStar 是一个专用的智能体。
AutoGPT 则是由大模型驱动的智能体,它拥有一些显著的优势。首先,AutoGPT 在构建时不需要经过任何训练,也不需要针对特定任务去收集数据。其次,只要其背后的大模型足够强大,理论上 AutoGPT 可以完成任何人类提出的任务。这使得 AutoGPT 成为一个非常通用的系统。
目前,大模型智能体正处于初级发展阶段,可以认为是一种介于 GPT-3 和 ChatGPT 之间的状态。一方面,公众已经看到其巨大潜力;但另一方面,从实际应用效果来看,它们还没有实现真正的阶跃。
要使大模型智能体真正走向开放域,它们应该具备哪些特性呢?我认为至少应该从三个方面来考虑:通用性、自主性和有效性。
首先,以 OpenAI 推出的 GPTs 为例。基础版的 GPTs 通过文字配置智能体,并通过对话形式完成用户的需求,基本上可以将其视为一个系统提示的产品化工具。基础版之上,进阶版 GPTs 可以自主决定调用工具来满足用户的需求。
在这个过程中,GPTs 展现出了一定的自主性,但很大程度上仍然遵循人们设定的流程。因此,从完成任务的角度来看,GPTs 相对通用,能够较好地满足用户需求,有效性也不错。然而,在自主性方面,GPTs 还存在一些不足。
第二个例子是斯坦福小镇系统,它能够在一定程度上模拟人类行为,从而观察到人类社会中的涌现行为。(注:涌现行为指,在设计系统时并没有特意让其执行,但系统自己学会如何去做的现象。)
从这个角度来看,斯坦福小镇系统显然具有很高的自主性。然而,它也存在一些缺陷。首先,它目前还无法完成大规模的人类行为模拟;其次,它模拟出的行为的可信度仍然需要提高。因此,这个系统既不是通用的,其有效性也存在很大的问题。
第三个具有代表性的例子是 AI 化学家系统,该系统能够通过大模型来控制真实的机器合成复杂的化合物。
显然,AI 化学家系统是一个专用系统,当人类让它合成某个化合物时,它的每个步骤都事先由人类定义好。因此,可以看出该系统具备有效性,但通用性并不强。
第四个代表性的系统是 AutoGPT,它允许人类提出宏观任务,由智能体系统自行拆解、规划、逐步执行,最终完成整个任务。在设计层面上,这类系统的通用性非常强,自主性也表现得相当出色。
但由于系统的设计目标定得较高,导致实际完成任务时的效果与预期存在一定差距。这类系统最常见的测试场景是编写代码,在修改单个文件这样的任务上,它们的表现可能还不错。但是,一旦涉及到多文件操作或大型工程项目,它们的表现就不尽如人意了。
第五个典型系统是 Voyager,这是一个专门设计用于玩游戏的系统。它的设计目标是将智能体放入《Minecraft》这样的开放世界游戏中,让智能体在游戏环境中自主学习各种技能。
然而,尽管 Voyager 有出色的自主性和有效性,但它仍然是一个专用系统。理论上,它可以泛化到任何可以用代码描述的场景,但在实际设计和实现中,它比较依赖于特定的 API 抽象,这限制了它的通用性。
总结来看,虽然上文五个代表性系统在通用性、自主性和有效性这三个关键方面都有所体现,但没有任何系统能在这三个层面上同时达到理想的效果。理想中的开放域系统,不仅需要具备这三个层面的能力,而且应该在每个方面都能表现出色。
要实现理想中的开放域智能体系统,需要采取哪些措施呢?一个重要的原则是实现智能体、人类和环境这三者之间的统一对齐。
首先,智能体需要与自身对齐,它需要考虑自身的限制,如时间消耗和金钱消耗等因素。其次,智能体需要与人类对齐,这主要是为了准确理解人类的意图。人类在表达意图时可能存在模糊性,例如,当有人说“我想买一件衣服”时,他们可能心中有特定的款式或颜色,但这种具体性并没有直接表达出来。最后,智能体还需要与环境对齐,与环境进行有效交互。智能体需要能够适应真实世界环境的动态性和随机性,并与环境的客观规律保持一致。通过这三个层面的对齐,才能朝着构建一个真正能够在开放域中有效运作的智能体系统迈进。
要了解当前的情况,可以从智能体评价基准平台即 Benchmark 着手。从目前的数据来看,现有的测试基准没有一个能够全面考虑三方对齐。评估智能体在开放域中的表现需要更全面从三方统一对齐出发建设的基准。
从方法的角度出发,现有的方法大多只解决了单方面或两方面的对齐问题,能够同时考虑并做到三方对齐的方法,目前还没有出现。开发能够实现三方对齐的综合方法,将是未来智能体研究和工业应用中的一个重要课题。
清华在这个领域进行了一些初步的探索性工作,主要集中在:代价敏感的大模型智能体,领域增强的大模型智能体,环境感知的大模型智能体。
“代价敏感”,意味着智能体在与环境交互时,需要评估其行为对环境的影响以及由此产生的成本。例如,在像淘宝这样的动态且个性化的购物环境中,智能体的交互可能会永久性地改变环境,如商品排序的变化,这些变化对智能体来说都是有代价的。
目前,对于完全通用的智能体代价的讨论还不成熟。然而,在工具学习这一子领域,研究者已经开始探讨这一问题。工具学习让大模型自主选择工具来帮助完成任务,但目前大多数方法只关注任务完成率,而很少考虑完成任务过程中的成本。
以一个复杂的工具学习方法为例,该方法通过引入搜索机制来解决问题,尝试多种解决方案并对每个分支进行可能性评估,以找到最佳方案。如果不考虑智能体运行的代价,设计复杂的系统可能会提高任务完成率。然而,一旦对代价进行限制,比如限制在 20 单位成本内完成任务,超出这个限制则认为任务未完成,那么现有方法的性能会有显著下降。
清华正致力于解决这个问题:利用大模型在以往调用工具时积累的经验,在接到新的用户请求时,不是立即调用大模型或工具,而是首先进行一个规划阶段。在这个阶段,对可能调用的工具以及调用次数进行预先粗略判断。
通过预先规划,可以在实际执行工具调用时有更大的可能性以更少的代价更有效地完成任务。换句话说,在执行任务之前,通过预测和规划,优化工具调用的策略,以减少不必要的成本消耗,提高任务完成的效率和质量。
具体来说,首先分析工具调用的成本构成:
固定成本:系统提示和用户提示等相对固定的文本输入。
单次调用成本:每次调用工具产生的消耗,例如计算资源(如 token 消耗)和时间成本等。
因此,如果能够预估哪些工具可被调用及其最大调用次数,就有望降低代价同时保持较好的任务完成率。
具体的,方案第一步是估计调用一次工具对于解决当前用户请求所能带来的正收益。过程大致如下:当收到一个用户请求时,查看历史数据,寻找与当前请求相似的案例,并分析这些案例中工具调用的情况。基于这些历史工具调用的数据,估算出调用某个具体工具可能为解决当前用户请求带来的收益。
方案的第二步是估计工具的频次限制,它涉及到预先确定每个工具可以被调用的最大次数。这个决策过程主要基于两个因素:
期望价值:如果一个工具的期望价值很低,意味其对解决当前用户请求的贡献较小,那么可能不调用这个工具。
历史数据:对于期望价值较高的工具,通过参考历史数据估计其可以被调用的最大次数。
确定期望价值和频次限制这两个关键因素后,也就将面临的问题转化为,在一定的费用限制和每个工具调用次数限制的条件下,如何计算并最大化期望价值的总和。接着,可以应用动态规划算法进行建模,从而明确每个工具在实际操作中应被调用的最优次数。这个规划过程不涉及实际调用大模型,因此成本非常低。
得到这个规划后,在实际推理过程中记录每个工具的调用次数,并确保不超过预定的次数。如果超过限制,则不再调用该工具。通过这种方法,可以实现在规划阶段不产生高昂成本的同时,在执行阶段有效控制工具调用次数,从而限制了整体代价。
下图中,蓝色代表的是 6 个性能较强的基线系统,而绿色代表了应用上述方法后的性能变化。可以看到,应用上述方法后性能提升显著,尤其是对于那些较为复杂的基线系统,提升效果更为明显。这是因为系统越复杂,其固有的成本越高,通过上述方法,可以更有效地降低成本。
此外,一种自然的尝试是在 Prompt 中加入关于当前调用成本的说明性指示,以期改善智能体的性能。实验中,红线对比的是添加成本相关信息后的系统效果。观察结果表明,增加这些指示后,系统性能并没有出现预期提升,基本保持不变。这表明,仅通过在问题描述中添加简单的成本提示信息,并不能有效地进行成本控制。
接下来,从任务完成率的角度来评估方法的有效性,进一步直接观察调用的成本消耗情况。可以发现,采用上述方法后,所有基线系统的实际成本消耗都有了显著的降低。这一结果表明,该方法不仅具有通用性,而且确实是一种有效的成本控制手段。
在开放域研究工具学习时,需要一个优秀的评价基准。理想情况下,这个基准应该使用真实的工具,因为它们能提供最贴近实际应用的场景。然而,真实工具存在一些问题,比如不稳定性,或者随着时间的推移,一些工具可能变得不可用,这会导致评价结果的不一致性。换句话说,即使其他条件保持不变,在不同时间进行的评价可能会得出不同的数值,这意味着跨时间的评价结果是不可比的,这是一个非常严重的问题。
Toolbench 是一个著名的工具评价基准,包含了上万个线上的真实工具。下图中,红线代表 Toolbench 刚发布时系统的效果,蓝线则表示在不改变任何条件的情况下,6 个月后再次测试的结果,效果有大幅下降。这表明,尽管方法没有变化,评价结果却受到了影响,这是基准本身的问题。为什么会出现这种问题呢?正如之前提到的,许多 API 的状态发生了变化,接近一半的 API 不再可用或者参数发生变化,造成了很大的影响。
为了开展开放域的工具学习研究,评价基准中因真实工具不稳定带来的问题必须解决。为此,清华形成了一套解决方案,基本思路是在现有的评价基准上引入两个关键组件:一个缓存系统和一个 API 模拟器。
缓存系统:用于存储 API 调用的历史结果。当 API 以特定参数被调用并返回结果后,该结果会被缓存。之后,如果同样的 API 调用再次发生,系统将直接返回缓存的结果。这样,即使原始 API 变得不可访问,仍然能够保证调用结果的一致性,避免了之前提到的问题。
API 模拟器:当缓存系统和真实 API 都无法使用时,利用大模型来模拟 API 的行为,并提供相应的结果。这确保了即使在 API 发生变动或不可用的情况下,研究和评价过程仍能继续进行。
如下图左侧所示,在引入缓存系统和 API 模拟器这两个机制之前,Toolbench 的评价效果会随着 API 不可用比例的增加而下降,即评价值持续降低。右侧图显示,当采用这种方法之后,即便面对 API 不可用的情况,评价的数值也变得更加稳定。
大模型是智能体的基础,它在预训练阶段需要大量数据。然而,获取涵盖所有领域的数据是非常困难的,尤其是像日常生活中使用的各类 App,它们背后隐藏着大量有价值的领域数据。但由于商业隐私、法规等问题,这些数据无法共享,也无法被所有人获取。此外,即使是单一公司如美团,其数据也是高度动态变化的,去年的数据可能在今年就不再适用。
进一步来看,即使是公司内部,也会不断产生新的或显著不同的子领域,使用单一模型一次性训练来覆盖所有这些领域是非常困难的。但幸运的是,在各个领域,已经存在大量的专家模型,这些模型可能不是深度学习模型,甚至不是大模型,但它们蕴含了大量的领域知识,并在特定领域问题上表现出色。如果能够将这些专家模型中的知识传输给大模型,那么大模型就能更好地处理各个领域的任务,更有效地服务于人类的需求。这是模型间知识传输问题的背景。
在讨论知识传输时,大家可能首先会想到知识蒸馏。传统的知识蒸馏通常是从强模型向弱模型传递知识,并涉及模型的微调。但在大模型时代,微调大模型需要巨大的时间和算力开销,并且可能会损害大模型原有的能力。另一种方法是最近一年多非常流行的非参数或半参数方法,如 Prompt 或检索增强。这些方法不需要调整模型,而是通过特定的形式将知识应用于模型的使用过程中。与大模型的知识蒸馏相比,这些方法的时间和精力开销显著减少。但问题是,这些方法最初设计时并非针对知识传输,如果直接用于知识传输,效果可能并不理想。
鉴于目前的情况,清华提出了一种新的方法,称为基于专家偏好的无参数知识传输。这种方法的核心思想是利用大模型从专家模型的偏好中提取和总结知识,并能够由此及彼,实现知识的迁移和应用。如图所示,利用大模型在语言空间中总结专家模型的行为偏好并用文字形式表达出来。通过这种方式,将总结出来的偏好转化为知识,并将这些知识固定下来,以便在未来的工作中提供指导。
具体实施步骤如下:
在训练学习阶段,将收到查询(Query)提交给专家模型,专家模型给出预测结果。
获得专家模型的结果后,采用提示学习的方法,将专家模型的选择告知大模型,并让大模型尝试用自己的语言解释为什么专家模型会作出这样的选择。
将大模型得到的解释放入一个名为 Insight Pool 的外部知识库中,这个 Insight Pool 可以视为专家模型向大模型传递知识的知识库。换句话说,Insight Pool 存储了从专家模型学到的知识。
在推理阶段,采用相对标准的检索增强方法。当用户请求到来时,首先在 Insight Pool 中检索可能有助于解决问题的先前总结出来的解释,然后将这些解释放入 prompt 中。接下来,大模型将按照其固有的方法进行推理。这个方法虽然听起来简单直接,但其效果如何呢?我们通过实验结果来进行评估。
实验是在一项交互式决策任务上进行的,环境通过文本描述了一个房间,智能体进入房间后,会接收到文本描述的周围环境信息。智能体可以对环境进行改变,环境变化后,会再次通过文本告知智能体周围的情况。
下图右侧的表格展示了使用该方法后的成果。其中,蓝线标出的部分显示了性能有所提升的任务种类数量,可以看出在多数任务上都有提升。更重要的是,在四个任务中,大模型的表现优于作为教师的专家模型。在知识蒸馏领域,很少见到蒸馏后的模型效果优于原始模型,即学生模型的表现超过了教师模型,这是一个非常罕见且令人鼓舞的结果。
在完成学习之后,大语言模型在某些任务上的表现竟然超越了专家模型,甚至在某些情况下,性能提升是非常显著的。用不太严谨的学术术语来说,这表现出了一种“举一反三”的现象。
在文本分类等任务的实验结果表明,在大多数情况下,上述方法都能带来性能上的提升,这证明了知识传输的有效性。而且,之前提到的“举一反三”现象在这些任务中表现得更为明显,大模型能从专家模型中学习到额外的知识,使得其结果比未经知识传输时有更大的提升。
接着,在更具挑战性的设定下进行了实验:在 a 任务上训练模型,然后在 b 任务上进行测试。这意味着在训练过程中,模型从未接触过 b 任务。希望探究测试模型是否能够利用在 a 任务上学到的知识来解决 b 任务,从而评估模型学到的知识是否具有泛化性,是否仅仅是死记硬背。
实验结果显示,通过该方法,模型学到的不是死记硬背的知识,而是能够在不同任务之间进行泛化的知识。同时在分类任务上也观察到了类似的泛化现象。
这个发现揭示了大模型所具备的“举一反三”的能力,为实现更高效、更通用的智能体提供了一种全新的可能性。在工业界,这种能力的应用有望提高智能体在多变的实际环境中的适应性和灵活性,从而提升产品和服务的智能化水平。
现实环境是极其多样和复杂的,不可能让大模型在所有可能的环境中都进行训练。然而,如果能在新环境中对大模型进行一定的训练,它对该环境的理解将更加深入,也更容易在该环境中取得更好的效果。
涉及训练就不可避免地涉及到数据收集的问题。在当前场景下,收集数据的方法主要分为两大类:
人工交互收集:人直接与环境进行交互来收集数据。这种方法收集到的数据通常在多样性和质量上表现不错,但主要问题是成本太高,因此很难收集到大量的数据。
自动化交互收集:人设计一些流程,然后让智能体与环境自主进行交互来收集数据。由于人工参与的部分较少,一旦设计完成,其余过程可以自动运行,因此可以收集到大量的数据。但这种方法的问题在于,由于人为设计的系统通常不会太复杂,因此收集到的数据在多样性上可能不足。
如何收集既多又好的数据?为此,清华提出了一种方法,通过智能体之间的协作来自主标注训练数据,从而减少人为参与。该技术方案涉及引入两类智能体:
ReAct 智能体:接收对环境的观察,进行推理,再基于这个推理结果采取相应的动作。
ActRe 智能体:接收观察结果和已经采取的动作作为输入,再尝试解释为什么要采取这个动作。
自动数据收集的过程如下:首先,ReAct 智能体对环境进行观察。基于这个观察,通过随机采样或其他方法来决定采取某个动作。然后,将这个动作和观察结果一起提供给 ActRe 智能体,它会尝试给出为何要采取该动作的解释。通过这种方式,智能体可以在没有人类直接参与的情况下,自主地生成训练数据。
接下来,可以调整动作和解释的顺序,再将它们提供给 ReAct 智能体。ReAct 智能体根据这些信息在环境中执行动作,执行完毕后,它会获得环境的新观察结果。这个过程不断重复,从而持续收集数据。
收集到数据后,用对比式自我训练的方法来进一步优化智能体模型。随着智能体模型的不断训练和优化,再次利用这些数据进行训练,进一步提升智能体的性能。如果智能体能够持续地通过这个流程进行训练,理论上它们的性能将不断得到提升。
虽然上述描述的理想情况听起来非常美好,但还是要通过实验来检验实际效果。首先在名为 AlphaWorld 的文本具身平台上进行了实验。之前表现较好的是两个系统(下图左侧),在使用上述方法进行第一轮迭代后,得到的分数是 86 分。到了第二轮迭代,分数已经提升到了 97 分。到了第三轮,分数已经与其他参与基准测试的系统相比没有明显差距。到了第四轮迭代,问题已经完全得到解决,完成率达到了 100%。
接下来,将测试转移至 WebShop 上,WebShop 是一个为研究目的而设计的简化版在线购物平台的具身环境。在此之前,一个名为 LAST 的系统在这个任务上表现优异,它引入了多轮自我反思、多次搜索等复杂机制。LAST 系统在这项任务上的得分为 38 分,作为对比,普通人在这项任务上的得分大约是 50 分,而专家可以达到 60 分。
当该系统首次在这个基准测试上进行迭代时,得分为 45 分,这已经超越了之前所有系统的最佳表现。经过第二轮迭代,得分进一步提升,超过了普通人的平均水平。到了第四轮迭代,达到 55 分,进一步接近专家水平。
接下来智能体会朝着人类、环境统一对齐的目标持续进步。智能体将在以下几个方面发生变化:
更加开放:变得更加开放,基础模型将变得更加强大,并内嵌越来越多的开放域知识。
持续进化:展现出持续进化的状态,既发生在个体层面,也体现在群体层面。
具身自主:与物理世界进行真实的交互,影响物理环境,并主动从环境中获取知识。
从环境的角度来看,变化包括:
数字环境:传统的计算环境将变得更加真实和多元化,更多地反映现实世界的因素,如成本等。
数字模拟环境:通过计算手段模拟真实环境的方法,在 Sora 等世界模型的驱动下日益完善。
真实物理环境:更大程度地介入真实物理环境,获取数据的成本预期将持续降低。
最后,在人类方面:
创造新业态:智能体与任何事物结合(Agent + 任何事物)可能会大幅改变现有产业结构。
创造新知识:智能体将帮助人类从提升效率演化到创造新知识,更多地在需要创造力的工作中发挥作用。
智能体是大模型解决更复杂问题的关键范式和抽象,目前,智能体急需全面向开放域拓展。在向开放域拓展的过程中,一个非常重要的原则是实现智能体、人类和环境之间的统一对齐。这一发展过程不仅令人充满期待,而且预示着一个充满潜力和机遇的未来。
AICon 全球人工智能开发与应用大会,为资深工程师、产品经理、数据分析师等专业人群搭建深度交流平台。聚焦大模型训练与推理、AI Agent、RAG 技术、多模态等前沿议题,汇聚 AI 和大模型超全落地场景与最佳实践,期望帮助与会者在大模型时代把握先机,实现技术与业务的双重飞跃。
在主题演讲环节,我们已经邀请到了「蔚来创始人 李斌」,分享基于蔚来汽车 10 年来创新创业过程中的思考和实践,聚焦 SmartEV 和 AI 结合的关键问题和解决之道。大会火热报名中,7 月 31 日前可以享受 9 折优惠,单张门票节省 480 元(原价 4800 元),详情可联系票务经理 13269078023 咨询。
今日荐文
微信扫码关注该文公众号作者