“ ExpeL代理是一个自主学习的人工智能代理,可以从经验中学习,是实现人类智能代理的一步。”
01
—
之前的一篇文章介绍过一种称为ReAct的思想,它将推理(Reson)和行动(Acting)相结合,来处理多种语言推理和决策任务。
详见《REACT:在语言模型中协同推理与行动,使其能够解决各种语言推理和决策任务。》
今天向朋友们介绍一种更好的代理方案,该方案在ReAct基础上,增加了经验学习 Experiential Learning (ExpeL) 的过程,在推理和决策的评测集上获得了更好的效果。该方案来自于清华大学自动化系和计算机科学系Andrew Zhao、Daniel Huang,论文地址:
https://arxiv.org/abs/2308.10144
代理Agent是大模型人工智能兴起后,一个特定的词汇。指在特定环境中执行特定任务的系统。LLM 是代理的核心,它负责理解和生成语言。LLM 还可以与其他系统和资源进行交互,以完成任务。
浅显直白的理解,代理是一组提示词Prompt + 策略 + 大模型LLM + 其他系统和资源。
使用经验学习策略的代理自主地收集经验并使用自然语言从一系列训练任务中提取知识。
在推理过程中,代理回忆起其提取的见解和过去的经验,以做出明智的决策。
实证结果突出了ExpeL代理的强大学习效果,表明随着经验的积累,其性能不断提升。而且进一步通过定性观察和额外实验,探索了ExpeL代理的新兴能力和迁移学习潜力。
之前的研究表明,通过与大量环境交互或使用大量人工标注数据对LLM进行微调可以改进其性能,但这些方法计算成本高且需要访问LLM的参数权重。
另一方面,通过提示方法可以在只有少量上下文示例的情况下增强LLM的决策能力,但当前的LLM受到上下文窗口大小的限制,无法记住之前的信息。因此,我们需要在这些范式之间取得平衡。
ExpeL是一种自主学习代理,通过试错从一系列训练任务中收集经验,并从中得出自然语言见解。它的学习过程类似于学生为考试而学习并在一次尝试中参加考试。
与其他自我改进方法不同,ExpeL强调跨多个任务保留经验以提高代理性能的重要性。此外,ExpeL学习不需要参数更新,与强大的闭源模型兼容。
最后,经验收集步骤不需要大量数据或人工标签。
02
—
相关工作
在说明经验学习代理之前,有以下几个相关工作的要点需要加以说明。
基于提示学习 Prompt-based Learning是一种通过修改输入上下文来优化标签预测任务的方法,可以快速适应新任务并最小化数据需求。
该方法利用LLMs进行答案预测,无需参数调整。LAMA和GPT-3早期的工作也使用和推广了这种方法。
自动推理链和ExpeL代理也可以自主学习和修改执行提示。
检索增强生成 Retrieval Augmented Generation,RAG技术可以让LLM访问数据库,减少幻觉。与此不同的是,我们的研究专注于检索LLM自己生成的经验,减少对典型样本或特定领域语料库的依赖。
LLM代理在机器人、自然科学和工作流程等领域的应用越来越受重视,特别是在少样本设置下的世界知识应用方面。此外,LLM在各种环境和推理任务中展示了有前景的零/少样本规划和推理能力。
ExpeL代理结合了反馈改进和跨任务记忆的优点,专注于任务解决并从内部生成的例子和记忆中抽象出洞见。其他代理在多代理环境中表现出持久记忆的潜力。
马尔可夫决策过程(Markov Decision Proces,MDP)是一个包含状态空间S、动作空间A、初始分布ρ0、转移动力学p(s′|s, a)、奖励函数r(s, a)和折扣因子γ的元组。目标是找到一个策略π(a|s),最大化平均折扣奖励和PHE[ i r(si, ai)],其中H是时间限制。
在后续的工作中,研究简化了设置,包括有限时间限制、确定性转移函数、确定性初始状态、目标达成奖励函数r ∈{0, 1}和γ= 1。
最近的生成式语言模型的进展表明,调整提示可能比改变模型参数更有益。这种策略确保了LLM的内在常识知识保持完整,从而实现更好的泛化。此外,一些最强大的语言模型是专有的,因此专注于基于提示的方法似乎特别有前途。此外,自主学习也是一个相对较少探索的领域。
设计一个LLM代理,它可以自主地收集经验并提取跨任务的见解和类似任务的记忆,以帮助其决策。这类似于学生通过多次练习来获得考试见解的过程,然后在考试中依靠这些见解和类似问题的记忆来回答问题。
经验学习(ExpeL)代理,旨在增强规划LLM代理的学习能力,使其能够通过任务间的经验改进而无需进行参数更新。
在训练阶段,代理与环境进行交互,通过试错方式获取经验,并将这些经验存储在经验池中。代理随后从经验池中提取类似于离策略学习的见解。
在评估阶段,代理尝试未见过的任务,并借助从训练阶段中获取的经验池中的见解和成功轨迹进行增强。
下图为经验学习代理框架的详细信息。
左图:ExpeL分为三个阶段:
(1)将成功和失败的经验收集到一个池中。
(2) 从这些经验中提取抽象跨任务知识。
(3)在评价任务中应用所获得的见解和对过去成功的回忆。
右图:经验收集过程,使任务在失败后进行自我反思。
(B)说明洞察力提取步骤。当出现成功/失败对或L个成功列表时,代理使用操作ADD、UP VOTE、DOWNVOTE和EDIT动态修改现有的洞察列表。
此过程的重点是提取流行的故障模式或最佳实践。
03
—
经验学习ExpeL
收集经验
为了收集多样化的经验,训练了一个能够不断重试任务的LLM。
LLM在每次尝试任务时会使用少量示例和基于当前轨迹的规划算法。如果LLM成功完成任务,它将继续下一个任务;如果失败,它将自我反思并在下一次重试时改进。
通过试错方式收集经验,可以提高评估时正面例子的数量,并收集有价值的成功/失败对进行洞察提取。
从经验中学习
人类学习主要通过将成功的轨迹存储在记忆中,以后可以作为具体的例子进行回忆,或者从经验中提取高层次的洞见,使其能够推广到新的情况。
ExPeL考虑了这两种学习模式来提高任务绩效。
具体来说,给定给LLM代理的指令可以分解为任务规范和少量示例。我们可以利用代理从过去的经验中提取的洞见来增强任务规范,其中可以利用遵循指令的LLM来紧密跟随。
对于少量示例,允许代理从其经验池中检索前k个相关示例来帮助其决策。
经验回忆和洞见提取机制
使用与任务相似的语境示例可以提高任务表现。人类在面对新情境时,也会从记忆中回忆起类似的任务作为参考。因此,提出了经验回忆的方法,根据任务相似性从训练中收集的经验池中检索成功的轨迹。
本文使用Faiss vectorstore作为经验池,使用kNNretriever和all-mpnet-base-v2 embedder获取与评估任务具有最大内积任务相似度的前k个成功轨迹。
使用任务相似度作为检索排名的优点是,如果代理重复任何任务或执行与经验池中现有成功轨迹相似的任务,则代理只需要密切模仿成功轨迹,并减轻能力外推的负担。
学习成功和失败的经验,通过对经验进行分析,可以让代理比较失败和成功的轨迹,找出不足之处,并找出成功轨迹中的共同模式。这样可以帮助代理在评估任务中取得成功。
实施过程中,给予代理指令,让其按照LLM的几个操作对现有的洞见集合进行处理。
首先将洞见集合初始化为空集,并通过从经验池中无重复抽样生成失败/成功对或L个成功的列表来迭代地提供给LLM。
LLM可以执行的操作包括ADD(添加新的洞见)、DOWNVOTE(对现有洞见进行反对投票)、UPVOTE(赞同现有洞见)或EDIT(编辑现有洞见的内容)。
新添加的洞见将与其关联的初始重要性计数为2,并且如果随后应用UPVOTE或EDIT操作,则计数将增加,而应用DOWNVOTE操作则会减少计数。
如果洞见的重要性计数达到零,将被移除。这种设计选择使该过程更加健壮,因为即使成功的轨迹也可能是次优的,并且可能误导生成的洞见。
将成功列表的最大大小设置为L,并将gpt-4-0613作为默认的LLM。
经验发现,相比于gpt-3.5-turbo-0613,gpt-4-0613更擅长按照如何使用洞见提取操作的指令,并且产生的幻觉较少。最后,ExpeL在任务推断阶段利用这些生成的洞见。
代理收集经验并从中提取见解,然后建立成功轨迹的向量存储。然后对每个任务进行评估,将任务规范与提取的见解列表连接起来,并检索具有最高任务相似性的前k个轨迹作为少量的上下文示例。
这一步的示例提示词如下图所示。
白色背景的区域与基本ReAct代理的输入相同。ExpeL的不同之处在于(紫色区域)从过去的经验中获得额外的经验,并根据任务相似性动态地从过去的经验中重新体验成功的例子。
迁移学习
使用这种经验训练的代理可以完成相同任务集中未见过的任务,具有所谓人类的“举一反三”的能力。
从源任务分布中积累的知识可以对具有最少目标任务示例的ExPeL代理有用。
假设源任务和目标任务具有共同的知识。通过使用训练集中的经验进行学习,可以使LLM代理在解决相同任务分布中的未见过的任务时受益。
ExpeL框架的主要优势在于可解释性,提取的经验和成功轨迹以自然语言呈现,用户可以轻松检查、修改或删除潜在有害的轨迹/见解。
此外,学习方法易于使用,需要较少的数据,减少计算资源,易于实现。用户还可以无缝地向ExpeL代理添加专家见解或轨迹。
ExpeL是一种能够在任务之间进行学习的方法,不需要重试。它具有灵活性和持续改进的优势,并可以与其他方法结合使用。
而且我们可以通过少量微调示例在不同领域之间传递提取的见解。
04
—
评估
评估部分基于四个基准测试设计了实验,包括HotpotQA、ALF-World、WebShop和FEVER。
HotpotQA、ALF-World、WebShop 是大模型的评估老朋友了,常看文章的朋友可能熟悉这三个评测测试集。
FEVER 是事实验证 Fact Extraction and Verification 的缩写。它是一种自然语言处理任务,要求系统根据给定的事实提示和文本数据集,判断提示是否在文本数据集中得到支持。
FEVER 是一个挑战性的任务,因为它需要系统能够理解事实提示中的细微差别,并能够从文本数据集中提取相关信息。此外,FEVER 还需要系统能够处理事实提示和文本数据集中的事实冲突。
FEVER 任务可以用于评估系统的事实理解能力和事实推理能力。它还可以用于开发新的事实验证系统。
FEVER 任务的第一个公开数据集是在 2018 年发布的。该数据集包含了 100,000 个事实提示和 100,000 个文本段落。该数据集被广泛用于 FEVER 任务的研究。
评测实验使用两倍验证,并报告了平均值和标准误差。评估指标包括成功率、准确匹配率和平均奖励分数。所有代理都使用gpt-3.5-turbo-0613执行操作。
ExpeL在所有领域的表现始终优于基准,从而证明了,从经验中学习的重要性。
ExpeL与Reflexion代理进行了比较,发现在HotpotQA任务上,ExpeL的性能与Reflexion相当,而在ALFWorld任务上,ExpeL的性能甚至超过了Reflexion。
ExpeL代理通过积累任务经验来实现跨任务学习,而Reflexion代理通过反复执行任务来不断改进结果。然而,仍有改进的空间。
经过训练,LLM学会了重新评估整个轨迹并最终完成任务,而不是表达无能。
在HotpotQA中,LLM学会了考虑答案可能已经在过去的观察中,因此会根据过去的观察提出最有可能的答案,而不是以“未知”或“信息不可用”结束。
ExpeL代理通过经验和洞察力更新了其信念,从而提高了解决问题的效率。例如,在ALFWorld中,代理根据提取的洞察力改变了对平底锅位置的先验信念,从而在第一步找到了正确的物品。这种行为可以避免不必要的行动。
ReAct无法重新评估解决任务时的情况,而ExpeL则展示了其在识别和纠正错误方面的能力。
ExpeL展示了它的错误恢复能力,当错误地拿起一个物体时,它可以将其放回并搜索正确的物体,继续任务。
这表明ExpeL在完成任务时具有从错误中恢复并保持正确的能力。如果“尝试不推进任务”,则生成的洞察力“重新评估情况并考虑替代行动”可能会鼓励这种行为。
对迁移学习的评估
将从HotpotQA中提取的洞察力转化为FEVER上的能力的评估
以Act 和 ReAct为基准评估代理,当改变目标任务为FEVER时,ExpeL解决问题不需要HotpotQA中的示例,直接就迁移了在HotpotQA上学习的能力。
最后
ExpeL是一个自主学习的代理系统,其主要组成部分是代理能够自主收集有益的经验。
研究表明,有用的经验数量会影响ExpeL的性能。为了比较,设计了两个不同的代理,一个只有初始的少量示例,另一个使用ReAct收集经验。后者不仅会得到较少的成功轨迹,而且在学习过程中也没有成功/失败的比较对。
同时研究了ExpeL的洞察提取步骤的有效性,发现洞察对HotpotQA环境的影响最大。通过三个维度的实验,发现机器学习得到的洞察比手工制作的更优,同时使用反思可能会导致误导,而更好的LLM模型可以提高ExpeL的性能。
ExpeL是一种新型的学习LLMagent,可以自主从一组训练任务中收集经验,提高其在解决评估任务时的能力。与ReAct和Act代理相比,它表现出更好的学习能力。
在转移学习场景中,从一组源任务中提取见解可以有助于ExpeL代理解决目标任务,具有人类的“触类旁通”的能力。
参考资料
https://arxiv.org/abs/2308.10144
阅读推荐:
揭秘微信如何训练大模型:低调的WeLM|官网上次更新还是一年前
人工智能海洋中的塞壬之歌:大型语言模型LLM中的幻觉研究综述(一)
你好,我是百川大模型|国内可开源免费商用Baichuan2揭秘
什么是AI的“智能涌现”,以及为什么理解它对创业者、从业者、普通人都价值巨大
全球最大开源翻译模型!Meta出品,支持100种语音、语言!
提示攻击再次攻击大模型,被催眠后的ChatGPT可能会泄露重要信息-大模型的隐藏风险
REACT:在语言模型中协同推理与行动,使其能够解决各种语言推理和决策任务。