MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。转载自 | AI前线整理 | Tina最近,拿到 OpenAI 370 万美元投资的一款 AI 聊天应用在 App Store 上线了。国内外 AI 聊天工具层出不穷、屡见不鲜,为什么这款应用却能受到 OpenAI 的青睐呢?这款名为 Dot 的应用 ,由总部位于旧金山的创业公司 New Computer 打造,由前苹果设计团队的成员 Jason Yuan 设计,编码工作则由 Sam Whitmore 等一小拨人完成。这个应用的名字就像乔布斯的名言一样“connecting the dots”,将生活里的点点滴滴,以某种方式联系起来。它最与众不同的是具有长记忆挖掘能力。人类的记忆有限,但是 Dot 拥有超长的记忆能力,你可以随时 cue 它回答关于你的任何回忆,你发送的文字、语音备忘录、图片、PDF 文件,它都用来形成它的记忆,从而成为一个随时在线的伴侣,帮助你思考生活、发现隐藏的联系并提升自我。Yuan 称用户与 Dot 的对话是一部用户个人的“活历史”,一种追溯模式和展望未来可能性的方式。Dot 作为 AI 聊天工具,展现出的 AI 应当有处理复杂上下文信息和长期记忆的能力,显然是它最大的亮点。ChatGPT 也有同样的记忆功能,但你需要主动要求它记住关于你的信息,而且它的记忆比较零散。今天,这款爆火的 AI 应用其背后核心的“超强个性记忆”技术被 Mem0ai 给开源了!Mem0 可以用来开发长期、短期记忆,它能记住用户的偏好、过去的交互、事情的进展,可以为应用构建适应性的学习体验。使用场景包括虚拟陪伴、生产力工具、健康关怀或 AI Agent 客户支持等。开源不到一天,就收到了 9.7k 颗星,可谓是风靡全球,联合创始人 Taranjeet Singh 都感到有些受宠若惊了!Taranjeet Singh 是 Mem0 的联合创始人兼 CEO。他的软件工程职业生涯始于 Paytm(印度的 PayPal),见证了 Paytm 从一个新兴企业迅速成长为家喻户晓的名字。另一位联合创始人兼 CTO 为 Deshraj Yadav,曾领导特斯拉自动驾驶的 AI 平台,支持大规模训练、模型评估、监控和可观察性,以促进特斯拉全自动驾驶的发展。在此之前,Deshraj 在乔治亚理工学院完成硕士论文时创建了 EvalAI,一个开源的机器学习平台。Mem0 同时也是 YC 投资的项目。
个性化 AI 的记忆层
简单的说,Mem0 为大语言模型提供了一个智能、自我改进的记忆层,实现了跨应用的个性化 AI 体验。其核心功能包括多层次记忆、自适应个性化、开发者友好的 API、跨平台一致性,并且你可以在本地计算机上运行这个程序。Mem0 是 RAG 发展的下一个阶段,相比 RAG 的核心区别:关注实体和实体关系;关注最近、最相关的;上下文连续性;适应性学习;动态更新信息。而普通 RAG 只是单纯的从静态的文档中检索信息。具体来说,Mem0 提供的记忆实现相比 RAG 具有以下优势:
- 关注实体关系:Mem0 能理解和关联不同交互中的实体,而 RAG 则从静态文档中检索信息。这使得 Mem0 对上下文和关系的理解更深刻。
- 最近性、相关性和衰减:Mem0 优先考虑最近的交互,并逐渐忘记过时的信息,确保记忆保持相关和最新,以提供更准确的响应。
- 上下文连续性:Mem0 在多个会话中保留信息,保持对话和交互的连续性,这对于长期参与应用,如虚拟伴侣或个性化学习助手来说至关重要。
- 自适应学习:Mem0 根据用户交互和反馈改进其个性化,使记忆随着时间的推移更加准确和贴合个人用户。
- 动态更新信息:Mem0 能够根据新的信息和交互动态更新其记忆,而 RAG 依赖于静态数据。这允许实时调整和改进,提升用户体验。
这些先进的记忆功能使 Mem0 成为开发者创建个性化和上下文感知 AI 应用的强大工具。并且 Mem0 还提供了开发者友好的 API,安装和使用也很简单。要安装 Mem0,您可以使用 pip。在终端中运行以下命令:
pip install mem0ai
初始化之后就可以使用一些基本的 API,比如: 储存记忆
# For a user
result = m.add("Likes to play cricket on weekends", user_id="alice", metadata={"category": "hobbies"})
print(result)
输出:
[
{
'id': 'm1',
'event': 'add',
'data': 'Likes to play cricket on weekends'
}
]
找回记忆
# Get all memories
all_memories = m.get_all()
print(all_memories)
输出:
[
{
'id': 'm1',
'text': 'Likes to play cricket on weekends',
'metadata': {
'data': 'Likes to play cricket on weekends',
'category': 'hobbies'
}
},
# ... other memories ...
]
搜索记忆
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
print(related_memories)
输出:
[
{
'id': 'm1',
'text': 'Likes to play cricket on weekends',
'metadata': {
'data': 'Likes to play cricket on weekends',
'category': 'hobbies'
},
'score': 0.85 # Similarity score
},
# ... other related memories ...
]
删除记忆
m.delete(memory_id="m1") # Delete a memory
m.delete_all(user_id="alice") # Delete all memories
参考链接:https://github.com/mem0ai/mem0https://docs.mem0.ai/overviewhttps://x.com/tuturetom/status/1813932933482455156https://x.com/taranjeetio
技术交流群邀请函
△长按添加小助手
扫描二维码添加小助手微信
请备注:姓名-学校/公司-研究方向(如:小张-哈工大-对话系统)即可申请加入自然语言处理/Pytorch等技术交流群
关于我们
MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。