导言:迈向通用人工智能的探索
近年来,人工智能领域一直在探索通往通用人工智能(AGI)的道路。其中一个重要的方向是开发“语言智能体”。这些智能体是基于大型语言模型(LLM)的复杂管道,结合了提示技术和工具使用方法。虽然语言智能体在许多现实任务中展现出了令人印象深刻的能力,但目前的研究存在一个根本性的局限性:它们以模型为中心,或者说是以工程为中心。这意味着,语言智能体的提示、工具和管道的改进需要人类专家的大量手动工程工作,而不是自动地从数据中学习。
工程中心化语言智能体的局限性
当前语言智能体开发的一个主要瓶颈是构建和定制特定任务的语言智能体系统所需的大量工程工作。具体来说,研究人员和开发人员必须手动将复杂的任务分解成更易于LLM处理的子任务(我们称之为节点),然后为特定节点精心设计提示和工具,包括API函数、知识库、记忆等等。这一过程的复杂性使得当前的语言智能体研究领域以模型为中心,或者说是以工程为中心。这意味着研究人员几乎不可能像以数据为中心的方式训练神经网络那样,在数据集上手动调整或优化语言智能体。这限制了手动编码的语言智能体的鲁棒性和通用性,并且需要大量的工程工作来使语言智能体适应新的任务或数据分布。
我们认为,从以工程为中心的语言智能体开发过渡到以数据为中心的学习是语言智能体研究的重要一步。
智能体符号学习:模拟神经网络的训练过程
为了解决上述问题,本文介绍了一种用于训练语言智能体的智能体符号学习框架。该框架的灵感来自于用于训练神经网络的连接主义学习过程。具体来说,我们将语言智能体与神经网络进行了类比:
- 智能体管道 类似于神经网络中的计算图,表示层及其连接的结构。
- 节点 类似于神经网络中的层,是智能体管道中的一个单独步骤。
- 提示和工具 类似于神经网络中的权重,用于在节点中处理输入数据。
- 轨迹 类似于神经网络中的计算图,存储前向传递过程中的所有信息,包括每个节点的输入、输出、提示和工具使用情况,并负责梯度反向传播。
- 语言损失 类似于神经网络中的损失函数,用于衡量预期结果与实际结果之间的差异,但以文本形式表示。
- 语言梯度 类似于连接主义学习中的梯度,是用于更新智能体中每个组件的文本分析和反思。
通过这种方式,我们能够在智能体训练的背景下,使用基于语言的损失、梯度和权重来实现连接主义学习的主要组成部分,即反向传播和基于梯度的权重更新。
智能体符号学习框架的工作流程
智能体符号学习框架的工作流程如下:
- 前向传递: 与标准的智能体执行过程几乎相同,不同之处在于将每个节点的输入、提示、工具使用情况和输出存储到轨迹中,用于语言梯度反向传播。
- 语言损失计算: 使用精心设计的提示模板,将轨迹输入到LLM中,计算训练样本的语言损失。 $L_{lang} = LLM(P_{loss}(τ ))$ 其中,$L_{lang}$ 表示语言损失,$LLM$ 表示大型语言模型,$P_{loss}$ 表示用于计算语言损失的提示模板,$τ$ 表示轨迹。
- 语言梯度的反向传播: 从最后一个节点迭代到第一个节点,并使用精心设计的提示,使用LLM为每个节点计算梯度。 $∇{n}^{lang} = LLM(P{gradient}(∇{n+1}^{lang} , I_n, O_n,P_n, T_n,L{lang}))$ 其中,$∇{n}^{lang}$ 表示第 n 个节点的语言梯度,$P{gradient}$ 表示用于生成语言梯度的提示模板,$I_n$、$O_n$、$P_n$、$T_n$ 分别表示第 n 个节点的输入、输出、提示和工具。
- 基于语言梯度的更新: 使用“符号优化器”更新每个节点中的提示和工具,并优化整体智能体管道。符号优化器是精心设计的提示管道,可以优化智能体的符号权重。
智能体符号学习的优势
与现有的单独优化单个提示或工具的方法相比,智能体符号学习框架联合优化了智能体系统中的所有符号组件,包括提示、工具以及将它们堆叠到智能体系统中的管道。这种自上而下的优化方案还使智能体符号学习框架能够“整体地”优化智能体系统,避免了每个分离组件的局部最优。这使得针对复杂现实问题的语言智能体能够有效地从数据中学习,为将当前的语言智能体研究状态从以工程为中心转变为以数据为中心开辟了可能性。
此外,由于基于语言的损失函数在生成语言损失时不需要ground-truth,因此我们的框架使语言智能体能够从经验中学习,并在创建和部署到实际环境中后,刻意更新其所有符号组件,从而实现“自我进化智能体”。
实验结果和分析
我们在标准的LLM基准测试和更复杂的智能体任务(如创意写作和软件开发)上进行了一系列实验。结果表明,所提出的智能体符号学习框架在优化和设计提示和工具,以及通过学习训练数据来更新整体智能体管道方面是有效的。
结论:迈向数据中心化智能体研究的一步
本文介绍了智能体符号学习,这是一个用于智能体学习的框架,可以联合优化智能体系统中的所有符号组件。智能体符号学习框架从标准的连接主义学习过程中汲取灵感,进行符号学习。它使用基于语言的损失、梯度和优化器,根据智能体系统的整体性能来优化提示、工具和智能体管道。所提出的框架是首次尝试优化能够使用复杂管道解决复杂现实问题的智能体。我们的框架使语言智能体能够“从数据中学习”,并在创建和部署到实际环境中后进行“自我进化”。我们进行了一些概念验证实验,结果表明,智能体符号学习框架可以有效地优化不同任务复杂度的智能体。我们相信,这种从以模型为中心到以数据为中心的智能体研究的转变是朝着通用人工智能迈出的有意义的一步,并将开源智能体符号学习框架的代码和提示,以加速这一转变。
参考文献
- [Radford et al., 2018] Improving Language Understanding by Generative Pre-Training.
- [Radford et al., 2019] Language Models are Unsupervised Multitask Learners.
- [Brown et al., 2020] Language Models are Few-Shot Learners.
- [Ouyang et al., 2022] Training language models to follow instructions with human feedback.
- [OpenAI, 2023] GPT-4 Technical Report.
- [Touvron et al., 2023a] Llama: Open and efficient foundation language models.
- [Touvron et al., 2023b] Lllama 2: Open foundation and fine-tuned chat models.
- [Vaswani et al., 2017] Attention is all you need.
- [Nye et al., 2022] Show your work: Scratchpad for intermediate computation with language models.
- [Wei et al., 2022] Chain of thought prompting elicits reasoning in large language models.
- [Yao et al., 2022] React: Synergizing reasoning and acting in language models.
- [Madaan et al., 2023] Self-refine: Iterative refinement with self-feedback.
- [Wang et al., 2023] Self-consistency improves chain of thought reasoning in language models.
- [Zhou et al., 2023a] Recurrent reasoning with natural language feedback for multi-step mathematical reasoning.
- [Schick et al., 2023] Toolformer: Language models can teach themselves to use tools.
- [Park et al., 2023] Generative agents: Interactive simulacra of human behavior.
- [Hong et al., 2023] MetaGPT: The first truly general-purpose autonomous agent.
- [Zhou et al., 2023b] Agents: An open-source framework for building language agents.
- [Chen et al., 2023b] AgentVerse: Facilitating multi-agent collaboration and competition in a single loop.
- [Xie et al., 2023] Openagents: An open platform for language agents in the wild.
- [Pryzant et al., 2020] Automatic prompt generation for self-supervised language modeling.
- [Yang et al., 2024] Large language models are human-level prompt engineers.
- [Prasad et al., 2023] Promptbreeder: Prompt learning with genetic algorithms.
- [Guo et al., 2024] Prompt tuning with evolutionary algorithms.
- [Zhang et al., 2024b] Agent-pro: Prompting large language models to learn policies via natural language interactions.
- [Zhang et al., 2024a] Agentoptimizer: Optimizing black-box functions with language model agents.
- [Sordoni et al., 2023] Learning to compose language models for generalization.
- [Khattab et al., 2023] DSpy: Towards debugging language model-driven agents via self-reflection.
- [Zhuge et al., 2024] GPTSwarm: Emergent optimization capabilities of large language models.
- [Chen et al., 2023a] Self-instruct: Aligning language model with self generated instructions.
- [Qiao et al., 2024] Instruction tuning with gpt-4.
- [Song et al., 2024] Instructiongpt: Exploring the limits of language models as general-purpose instruction followers.
- [Qian et al., 2024] ICE: Inter-task curriculum extraction for language agents.
- [Yao et al., 2023] Tree of thoughts: Deliberate problem-solving with large language models.
- [Hinton and Salakhutdinov, 2006] Reducing the dimensionality of data with neural networks.
- [Hinton, 1990] Connectionist learning procedures.
- [Paszke et al., 2019] PyTorch: An imperative style, high-performance deep learning library.
- [Abadi et al., 2016] TensorFlow: A system for large-scale machine learning.
- [Yang et al., 2018] HotpotQA: A dataset for diverse, explainable multi-hop question answering.
- [Hendrycks et al., 2021] Measuring mathematical problem solving with the MATH dataset.
- [Chen et al., 2021] Evaluating large language models trained on code.