Agent世界头像

百度OCR 2开源:KV缓存从47GB压到1.77GB

一、发生了什么:48 小时内,两家把"长文档显存"摊开讲

2026 年 10 月 27 日,百度发布并开源 Unlimited OCR Works 2(文心 Unlimited OCR 2)。GitHub 仓库 baidu/Unlimited-OCR 的 Release 记录写明「2026/10/27 We release Unlimited OCR 2」,权重同步上到 Hugging Face,代码仓截至当日抓取为 2.89 万 star、MIT 许可。

量子位 10 月 27 日的报道给了三组关键数字:百页级单序列测试中,峰值 KV 缓存从标准解码的 47GB 降到 1.77GB,降幅约 96%;16 路并发下端到端吞吐从 360 词元/秒提升到 1315 词元/秒,约 3.65 倍;单步解码速度分别是全注意力的 7.0 倍、上一代所用参考滑动窗口注意力(R-SWA)的 5.6 倍。质量侧,MPDocBench 综合 84.59,团队自建的百页级基准 MarathonDocBench(100 份文档,每份 103–300 页)得分 77.06。演示任务是 884 页的英文版《指环王》,42 分 56 秒读完,平均每页约 2.9 秒,过程中自动标记 466 处跨页合并。

另一条线索在 10 月 26 日:量子位报道,岩山科技旗下岩芯矩阵联合香港科技大学、CMU 开源 EdgeRock-4B——256K 上下文下注意力 KV 固定 72MiB,比源模型少 99.1%,单张 80GB 卡跑 512 路并发、12124 词元/秒(6.42 倍),Apache-2.0。

两件事回答的是同一个问题:文档或推理历史变长时,那笔显存账能不能不涨。一个从推理调度下手,一个从记忆结构下手。

二、技术拆解:一笔账,两条路线

账先算清楚:按量子位 10 月 26 日报道,Qwen3.5-4B 每词元新增 32 KiB KV 缓存,64K 序列即 2 GiB、256K 即 8 GiB;500 条序列光 KV 就要 1 TiB。

路线 A:不动模型结构,动注意力和解码调度

OCR 2 沿用上一代 DeepEncoder + 语言模型结构,改动集中在语言模型内部:把 R-SWA 升级成稀疏参考滑动窗口注意力(SR-SWA),用两层筛选取舍"这一步该看什么":

  • 第一层 Page Gate:根据当前解析位置,把候选视觉信息收拢到相关页面范围,无关页面不参与计算。
  • 第二层 Token Sieve:页内也只挑相关的视觉信息块——先用各块简要表示算相关性,再 TopK 取固定数量的块,然后读块内具体视觉信息,而不是只读摘要。
  • Local Window:固定大小的局部滑动窗口随生成前移,负责顺着刚才的内容往下写。

块数固定、窗口固定,单步要参考的信息量就被框死——文档再长,这一步还是这么多活。另一半在存:无限解码机制把文档切成页面块依次解析,相邻两块重叠一页,进下一块时复用这页的视觉 KV 缓存,同时保留上段末尾的文本缓存,其余及时释放。算得少 + 存得封顶,才有 47GB→1.77GB。

路线 B:把"记忆"改成有界结构

EdgeRock-4B 走另一条路。它基于 Qwen3.5-4B 分阶段转换而来,不需要从头预训练:保留 24 个 Gated DeltaNet 层,把 8 个全注意力层换成 1024 窗口的滑动窗口注意力,外加独立的记忆模块——记忆岩锚(Rock Memory Anchors,RMA)。

每条序列的历史拆成三份:循环状态抓大意,1024 词元的局部窗口管眼前,锚点库从更早历史里留住关键。写入规则很工程化:每个词元生成候选记录并打分,每累积 256 条就与库里已有记录比较,只留得分最高的 1024 条,四个 KV 组各自独立。锚点内容不变、带来源位置,哪怕来源早已滑出局部窗口仍能读到,注意力 KV 因此固定 72MiB。

说服力在消融实验:256 段 16K–130K 词元上下文、共 1024 个问题,开着 RMA 答对 964 个(94.1%),关掉 8 个 RMA 模块只答对 4 个(0.4%)。推理能力也没牺牲——AIME 2024–2026 平均一次通过率 82.9%,对照组最强的有界状态模型只有 18.8%。

维度Unlimited OCR 2EdgeRock-4B
改造对象注意力选择 + 分块解码调度,模型结构不变解码器结构 + 记忆机制,需权重转换
KV 上界被框在当前页面块规模内固定 72MiB(256K 上下文)
压缩幅度47GB → 1.77GB,约 96%减少 99.1%
吞吐16 路并发 360 → 1315 词元/秒单卡 512 路,12124 词元/秒
主打指标MarathonDocBench 77.06AIME 2024–26 82.9%
许可MITApache-2.0

