AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


MemoryScope:为LLM提供强大且灵活的长期记忆能力
发布日期:2024-10-23 07:49:13 浏览次数: 1680 来源:小兵的AI视界


在人工智能领域,聊天机器人的智能化程度一直是衡量其性能的重要指标。随着技术的发展,用户对聊天机器人的期望也在不断提高。他们不再满足于简单的问答式交互,而是希望机器人能够记住他们的习惯、偏好,甚至情感状态,从而提供更加个性化和连贯的交互体验。MemoryScope正是为了满足这一需求而设计的长期记忆系统,它为大型语言模型(LLM)聊天机器人提供了记忆能力,使其能够记住用户的信息,从而提供更加贴心的服务。


一、MemoryScope是什么?


MemoryScope可以为LLM聊天机器人提供强大且灵活的长期记忆能力,并提供了构建长期记忆能力的框架。MemoryScope可以用于个人助理、情感陪伴等记忆场景,通过长期记忆能力来不断学习,记得用户的基础信息以及各种习惯和喜好,使得用户在使用LLM时逐渐感受到一种默契

二、MemoryScope的核心框架与功能

1. 记忆数据库
MemoryScope配备了向量数据库(默认是ElasticSearch),用于存储系统中记录的所有记忆片段。这个数据库就像是一个巨大的知识宝库,将用户与聊天机器人交互过程中的各种信息进行分类存储。无论是用户的基本信息、对话内容,还是从对话中提取的关键要点,都能被准确地记录下来。


例如,当用户与聊天机器人讨论电影时,关于用户喜欢的电影类型、看过的电影名称以及对电影的评价等信息,都会被存储在这个数据库中,为后续的记忆检索和利用提供数据支持。


2. 核心worker

MemoryScope将长期记忆的能力原子化,抽象成单独的worker,包括query信息过滤、observation抽取、insight更新等20 + worker。这些worker各自承担着不同的任务,协同工作,共同构建起了聊天机器人的长期记忆能力。


  • query信息过滤:它就像一个精准的筛选器,从用户的查询中过滤出关键信息,以便更好地理解用户的需求。例如,当用户询问我上次提到的那部电影叫什么名字?时,query信息过滤worker会提取出上次提到的电影这个关键信息。


  • observation抽取:这个worker如同一个敏锐的观察者,从大量的对话内容中抽取有价值的观察结果。比如,从用户对不同电影的评价中,抽取用户对电影的偏好特征。


  • insight更新:它负责不断更新和优化聊天机器人对用户的理解和洞察。通过对用户行为和偏好的持续学习,更新聊天机器人对用户的认知,从而提供更加个性化的服务。


3. 核心Operation

MemoryScopeworkers组织为工作流(workflow),构建了处理记忆的完善Operation库,实现了记忆检索、记忆巩固等核心能力。


  • 记忆检索:当用户输入对话时,记忆检索操作会迅速从记忆数据库中返回语义相关的记忆片段。如果输入对话包含对时间的指涉,它还会同时返回相应时间中的记忆片段。这就像是在知识宝库中快速准确地找到用户所需的信息。例如,用户询问我上周提到的旅游计划是什么?,记忆检索会根据时间线索,找出上周关于旅游计划的记忆片段并返回给聊天机器人。


  • 记忆巩固:此操作会接收一批用户的输入对话,并从这些对话中提取重要的用户信息,将其以observation形式的记忆片段存储在记忆数据库中。它就像一个细心的记录员,不断丰富和完善记忆数据库。例如,用户在一次对话中提到了自己的新兴趣爱好,记忆巩固会将这个信息存储起来,以便聊天机器人在未来的交流中能够利用。


  • 反思与再巩固:每隔一段时间,该操作会对新记录的observations进行反思,以形成和更新insight形式的记忆片段。然后执行记忆再巩固,以确保记忆片段之间的矛盾和重复得到妥善处理。这就像是对记忆进行一次深度整理和优化,使聊天机器人的记忆更加准确和清晰。


4. 最佳实践

