首页/新闻资讯/正文详情

探索OCR:长文档解析,可以看看Unlimited OCR 2

发布时间:2026/11/4 2:31:14 来源:云帆数科 栏目:资讯中心
探索OCR:长文档解析,可以看看Unlimited OCR 2
写在前面今年的前十个月我一直在 OCR 上折腾从 PP-OCR 的轻量部署到 VL 文档解析再到桌面端、安卓端。我发现这OCR这条路上有无数的场景和无数的对应方案。每一个工具的出现都是为了解决一个真实的需求。今天要说的Unlimited OCR 2也一样它解决的长文档场景。在上百页的 PDF / 扫描件的场景下要一口气解析完准确率要达标又不能太吃硬件。我们怎么搞在之前我们会先想到切页、拼结果、自己写跨页逻辑。在我们自己构建的流程中遇到很多问题也填了很多坑。现在好了有了新的工具。百度开源的 Unlimited-OCR现在主推 Unlimited OCR 2口号是从 Long-Horizon 走到 Unlimited-Horizon Parsing。它想把超长文档解析从工程缝缝补补变成模型侧直接提供的能力。长文档解析的难点在哪里传统 OCR 流水线很擅长单页图进文本出。文档一长麻烦就来了表格续接、段落跨页、标题层级要连贯。你把每页单独跑再拼接模型其实看不到全局。视觉大模型做文档解析又常被上下文长度和注意力复杂度卡住。文档越长算力与显存需求就越高。Unlimited-OCR 的野心就是要把长文档一次解析搞定而不是事后拼接的补丁。Unlimited OCR 2 厉害的地方SR-SWA像人类一样做视觉 Token 选择README 里提到的 Sparse Reference Sliding Window AttentionSR-SWA是 Unlimited OCR 2 处理超长文档的核心机制。它的思路是在超长序列中文本和视觉特征不做全量的两两交互而是先压缩成一组规模固定的 working references文档示例为 512 tokens 量级。这样每一步解码的延迟和显存占用就不会随文档长度线性增长。这带来的直接好处是文档页数增加时复杂度被控制在可控范围内不需要在工程侧反复切窗、拼接结果。论文里有一组对比数据就很能说明问题。在百页级的 MarathonDocBench 上常规解码单序列峰值 KV 约 47.00 GB页级分块 复用边界页 KV峰值 KV 降至约 1.77 GB并发 16 时吞吐从约 360 TPS 提升到约 1315 TPS需要说明的是1.77 GB 指的是 KV 峰值不是整卡占用。但对 16GB 显存的私有化部署来说这组数字意味着要在消费级显卡上跑长文档页窗机制必须开启。我的机器与目标硬件很简单GPURTX 5060 Ti 16GB目标本机私有化能解析自己的长 PDF / 扫描件16GB 上的显存账魔塔ModelScope仓库是 PaddlePaddle/Unlimited-OCR-2权重分两片 safetensors约 5.0 GB 1.7 GB合计约 6.7 GBdtype 为 bfloat16架构名 UnlimitedOCRForCausalLM。整仓含定制 SGLang wheel、tokenizer、演示素材约 6.9 GB。参数量公开口径是 3B 级。按论文、README 和魔塔体积单请求「公开可核对」的地板大致是权重约 6.7 GB魔塔可核对页窗打开后的峰值 KV论文 batch1约 1.77 GBSAM bias 分配默认块太大时可能单次冒出约 462 MiB改成 64 更稳合计约 9 GB还没算 activations、视觉 crop、PDF 转图峰值16GB 扣完这块余量并不宽裕。所以我要主动砍掉这些会涨显存的东西页窗必须开DOC_LIMIT1窗口先偏小并发先按 1 来DPI 别无脑顶 300扫描件尤其吃显存和主机内存gundam切块能少用就少用先 base / 少页验证max_tokens、单页输出封顶设清楚两条路径我怎么在 5060 Ti 上落地第一步Transformers 冒烟官方环境Python 3.10torch2.13.0、transformers4.52.1等。加载baidu/Unlimited-OCR-2bfloat16.cuda()。我在 5060 Ti 上测试的顺序单页infer确认能出字、显存起得来5–10 页infer_multi确认跨页格式正常再慢慢加页同时盯nvidia-smi第二步SGLang 私有化服务这里才是真·折腾现场也是我私有化成功的主路径。要点必须用仓库 / 模型页提供的定制 SGLang wheel别默认通用 vLLM / 随便一个 SGLang 就能同款复现再加pymupdf、fastokens服务起来后走 OpenAI 兼容接口PDF 先转图再请求离线环境把权重 wheel一起放进本地制品库显存相关设置下面这些是 README 里明确跟内存挂钩、而我在 5060 Ti 上真正在意的配置项。页窗16GB 的关键--uocr-gundam-page-window和--uocr-base-page-window默认都是 1。官方示例里可能设得更大16GB 上要先保守确认稳定后再往上加。SAM bias 块大小SGLANG_OPT_UOCR_SAM_REL_POS_BIAS_MB64。默认 512 时文档说可能冒出约 462 MiB 的大块分配直接 OOM。这个我一上来就改成 64。静态显存占比--mem-fraction-static 0.7。16GB × 0.7 ≈ 11.2GB 静态池扣掉约 6.7GB 权重留给 KV 和余量大概4–5GB。所以如果在 16GB 的卡上把比例调得太高比如 0.75缓冲空间会被进一步压榨并发一高或者页窗一开大极容易直接爆显存OOM。prefill--max-prefill-tokens先用 2048 量级别一上来 4096。它会拉临时大张量显存近似线性涨。--cuda-graph-bs-prefill的最大桶要和它对应对齐否则回退 eager 或白占捕获内存。共享内存与碎片SGLANG_UOCR_SHM_WRAP_MODEL_DATA1大 crop 走共享内存。PYTORCH_CUDA_ALLOC_CONFexpandable_segments:True减轻大块连续分配碎片。输出预算--uocr-max-page-tokens在启动时设上限0 表示不限16GB 上建议显式给值请求里的max_tokens也一定要显式设。宁可先保守再按业务加。一句话总结我在 5060 Ti 上的策略页窗开、窗口保守、bias64、mem-fraction0.7、并发1、先少页后加页。Windows PowerShell 配置方式先说明一个现实SGLang 原生 Windows 支持存在较多坑社区验证的可用路径主要是 WSL2 或 Docker。环境变量PowerShell 语法和 Linux 的export不同$env:PYTORCH_CUDA_ALLOC_CONF expandable_segments:True$env:SGLANG_UOCR_SHM_WRAP_MODEL_DATA 1$env:SGLANG_OPT_UOCR_SAM_REL_POS_BIAS_MB 64启动命令PowerShell 续行用反引号python-m sglang.launch_server --model-path C:\models\Unlimited-OCR --mem-fraction-static 0.7 --uocr-gundam-page-window 1 --uocr-base-page-window 1 --uocr-max-page-tokens 2048 --max-prefill-tokens 2048 --cuda-graph-bs-prefill 2048 --port 30000如果原生 Windows 起不来退回 WSL2。在 WSL2 里用 Linux 的export写法即可命令和上面一致。请求时的max_tokens不在启动配置里而是每次调用 API 时放在 JSON body 里比如max_tokens: 2048。适合谁不适合谁适合你的情况大概是这些你已经在做文档解析 / RAG 前置被长 PDF、扫描件、跨页表格折磨过。你有一张16GB左右的 NVIDIA 卡比如我这张 5060 Ti愿意按保守配置把服务跑起来。你要的是本机私有化、数据可控。你关心整本解析的连贯性。不太适合的情况你只需要拍一张图识几个字PP-OCR / OnnxOCR 才是更好的选择。你要的是端侧实时帧率那根本不是同一类问题。写在最后如果你只是想简单的识别文字和表格可以使用作者的小程序LINC扫描王更省心省力。现在的扫描功能支持了扫描后PDF的签字和加水印功能主打一个高清免费易用可以尝试一下。我们下期再见。