三、工程上怎么用:先按内存算容量,再调旋钮

OCR 2 的 README 给了条可直接照抄的部署路径:Transformers 快速验证、SGLang 服务化,影响显存的环境变量都写了,踩坑信息在注释里。

# 长文档按页窗调度,复用上一个窗口的 KV 尾部
export SGLANG_UOCR_EANABLE_DOC_LIMIT=1
export SGLANG_UOCR_DOC_BASE_PAGE_WINDOW=10
export SGLANG_UOCR_MAX_PAGE_TOKENS=20000
# SAM 注意力偏置的分块上限,默认 512 会一次性分配约 462MiB 容易 OOM
export SGLANG_OPT_UOCR_SAM_REL_POS_BIAS_MB=64
export SGLANG_UOCR_SHM_WRAP_MODEL_DATA=1
export SGLANG_VLM_CACHE_SIZE_MB=0
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True

python -m sglang.launch_server \
    --model-path baidu/Unlimited-OCR-2 \
    --chat-template unlimited-ocr \
    --mem-fraction-static 0.7 \
    --max-running-requests 64 \
    --max-prefill-tokens 2048 \
    --cuda-graph-backend-decode full \
    --cuda-graph-max-bs-decode 64 \
    --cuda-graph-max-bs-prefill 16384 \
    --cuda-graph-bs-prefill 1024 2048

README 点明的几个旋钮值得记下来:

  • --mem-fraction-static 给 0.75 在 32 路以上并发时余量不够,0.7 更稳。
  • --max-prefill-tokens 驱动一个约 [tokens, context/32] 的临时张量,显存随它线性涨;4096 降到 2048,峰值直接减半。
  • 最大的 --cuda-graph-bs-prefill 桶必须等于 --max-prefill-tokens:偏小会回落 eager,偏大则白占捕获显存。
  • 页窗越小峰值越低,但跨窗边界的续接块会丢上下文,跨页合并质量下滑——省内存和保质量直接冲突。

容量可以自己算一遍(按公开参数推算,不是我们的跑分):80GB 卡按 0.7 预留约 56GB,减去 4B 模型 bf16 权重约 8GB,剩约 48GB 给 KV。EdgeRock 每条序列全部历史状态 97.76MiB,48GB 约合 500 路,与技术报告的 512 路上限吻合;换成源模型每条 2GiB,只剩 24 路左右。同样一张卡,并发差一个数量级。

我们的内容流水线每天出十来条稿子,卡住的不是生成,而是把几十页 PDF 资料转成可检索文本:以前按页拆、按批提交、再拼接,返工基本都出在跨页断句和跨页表格上。OCR 2 把切块和衔接收进模型内部,外部只提交整份文档,这层手工拼接就能省掉;对做智能体和内容工程的人,这类"少一层胶水"的改进比榜单涨两分更有体感。这个方向在智能体世界(agentshijie.com)的工具选型里一直被当作硬指标。

四、读者可核对清单

  • 仓库与许可:github.com/baidu/Unlimited-OCR(MIT,Release 记录 2026/10/27);github.com/rockmatrix-ai/EdgeRock(Apache-2.0,仓库创建于 2026-10-07)。权重分别在 Hugging Face 的 baidu/Unlimited-OCR-2 与 rockmatrix-ai/EdgeRock。
  • 技术报告:EdgeRock 中文报告在 rockmatrix.ai/documents/edgerock-report-zh.pdf,第 1 页摘要即给出 72MiB、99.1%、6.42 倍、82.9% 四个数。
  • 最小验证代码:pip install torch==2.13.0 transformers==4.52.1 后 AutoModel.from_pretrained("baidu/Unlimited-OCR-2", trust_remote_code=True),多页调用 model.infer_multi(..., image_files=pages)。
  • 数字出处:47GB→1.77GB、1315 词元/秒、7.0×/5.6×、84.59、77.06、884 页、466 处来自量子位 2026-10-27 报道;12124 词元/秒、512 路、82.9%、18.8%、94.1%/0.4% 来自量子位 2026-10-26 报道与上述 PDF。

五、一句判断

我的判断是:长上下文竞争点已从"能不能装下"转到"每一步开销是不是常数"。对做智能体的人,上下文长度不再是架构约束,容量可按请求数规划、推理前就把内存算清——确定性比峰值数字更值钱。

#AI智能体 #大模型 #开源

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/artmen/article/details/169266438

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--