随着大规模语言模型(Large Language Model,LLM)的发展和应用,人工智能领域出现了一种新的研究方向,即基于LLM的自主智能体(LLM-based Autonomous Agent)。这种智能体利用LLM的强大的表示能力和生成能力,可以在多种任务和环境中表现出智能的行为,如对话、游戏、推理、规划、工具使用等。基于LLM的智能体面临着一些挑战和问题,如何有效地微调LLM以适应不同的任务和环境,如何设计和实现多种内在函数以实现复杂的智能体行为,如何评估和提升智能体的结构化推理能力等。为了解决这些问题,一些研究者提出了一些创新的方法和模型,如SwiftSage、ReAct、Least-to-Most、AgentTuning、FireAct等。
近日,来自华为诺亚方舟实验室、伦敦大学学院(UCL)、牛津大学等机构的研究者提出了盘古智能体框架(Pangu-Agent),这是一种通用的、可微调的、具有结构化推理能力的智能体模型,盘古智能体框架(Pangu-Agent)的论文题为《Pangu-Agent: A Fine-Tunable Generalist Agent with Structured Reasoning》。该模型在多个单智能体和多智能体的任务上,使用不同的通用语言模型和提示方法,对盘古智能体进行了广泛的评估,展示了其在结构化推理和微调方面的优势。本文的主要目的是从技术和应用的角度,对盘古智能体的五个创新点进行分析:
- 提出一个通用的强化学习目标,用于优化智能体的内在函数和外在函数,使得智能体能够在多种任务和环境中表现出灵活的推理和决策能力。
- 设计多种内在函数,如思考、规划、反思、交流和使用工具等,使得智能体能够根据自己的记忆状态和上下文信息,进行内部的变换和操作,以及与外部的工具和其他智能体进行交互。
- 实现多种复合方法,如SwiftSage、ReAct和Least-to-Most等,使得智能体能够在每个环境时间步骤中使用多个内在函数步骤来决定最终的动作,实现更复杂和更灵活的智能体行为。
- 探索多种微调方法,如监督微调和强化学习微调,使得智能体能够根据专家数据和环境反馈,调整通用语言模型的权重,以提高智能体的性能和适应能力。
- 在多个单智能体和多智能体的任务上,使用不同的通用语言模型和提示方法,对盘古智能体进行了广泛的评估,展示了其在结构化推理和微调方面的优势。
(图1)
图1:带有RL的盘古特工管道的图片描述。从系统提示开始©10 Creative 2023|机密|10creative.co.uk和初始状态,我们的代理人在环境中执行行动,并观察下一个状态和奖励。生成的轨迹可以用于微调LLM。
1.盘古智能体的通用强化学习目标
强化学习(Reinforcement Learning,RL)是一种让智能体在与环境交互的过程中,通过学习和优化自身的行为策略,以达到最大化累积奖励的目标的机器学习方法。强化学习的核心要素包括智能体、环境、动作、状态和奖励,其中奖励是指智能体在每个时间步骤中,根据其状态和动作,从环境中获得的反馈信号,用于评估和指导智能体的行为。
强化学习的奖励可以分为两种类型,即外在奖励(Extrinsic Reward)和内在奖励(Intrinsic Reward)。外在奖励是指由环境直接提供的奖励,通常与智能体的任务目标相关,如游戏得分、对话成功率等。内在奖励是指由智能体自身生成的奖励,通常与智能体的内部状态或动机相关,如好奇心、探索性、新颖性等。外在奖励和内在奖励的区别在于,外在奖励是由环境决定的,而内在奖励是由智能体决定的。
外在奖励和内在奖励各有优缺点。外在奖励的优点是可以直接反映智能体的任务性能,可以让智能体快速地适应特定的任务和环境。外在奖励的缺点是可能导致智能体过度依赖于环境的反馈,缺乏自主性和灵活性,也可能导致智能体陷入局部最优,忽略了更好的解决方案。内在奖励的优点是可以增强智能体的自主性和灵活性,可以让智能体在稀疏或延迟的外在奖励下,仍然能够进行有效的学习和探索。内在奖励的缺点是可能与外在奖励不一致,甚至相互冲突,也可能导致智能体过度追求内在奖励,忽略了任务目标。
(图2)
图2:三个内在函数的可视化显示了我们的公式在提高代理的模块性和灵活性方面的重要性。用户可以重新定义和配置固有功能,例如μ1(·)将LLM作为输入来产生想法,或者μ2(·)使用工具来帮助改进推理。我们还支持嵌套这些内在函数,为复杂且具有挑战性的决策任务构建更通用的模块。
盘古智能体的通用强化学习目标的创新点在于,它不仅考虑了智能体的任务目标,也考虑了智能体的内部动机,使得智能体能够在多种任务和环境中表现出灵活的推理和决策能力。该目标的优势在于,它可以适应不同的任务和环境,可以通过调整外在奖励和内在奖励的权重系数,来平衡智能体的任务性能和探索性能,也可以通过设计和实现多种内在函数,来生成多样的内在奖励,从而提高智能体的自主性和灵活性。
2.盘古智能体的多种内在函数
内在函数(Intrinsic Function)是指智能体自身生成的一种函数,用于对智能体的状态和动作进行内部的变换和操作,以实现复杂的智能体行为。内在函数的作用是增强智能体的自主性和灵活性,使得智能体能够根据自己的记忆状态和上下文信息,进行内部的推理和决策,以及与外部的工具和其他智能体进行交互。内在函数的类型和数量可以根据不同的任务和环境进行设计和实现,常见的内在函数有思考、规划、反思、交流和使用工具等。
思考(Think):智能体根据自己的记忆状态和上下文信息,生成一个与当前状态或动作相关的文本,用于表达或理解智能体的意图或目标。思考的作用是提高智能体的表达能力和理解能力,使得智能体能够更好地与环境和其他智能体进行交流和协作。思考的实现方法是使用通用语言模型,根据给定的前缀或后缀,生成一个合适的文本。例如,智能体在玩一个迷宫游戏时,可以使用思考函数,生成一个与当前位置或方向相关的文本,如“我在左上角的房间里,我要往右走”。
规划(Plan):智能体根据自己的记忆状态和上下文信息,生成一个与当前状态或动作相关的序列,用于描述或执行智能体的策略或过程。规划的作用是提高智能体的决策能力和执行能力,使得智能体能够更好地完成复杂的任务和目标。规划的实现方法是使用通用语言模型,根据给定的前缀或后缀,生成一个合适的序列。例如,智能体在玩一个拼图游戏时,可以使用规划函数,生成一个与当前拼图或目标拼图相关的序列,如“先把左上角的四块拼好,再把右下角的四块拼好,最后把中间的四块拼好”。
反思(Reflect):智能体根据自己的记忆状态和上下文信息,生成一个与当前状态或动作相关的评价,用于评估或改进智能体的性能或效果。反思的作用是提高智能体的评估能力和改进能力,使得智能体能够更好地学习和优化自己的行为。反思的实现方法是使用通用语言模型,根据给定的前缀或后缀,生成一个合适的评价。例如,智能体在玩一个数独游戏时,可以使用反思函数,生成一个与当前数独或解法相关的评价,如“这个数独很难,我用了很长时间才解出来,我应该多练习一些简单的数独”。
交流(Communicate):智能体根据自己的记忆状态和上下文信息,生成一个与当前状态或动作相关的消息,用于与其他智能体进行信息的交换或协调。交流的作用是提高智能体的交流能力和协作能力,使得智能体能够更好地与其他智能体进行合作和竞争。交流的实现方法是使用通用语言模型,根据给定的前缀或后缀,生成一个合适的消息。例如,智能体在玩一个团队对抗游戏时,可以使用交流函数,生成一个与当前状态或动作相关的消息,如“我在敌方的基地附近,我需要支援”。
使用工具(Use Tool):智能体根据自己的记忆状态和上下文信息,生成一个与当前状态或动作相关的命令,用于与外部的工具进行交互或操作。使用工具的作用是提高智能体的交互能力和操作能力,使得智能体能够更好地利用外部的资源和工具。使用工具的实现方法是使用通用语言模型,根据给定的前缀或后缀,生成一个合适的命令。例如,智能体在玩一个编程游戏时,可以使用使用工具函数,生成一个与当前状态或动作相关的命令,如“用Python写一个函数,实现两个数的加法”。
盘古智能体的多种内在函数不仅设计了多种内在函数,也实现了多种内在函数,使得智能体能够根据自己的记忆状态和上下文信息,进行内部的变换和操作,以及与外部的工具和其他智能体进行交互。该创新点的优势在于,它可以提高智能体的自主性和灵活性,使得智能体能够在多种任务和环境中表现出复杂的智能体行为,也可以通过组合和嵌套多种内在函数,实现更高层次的智能体行为。
3.盘古智能体的多种复合方法
复合方法(Composite Method)是智能体在每个环境时间步骤中,使用多个内在函数步骤来决定最终的动作的一种方法。复合方法的作用是提高智能体的复杂性和灵活性,使得智能体能够根据不同的任务和环境,选择和组合不同的内在函数,实现更复杂和更灵活的智能体行为。复合方法的类型和数量可以根据不同的任务和环境进行设计和实现,常见的复合方法有SwiftSage、ReAct和Least-to-Most等。
SwiftSage(Swiftly Switching between Sage and Agent):智能体在每个环境时间步骤中,根据自己的记忆状态和上下文信息,以及环境的反馈,动态地选择是使用内在函数(Sage模式),还是直接使用通用语言模型生成动作(Agent模式)。SwiftSage的作用是提高智能体的适应能力和效率,使得智能体能够在不同的任务和环境中,灵活地切换不同的模式,实现最优的智能体行为。SwiftSage的实现方法是使用一个二元分类器,根据给定的记忆状态和上下文信息,以及环境的反馈,预测是使用Sage模式,还是使用Agent模式。例如,智能体在玩一个猜谜游戏时,可以使用SwiftSage,根据自己的记忆状态和上下文信息,以及环境的反馈,动态地选择是使用思考函数,还是直接使用通用语言模型生成猜测。
ReAct(Recurrent Action Composition):智能体在每个环境时间步骤中,使用一个循环神经网络(Recurrent Neural Network,RNN),根据自己的记忆状态和上下文信息,以及环境的反馈,生成一个由多个内在函数步骤组成的动作序列。ReAct的作用是提高智能体的复杂性和灵活性,使得智能体能够在不同的任务和环境中,生成和执行多个内在函数步骤,实现更复杂和更灵活的智能体行为。ReAct的实现方法是使用一个RNN,根据给定的记忆状态和上下文信息,以及环境的反馈,生成一个由多个内在函数步骤组成的动作序列。例如,智能体在玩一个数学游戏时,可以使用ReAct,根据自己的记忆状态和上下文信息,以及环境的反馈,生成一个由多个内在函数步骤组成的动作序列,如“使用工具函数,打开计算器;使用规划函数,生成一个数学公式;使用思考函数,解释公式的含义;使用使用工具函数,输入公式并计算结果”。
Least-to-Most(Least-to-Most Action Composition):智能体在每个环境时间步骤中,使用一个排序网络(Ranking Network),根据自己的记忆状态和上下文信息,以及环境的反馈,对所有可能的内在函数步骤进行排序,从而生成一个由多个内在函数步骤组成的动作序列。Least-to-Most的作用是提高智能体的稳定性和可解释性,使得智能体能够在不同的任务和环境中,生成和执行最合适的内在函数步骤,实现最优的智能体行为。Least-to-Most的实现方法是使用一个排序网络,根据给定的记忆状态和上下文信息,以及环境的反馈,对所有可能的内在函数步骤进行排序,从而生成一个由多个内在函数步骤组成的动作序列。例如,智能体在玩一个写作游戏时,可以使用Least-to-Most,根据自己的记忆状态和上下文信息,以及环境的反馈,对所有可能的内在函数步骤进行排序,从而生成一个由多个内在函数步骤组成的动作序列,如“使用规划函数,生成一个写作大纲;使用思考函数,生成一个写作主题;使用反思函数,生成一个写作评价;使用交流函数,与其他智能体分享写作结果”。
智能体可以用多个内在函数步骤来决定自己的动作,也可以用多种复合方法来生成和执行这些步骤。这样,智能体就可以根据不同的环境,灵活地选择和组合内在函数,表现出更复杂的行为。这个创新点的好处是,智能体可以变得更复杂和更灵活,可以适应不同的任务和环境,也可以用不同的复合方法,展示出不同的行为模式,比如动态切换、循环生成、排序选择等。
4.盘古智能体的多种微调方法
微调(Fine-Tuning)是智能体根据专家数据或环境反馈,调整通用语言模型的权重,以提高智能体的性能和适应能力的一种方法。微调的作用是提高智能体的学习能力和泛化能力,使得智能体能够在不同的任务和环境中,利用通用语言模型的强大的表示能力和生成能力,实现最优的智能体行为。微调的类型和数量可以根据不同的任务和环境进行设计和实现,常见的微调方法有监督微调(Supervised Fine-Tuning)和强化学习微调(Reinforcement Learning Fine-Tuning)等。
监督微调(Supervised Fine-Tuning):智能体根据专家数据,调整通用语言模型的权重,以提高智能体的性能和适应能力的一种方法。专家数据是指由人类或其他智能体提供的一种数据,用于指导或教导智能体的行为。监督微调的作用是提高智能体的准确性和效率,使得智能体能够在不同的任务和环境中,快速地学习和模仿专家的行为。监督微调的实现方法是使用一个监督学习的损失函数,根据给定的专家数据,计算智能体的行为和专家的行为之间的差异,从而调整通用语言模型的权重。例如,智能体在玩一个象棋游戏时,可以使用监督微调,根据给定的专家数据,调整通用语言模型的权重,以提高智能体的象棋水平。
强化学习微调(Reinforcement Learning Fine-Tuning):智能体根据环境反馈,调整通用语言模型的权重,以提高智能体的性能和适应能力的一种方法。环境反馈是指由环境直接提供的一种反馈信号,用于评估或指导智能体的行为。强化学习微调的作用是提高智能体的探索性和适应性,使得智能体能够在不同的任务和环境中,自主地学习和优化自己的行为。强化学习微调的实现方法是使用一个强化学习的损失函数,根据给定的环境反馈,计算智能体的行为和环境的奖励之间的关系,从而调整通用语言模型的权重。例如,智能体在玩一个赛车游戏时,可以使用强化学习微调,根据给定的环境反馈,调整通用语言模型的权重,以提高智能体的赛车技巧。
盘古智能体的微调方法很有创意,它们不但用了通用语言模型的强大功能,还用了专家的数据和环境的反馈,让智能体可以根据不同的情况,调节通用语言模型的效果,让智能体的表现更好。这个创新点的好处是,智能体可以学得更好,适应更多的情况,做出最好的行为,还可以用不同的微调方法,学习不同的方式,比如监督学习、强化学习等。
5.盘古智能体的广泛评估
智能体在多个单智能体和多智能体的任务上,使用不同的通用语言模型和提示方法,对自己的性能和效果进行评估和比较的一种方法。广泛评估的作用是提高智能体的可信度和可靠性,使得智能体能够在不同的任务和环境中,展示出自己的优势和不足,以及与其他智能体的差异和相似性。广泛评估的类型和数量可以根据不同的任务和环境进行设计和实现,常见的评估指标有准确率、效率、稳定性、灵活性、可解释性等。
在单智能体的任务上,盘古智能体使用了不同的通用语言模型和提示方法,对自己的性能和效果进行了评估和比较。单智能体的任务是指智能体只需要与环境交互,不需要与其他智能体交互的一种任务,如对话、推理、规划、工具使用等。通用语言模型是指能够在大规模的文本数据上进行预训练,具有强大的表示能力和生成能力的一种语言模型,如GPT-3、Pangu、Megatron等。提示方法是指能够根据不同的任务和环境,为通用语言模型提供合适的输入和输出格式的一种方法,如前缀、后缀、模板等。盘古智能体的评估结果表明,盘古智能体在单智能体的任务上,具有较高的准确率、效率、稳定性、灵活性和可解释性,且能够根据不同的通用语言模型和提示方法,进行有效的微调和适应,以提高自己的性能和效果。
在多智能体的任务上,盘古智能体使用了不同的通用语言模型和提示方法,对自己的性能和效果进行了评估和比较。多智能体的任务是指智能体需要与环境和其他智能体交互,需要进行信息的交换或协调的一种任务,如游戏、协作、竞争等。通用语言模型和提示方法的定义与单智能体的任务相同。盘古智能体的评估结果表明,盘古智能体在多智能体的任务上,具有较高的准确率、效率、稳定性、灵活性和可解释性,且能够根据不同的通用语言模型和提示方法,进行有效的微调和适应,以提高自己的性能和效果。此外,盘古智能体还能够与其他基于LLM的智能体进行有效的交流和协作,展示出自己的结构化推理能力。
盘古智能体的评估很全面,它在很多任务上,用了不同的语言模型和提示方法,展示了自己的表现。这样智能体就可以在不同的情况下,看到自己的优点和缺点,以及和其他智能体的不同和相同。这个创新点的好处是,智能体可以变得更可信和更可靠,可以在不同的情况下,做出最好的行为,还可以用不同的语言模型和提示方法,展示出不同的行为模式,比如对话、推理、规划、工具使用、游戏、协作、竞争等。
参考资料:https://arxiv.org/abs/2312.14878