![]()
假设你戴着一副智能眼镜已经三年了。
它拍下了你每天的生活:早上吃了什么、把钥匙放在了哪、跟谁说过什么话。现在你问它一句"我上个月把戒指放在哪了",它应该能告诉你答案。
听起来很简单对吧?但这里藏着一个几乎没人注意到的大麻烦。三年的视频,按每天清醒16小时算,差不多是17000个小时。如果每次你问一句话,系统都要把这17000个小时的视频重新翻一遍去找答案,那你这句话问出来,答案可能要等到下辈子才能收到。
所以聪明的做法是,别存视频,存文字。
把每一段视频变成一句话描述,存起来。这样空间小了几百倍,查找起来也快多了。这个思路听起来理所当然,但做起来会遇到一个几乎无解的两难。
**压缩得太狠,未来要问的信息被你提前扔掉了;压缩得太松,存下来的废话太多,反而让真正重要的信息被淹没,找都找不到。**
更糟的是,如果负责"写笔记"的AI开始瞎编,把没发生过的事也写进了记忆里,那整个系统就是在给未来的自己埋雷。
这就是Meta Reality Labs这篇论文要解决的问题。研究者给出了两个答案,一个叫MemLife,负责把视频变成靠谱的文字记忆并学会怎么找回它们;另一个叫MemOpt,负责用强化学习训练那个"写笔记的AI",让它写得更准、更有用、更容易被找到。
当记忆系统开始"丢东西"或者"找不到东西"
在深入技术细节之前,先搞清楚现有系统到底卡在哪儿。
研究者观察到两种典型的失败场景。第一种是写的时候就漏了,比如你某天把戒指放在了某个地方,但如果负责写记忆的AI当时没把这个细节写进去,那这段记忆就永远消失了,之后不管怎么搜都找不回来。第二种是写对了但是找不到,比如你一周吃了两次药,记忆里确实写了两次用药记录,但是搜索系统因为数据库里相似的记录太多(毕竟你每天都在吃饭、喝水、做各种重复动作),结果把真正相关的那条给漏掉了,只搜到了一条,于是系统告诉你"只吃了一次"。
这两种失败模式,一个是写得不到位,一个是读得不到位。论文把它们拆开来对症下药。
**检索增强生成*:一种让AI先去数据库里查找相关信息,再根据查到的信息生成答案的技术框架,简单理解就是"先搜索再回答"。这篇论文要解决的本质就是如何把检索增强生成用在超长时间跨度的第一人称视频上。
这里有个值得琢磨的地方。如果你把一整年的生活经历都塞进一个巨大的文本库里,你会发现很多场景是重复的。你可能每天早上都在同一个厨房里倒咖啡,每天都用差不多的语气跟同一个人打招呼。这种"重复中带着细微差别"的特性,恰恰是让搜索系统犯晕的原因。它很难精确地从500次"倒咖啡"的记录里,找出你问的那次特别的"上周三倒咖啡时打碎了杯子"。
MemLife的写作三原则:让记忆自己说"我"
MemLife这套系统在写记忆的时候,坚持了三个设计原则,每一个都值得单独讲讲。
第一个是多模态融合。
视频里的信息分成两路,一路是你眼睛能看到的画面,一路是耳朵能听到的对话。很多系统图省事,只处理画面或者只处理声音,但现实中很多关键信息恰恰藏在没被看见的那一半里。比如你和朋友约好"下周三去取快递",这句话如果只在语音里出现,画面上什么都看不出来,那只看画面的系统就彻底漏掉了这条信息。
这就像你去听一场音乐会却只带了耳塞,你能看到乐手们在动,但听不到任何旋律,整场演出在你眼里变成了一堆毫无意义的肢体动作。如果反过来,你只听声音不看画面,你能听到旋律却不知道是谁在演奏什么乐器。只有同时看和听,这场音乐会才真正完整地留在你的记忆里。MemLife要求写记忆的AI必须同时处理画面和语音,正是为了避免这种"半聾半瞎"的记录方式。
第二个原则是实体对齐。
当某个人在视频里被语音提到名字,比如有人叫了一声"杰克",写记忆的AI要把这个名字和画面里对应的那个人物绑定起来,后续描述这个人时直接用"杰克"而不是模糊的"一个男人"。这个设计听起来简单,但对未来检索的影响很大。你想一想,如果你问"杰克昨天说了什么",但记忆里存的全是"一个男人说了什么",这两句话压根对不上,搜索系统再聪明也很难把它们联系起来。
第三个原则是第一人称叙述。
写记忆的AI要用"我"来描述主人公的动作,而不是用"摄像头佩戴者"这种生硬的说法。这个设计的巧妙之处在于,它瞄准的不是写作风格好不好看,而是未来用户提问的习惯。你平时问自己的问题会是"我上周把护照放哪了",不会是"佩戴摄像头的人上周把护照放哪了"。如果记忆的措辞和你提问的措辞对不上,检索系统在语义空间里的匹配就会偏离,哪怕内容是对的,也可能因为表达方式的差异而检索失败。
**实体对齐*:把语音里提到的人名、物名跟画面中对应的视觉对象关联起来,方便后续用名字而不是模糊代称来描述。
这三条原则加在一起,形成了一个很朴素但很有效的逻辑:记忆要尽量贴近未来提问者会怎么说话,而不是贴近机器喜欢怎么描述。
值得一提的是,研究者还测试过给记忆增加"上下文",也就是在写当前这段视频的记忆时,参考前一段视频的内容,看看效果会不会更好。结果出乎意料,这种做法反而拖累了整体准确率。所以MemLife最终选择每段视频独立生成记忆,互不依赖,这样做还有个好处是避免了错误累积,一旦某一段写错了,不会连累后面所有的记忆。
读记忆的AI:会思考的检索工具箱
写好的记忆放在一个巨大的仓库里,接下来要解决的是如何从里面精准地捞出有用的那几条。
这篇论文设计了一个具有多轮推理能力的智能体来负责读取。它手上有几个工具,先重新表述用户的问题和时间信息,转换成一个更适合搜索的查询词,再用这个查询词在限定的时间范围内做语义检索,返回最相关的若干条记忆。如果需要,它还可以直接按时间段取出所有记忆,或者在源视频可用的情况下,去抽取画面帧仔细看看。
这里有个细节很值得注意,返回的记忆条目是按照时间顺序排列的,而不是按相关性打分从高到低排列。这个设计看起来不起眼,但实验证明它对回答涉及事件顺序和时间线重建的问题特别关键。想象一下,如果你让朋友讲讲上周发生的一连串事情,他把这些事情按照"我觉得哪个重要"的顺序讲给你,你很可能会越听越乱,因为事件之间的因果和先后关系全被打散了。按时间顺序讲,哪怕是碎片化的信息,你的大脑也能自己把它们串成一条线。给AI的推理过程也是同样的道理,时间顺序本身就是一种天然的逻辑结构,乱序呈现等于白白浪费了这个结构。
**智能体*:这里指能够自主决定执行哪些操作(比如搜索、取数据、回答)、并根据中间结果调整下一步动作的AI系统,而不是只能一次性输出结果的简单模型。
在没有训练、也不访问原始视频的情况下,MemLife在四个长时间跨度的评测基准上,比表现最好的无训练基线方法提升了4.6到12.0个百分点的准确率。这个成绩说明光靠精心设计的写作原则和读取策略,就已经能带来实质性的改善,而这还只是故事的第一部分。
MemOpt:教AI学会"该记什么、该怎么记"
MemLife靠的是人工设计的规则,效果不错,但研究者没有止步于此。他们提出了第二套方案,叫MemOpt,核心思路是用强化学习直接训练那个负责写记忆的AI,而不是依赖手工规则。
这里有一个值得强调的选择。很多之前的研究会用最终答对没答对来作为训练信号,直接告诉AI"你这次表现得好不好"。但这篇论文反其道而行,只针对写记忆这一个环节进行训练,不碰读取环节。
为什么要这么选?因为如果用最终答案对不对来训练,这个信号里混杂了太多噪音。答案错了,可能是因为记忆写得不好,也可能是因为检索的智能体那天"抽风"了,恰好没找到对的那条记忆,又或者是回答生成的时候推理错了。这三种原因混在一起,写记忆的AI根本分不清自己该为哪部分负责,就像一个班级考试成绩不好,老师直接把所有学生一起骂一遍,却不告诉具体是谁的问题出在哪个知识点上,这种笼统的批评对改进没有任何指导意义。
论文提出了一个叫FIRM的奖励机制,从三个独立的维度去衡量记忆写得好不好。
第一个维度是忠实性,检查记忆里的每一句话是否真的能在原始视频里找到依据,有没有胡编乱造的内容。第二个维度是信息量,检查记忆是否保留了未来回答问题所需要的关键事实。第三个维度是可检索性,检查这条记忆写出来之后,是否真的能够被搜索系统找到。
**强化学习*:一种通过奖励信号来训练模型行为的方法,模型每做出一个动作就得到一个反馈分数,模型会调整自己的策略去争取更高的分数。
这三个维度不是随便拍脑袋想出来的,论文里给出了一套严谨的数学推导来支撑这个设计。简单说,写记忆这一步和读记忆这一步,各自都会造成信息损失,前者丢的是没写进记忆里的信息,后者丢的是写进记忆了但没被搜索系统捞出来的信息。而忠实性是独立于这两者之外的一个问题,因为就算记忆被完整检索出来了,如果内容本身是假的,照样会误导最终的回答。所以这三个维度缺一不可,各管各的责任区。
这就好比一个厨师要同时做到三件事,食材要真实新鲜不能以次充好对应忠实性,菜要做得有营养能真正填饱肚子对应信息量,摆盘要让顾客一眼就能看到自己点的那道菜在哪对应可检索性。如果厨师只注重其中一项,比如食材很真实但做出来的菜淡而无味,顾客照样不满意。只有三件事同时做好,这顿饭才算真正合格。
具体怎么计算忠实性这个分数,论文设计得很细。它不是简单地给整段记忆打一个总分,而是精确到每一个字,用同一个评测模型去逐字检查生成的内容,如果某个字是编造出来的,评测模型会倾向于用另一个字去纠正它,这个"纠正的冲动"有多强,就决定了这个字的忠实性分数有多低。这种逐字级别的精细打分,比起笼统地给整句话打一个及格或不及格的标签,能提供更细颗粒度的反馈,实验也证明这种细颗粒度的做法确实比粗颗粒度的效果更好。
信息量的计算方式是,先找出一段视频里真正支撑某个问题答案的"关键事实",再检查写出来的记忆是否能推导出这个关键事实。可检索性的计算方式是,固定住读取环节的操作轨迹,然后看看换一条记忆之后,这条记忆是否还能被同样的操作找回来。
最终这三个分数会相乘得到一个综合奖励,这个相乘的设计本身也有讲究,它意味着只有三个维度都表现不错,这段记忆才能拿到高分,任何一个维度掉链子,整体分数都会被拉低。实验里专门对比过把三个分数相加和相乘两种方式,结果显示相乘效果更好,这背后的逻辑也很直观,一个记忆哪怕信息量再丰富,如果里面掺了假,那这份"丰富"反而更危险,相加的方式会掩盖这种危险,相乘的方式才能真正体现"一个短板就会拖累全局"的逻辑。
| 训练方式 | SuperMemory-VQA 准确率 | EgoLifeQA 准确率 |
| 零训练基线 | 56.50 | 52.80 |
| 教师模型模仿 | 57.78 | 53.00 |
| 最终答案准确率监督 | 57.46 | 52.60 |
| 仅用可检索性 | 53.45 | 54.40 |
| 可检索性+信息量 | 60.03 | 51.40 |
| **FIRM完整版(可检索性+信息量+忠实性)** | **60.35** | **56.60** |
从这张表能看出一个有意思的现象,如果只用最终答案准不准来做训练信号,效果提升很有限,甚至在不同数据集上表现还不稳定。而把三个维度拆开、精细地分别监督,最后组合起来效果反而是最好的,这恰恰验证了之前那套"笼统批评没用,要精确指出问题在哪"的逻辑。
效果到底有多少真实提升
说了这么多设计思路,最终的硬数据才是检验一切的标准。
| 系统 | SuperMemory-VQA 准确率 | EgoLifeQA 准确率 | 存储空间(MB/小时) |
| EgoRAG(无训练基线) | 49.28 | 48.20 | 4.98 |
| M3-Agent(有训练基线) | 53.93 | 35.40 | - |
| MemLife | 56.50 | 52.80 | **0.68** |
| **MemLife + MemOpt** | **60.35** | **56.60** | **0.68** |
这张表里藏着一个容易被忽略但很重要的信息。MemLife的存储空间只有每小时0.68兆,比起EgoRAG的4.98兆,小了将近7倍,比起另一个基线EGAgent的21.5兆更是小了30多倍。这说明MemLife不是靠"存更多信息"来换取更高准确率的,恰恰相反,它存得更精简,但是存得更准、更容易被找到。
同时读取速度也有大幅提升,MemLife读一个问题平均只要13.1秒,而EGAgent要200多秒,差了十几倍。这个速度差距,放到实际使用场景里就是用户体验的生死线,没人愿意为了问一句"我钥匙放哪了"等上三分多钟。
更让人惊讶的是MemOpt的迁移能力。研究者只用SuperMemory-VQA这一个数据集的训练数据来训练写记忆的AI,然后拿到完全没见过的EgoLifeQA、SuperMemory-LVQA、EgoLife-EQA这三个数据集上去测试,结果照样都有提升。这说明MemOpt学到的不是某个数据集的特殊套路,而是某种更普适的"怎么写好一段记忆"的能力。研究者还测试了把训练好的写记忆AI换到另一套记忆系统EgoRAG里去用,结果照样有提升,证明这个训练出来的能力是可以迁移到不同系统架构上的,不是跟特定系统绑死的。
看记忆到底改了哪里
光看数字可能还不够直观,论文里举了两个具体的例子,能让人更清楚地感受到训练前后记忆内容的变化。
第一个例子是关于做饭的问题,问的是"做面糊时先放牛奶还是先放鸡蛋"。训练前的记忆把画面里黄色颗粒状的食材错误地描述成"玉米粒",但实际上那是煮熟的扁豆。训练之后的记忆准确地把它改成了"黄橙色颗粒状物质,看起来像煮熟的扁豆",这个修正没有删掉周围的动作描述,只是把错误的那个关键名词纠正过来。
第二个例子是关于备用晚餐计划的问题。训练前的记忆用了模糊的代词"他们"来指代某个人,而且压根没提到对话里关键的食物信息。训练后的记忆明确写出了具体的人名字母标记,还准确记录下了"烤鸡"这个关键细节,恰恰是回答这个问题所必需的信息。
这两个例子说明MemOpt训练带来的改变不是泛泛的"写得更好",而是精确地纠正了具体的事实错误,同时补全了之前被遗漏的关键信息。这正好对应了FIRM里忠实性和信息量这两个维度各自要解决的问题。
消融实验告诉我们每个零件到底值不值
研究者还做了细致的拆解实验,逐一验证每个设计模块到底带来了多少贡献,这部分内容虽然技术性强,但结论很值得了解。
在写记忆这一端,实体对齐这个设计对整体准确率有正向帮助,尤其是在经过MemOpt训练之后效果更明显,但它对检索召回率的提升很有限。第一人称叙述这个设计不仅进一步提升了准确率,还持续提高了EgoLifeQA这个基准上的召回率,这说明它确实起到了"拉近记忆措辞和用户提问措辞之间距离"的作用。
在读记忆这一端,时间锚定这个功能(也就是允许按时间段限定搜索范围)在经过MemOpt训练的记忆上效果最明显,同时伴随着召回率的提升。按时间顺序排列检索结果这个设计,则主要体现在提升准确率上,对召回率的影响比较小或者说参半,这说明它的价值主要是帮助AI更好地推理已经找到的证据,而不是帮助找到更多证据。
还有一个很有意思的对比实验,是关于可检索性这个奖励信号到底应该怎么计算。一种做法是直接拿原始问题当作固定的搜索关键词去测试,简单省事;另一种做法是先跑一遍完整的智能体读取流程,记录下它真实的搜索轨迹,再拿这个轨迹去测试。结果显示后一种更复杂的做法效果更好,因为智能体在真实读取过程中会重新表述问题、限定时间范围,这些操作暴露出的检索失败场景,比直接用原始问题测试要更真实、更全面。
写在后面
读完这篇论文,最触动我的其实不是那些准确率提升了几个百分点的数字,而是研究者拆解问题的方式。
他们把"记忆系统为什么不好用"这个笼统的抱怨,精确地拆解成了写得不好和找不到两个独立的失败模式,又把"写得不好"进一步拆解成忠实性、信息量、可检索性三个可以单独衡量、单独优化的维度。这种拆解本身就是一种很值得学习的思维方式,遇到一个混杂的大问题,先别急着上手解决,先搞清楚这个问题到底是由哪几个互相独立的小问题叠加而成的。
还有一个细节值得单独说一说,论文里提到他们尝试过让写记忆的AI参考前一段视频的内容,结果反而让效果变差了。这个"反直觉"的结果其实挺有启发性的,我们往往会本能地认为"上下文越多越好",但这个实验提醒我们,上下文带来的也许不只是信息,还有依赖和误差的传递。前一段记忆如果写错了,后面所有依赖它的记忆都会被带偏,这种链式反应的风险,有时候比"少了一点上下文"的损失更致命。独立处理每一段,看起来笨,但避免了错误滚雪球式地累积,这是一种对稳健性的朴素但有效的权衡。
这篇论文研究的是智能眼镜记录生活这个具体场景,但它触及的问题其实更普遍。任何需要长期积累信息并随时调用的系统,无论是你的笔记软件、聊天记录,还是公司的知识库,都要面对同一个两难,记得太多会乱,记得太少会丢。这篇论文给出的答案不是终极解决方案,但至少提供了一套可以拆解、可以单独优化、可以验证效果的思路框架。
如果有一天你的智能眼镜真的能准确回答"我上个月把戒指放在哪了",你会不会突然意识到,它其实比你自己更了解你自己的生活细节?这是一种便利,还是一种让人略感不安的事情?
Q&A
Q1:MemLife是什么?
A:MemLife是Meta Reality Labs提出的一套多模态记忆系统,它能把超长时间跨度的第一人称视频压缩成带时间标记、带人物信息的文字记忆,并通过一个能自主思考的智能体来检索和回答关于这些记忆的问题。
Q2:MemOpt解决了什么问题?
A:MemOpt用强化学习训练负责写记忆的AI,通过忠实性、信息量、可检索性三个独立的奖励信号,让AI学会写出更准确、更有用、更容易被搜索到的记忆内容,而不依赖笼统的最终答案对错来训练。
Q3:MemLife相比传统方法有什么优势?
A:MemLife存储空间比同类系统小几倍到三十多倍,读取速度快十几倍,在四个长时间跨度评测基准上准确率比最强的无训练基线方法提升了4.6到12.0个百分点,结合MemOpt训练后提升更明显。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.