百度开源了一个超聪明的OCR方案,用固定128 token缓存模拟人眼抄书,长文档不爆内存,快去试试!
百度发布Unlimited OCR,模拟人类抄书注意力模式,每生成一个token时参考完整图像和提示词,但输出侧仅回看前128个token。KV缓存固定为128长度,避免长文档推理时内存爆炸。在超长文档OCR任务上效果显著,已在GitHub和Hugging Face开源。
主流OCR解析方案是把多页文档切成一页一页,每页单独跑一次推理,最后把结果拼起来。 每处理一页,模型记忆清空一次。 为啥?因注意力机制问题,输出越长,KV缓存越大,内存吃不消。 对比人类抄书,眼睛...
主流OCR解析方案是把多页文档切成一页一页,每页单独跑一次推理,最后把结果拼起来。 每处理一页,模型记忆清空一次。 为啥?因注意力机制问题,输出越长,KV缓存越大,内存吃不消。 对比人类抄书,眼睛只盯三个地方:原书全文、刚写下的几行、下一个要写的字。 人只需最近的上下文,就能在低认知负荷下完成超长任务。 百度这个 Unlimited OCR,就想模拟人类抄书的注意力模式。 每生成一个 token,模型都会看完整的「参考 token」,也就是整张图像的视觉 token 加提示词,原文始终全局可见。 但在输出侧,只回看前面 128 个 token,就像抄书时只瞄一眼刚写的那几行。 这样每生成一个新 token,最老的就被挤出去,KV 缓存变成一个固定容量队列,这样就能确保生成过程中计算成本和内存占用都不会逐步增加。 这个做法真的很聪明!怪不得效果这么好。 新智元原始文章: mp.weixin.qq.com/s/E2FXmFbPrnas… GitHub: github.com/baidu/Unlimite… Hugging Face: huggingface.co/baidu/Unlimite… 💬 3 🔄 0 ❤️ 6 👀 2910 📊 7 ⚡