ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DeepSeek-OCR-2动态分辨率揭秘:(0-6)×768切块+1024全局视图如何平衡精度与视觉Token成本

DeepSeek-OCR-2动态分辨率揭秘:(0-6)×768切块+1024全局视图如何平衡精度与视觉Token成本 DeepSeek-OCR-2动态分辨率揭秘(0-6)×768切块1024全局视图如何平衡精度与视觉Token成本【免费下载链接】DeepSeek-OCR-2Visual Causal Flow项目地址: https://gitcode.com/gh_mirrors/de/DeepSeek-OCR-2DeepSeek-OCR-2是 DeepSeek 开源的文档 OCR 模型它最聪明的成本控制手段就是动态分辨率把任意尺寸的图片自适应地拆成 0~6 块 768×768 局部切块再加 1 张 1024×1024 全局视图把视觉 Token 稳稳压在256~1120之间。这篇文章带你彻底看懂这套机制如何既读得清小字又不烧 Token。 为什么文档 OCR 需要动态分辨率用大模型做 OCR 时图片要先变成视觉 Token再进模型而 Token 是按字计费算成本的。固定分辨率有两大硬伤整图缩小到 1024 硬塞一页 A4 文档塞进 1024×1024细字直接糊成马赛克识别率暴跌整图切满全分辨率小块Token 数量随页面尺寸无上限膨胀8K 长图轻松吃掉上万个 Token显存和延迟双杀。动态分辨率的目标很明确小图少花 Token大图锁死 Token 上限同时保住文字细节。⚙️ (0-6)×768 1024 的三步拆解流程这套机制的核心实现在 image_process.py 的dynamic_preprocess函数中由 config.py 里的几个常数驱动BASE_SIZE 1024 # 全局视图尺寸 IMAGE_SIZE 768 # 局部切块尺寸 MIN_CROPS 2 # 最小切块数 MAX_CROPS 6 # 最大切块数硬上限第 1 步比例感知选最接近原图的 i×j 网格程序先算出原图宽高比然后在所有满足2 ≤ i×j ≤ 6的网格组合中挑选与原始比例差距最小的那个。也就是说横长的图就切 3×2竖长的图就切 2×3绝不变形拉伸。第 2 步局部视图最多 6 块 768×768 高清切片选定网格后原图被等比缩放到i×768 × j×768再均匀切成 768×768 的正方形切片交给视觉编码器精细逐字认读。如果原图本身就很小宽、高均 ≤ 768则直接跳过切块——这就是标题里(0-6)中0的由来小图一分钱切块成本都不花。第 3 步全局视图一张 1024×1024 的版面地图与此同时整页图片会被整体缩放填充成一张1024×1024的全局视图。它分辨率不高但保留了完整的版面信息标题在哪、段落顺序如何、有没有表格和图片。局部切片负责看清每个字全局视图负责看懂整页结构两者各司其职。上图即官方论文中的 DeepEncoder V2 架构左侧 80M 的 SAM 分词器做非因果特征提取右侧用 500M 的 Qwen2 语言模型以因果方式充当视觉编码器这正是模型名Visual Causal Flow的由来完整推导可阅读 DeepSeek_OCR2_paper.pdf。 视觉 Token 成本账从 256 到 1120Token 数量由 deepseek_ocr2.py 中的get_num_image_tokens精确计算规则非常干净视觉特征以16×16 像素为 patch再经4 倍下采样1024 全局视图 → (1024/16)/4 16即 16×16 256 个 Token每块 768 切片 → (768/16)/4 12即 12×12 144 个 Token。输入图片局部切块数视觉 Token 总量≤768×768 小图0 块256中等文档约 3 块3 块256 3×144 688大文档触顶 6 块6 块256 6×144 1120模型还会追加 1 个视图分隔 Token用于区分局部与全局特征。关键在最后一行无论页面多大Token 上限被MAX_CROPS 6死死锁在 1120。不做上限的朴素切块方案处理 8K 长页面可能需要 60 块、近万 Token而这里的成本从第一天起就可预测、可预算。⚖️ 为什么这个组合恰好是平衡点全局低清 局部高清精度不妥协文字识别靠 768 高清切片版面理解靠 1024 全局图字和结构两条信息链路都不缺小图极致省钱768 以内的小图只消耗 256 个视觉 Token比正文 Token 还便宜适合批量处理截图、票据上限封顶成本可控切块数 2~6 由MIN_CROPS/MAX_CROPS约束批量推理时显存占用稳定config.py 中还提供了MAX_CONCURRENCY等并发旋钮比例自适应杜绝拉伸伪影网格始终贴合原始宽高比避免文字被压扁变形导致识别错误。 快速上手三条命令跑通环境要求CUDA 11.8 PyTorch 2.6.0 vLLM 0.8.5。git clone https://gitcode.com/gh_mirrors/de/DeepSeek-OCR-2 conda create -n deepseek-ocr2 python3.12.9 -y pip install -r requirements.txt方式一vLLM 推理推荐支持流式输出cd DeepSeek-OCR2-master/DeepSeek-OCR2-vllm python run_dpsk_ocr2_image.py # 图片识别 python run_dpsk_ocr2_pdf.py # PDF 并发处理方式二HuggingFace Transformers 推理动态分辨率的三个核心参数在 run_dpsk_ocr2.py 中一目了然res model.infer(tokenizer, promptprompt, image_fileimage_file, base_size1024, image_size768, crop_modeTrue)两种常用 Prompt见 config.py文档转 Markdownimage\n|grounding|Convert the document to markdown.自由 OCR保留原始顺序image\nFree OCR. 机制在源码里的位置一览想了解什么去哪里看1024/768/切块上下限配置config.py动态切块与网格选择逻辑process/image_process.py视觉 Token 数量精确计算deepseek_ocr2.py局部/全局特征融合与分隔 Tokendeepseek_ocr2.pyHF 推理入口run_dpsk_ocr2.pyvLLM 图片推理入口run_dpsk_ocr2_image.py论文原文DeepSeek_OCR2_paper.pdf写在最后DeepSeek-OCR-2 的动态分辨率本质上是一次Token 经济学的设计用1 张 1024 全局图 最多 6 块 768 高清图的组合拳让视觉 Token 花费从随图片大小无限膨胀变成256 起步、1120 封顶的固定区间。对于要批量处理文档、又在意推理成本的团队来说这套机制值得直接抄进自己的多模态管线里。【免费下载链接】DeepSeek-OCR-2Visual Causal Flow项目地址: https://gitcode.com/gh_mirrors/de/DeepSeek-OCR-2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表