Unlimited-OCR-GGUF 实战:3 步把发票照片和扫描文档转成 Markdown

发布时间:2026/8/24 22:18:48
Unlimited-OCR-GGUF 实战:3 步把发票照片和扫描文档转成 Markdown Unlimited-OCR-GGUF 实战3 步把发票照片和扫描文档转成 Markdown【免费下载链接】Unlimited-OCR-GGUF项目地址: https://ai.gitcode.com/hf_mirrors/sahilchachra/Unlimited-OCR-GGUF桌面上堆着几十张发票照片和扫描件一张张手敲太累PDF 复制出来的表格还全是乱的。Unlimited-OCR-GGUF 是百度 3B 视觉语言 OCR 模型Unlimited-OCR的 GGUF 量化版本给它一张图就能做整页文档的一次性解析直接输出结构化 Markdown。它跑在 llama.cpp 上本地就能用不依赖云端服务。最快跑通第一条命令必须从 PR #24975 分支构建 llama.cpp否则加载不了这些模型文件 ⚠️整个最小流程就三件事构建运行时、下载模型、跑通第一张图。1构建 llama.cppPR #24975 分支DeepSeek-OCR 架构还没并入 llama.cpp 的 main 分支只有这个 PR 分支带对应支持。git clone https://gitcode.com/hf_mirrors/sahilchachra/Unlimited-OCR-GGUF cd llama.cpp git fetch origin pull/24975/head:pr24975 git checkout pr24975 cmake -B build -DCMAKE_BUILD_TYPERelease # NVIDIA 显卡加 -DGGML_CUDAON cmake --build build -j --target llama-mtmd-cli llama-server2下载一个量化模型 mmproj每次运行都需要两个文件一个语言模型 GGUF选你定的量化档位加一个视觉投影器 mmprojF16774.27 MiB所有量化共用同一份。huggingface-cli download sahilchachra/Unlimited-OCR-GGUF \ --include Unlimited-OCR-Q4_K_M.gguf mmproj-Unlimited-OCR-F16.gguf --local-dir ./uocr3跑通第一张图./build/bin/llama-mtmd-cli \ -m ./uocr/Unlimited-OCR-Q4_K_M.gguf \ --mmproj ./uocr/mmproj-Unlimited-OCR-F16.gguf \ --image invoice.png \ -p |grounding|Convert the document to markdown. \ --temp 0终端吐出 Markdown 就算跑通了。常用参数含义--temp 0确定性输出OCR 场景必备-n 4096输出长度上限长文档调大提示里的|grounding|前缀输出会带边界框每段文字夹着|det|类型 [x1,y1,x2,y2]|/det|标签只要纯文本就去掉前缀--repeat-penalty 1.05密集页面防循环重复用发票、单页、多页、API一张表跑通四种任务不用为每个任务记不同命令全都复用llama-mtmd-cli和llama-server只换提示词和参数。任务命令要点关键参数发票图片 → Markdownllama-mtmd-cli-p |grounding|Convert the document to markdown.--temp 0、-n 4096单页文档转 Markdown同上换--image指向的目标图--temp 0、-n 4096多页扫描文档逐页跑上面的命令结果拼接模型本身支持长文档一次性解析但逐页更稳--temp 0循环时加--repeat-penalty 1.05起 API 服务llama-server常驻对外是 OpenAI 兼容接口-c 8192、--port 8080多页场景里如果某页输出开始复读同一行先加--repeat-penalty 1.05--temp 0保持不变。量化版本怎么选三档就够了 默认用 Q4_K_M内存宽裕再上 Q6_K内存很紧才碰 IQ 系列。默认档Q4_K_M4-bit1.82 GiB。尺寸和质量的平衡点适合大多数人直接上手。Q4_K_S1.68 GiB小一点精度略降。质量档Q6_K / Q8_0 / BF16。Q6_K2.43 GiB在 OCR 任务上已接近 Q8_02.91 GiBBF165.47 GiB是无损失参照版留作对照。内存够就选 Q6_K基本不用再纠结。低配档IQ 系列i-quant基于 imatrix 量化。IQ4_XS1.53 GiB比 Q4_K_S 还小、质量相当IQ3_M1.35 GiB是 3-bit 里比较稳的IQ3_XXS1.24 GiB和 IQ2_M1.15 GiB能跑但精度损失肉眼可见。IQ4_NL1.59 GiB针对 ARM 端侧Jetson、Apple 芯片调过适合跑在设备上。说句实话低比特 i-quant 的精度损失是实打实的不是玄学。生产环境建议 Q4_K_M 起步。把 OCR 服务接入你的应用llama-server 一起你就有一个 OpenAI 兼容的/v1接口curl 和 OpenAI SDK 都能直接调。./build/bin/llama-server \ -m ./uocr/Unlimited-OCR-Q4_K_M.gguf \ --mmproj ./uocr/mmproj-Unlimited-OCR-F16.gguf \ --chat-template deepseek-ocr -c 8192 --host 0.0.0.0 --port 8080最简调用图片转 base64 内嵌进请求IMG$(base64 -w0 document.png) curl http://localhost:8080/v1/chat/completions -H Content-Type: application/json -d { temperature: 0, messages: [{ role: user, content: [ { type: text, text: |grounding|Convert the document to markdown. }, { type: image_url, image_url: { url: data:image/png;base64,$IMG } } ]}] }Python 里用 OpenAI SDK 完全同构把base_url指向http://localhost:8080/v1发同样的 text image_url 两部分即可。踩坑速查 ⚠️高频问题就三类都有明确解法现象模型加载失败、报架构不支持 →原因llama.cpp 版本不对main 分支没有 DeepSeek-OCR 支持 →解法用 PR #24975 分支重新构建。现象输出开始复读同一行、死循环 →原因密集页面上模型容易陷入重复 →解法加--repeat-penalty 1.05同时保持--temp 0。现象错字明显、表格解析质量差 →原因用了 IQ3_XXS、IQ2_M 这类低比特 i-quant或输入图太糊 →解法换 Q4_K_M 及以上保证图片清晰、文字区域完整。【免费下载链接】Unlimited-OCR-GGUF项目地址: https://ai.gitcode.com/hf_mirrors/sahilchachra/Unlimited-OCR-GGUF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考