百度开源文心Unlimited OCR 2:百页级峰值KV缓存从47GB降至1.77GB
百度发布并开源文心Unlimited OCR 2,采用稀疏参考滑动窗口注意力SR-SWA与分块解码机制,宣称百页级单序列峰值KV缓存由47GB降至1.77GB、减少约96%,并演示连续解析884页文档。
百度发布并开源文心Unlimited OCR 2。据量子位报道,该模型在技术报告的百页级单序列测试中,峰值KV缓存占用从标准解码的47GB降至1.77GB,减少约96%;这一数字仅指KV缓存,不含模型权重等其他显存开销。
代码与权重已在GitHub和Hugging Face上线。上一代Unlimited OCR累计下载量超过1000万,GitHub约2.86万Star。
SR-SWA与分块解码如何缩减计算和缓存
文心Unlimited OCR 2延续上一代的基础架构:书页图像先经DeepEncoder转为视觉Token,再由语言模型逐步生成识别结果。关键变化在语言模型内部,上一代的参考滑动窗口注意力R-SWA升级为稀疏参考滑动窗口注意力SR-SWA。
SR-SWA做两层筛选。第一层Page Gate根据模型当前解析位置,把候选视觉信息收拢到相关页面;第二层Token Sieve在选定页面内用TopK挑出得分最高、数量固定的视觉信息块,再读取这些块中的具体视觉信息。筛选结果与固定大小的局部滑动窗口一起参与解析,因此每一步需要参考的信息量被框住。
缓存侧由无限解码机制控制。文档被划成大小可控的页面块依次解析,相邻两块重叠一页,进入下一块时复用重叠页的视觉KV缓存和上一段输出末尾的文本缓存,其余已用不上的页面视觉缓存及时释放。量子位称,用户仍照旧提交整份文档,分块与衔接在模型内部完成。
报告中的速度、吞吐与评测数字
技术报告给出的对比测试中,采用分块处理和边界缓存复用后,单序列峰值KV缓存从47GB降至1.77GB。16路并发测试中,端到端吞吐量从360提升至1315 Token/秒,约为标准解码的3.65倍。SR-SWA的单步解码速度分别为全注意力的7.0倍、上一代R-SWA的5.6倍,且单步耗时随文档变长基本保持水平。
评测方面,MPDocBench综合得分84.59;团队新建的MarathonDocBench包含100份、每份103至300页的文档,用于考察跨页段落和表格衔接,文心Unlimited OCR 2在该基准得77.06。报告称两项综合得分均为所列参评模型最高值。对比上一代,其单页综合得分基本持平。
连续解析长文档的演示与适用场景
量子位称实测将884页英文版《指环王》一次性输入,约42分56秒完成解析,输入884页对应输出884页,平均每页约2.9秒;抽查第600页和第750页正文与原文一致,整个任务标记466处跨页合并。报道还提到模型连续识别7部《哈利·波特》共3600余页、及《三体》全集1200余页的演示。
团队将这一方向概括为OCR 3.0,即把持续处理整份文档作为目标;报道列举的用途包括数百页年报、技术手册和扫描件的连续解析转写。