相关推荐

字节跳动5346个研发岗,AI/大模型岗位竟占34.6%!小白程序员如何入行?
字节跳动5346个研发岗,AI/大模型岗位竟占34.6%!小白程序员如何入行?

字节跳动官网最新社招研发岗位数据显示,AI/大模型相关岗位占比高达34.6%,远超传统岗位。文章分析了大模型算法岗、大模型开发/Agent工程师和AI Infra工程师三个主要方向,并建议程序员关注AI领域,为职业发展开拓新前景 最近我扒了一… · 2026/11/4 2:31:14

大模型落地制造:小白也能懂的工厂智能化转型指南(收藏版)
大模型落地制造:小白也能懂的工厂智能化转型指南(收藏版)

本文解析工业大模型与通用大模型差异,强调数据多模态、容错率低、知识私有三大特性决定工业场景技术路线。通过通用底座模型行业语料微调RAG挂载私有知识库Agent调用工业软件API的技术路径,提出研发工艺、生产计划、质量检测、设备维护、安环管理、仓储物… · 2026/11/4 2:31:14

华为校招机考真题 非AI方向 2026-10-14【脉冲后序右侧和】
华为校招机考真题 非AI方向 2026-10-14【脉冲后序右侧和】

华为校招&实习机试在线OJ刷题系统 | 在线OJ注册使用教程 目录 题目 思路 Code 题目 题目内容: 星际探索途中,人类撞见一座年代久远的外星通讯塔。坐标靠一串能量脉冲向外发送。科学家确认,这些互不相同的正整数强度&am… · 2026/11/4 2:31:14

