文章目录
- 学术工作
- 公司
- 为什么要使用日记应用程序?
- 定制
- 总结
本文翻译整理自:
https://blog.langchain.dev/langfriend/ (发布于2024 年 3 月 28 日)
在LangChain我们最感兴趣的概念之一就是内存。
每当我们对一个概念感兴趣时,我们都喜欢构建一个示例应用程序来展示该概念。
为了记忆,我们决定构建一个日记应用程序!
我们正在托管一个任何人都可以尝试的版本。我们还开始与一些 alpha 用户合作开发面向开发人员的 API。
如果您对此感兴趣,请在下面注册。
关键链接:
- YouTube
- 期刊应用程序
- 开发者API访问
💡我们还将在 2024 年 4 月 6 日与 New Computer、MongoDB 和 Anthropic 一起举办一场与内存相关的黑客马拉松。在此注册。
我们最看好的LLM系统组件之一是内存。
生成式人工智能的强大之处在于它能够动态生成独特的内容。这对于定制用户体验来说非常强大。
这可以通过利用有关用户的现有信息来完成,但也可以通过记住以前的用户交互并从中学习来完成。
我们热衷于探索的正是这种类型的“记忆”。
我们认为用户和LLM之间将会发生越来越多的交互——聊天机器人是LLM应用程序的主要形式因素。
这意味着越来越多有价值的用户信息将在这些对话中交换——一个人喜欢或不喜欢,他们的朋友是谁,他们的目标是什么。
学习这些属性 - 然后将它们合并回应用程序中可以极大地改善用户体验。
当我们探索内存时,我们认为整理一个用例示例来激励和奠定我们的大量工作会很有帮助。
我们选择一个日记应用程序作为这个用例。
我们将这个日记应用程序命名为“LangFriend”,并于今天向公众开放。
虽然这仍然只是一个不起眼的研究预览,但我们希望在开源之前收集社区反馈,了解什么是有效的以及如何改进它。
在这篇文章中,我们将讨论一些之前在记忆方面的学术工作、其他公司所做的有趣的事情以及我们为什么选择一款日记应用程序作为重点。
然后我们将深入研究日记应用程序,逐步了解其功能。如果您有兴趣与我们一起探索记忆,请联系这里。
学术工作
我们发现有两篇主要学术论文对我们的记忆工作有启发。
第一:MemGPT。来自加州大学伯克利分校的研究人员,这篇论文的 TLDR 是他们让 LLM 能够调用一些函数。这些功能可以执行诸如记住特定事实、回忆相关事物等操作。
大型语言模型 (LLM) 彻底改变了人工智能,但受到有限的上下文窗口的限制,阻碍了它们在扩展对话和文档分析等任务中的实用性。
为了能够在有限的上下文窗口之外使用上下文,我们提出了虚拟上下文管理,这是一种从传统操作系统中的分层内存系统中汲取灵感的技术,它通过物理内存和磁盘之间的分页提供了扩展虚拟内存的幻觉。
利用这种技术,我们引入了MemGPT(MemoryGPT),这是一个智能管理不同存储层的系统,以便在LLM有限的上下文窗口内有效地提供扩展上下文
第二:生成代理。来自斯坦福大学的研究人员,这篇论文的 TLDR 是他们利用对经验的反思来形成记忆,然后以编程方式存储和检索这些记忆。
我们通过消融证明,我们的智能体架构的组成部分——观察、规划和反思——每一个都对智能体行为的可信度做出了至关重要的贡献。
通过将大型语言模型与计算交互代理融合,这项工作引入了架构和交互模式,以实现对人类行为的可信模拟。
这两篇论文之间的一个有趣的区别是LLM主动决定使用内存的程度,而不是更多地使用后台进程。 MemGPT 强制 LLM 使用内存功能,而生成代理更多的是一个后台进程。
公司
有一些公司在内存方面做了一些很棒的事情。
Plastic Labs 是一家构建 TutorGPT 等项目的初创公司。
LangChain LLM 应用。用于心理理论辅导的动态元提示。
Good AI是一家刚刚开源了 具有长期记忆功 能的聊天助手的初创公司。
乍一看,Charlie 可能类似于现有的 LLM 代理,如 ChatGPT、Claude 和 Gemini。然而,它的显着特点是 LTM 的实现,使其能够 从每次交互中学习。
这包括 将用户消息、助理响应和环境反馈存储并集成到 LTM 中, 以便将来在与手头任务相关时进行检索。
OpenAI最近将内存功能整合到 ChatGPT 中。
观察这些公司还可以发现,将内存实现为 LLM 需要有意识调用的活动 (ChatGPT) 与自动合并的后台进程 (TutorGPT) 之间存在差异。
为什么要使用日记应用程序?
当考虑实施一个测试长期记忆的好用例时,我的脑海中浮现出一款日记应用程序。
主要原因是我们相信此应用程序中的交互将比标准聊天应用程序包含更多需要记住的相关信息。
使用标准的聊天应用程序,可能会有很多多余的交流 - “嘿!”、“嗨”、“怎么样”等。
在日记设置中,您可以更快地达到分享真实、有趣的感受的地步和见解。
尽管如此,我们还是想向这个应用程序添加一个聊天组件。
这样做的主要原因是为了表明我们的应用程序正在学习和记住有关用户的信息。
它将能够使用这些信息来为用户制作个性化的响应。
在这里你可以看到,我是意大利菜的粉丝,运动后感觉神清气爽。
添加您的第一篇日记并与我们的同伴聊天后,您会在导航栏中看到“回忆”按钮。
单击此按钮将向您显示我们能够从您的日记中提取的所有主要记忆。
您会注意到该列表很薄,并且不包含太多信息。
这些只是我们提取的最重要、最高级的事实。
在幕后,我们从您的条目中提取了比这更多的事实,您可以搜索所有这些!
开始输入“搜索记忆…”输入,您将实时看到 LangFriend 存储的有关您的各种事实:
定制
我们希望让 LangFriend 尽可能吸引所有用户。
因此,我们允许任何人更新前缀的系统消息,并为与我们的同伴的所有聊天定下基调。
包含一个默认值,这是我们精心设计的,以满足许多用户的需求。
但是,如果您正在寻找稍微或完全不同的东西,您可以根据需要进行尽可能少的更改或尽可能多的更改。
找到系统提示,并通过访问“日志”页面并单击“配置”按钮来更新它。
从这里,将弹出一个对话框,其中包含系统提示。
所做的任何更改都将在会话之间持续存在,并将作为您未来所有聊天对话的前缀!
总结
LangFriend 是一项令人兴奋的研究预览,展示了将长期记忆纳入LLM申请的潜力。
通过专注于日记应用程序,我们的目标是捕获有意义的用户信息,以提供个性化响应并增强用户体验。
受到该领域学术工作和创新公司的启发,LangFriend 展示了如何积极利用记忆或将记忆纳入后台流程,以创建引人入胜且适应性强的互动。
我们很高兴邀请社区探索 LangFriend,提供反馈,并与我们一起突破 LLM 应用程序中内存的可能性界限,释放生成式 AI 的全部潜力,实现更强大、个性化和有意义的用户体验。
伊织 2024-04-07(日)