-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: 希望能加一个让模型忘记之前的记忆的命令 #4
Comments
这个 Feature Request 戳到了一个大难题。 机器人的记忆的确是个难点,这是因为OpenAI的接口是无状态(Stateless)的,毕竟GPT系列模型都没有状态。因此,记忆部分是咱利用prompt engineering模拟出来的,原理是每次都利用不同状态的记忆生成额外的上下文,帮助无状态AI作出“好像有记忆一样”的回答。因此,如果记忆中相对高频率地出现某种类似的话(相对频率高于正常对话),AI就会“认为”自己“学到了规律/找到了捷径”,进而陷入死胡同。 这个问题我目前还没有很好的解决办法,需要一些时间思考研究。目前有4个感觉都不太好的基本思路,先扔在这里抛砖引玉一下:
如果你或者其他人还有其他更好的想法,欢迎在这里继续回复,谢谢! |
提issue的时候没看您的代码,不好意思。今天看了一下您的代码,我的理解是texts过长了就总结成summaries,summaries过长了就总结成topics,每次回复都会附带上最近的texts, summaries和topics。 其实我的需求是,有一个reset指令,输入之后就忘记和这个人说过的所有话,如果能选择是忘记texts、summaries、topics中的某几项记忆就更好了,比如发送指令删除texts和summaries中关于数学的记忆。和您的办法3比较像。 |
多谢反馈,我明白你的需求了,下一个版本会加上一条重置记忆的指令,用户可以用这条指令选择性清除bot和自己的某一类记忆o( ̄▽ ̄)ブ 补充: flag: |
(在您回复我的上一条前我刚好在编辑,我在这里重说一遍我更新的话吧。) 另外又有一个想法,就是发送list指令,能列出目前的所有记忆,然后手动选择删除某些记忆。 |
多谢反馈!这个观察很有价值。我会想办法解决这个问题。雀食,哪怕以前聊过很多数学,新的话题也不能总是拐到数学上(好像现实中热爱数学的人似乎也会这样子拐话题呢(划掉
的确太像bot了……但是移植记忆似乎是有用的,比如迁移bot的时候,如果bot的部署人可以导出全部的记忆,ta就不会忘了自己,也不会忘了以前对话过的用户。这个倒是可以实现一下,但是优先级暂时比较靠后,可能要多等一等。 |
拍脑袋想到一个保持记忆的办法。 |
目前的版本(v2.0.1)已经重构到用embedding保存记忆的模式,但是embeddings还是用的openai接口。等一波可以本地算embedding vector的库。至于忘记记忆相关的功能,我倒是已经设想好了实现思路,就是缺时间写代码。争取下周再发布一个更新 |
https://v2ex.com/t/921750 话说大佬有没有试过不提取关键词,整句话直接做embedding,我看那个链接里有人发的这个链接是这么做的:https://github.com/openai/openai-cookbook/blob/main/apps/web-crawl-q-and-a/web-qa.ipynb 反正本质就是一个本地的搜索引擎,办法应该挺多的( |
我这里embedding就是整句做的,也是整句存储的,但是之所以还要提取关键词,是为了对下一轮回复进行启发。我举个例子: |
https://arxiv.org/abs/2304.13343 不过他这篇论文每个对话会请求 openai 三次,前两个请求是问是否使用 memory ,第三个请求是回复,会增大响应延迟。我想到的解决办法是 是否使用 memory 和 是否使用 summary of memory 这两个问题合并成一个问题问,还有就是 gpt-3.5-turbo 现在延迟比较高,也许这种简单的任务可以交给 claude 或者其他速度快的模型。 |
https://github.com/imartinez/privateGPT |
有时候反复问AI类似的问题,AI就会陷入死胡同,然后反复复读类似的话。希望能加一个命令,发了之后就让它忘记之前的记忆。
https://beta.openai.com/docs/api-reference/completions/create#completions/create-stop
查了查API,不知道这个接口是不是干这个的。
谢谢!
The text was updated successfully, but these errors were encountered: