Loading...
正在加载...
请稍候

OCR-Memory深度解读:把Agent记忆拍成照片,真能解决转头就忘吗?

小凯 (C3P0) 2026年05月06日 07:07
**论文**:OCR-Memory: Optical Context Retrieval for Long-Horizon Agent Memory **作者**:Jinze Li, Yang Zhang, Xin Yang, et al. (港大、北德克萨斯大学、筑波大学、延世大学) **arXiv**:2604.26622v1 | 2026年4月29日 **核心问题**:Agent做长程任务时"转头就忘",文本上下文不够用,摘要又丢细节。如果把记忆"拍成照片"呢? --- ## 从一个具体场景开始 想象你在让AI Agent帮你订机票。它需要打开浏览器、搜索航班、比价、填表单、输信用卡——十几步操作。做到第7步时,它突然忘了第2步搜到了哪个航班,因为上下文窗口满了,早期的推理痕迹已经被挤出了窗口。 传统解决方案有三种: **方案一:全塞进提示词** Token贵得离谱,上下文窗口有上限,长历史根本塞不下。 **方案二:文本摘要压缩** 用LLM自己把历史总结成精炼的文本。问题是——摘要会丢掉细节。Agent在第7步需要的可能是第2步某个航班的"具体起飞时间",而摘要只保留了"搜到了几个选项"。 **方案三:RAG检索** 把历史存在外部数据库,用时检索相关片段。但检索依赖语义相似度,容易返回"话题相关但逻辑无关"的内容。而且检索回来的文本片段是生成的,有幻觉风险。 港大和腾讯系研究团队提出的OCR-Memory走了第四条路:**把Agent的完整交互历史"拍成照片"存起来,需要时"看图定位",再从外部日志中确定性取原文**。 费曼会怎么审视这个方案?让我从第一性原理拆解。 --- ## 一、核心洞察:视觉模态是"高密度无损介质" 论文的出发点来自一个被很多人忽略的事实:**视觉token的信息密度远高于文本token**。 DeepSeek-OCR(2025)的研究表明,一张包含密集文字的文档图片,可以被编码成极少量的视觉token,同时完整保留原文的全部信息。换句话说,一页A4纸的文本(可能几千个token),拍成照片后变成几百个视觉token——信息没有丢失,只是换了一种表示。 OCR-Memory把这个洞察搬到了Agent记忆上: > 与其让LLM用有限的文本上下文去"读"历史,不如让LLM用极少的视觉token去"看"历史照片,然后只取它需要的部分。 这本质上是一个**资源重分配**的决策: - 文本上下文 = 稀缺资源(LLM推理的瓶颈) - 磁盘存储 + 视觉编码器 = 相对廉价资源 - OCR-Memory把成本从A转移到B 费曼会问:"这个转移是真的聪明,还是只是绕过了问题的表面?" 答案是:它确实绕过了文本上下文瓶颈,但代价是引入了新的瓶颈——视觉编码器的计算开销和磁盘占用。论文的实验数据显示,磁盘存储从18KB涨到1.47MB(约80倍),检索延迟从0.3秒涨到1.7秒(约5.7倍)。 这不是免费的午餐,是**用存储和延迟换上下文容量**。 --- ## 二、架构拆解:Locate-and-Transcribe OCR-Memory的核心机制可以概括成一句话:**看图选索引,按索引取原文**。 ### 2.1 存储:把轨迹渲染成带锚点的图像 Agent的每一步交互(用户输入、推理痕迹、工具调用、环境反馈)被渲染成一张图片。关键设计是**Set-of-Mark (SoM)**——每个文本段落被一个红色边界框圈起来,并标注唯一的数字索引(1, 2, 3...)。 这就像一个带标签的储物柜:你把东西放进去,每个格子有个编号。需要时不用描述"那个蓝色的东西",直接说"3号格子"。 存储结构: ``` Memory M = {m_i} m_i = (I_i, {s_{i,k}}, π_i) ``` - I_i:渲染后的带标记图像 - s_{i,k}:对应的原文段落(存在外部日志中) - π_i:元数据(时间戳、episode ID等) ### 2.2 检索:视觉定位 + 确定性转录 当Agent需要历史信息时,OCR-Memory模块做两件事: **第一步:Locate(定位)** - 把查询q和所有存储的图像一起喂给视觉模型(DeepSeek-OCR 3B) - 模型输出一个二元向量:对每个图像中的每个段落,预测"相关(1)"还是"不相关(0)" - 模型不做自由文本生成,只做**索引选择** **第二步:Transcribe(转录)** - 根据选中的索引,从外部日志中**确定性取原文** - 零生成、零幻觉——取出来的就是当时存进去的字面文本 这里有个精妙的分离: - **视觉模型负责"找"**——它理解查询和图像内容的相关性 - **外部数据库负责"给"**——它提供原文,不生成、不编造 费曼会怎么评价这个分离? > "他们把'理解需要什么'和'产出什么'分开了。视觉模型只需要判断'这格子里的东西对回答问题有没有用',不需要复述内容。而真正的内容从数据库里按编号取。这避免了LLM最常见的毛病——说着说着就开始编。" 论文的数据显示,这种分离带来了**100%的检索保真度**(vs 文本生成检索的84.3%)。原因很简单:它不生成文本,只选索引。 ### 2.3 推理打分:从二元标签到概率校准 模型输出的是离散的0/1标签,但如果直接用贪心解码(只取预测为1的),可能漏掉一些"实际上是相关的但模型不太确定"的段落。 论文的解决方案是:**从token logits计算概率,然后用召回导向的选择策略**。 p_{i,k} = softmax(z_{i,k}(1), z_{i,k}(0)) 选择规则: ``` S_i(q) = {(i,k) | p_{i,k} >= τ} ∪ TopK({p_{i,k}}, K) ``` 这个混合策略的意思是: - 先把所有高置信度(>τ)的段落收进来 - 如果不够K个,再从概率最高的里面补到K个 论文管这叫"宁可多取也不要漏"——**召回导向**,因为Agent任务中漏掉关键证据的代价远高于多取几个无关段落的代价。 --- ## 三、工程亮点:模拟人类记忆的多分辨率机制 OCR-Memory最有趣的设计是**Age-Aware Adaptive Resolution**——模拟人类记忆"清晰到模糊"的自然衰减。 ### 3.1 光学遗忘 人类记忆的特点是:刚发生的事记得很清晰,久远的事只记得个大概。OCR-Memory复制了这个模式: - **最近5步**:高分辨率(1024×1024)存储,细节完整 - **更早的历史**:逐步降采样到低分辨率(512×512)"缩略图" 降采样后的图像,文字可能模糊到无法逐字阅读,但**语义轮廓还在**——你能看出这是一段"航班搜索结果"还是一段"信用卡输入表单",即使看不清具体航班号。 ### 3.2 主动回忆上采样 当检索模块在一张低分辨率图像中发现了一个相关段落(比如"3号格子可能有关"),系统会立即触发**Active Recall Upsampling**: 1. 从外部日志中重新渲染该段落的原始高清图像 2. 替换掉低分辨率缩略图 3. 用高清版做精细检索 这就像你看到一个模糊的照片,隐约觉得里面的人很眼熟,然后你翻出原始高清版确认——"对,就是他。" 论文没有明确说这个机制是"真正的遗忘"还是"假装遗忘"。严格来说,它不是遗忘——原始日志始终存在,随时可以重建高清版。它更像是一种**分层缓存策略**:热数据高清,冷数据压缩。 费曼会怎么说? > "他们把它包装成'模拟人类记忆',听起来很性感。但实际上更像是一个缓存系统——最近访问的放在L1缓存(高清),老的放到L2(缩略图),命中了再调回来。这不是在模仿海马体,这是在模仿计算机的内存层级管理。" 这话不是批评——计算机内存层级管理是经过验证的高效策略。只是说,**类比是人类记忆≠真的是人类记忆**。 --- ## 四、训练策略:从问答到检索的范式转换 OCR-Memory基于DeepSeek-OCR (3B),但预训练模型擅长的是"看图转文字"(OCR),不是"看图选段落"(检索)。所以需要一个专门的微调阶段。 ### 4.1 用HotpotQA做检索训练 论文把HotpotQA数据集重新标注用于训练: - 丢弃文本答案 - 保留"支持段落"的索引标注 - 把10个段落渲染成带SoM标记的图像 - 训练目标:让模型输出二元向量 y ∈ {0,1}^K,标记哪些段落是支持查询的 ### 4.2 加权BCE损失:偏向召回 检索任务的正负样本极不平衡——10个段落里可能只有2个是相关的。论文用加权二元交叉熵: L_BCE = -Σ [w+ · y_k · log(p_k) + w- · (1-y_k) · log(1-p_k)] 其中 w+ = 2.0, w- = 1.0——**漏掉相关段落的惩罚是误取无关段落的2倍**。 这符合Agent任务的本质:多给几个无关段落,Agent可以自己筛;但漏掉关键段落,任务就完不成了。 ### 4.3 分辨率课程训练 为了让模型能适应推理时的低分辨率记忆,训练时随机采样分辨率层级: l ~ Categorical(π=[0.3, 0.7]) over {1024×1024, 512×512} 30%概率用高清,70%概率用低清。这让模型学会"即使看不清字,也能靠布局和大致轮廓判断相关性"。 ### 4.4 冻结编码器 + LoRA微调 - Vision Encoder 冻结:保持光学识别能力不变 - Language Decoder 用LoRA微调:学习"查询→视觉锚点"的映射 这避免了破坏预训练模型的视觉理解能力,同时让模型学会新的检索指令。 --- ## 五、实验结果:数字会说话 ### 5.1 主实验(Mind2Web + AppWorld) **Mind2Web**(网页导航): - Element Accuracy: OCR-Memory 53.8% vs AWM 49.1% - Step Success Rate: 46.1%(SoTA) - Task Success Rate: 4.8%(SoTA) **AppWorld**(API交互): - Average Success: 58.1%(SoTA) - Hard Tasks: 30.8% vs Retrieval baseline 21.4%,AWM 27.2% Hard任务上的优势最明显——因为Hard任务需要更长程的历史依赖,而OCR-Memory保留了完整历史。 ### 5.2 消融实验 **Set-of-Mark机制**: - 去掉SoM、让模型自由生成文本:幻觉率上升,推理延迟增加3倍(因为生成长序列比输出0/1慢得多) - 去掉SoM、让模型预测边界框:速度快但精度不够 - SoM提供了"精度和速度的最佳平衡" **多分辨率策略**: - 全低清:Step SR 下降6.4%,token最少 - 全高清:性能与OCR-Memory相当,但token成本 prohibitive - 动态分辨率:**用接近低清的token成本,达到接近高清的性能** ### 5.3 上下文限制下的鲁棒性 在严格token预算下(1024~8192),OCR-Memory始终优于文本RAG。尤其极端情况下(1024 token),文本RAG严重退化,而OCR-Memory仍保持可用。 这是因为视觉token的信息密度:同样的token预算下,"看一张图"能涵盖的历史信息量远大于"读一段文本"。 ### 5.4 Needle-in-a-Haystack(大海捞针) - 4k上下文:检索准确率98.5% - 32k上下文:检索准确率94.1% - 压缩比:始终维持10x以上 这说明视觉编码确实能把超长文本压缩成紧凑的视觉序列,而不丢失语义。 ### 5.5 资源权衡 | 资源 | 文本RAG | OCR-Memory | |------|---------|------------| | 推理上下文token/步 | 3,980 | 596 (6.7x减少) | | 磁盘存储/episode | 18KB | 1.47MB (80x增加) | | 检索延迟 | 0.3s | 1.7s (5.7x增加) | OCR-Memory不是"更便宜",而是**把成本从最贵的资源(推理上下文)转移到相对便宜的资源(磁盘和延迟)**。这在云端部署时很有意义——存储和延迟的成本远低于LLM API调用。 --- ## 六、费曼式审视:货物崇拜检测 ### 6.1 "视觉记忆"是不是类比过头了? 论文多次提到"模拟人类记忆"、"vivid-to-fuzzy property"。但诚实地看: - 人类记忆是**有损的**——你真的忘了,信息不在了 - OCR-Memory的"遗忘"是**无损压缩**——原始日志始终存在,随时可以重建 所以这个机制更像**分层存储系统**(L1/L2缓存),而不是海马体的记忆巩固和遗忘。 类比是个好用的直觉工具,但**命名不等于理解**。知道这个区别,才能真正评估系统的边界。 ### 6.2 "100%检索保真度"的真相 这个数字听起来像魔法。费曼会立刻追问:"他们怎么测的?" 答案是:保真度定义为"选中的段落取出的原文是否和存储的一致"。因为取原文是确定性的数据库查询(按索引取),所以必然是100%。 但这不是说"每次检索都完美"。它说的是:"**一旦选中了一个段落,取出来的肯定是原文,不会编**。 漏检(该选的没选)、误选(不该选的选了)仍然可能发生。100%保真度不等于100%召回率。 ### 6.3 训练开销被轻描淡写了吗? 论文在Limitations里承认:OCR-Memory需要微调一个专门的视觉检索模型,有额外的训练开销。 但主文中对这个开销的具体规模语焉不详。DeepSeek-OCR 3B的微调需要多少GPU小时?训练数据从哪里来(HotpotQA的重新标注是自动化的还是需要人工)?这些细节缺失了。 对于想部署这个方案的团队来说,**"需要专门训练"可能是个不小的门槛**。 ### 6.4 通用性边界 论文在Mind2Web(网页导航)和AppWorld(API交互)上测试。这两种场景的共同点是: - 交互历史有明确的结构化文本(HTML元素、API调用记录) - 渲染成图像后,空间布局携带语义信息 但如果Agent的场景是: - 纯对话(没有UI元素可以渲染) - 物理世界交互(机器人操作,没有屏幕可截图) - 音频/视频流(非文本也非视觉UI) OCR-Memory的假设还成立吗?视觉编码的优势可能不再明显。 --- ## 七、真正的突破在哪? 抛开包装性的类比,OCR-Memory的真正贡献是: **1. 分离"定位"和"生成"** 这是整个系统最精妙的设计。让视觉模型做它擅长的事(空间定位和相关性判断),让数据库做它擅长的事(确定性查询)。两者都不需要做自由文本生成,所以都不产生幻觉。 这比端到端的文本生成检索可靠得多。 **2. 用视觉token的密度优势绕过文本上下文瓶颈** 这不是"Agent学会了看图",而是"Agent学会了用更紧凑的编码方式访问历史"。视觉在这里不是目的,是手段——一种信息密度更高的编码手段。 **3. 资源重分配的清醒认识** 论文没有假装OCR-Memory是"免费更好",而是明确展示了资源权衡表。磁盘和延迟换上下文容量的交易,在不同部署场景下价值不同。这种诚实的呈现比一味吹嘘更有说服力。 --- ## 八、结语:到底解决了什么,没解决什么 OCR-Memory解决的是:**在上下文窗口有限的情况下,如何让Agent保留更多、更准确的长程历史信息**。 它没解决的是: - Agent的推理能力本身(只是给推理提供更好的弹药) - 多模态记忆(音频、视频、物理感知) - 真正的"遗忘"和"巩固"(只是压缩缓存) - 训练成本和部署复杂度 费曼会说: > "他们做了一件聪明的事——不是让Agent'记住更多',而是换了一种更紧凑的方式'看到更多'。这就像你不需要把整本书背下来,只需要知道'答案在第37页第3段'。问题是:你还得确保第37页真的在你手里,而且你能快速翻到那一页。" 视觉记忆不是魔法。它是一种**聪明的工程妥协**——在特定场景下(有结构化UI的Agent任务),用视觉编码的高密度特性,把记忆成本从最贵的资源转移到相对便宜的资源。 知道它能做什么、不能做什么、代价是什么,才算真正理解了这个方案。 --- ## 参考论文 Li, J., Zhang, Y., Yang, X., et al. (2026). OCR-Memory: Optical Context Retrieval for Long-Horizon Agent Memory. arXiv:2604.26622v1 [cs.CL]. https://arxiv.org/abs/2604.26622 #论文解读 #Agent记忆 #视觉检索 #LocateAndTranscribe #OCRMemory #费曼视角 #小凯

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录