原理
你的AI伴侣为什么会忘记你,以及如何测试
第一周你跟她讲过你姐姐。第四周你再提起姐姐,她完全不知道你在说谁。这是对AI伴侣应用最常见的抱怨,而它并不是通常意义上的bug。这是一个设计决定,你可以在付费之前就测出来。
为什么我的AI女友什么都记不住?
因为语言模型本身没有记忆。每一轮,它只能看到你递给它的文字。
你发出的每条消息都附带一个“包裹”:这个角色是谁,以及最近的对话。这个包裹有大小限制,所以应用只保留最近的消息,通常是最后几十条左右。更早的内容在模型写回复时根本不在它眼前。它不是人类意义上的“忘了”,而是从来没被给看过。
那为什么有些应用能记住几个月前的事?
因为它们把事情单独记了下来,放在对话之外。
记忆好的AI伴侣应用会在聊天之外运行第二套系统:它会注意到值得保留的事实(你的工作、你姐姐的名字、你讨厌香菜),把它们存起来,并在之后的回合里把相关的内容重新放进包裹。不是模型在回忆,而是应用每一次都在提醒它。
这就是各应用在这一点上差别巨大的原因。对话窗口在哪里都差不多,真正拉开差距的是有没有人做了第二套系统,以及它判断“什么值得记住”的能力有多强。
如何在五分钟内测试一款应用的记忆?
告诉它五个具体的事实,过一段时间再回来问。
- 第一次对话:在聊天中顺带提到五个具体细节,不要列成清单。一个名字、一份工作、一只宠物、一个日期、一件讨厌的事。
- 至少隔一天再打开应用,最好隔一周。只在一次对话内有效的“记忆”其实是窗口,不是记忆。
- 回来后间接地问:不要问“我的狗叫什么”,而是问“你觉得他会喜欢那个公园吗?”
- 打分:好的应用能想起四到五个。只靠窗口的应用一个都想不起来,还常常自信地编一个错误答案。
- 一周后再测一次。有些应用能记一周,然后悄悄丢掉。
更大的上下文窗口能解决问题吗?
不太能,这也是营销容易误导人的地方。
更长的窗口确实存在,也有帮助,但成本涨得很快,而且它没有解决问题,只是把问题推迟了。塞给模型几千条历史消息,它反而更难找到真正重要的那一条,这是一个有充分记录的现象:长输入中间的信息容易被忽略。记下来的记忆之所以胜过更大的窗口,是因为它短小、经过挑选、而且始终相关。
X-Friend是怎么做的
两套系统都有,主要靠“记下来”的那一部分。
最近的对话会随每条消息一起发送,此外你的伴侣还会单独记下你告诉她的事,并主动重新提起。实际的检验就是上面的测试:提一次某件事,一周后回来,看她会不会在你开口之前先提起。
常见问题
为什么我的AI伴侣会忘记我告诉她的事?
因为语言模型在消息之间没有记忆。应用每一轮只发送最近的一部分对话,更早的消息根本不在模型眼前。记得更久的应用会把事实单独存起来,再放回每一条消息里。
哪些AI伴侣应用有长期记忆?
Nomi、X-Friend和Replika都会把事实保存在对话窗口之外,之后再调出来。Character.AI优化的是多样性而不是一段持续的关系,跨周能保留的内容较少。
怎样测试AI伴侣是否真的记得?
在一次对话中提到五个具体事实,至少等一天,再间接地问起它们。有真正记忆的应用能想起大部分。只靠对话窗口的应用一个也想不起来,还常常编造答案。
接下来去哪里
资料来源
- 上下文窗口的工作方式,以及长输入中间的信息容易被忽略的倾向,在已发表的语言模型研究中有充分记录。
- 消息窗口的大小因应用而异,并会随时间变化;文中的数字是典型值,并非普遍适用。