- 人工智能
- 多模态
- 计算机视觉
- OCR
- 本地部署
- 模型量化
- 大模型
【免费下载链接】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-B | 12 层 / 宽 768 / 12 头,patch=16,第 2、5、8、11 层做全局注意力 | 提取版式级"全局结构"特征 |
| ViT-L(CLIP 风格塔) | 24 层 / 宽 1024 / 16 头,patch=14 | 提取细粒度"图文语义"特征 |
| MlpProjector | 2048 → 1280 线性投影 | 把双塔特征压进语言模型的 1280 维词元空间 |
双塔特征拼接细节:每路特征 = ViT-L 输出(去掉 CLS)+ SAM 网格特征展平,拼接后正好 2048 维,再经线性投影降到 1280,与语言模型的
hidden_size对齐。
三、Gundam 模式:1 张全局图 + 最多 16 张局部放大图
这是它"看得清"的关键。处理一页文档时(见 modeling_unlimitedocr.py):
- 整页缩成1024×1024 全局视图,由 SAM + CLIP 双塔编码;
- 同时按版面切成最多 16 个局部裁剪块(
max_crops=16,见 processor_config.json),同样过双塔; - 局部特征在前、全局特征在后,中间插一个可学习的
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.py | SAM ViT-B(build_sam_vit_b)与 ViT-L(build_clip_l)双塔实现、MlpProjector |
| modeling_deepseekv2.py | MoE 解码器主干与 DASH 推理调度 |
| dash_attention.py | entmax 稀疏路由器与逐层块选择 |
| sparse_gather_e2e_triton.py | 块级 gather 注意力的 Triton 前向/反向 kernel |
| config.json / processor_config.json | 架构超参与图像预处理(1024 分辨率、16 裁剪上限) |
| README.md | mlx-vlm 使用方式 |
八、小结
Unlimited-OCR-2-4bit 的架构逻辑可以浓缩为一句话:SAM 看骨架、CLIP 看细节、MoE 写内容、稀疏注意力省算力。双视觉塔 + 线性投影器解决了"OCR 模型看不懂版式",131072 长上下文 + page2d RoPE + DASH 块稀疏解决了"长文档读不完、读不准",而 4-bit 量化让它真正能落到本地部署——对想做文档数字化、票据/书籍结构化的开发者来说,这是一套相当完整的参考架构。
- 人工智能
- 多模态
- 计算机视觉
- OCR
- 本地部署
- 模型量化
- 大模型
【免费下载链接】Unlimited-OCR-2-4bit
相关推荐
拆解 llm-jp-4-vl-9b-mlx-4bit 的三层架构:SigLIP2 视觉塔 + Llama 语言模型如何看懂图片
拆解 llm jp 4 vl 9b mlx 4bit 的三层架构:SigLIP2 视觉塔 + Llama 语言模型如何看懂图片 📖 本文带你完整拆解多模态大模
拆开看构造:LightOnOCR-3-1B-mlx-4bit 的 Pixtral 视觉塔 + Qwen3 语言塔双塔架构详解
拆开看构造:LightOnOCR 3 1B mlx 4bit 的 Pixtral 视觉塔 + Qwen3 语言塔双塔架构详解 LightOnOCR 3 1B m
人工智能大模型多模态计算机视觉OCR本地部署模型量化双塔架构拆解:LensVLM-9B-OptiQ-4bit 的 Qwen3-VL 视觉编码器与 Qwen3.5-9B 语言塔如何协作
双塔架构拆解:LensVLM 9B OptiQ 4bit 的 Qwen3 VL 视觉编码器与 Qwen3.5 9B 语言塔如何协作 LensVLM 9B Opt
人工智能大模型模型量化本地部署多模态计算机视觉NLP
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考