随着大型语言模型(LLM)的发展,基于LLM的智能体(agents)通过自然语言提示执行任务的能力得到了显著提升,这减少了对显式重新训练或微调的需求。然而,当应用于开放式挑战(如诗歌创作)时,由于提供的 示例的全面性和智能体理解问题内容的能力的限制 ,现有方法在生成预期结果方面存在显著局限性。
为了解决这些问题,提出了 Memory Sharing (MS) 框架 ,旨在通过实时记忆存储和检索系统来增强LLM多智能体的上下文学习过程。
记忆共享( Memory Sharing )框架。每当生成一个新的(提示,回答)对时,它将被考虑加入到记忆池中,并用于训练检索器。
MS框架将智能体的输入和输出视为“提示-回答”(PA)对,这些对构成了智能体的记忆池。该框架的关键组成部分包括:
- 记忆生成(Memory Generation) :当智能体接收到查询时,检索器会根据策略(例如三拍学习)确定从记忆池中获取的记忆数量。这些记忆与原始查询结合形成增强提示,智能体根据这个提示生成回答,从而构成了一个新的记忆候选。
- 记忆写入(Memory Writing) :每个新生成的记忆候选都会经过评分机制的评估,以确定其是否适合加入记忆池。评分标准由LLM自动生成,并经过人工审核以确保一致性和适用性。
- 记忆检索(Memory Retrieval) :检索器使用新加入的记忆来持续更新自己,以便更好地适应新记忆。检索器通过评估记忆的相关性来构建提示,从而提高智能体对查询的理解。
一个例子说明了智能体(Sonnet)如何与MS框架协作。 (1) 检索器将智能体的原始查询作为输入,从记忆池中检索合适的记忆,并将它们与查询连接起来形成提示。(2) 智能体(Sonnet)接收提示并作出回答,将它们打包为(提示,回答)。(3) 评分器根据设计的评分标准为(提示,回答)生成一个分数,而得分高的(提示,回答)对将被添加到记忆池中,同时也会被发送去训练检索器。所有智能体共享同一个记忆池;它们可以向池中写入记忆,并从池中检索记忆,这样它们就可以相互共享记忆。
通过在三个不同领域的实验来验证MS框架的有效性:
文学创作 :智能体被分配生成不同类型的文学作品,如Wuyanlvshi、Limericks和Sonnets。使用来自其他智能体的记忆可以提高智能体在文学创作方面的性能。
非传统逻辑问题解决 :智能体被赋予解决横向思维谜题、谜语和双关语的任务。尽管ROUGE分数相对较低,但BERTScore的提高表明智能体能够从记忆中吸收多样化的知识,产生更加细致和语义一致的输出。
智能体在执行开放式查询时使用不同数量记忆的性能。每个领域都有其内部三个智能体共享的领域池。每个智能体中每个指标的最高分以粗体显示。
计划生成 :智能体负责创建学习计划、旅行计划和健身计划。实验发现,随着记忆池中新记忆的增加,智能体在计划生成方面的性能得到了提升。
使用三个合适的记忆和定期更新的领域池来评估智能体在处理开放式查询方面的性能
一个示例文本,展示了智能体如何回答一个开放式问题
Memory Sharing for Large Language Model based Agents
https://arxiv.org/pdf/2404.09982.pdf
https://github.com/GHupppp/MemorySharingLLM
推荐阅读
- • 对齐LLM偏好的直接偏好优化方法:DPO、IPO、KTO
- • 2024:ToB、Agent、多模态
- • TA们的RAG真正投产了吗?(上)
- • Agent到多模态Agent再到多模态Multi-Agents系统的发展与案例讲解(1.2万字,20+文献,27张图)
欢迎关注我的公众号“ PaperAgent ”, 每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。