LangFriend - 一款Long-Term Memory 的日历应用

文章目录

    • 学术工作
    • 公司
    • 为什么要使用日记应用程序?
    • 定制
    • 总结


本文翻译整理自:
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(日)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解 Nginx 的多站点配置:为每个网站单独配置

Nginx 是一个高性能的 Web 服务器,广泛用于托管和管理网站。它之所以受欢迎,部分原因在于它的灵活性和强大的配置能力。特别是对于管理多个网站,Nginx 提供了一种高效且组织良好的方法。让我们逐步了解如何使用 Nginx 配置多个网站&#xff0…

【Android】【root remount】【2】如何判断设备是否remount

前言 高版本的android设备,在remount之后,如果再进行ota升级,会产生异常,从而无法升级成功。 如何判断设备是否remount 当前已android 10 平台为例 当我们执行 adb remount 时,系统调用会调用到system/core/adb/dae…

1024编程

关于编程和信息学,常常有一些讨论:“课内数学好没用,小学奥数没学过不能先学信息学”。这个说法有道理吗? 其实,“小学奥数”不是必须,只要课内语文、数学学得不错,四年级左右就可以学信息学。我…

子域名是什么?有什么作用?

在互联网世界中,域名是我们访问网站的关键。每一个公司的网站都需要拥有自己的域名,其中有些大型公司的网站还不止一个域名,除了主域名外还拥有子域名。有些人感到非常困惑,不知道子域名是什么。其实子域名也就是平时所说的二级域…

不可错过的3D建模素材网站,让设计更加丰富多彩!

3D建模已经渗透到了各个行业和领域,从游戏设计、室内设计到建筑设计,3D模型的使用越来越广泛。然而,创建出优秀的3D模型就需要大量的优质3D建模素材。幸运的是,有一些网站提供了大量的高质量3D建模素材,这些都是我们设…

C语言 | Leetcode C语言题解之第20题有效的括号

题目&#xff1a; 题解&#xff1a; char pairs(char a) {if (a }) return {;if (a ]) return [;if (a )) return (;return 0; }bool isValid(char* s) {int n strlen(s);if (n % 2 1) {return false;}int stk[n 1], top 0;for (int i 0; i < n; i) {char ch pair…

AI 对话完善【人工智能】

AI 对话【人工智能】 前言版权开源推荐AI 对话v0版本&#xff1a;基础v1版本&#xff1a;对话数据表tag.jsTagController v2版本&#xff1a;回复中textarea.jsChatController v3版本&#xff1a;流式输出chatLast.jsChatController v4版本&#xff1a;多轮对话QianfanUtilChat…

西电B测介绍

西电B测是西安电子科技大学&#xff08;西电&#xff09;的一项重要的实验教学环节&#xff0c;主要涉及通信系统和计算机网络的综合设计实验。这一测试旨在加深学生对通信原理和计算机网络知识的理解&#xff0c;提升他们的实践能力和团队协作精神。以下是对西电B测的详细介绍…

c++的友元函数,详细笔记,细说三种友元用法

解释友元 友元用通俗易懂的话来说&#xff0c;就是&#xff1a;当有人来到你家里&#xff0c;他就只能呆在客厅里面&#xff0c;你是不可能让他来到你的卧室之中的。但是如果这个人是你的朋友&#xff0c;那么你是默许他可以进入你的卧室的。 此时呢&#xff1f;我告诉你&…

SpringBoot+Vue,轻松实现网页版人脸登录与精准识别

目录 1、技术介绍 2、技术原理 2.1、人脸检测 ①参考模板法 ②人脸规则法 2.2、人脸跟踪 2.3、人脸比对 ①特征向量法 ②面纹模板法 识别过程 案例 一、springboot后端项目 1&#xff0c;拉取项目后&#xff0c;导入相关依赖jar包 2&#xff0c;执行sql文件夹下面…

QT进阶------------------QPushButton(快速添加按钮与使用)

1、解决如何快速的添加按钮 在qt中&#xff0c;通常我们喜欢一个按钮添加一个信号与槽&#xff0c;但是这样写太过浪费时间。要是多个按钮那不是要写30个信号与槽&#xff0c;说实话&#xff0c;我不太喜欢这样。 在ui中&#xff0c;只要拖动按钮&#xff0c;会自动生成按钮的名…

智能运维场景 | 科技风险预警,能实现到什么程度?

[ 原作者&#xff1a;擎创夏洛克&#xff0c;本文略做了节选和改编 ] 每次一说到“风险预警”&#xff0c;就会有客户问我们能做怎样的风险预警。实际上在智能运维厂商来说&#xff0c;此风险非彼风险&#xff0c;不是能做银行的业务上的风险预警&#xff08;比如贷款风险等&a…

golang的引用和非引用总结

目录 概述 一、基本概念 指针类型&#xff08;Pointer type&#xff09; 非引用类型&#xff08;值类型&#xff09; 引用类型&#xff08;Reference Types&#xff09; 解引用&#xff08;dereference&#xff09; 二、引用类型和非引用类型的区别 三、golang数据类型…

深度学习500问——Chapter07:生成对抗网络(GAN)(1)

文章目录 7.1 GAN基本概念 7.1.1 如何通俗理解GAN 7.1.2 GAN的形式化表示 7.1.3 GAN的目标函数是什么 7.1.4 GAN的目标函数和交叉熵有什么区别 7.1.5 GAN的Loss为什么降不下去 7.1.6 生成式模型、判别式模型的区别 7.1.7 什么是mode collapsing 7.1.8 如何解决mode collapsing …

论文| Convolutional Neural Network-based Place Recognition - 2014

2014-Convolutional Neural Network-based Place Recognition

PID c++算法学习和实现

原理图&#xff1a; &#xff08;1&#xff09;位置式PID 是1&#xff1a;当前系统的实际位置&#xff0c;与你想要达到的预期位置的偏差&#xff0c; 2&#xff1a;进行PID控制,误差会一直累加&#xff0c;会使当前输出与过去的所有输入相关&#xff0c;输入uk出错&#xff…

为什么别人能拿到大厂offer?你应该明白这些java面试技巧!

言简意赅的说明自己的工作时间&#xff0c;擅长技术栈和自己的工作预期。 注意准备两份自我介绍&#xff0c;一个是跟面试官说的&#xff0c;一个是跟HR说的。 项目经验介绍 选一个自己感觉是最成功的&#xff0c;而且还是最有把握的项目&#xff0c;讲给面试官。 简单说下…

Lvgl9 WindowsSimulator Visual Studio2017

因为在操作过程中遇到了一些错误&#xff0c;所以将操作及解决问题的过程记录下来。 一、下载lv_port_pc_visual_studio github链接:GitHub - lvgl/lv_port_pc_visual_studio: Visual Studio projects for LVGL embedded graphics library. Recommended on Windows. Linux su…

Linux系统使用Docker部署MeterSphere并实现公网访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

JavaWeb的简单了解

一、什么是JavaWeb 1. JavaWeb&#xff1a;是使用jsp和JavaBean技术开发动态网站的 2.是什么动态网站 和html的区别在哪&#xff1a;thml开发的网站只能在你自己电脑上访问其他人可以访问 3.那怎么开发JavaWeb&#xff1a;我们首先需要eclipse还需要Tomcat 小tips&am…