灵光一闪想到一个让 AI 在有限上下文里实现像人类一样无限记忆的能力

144 天前
 chairuosen

不知道你们有没有玩过这个玩具

N 个齿轮串联,第 1 个齿轮转 10 圈第二个齿轮转 1 圈,以此类推第 N 个齿轮宇宙毁灭也不会转一圈

定义一个二维数组存记忆[[],...]每个数组定义一个最大长度 L ,AI 经历的每个记忆(问答)先记录到第 0 个数组,记满 L 后就把其中的后一部分 M 个拿出来让 AI 自己总结成一条记忆 push 到下一个记忆数组里,以此类推。

这样用有限的二维数组就可以近乎于无穷的记录记忆,只是像人类一样,越久的记忆会丢失细节或者遗忘。

可能还需要一个一维数组存储重要时刻,像结婚,大学毕业等场景可能一生都记忆犹新。在 AI 总结多条记忆时,判断其中是否有重要时刻单独提出来,和已存在的重要时刻数组成员比较大小后塞入并排序,并 pop 出最不重要的重要时刻。

2767 次点击
所在节点    奇思妙想
12 条回复
wysnxzm
144 天前
你是否听说过 古戈尔齿轮
cxsz
143 天前
这不就是 GPT 的记忆功能么 https://help.openai.com/en/articles/8590148-memory-faq
chairuosen
143 天前
@cxsz 文章里没提到实现方式。它也是这么实现的么?
dongdong12345
143 天前
可以从用户发送的内容中提取出记忆存储到向量库,需要用到记忆时去向量库相似度查询就行了
chairuosen
143 天前
@dongdong12345 向量库的问题是要先知道要查询什么,寻找特定记忆片段这个过程可以用向量库来替代,但是不知道查询什么内容的时候,向量库就没用了。比如你问 A ,向量库能搜到 A 的知识补充到上下文,但是有记忆的 AI 可能会关心下你昨天的 B 进行到什么情况了。B 跟 A 毫无关系。用向量匹配不了。
teenthsch
143 天前
这个 m 怎么定义的
chairuosen
143 天前
@teenthsch 调呗。。多试试,看 l 和 m 还有 n 之间怎么配效果好
chairuosen
143 天前
@chairuosen M 的定义就是每次 L 满了后,拿多少出来从数组[0]放到数组[1],不能全拿了,也不能只拿一部分,我感觉在 L/2 到两三个之间。 太小了压缩比不高,太大了数组[0]的短期记忆就容易出现波动太大的情况。
chairuosen
143 天前
@chairuosen 笔误:也不能只拿太小的一部分
yutou527
143 天前
"记满 L 后就把其中的后一部分 M 个拿出来让 AI 自己总结成一条记忆 push 到下一个记忆数组里"
这总结过程是有损的吧,能无损还原?
chairuosen
142 天前
@yutou527 肯定是有损的,人类也是有损的,记个大概就行
H0TSp1RnG
56 天前
For your information, 人类没有无限记忆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1128692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX