news 2026/10/30 2:09:53

Unlimited-OCR-2-4bit架构拆解:SAM+CLIP双视觉塔如何驱动MoE语言模型读懂13万Token长文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unlimited-OCR-2-4bit架构拆解:SAM+CLIP双视觉塔如何驱动MoE语言模型读懂13万Token长文档
  • 人工智能
  • 多模态
  • 计算机视觉
  • OCR
  • 本地部署
  • 模型量化
  • 大模型

【免费下载链接】Unlimited-OCR-2-4bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Unlimited-OCR-2-4bit
点击查看免费下载

Unlimited-OCR-2-4bit 是百度 Unlimited-OCR-2 视觉语言 OCR 模型的 4-bit 量化版,由 SAM + CLIP 双视觉塔负责"看图",MoE 语言模型负责"写字",配合 page2d 位置编码与 DASH 块稀疏注意力,可在单次请求中解析数十页、超过 13 万 Token 的长文档。

一、它是什么:一次读完整本书的 OCR 大模型

传统的 OCR 流程是"先切块、再识别、最后拼接",长文档很容易被截断或读乱序。Unlimited-OCR-2-4bit 走的是"端到端解析"路线:

  • 📄输入:一整页(或多页)扫描图、PDF 渲染图
  • 🔍处理:双视觉塔提取全局 + 局部细节特征,语言模型逐块生成结构化结果
  • 📝输出:带<PAGE>、<BLOCK>标签[x0, y0, x1, y1]<FORK>文本的结构化内容,跨页续接的块用cross_*/append_*标签衔接

这个仓库(mlx-community/Unlimited-OCR-2-4bit)是把原始模型转换到 MLX 框架的量化版:语言模型采用4-bit affine 量化(group size 64),而 SAM / CLIP 视觉塔和每层 DASH 路由器保持 bfloat16,兼顾精度与显存。量化参数可见 config.json:

"quantization": { "bits": 4, "group_size": 64, "mode": "affine" }

二、双视觉塔:SAM 管"全局结构",CLIP 管"图文语义"

模型初始化代码在 modeling_unlimitedocr.py 里一目了然:

self.sam_model = build_sam_vit_b() # SAM ViT-B 图像编码器 self.vision_model = build_clip_l() # ViT-L 视觉塔(24 层、宽 1024) self.projector = MlpProjector(Dict(projector_type="linear", input_dim=2048, n_embed=1280))

两座塔分工明确:

组件规模职责
SAM ViT-B12 层 / 宽 768 / 12 头,patch=16,第 2、5、8、11 层做全局注意力提取版式级"全局结构"特征
ViT-L(CLIP 风格塔)24 层 / 宽 1024 / 16 头,patch=14提取细粒度"图文语义"特征
MlpProjector2048 → 1280 线性投影把双塔特征压进语言模型的 1280 维词元空间

双塔特征拼接细节:每路特征 = ViT-L 输出(去掉 CLS)+ SAM 网格特征展平,拼接后正好 2048 维,再经线性投影降到 1280,与语言模型的hidden_size对齐。

三、Gundam 模式:1 张全局图 + 最多 16 张局部放大图

这是它"看得清"的关键。处理一页文档时(见 modeling_unlimitedocr.py):

  1. 整页缩成1024×1024 全局视图,由 SAM + CLIP 双塔编码;
  2. 同时按版面切成最多 16 个局部裁剪块(max_crops=16,见 processor_config.json),同样过双塔;
  3. 局部特征在前、全局特征在后,中间插一个可学习的view_seperator向量,再整体替换进输入序列的<image>占位处。

相当于"先给模型看缩略图定位版面,再给它 16 张放大镜下的细节图",小字号、密表格也不容易漏字。

四、MoE 语言模型:小身板,大胃口

语言侧是一个 12 层的 DeepSeek-V2 风格 MoE 解码器(UnlimitedOCRForCausalLM,见 modeling_unlimitedocr.py):

  • 1280 隐藏维度 / 12 层,但上下文max_position_embeddings = 131072(约 13 万 Token)
  • 每层 64 个路由专家 + 2 个共享专家,每个 token 只激活 6 个路由专家(n_routed_experts=64、n_shared_experts=2、num_experts_per_tok=6)
  • 位置编码用YaRN(rope_scaling.type = "yarn",factor 4.0),把原本 32768 的位置上限外推到 131072

MoE 的妙处在于"按需分配算力":普通 token 只点亮 6 个专家,长文档中即使总参数量大,单 token 实际计算量依然可控,这是它能长上下文流式吐字还不爆显存的原因。

五、13 万 Token 长文档怎么扛住:page2d RoPE + DASH 块稀疏注意力

长序列的真正瓶颈是注意力 O(N²)。这套架构用两件套解决(配置集中在 config.json 的sparse_attention_config):

1️⃣ page2d 二维位置编码把 1D token 位置改成"页号 × 页内位置"的二维坐标(sparse_main_rope_mode: "page2d"),让模型天然理解"这个 token 在第几页的哪个位置",多页文档不会串页。

2️⃣ DASH 块稀疏注意力

  • 序列按32 token 一块切块(sparse_block_size: 32);
  • 每层有一个轻量entmax 路由器(dash_router: "entmax_topk_perlayer",实现见 dash_attention.py)给每个 query 块打分;
  • 每个 query 只 attendtop-12 个关键块+ 固定局部窗口,再交给 sparse_gather_e2e_triton.py 中的Triton 融合 kernel执行块级 gather 注意力;
  • 每页图像 token 固定 273 个(per_page_image_tokens: 273),页级桶约束(image_bucket_constraint: true)防止跨页误读。

效果是:13 万 Token 的注意力开销从"全对全"降到近似线性,这正是"读懂 13 万 Token 长文档"的底层保障。

六、本地跑起来:一条命令解析多页文档

通过 mlx-vlm):

# 单页(gundam 模式:1024 全局视图 + 最多 16 个局部裁剪) mlx_vlm.generate --model mlx-community/Unlimited-OCR-2-4bit --image page.png \ --prompt "Multi page parsing." --max-tokens 8192 --temperature 0 # 多页一次请求,每页各带一张 1024 基础视图 mlx_vlm.generate --model mlx-community/Unlimited-OCR-2-4bit --image p1.png p2.png \ --prompt "Multi page parsing." --max-tokens 16384 --temperature 0

输出为<PAGE>/<BLOCK>标签[x0, y0, x1, y1]<FORK>文本格式,上游仓库提供了转 Markdown 的转换器,最终产物就是带版式坐标的结构化文本。

七、核心文件导航

文件内容
modeling_unlimitedocr.py主模型:双塔接入、gundam 裁剪融合、多页推理入口
deepencoder.pySAM ViT-B(build_sam_vit_b)与 ViT-L(build_clip_l)双塔实现、MlpProjector
modeling_deepseekv2.pyMoE 解码器主干与 DASH 推理调度
dash_attention.pyentmax 稀疏路由器与逐层块选择
sparse_gather_e2e_triton.py块级 gather 注意力的 Triton 前向/反向 kernel
config.json / processor_config.json架构超参与图像预处理(1024 分辨率、16 裁剪上限)
README.mdmlx-vlm 使用方式

八、小结

Unlimited-OCR-2-4bit 的架构逻辑可以浓缩为一句话:SAM 看骨架、CLIP 看细节、MoE 写内容、稀疏注意力省算力。双视觉塔 + 线性投影器解决了"OCR 模型看不懂版式",131072 长上下文 + page2d RoPE + DASH 块稀疏解决了"长文档读不完、读不准",而 4-bit 量化让它真正能落到本地部署——对想做文档数字化、票据/书籍结构化的开发者来说,这是一套相当完整的参考架构。

  • 人工智能
  • 多模态
  • 计算机视觉
  • OCR
  • 本地部署
  • 模型量化
  • 大模型

【免费下载链接】Unlimited-OCR-2-4bit

项目地址:https://ai.gitcode.com/hf_mirrors/mlx-community/Unlimited-OCR-2-4bit
点击查看免费下载

相关推荐

上一篇:gpt-researcher:基于 Anthropic 原生 Token Usage 的精准成本追踪实现
下一篇:JavaScript try/catch/finally 优雅错误处理深入指南:从核心机制到 Refine 框架源码实践

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 2:02:02

STM32H743移植MicroPython:外扩SDRAM与QSPI Flash实战

简介&#xff1a;这份源码面向已具备STM32与MicroPython基础的嵌入式开发者&#xff0c;解决STM32H743开发板在移植MicroPython时外扩32M SQPI Flash与32M SDRAM的板级适配问题。资源包共5个文件&#xff0c;约4KB&#xff0c;以C源文件、头文件为主&#xff0c;辅以引脚映射CS…

作者头像 李华
网站建设 2026/10/30 2:00:46

Qwythos-9B推理模型部署与性能优化指南

Qwythos-9B推理模型部署与性能优化指南 Qwythos-9B-Claude-Mythos-5-1M-GGUF是一款基于Qwen3.5-9B架构的推理模型&#xff0c;通过Claude Mythos数据训练实现了显著的推理能力提升。该模型支持原生函数调用、100万token超长上下文窗口&#xff0c;并具备多模态视觉能力&#xf…

作者头像 李华
网站建设 2026/10/30 1:56:19

SAP S/4HANA S4520采购模块教材拆解与配置避坑指南

简介&#xff1a;《中文版-SAP-S4-HANA-S4520》是一份面向SAP应用顾问、项目经理及最终用户的中文采购教程&#xff0c;聚焦S4 HANA环境下从采购主数据维护到复杂流程优化的核心操作&#xff0c;适合希望系统梳理MM采购模块知识、提升日常配置与业务处理能力的学习者。整套资料…

作者头像 李华
网站建设 2026/10/30 1:54:43

【芳芯科技】基于STM32单片机甲醛浓度检测系统

实物效果图&#xff1a;实现功能&#xff1a;1.采用STM32单片机作为主控核心。2.该设备可以检测甲醛浓度&#xff0c;并通过显示屏进行显示。3.设置阈值&#xff0c;测试结果超出阈值进行报警。4.阈值可以按键手动修改。5.浓度越高&#xff0c;蜂鸣器报警越急促。原理图&#x…

作者头像 李华
网站建设 2026/10/30 1:52:28

【WebSocket】如何监控 WebSocket 服务的连接数、消息吞吐量和延迟?

WebSocket 监控实战:直播互动弹幕系统的全链路可观测架构 用户问题原文:如何监控 WebSocket 服务的连接数、消息吞吐量和延迟? 在构建直播互动弹幕系统时,我们曾因缺乏有效的监控导致无法及时发现连接泄漏问题,单机连接数从正常的 20,000 暴涨到 80,000,最终引发内存溢出…

作者头像 李华