渗透测试工程师成长指南:从基础到实战
渗透测试工程师成长指南:从基础到实战

1. 渗透测试行业的真实挑战作为一名从业多年的网络安全工程师,我见过太多怀揣黑客梦想的年轻人,在接触渗透测试后迅速被现实击垮。这个行业远没有影视作品中那么光鲜亮丽,背后是无数个熬夜研究漏洞的夜晚和持续不断的学习压力。1.1 技术门槛&… · 2026/11/4 3:25:24

PostgreSQL慢SQL排查与优化实战指南
PostgreSQL慢SQL排查与优化实战指南

1. 慢SQL问题排查的必要性数据库性能问题就像汽车发动机的积碳——平时感觉不到,一旦爆发就会让整个系统瘫痪。作为PostgreSQL DBA,我处理过上百个慢SQL案例,其中80%的生产事故都是由于未被及时发现的问题SQL逐渐累积导致的。上周刚处理过一个… · 2026/11/4 3:25:24

多目标跟踪实战:检测、预测与匹配的工程取舍
多目标跟踪实战:检测、预测与匹配的工程取舍

简介:这份资源面向计算机视觉与信号处理方向的学习者,聚焦多目标跟踪(MTT)在MATLAB环境下的实现,适合希望从目标检测、状态估计到数据关联完整走通一遍流程的初中级读者。压缩包共3个文件,以m脚本、avi视频… · 2026/11/4 3:25:24

PostgreSQL慢SQL问题排查与优化实战指南
PostgreSQL慢SQL问题排查与优化实战指南

1. 慢SQL问题排查的必要性上周五凌晨两点,我被一阵急促的电话铃声惊醒。运维同事告诉我生产环境的订单查询接口响应时间从200ms飙升到15秒,用户投诉已经塞满了客服系统。当我连上服务器查看pg_stat_activity视图时,发现有个查询已经运行了8分… · 2026/11/4 3:25:24

Unity等距解谜工程拆解:旋转、路径重算与二次开发实战
Unity等距解谜工程拆解:旋转、路径重算与二次开发实战

简介:这份资源是面向Unity初学者与进阶开发者的《纪念碑谷》风格解谜游戏完整工程,基于Unity 2017.3版本构建,可用于学习2D与3D图形结合、场景搭建、资源管理与C#脚本逻辑等核心开发技能。压缩包共254个文件,约2.61MB,… · 2026/11/4 3:25:24

全屏歌词动画实现指南:Folia内置模式解析与性能调优
全屏歌词动画实现指南:Folia内置模式解析与性能调优

全屏歌词动画这件事,很多人第一反应是"不就是把歌词放大铺满屏幕吗"。真上手做过一轮就知道,同样是全屏,有的方案歌词一放大就糊成一片,有的动效一跑起来帧率直接腰斩,还有的在不同分辨率屏幕上位置全乱。我… · 2026/11/4 3:24:24

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码