MemoryScope在构建了长期记忆核心能力的基础上,实现了带长期记忆的对话接口(API)和带长期记忆的命令行对话实践(CLI)。它还结合了目前流行的Agent框架(AutoGenAgentScope),为开发者和用户提供了更加便捷和高效的使用方式。


  • 通过对话接口(API,开发者可以将MemoryScope集成到各种应用程序中,让聊天机器人在不同的场景中为用户提供服务。例如,在智能客服应用中,聊天机器人可以通过MemoryScope记住用户的问题历史和解决方案,从而更快速地回答用户的问题。


  • 命令行对话实践(CLI则为用户提供了一种直接在命令行中与聊天机器人交互的方式,方便用户进行测试和探索。


三、MemoryScope的主要特点


1. 极低的线上时延(RT
MemoryScope的后端操作(记忆巩固、反思和再巩固)与前端操作(记忆检索)相互独立。后端操作通常通过队列或固定间隔执行,这使得用户在与聊天机器人交互时,时延仅约500毫秒。用户几乎感觉不到延迟,能够享受到流畅的对话体验。


2. 记忆存储的层次结构和内容的连贯一致性
记忆片段采用分层结构,汇总observations生成insights。这种分层结构有助于更好地组织和管理记忆信息,使聊天机器人能够更快速地理解和利用记忆。同时,定期处理矛盾和重复的内容,过滤虚构内容,避免聊天机器人产生幻觉,保证了记忆内容的准确性和可靠性。


3. 时间敏感性
记忆检索和巩固具备时间敏感性。当用户的输入对话涉及时间指涉时,MemoryScope能够准确地检索到相应时间的记忆片段。这使得聊天机器人能够更好地理解用户在不同时间的需求和偏好,提供更加个性化的服务。


4. 支持的模型API
MemoryScope支持多种模型接口,包括openai_backendgpt - 4o等和dashscope_backendqwen - max等。这为开发者提供了更多的选择,使其能够根据不同的需求和场景选择合适的模型。未来,MemoryScope还将支持更多本地部署的LLMemb服务,进一步拓展其应用范围。


四、MemoryScope的应用场景


1. 客服咨询

在客服场景中,聊天机器人可以通过MemoryScope记住用户的问题历史、产品使用情况等信息。当用户再次咨询时,聊天机器人能够快速准确地回答问题,提高客服效率和用户满意度。例如,用户在咨询产品故障时,聊天机器人可以根据之前记录的用户使用习惯和故障情况,提供更有针对性的解决方案。


2. 私人助理

作为私人助理,MemoryScope可以帮助聊天机器人记住用户的日程安排、重要事项、偏好等信息。聊天机器人可以根据这些记忆为用户提供个性化的提醒、建议和服务。比如,根据用户的日程安排,提醒用户参加会议、准备文件等,并根据用户的偏好推荐餐厅、活动等。


3. 虚拟陪伴

在虚拟陪伴场景中,聊天机器人可以通过MemoryScope了解用户的情感需求、兴趣爱好等。它可以根据用户的记忆与用户进行更深入、更贴心的交流,为用户提供情感支持和陪伴。例如,当用户情绪低落时,聊天机器人可以根据之前的交流记忆,给予安慰和鼓励。


五、MemoryScope体验实践


1安装MemoryScope


1克隆仓库并编辑配置
# 克隆项目git clone https://github.com/modelscope/memoryscopecd memoryscope# 编辑配置,例如添加 API 密钥vim memoryscope/core/config/demo_config_zh.yaml
2构建 Docker 镜像
sudo docker build --network=host -t memoryscope .
3启动 Docker 容器 (备注:ARM架构暂不支持)
sudo docker run -it --rm --net=host memoryscope
其他更多安装方式请参考:https://github.com/modelscope/MemoryScope/blob/main/docs/installation_zh.md


2初始化MemoryScope 实例


首先,我们需要指定一个配置并初始化一个 MemoryScope 实例。
from memoryscope import MemoryScope, Argumentsarguments = Arguments(language="cn",human_name="用户",assistant_name="AI",memory_chat_class="api_memory_chat",generation_backend="dashscope_generation",generation_model="qwen-max",embedding_backend="dashscope_embedding",embedding_model="text-embedding-v2",rank_backend="dashscope_rank",rank_model="gte-rerank",enable_ranker=True)ms = MemoryScope(arguments=arguments)

3不含记忆聊天


MemoryScope 配有默认的 chat 接口,因此开始聊天非常容易,就像使用任何大型语言模型聊天机器人一样。

memory_chat = ms.default_memory_chatmemory_chat.run_service_operation("delete_all")response = memory_chat.chat_with_memory(query="我的爱好是弹琴。")print("回答1:\n" + response.message.content)
输出:
```
回答1:
很高兴了解到您的爱好是弹琴,这是一种既能陶冶情操又能提升音乐技能的美妙艺术形式。无论是古典钢琴、爵士乐还是现代流行曲目,每一种风格都能带来不同的享受和挑战。希望您在弹琴的过程中能够持续发现乐趣,创造出更多动人的旋律。
```

你可以选择进行含有或不含有多轮对话上下文的聊天。然而,由于尚未调用记忆巩固功能,系统中还没有任何记忆片段。

response = memory_chat.chat_with_memory(query="你知道我有什么乐器爱好吗?")print("回答2:\n" + response.message.content)response = memory_chat.chat_with_memory(query="你知道我有什么乐器爱好吗?",history_message_strategy=None)print("回答3:\n" + response.message.content)
输出:
``
回答2:
是的,您提到过您的爱好是弹琴,所以我认为您对键盘乐器,特别是钢琴有一定的爱好。
回答3:
作为基于当前对话的MemoryScope智能助理,我没有之前关于您乐器爱好的信息。请告诉我,您喜欢哪种乐器?这样我就可以记住并提供相关帮助了。
```

4记忆巩固对话

现在,我们再聊多几句,然后尝试记忆巩固功能。

response = memory_chat.chat_with_memory(query="我在阿里巴巴干活")print("回答4:\n" + response.message.content)response = memory_chat.chat_with_memory(query="今天下午吃什么水果好?")print("回答5:\n" + response.message.content)response = memory_chat.chat_with_memory(query="我喜欢吃西瓜。")print("回答6:\n" + response.message.content)response = memory_chat.chat_with_memory(query="帮我写一句给朋友的生日祝福语,简短一点。")print("回答7:\n" + response.message.content)
输出
```
回答4


了解,您在阿里巴巴工作。阿里巴巴集团是一家总部位于中国杭州的全球领先的电子商务和科技公司,以其电子商务平台如淘宝、天猫闻名,同时在云计算、数字媒体及娱乐、金融科技等领域也有广泛布局。如果您有关于工作、技术或公司文化方面的问题,欢迎随时询问。


回答5


选择水果可以根据个人口味、营养需求以及季节来决定。夏天,一些清爽解暑的水果会是不错的选择,比如西瓜、哈密瓜、葡萄、桃子或者李子,它们都含有丰富的水分和维生素,有助于消暑降温。如果您想要补充纤维素,火龙果或者猕猴桃也是很好的选择。最终,选择哪种水果,还是要看您自己的喜好和身体状况。


回答6


西瓜是夏季的理想选择,它不仅清凉解渴,还含有大量的水分和电解质,可以帮助身体补充流失的水分。西瓜还富含维生素CA和抗氧化剂,如番茄红素,对皮肤健康和心血管系统都有益处。享用美味的西瓜时,记得切块后冷藏一下,口感会更加清爽哦!


回答7


"生日快乐,愿你的每一天都如蛋糕般甜蜜,笑容比烛光更灿烂!


```

结语

MemoryScope作为一项为聊天机器人赋予强大长期记忆能力的技术,具有重要的意义和价值。它通过创新的核心框架和功能,为用户提供了更加智能、个性化的服务。在未来,我们期待看到MemoryScope在更多领域的应用和发展,为人工智能与人类的交互带来更多的便利和创新。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询