文章摘要
紧凑型端到端文档OCR解析模型Jina-OCR-v1正式开源,该模型总参数3.4B,解码阶段仅激活570M参数,采用FastMTP机制、GRPO分级奖励机制等优化,在两大权威OCR评测基准刷新同级别纪录,吞吐性能领跑同类,单NVIDIA L4卡推测解码可实现近一倍加速且不损失输出质量,支持API调用与本地私有化部署。

模型核心亮点

一款紧凑型端到端文档解析模型正式开源,其总参数规模为3.4B,但解码阶段仅需激活570M参数。在OmniDocBench v1.6和olmOCR-Bench两大权威基准上,该模型分别取得了91.14和83.4的分数,刷新了同级别最佳成绩;在14款主流端到端系统的吞吐实测中,以2.57页/秒的表现领跑全场。

在单张NVIDIA L4显卡上,通过专门设计的推测解码草稿头,模型生成速度几乎翻了一倍,且输出序列与标准自回归解码严格一致,完全没有质量损失。

架构优化细节

该模型延续了DeepSeek-OCR的紧凑视觉编码与MoE解码路线,并针对两个核心点进行了关键改进:

  1. FastMTP机制:通过单个共享稠密块递归前向生成K=3步候选token,让草稿头的参数量与前瞻深度解耦,不再随着前瞻步数增加而出现参数膨胀。
  2. GRPO奖励机制:每项奖励由确定性代码对照参考真值计算,按照部分正确的程度分级给分,而非简单的0/1二元判定。

仅通过后训练改进,该模型在olmOCR-Bench上的分数就提升了7.4分,OmniDocBench的各细分维度也实现了全面提升。

模型核心参数

组件 规格
视觉编码器 DeepEncoder (~380M): SAM (80M) → 16x conv → CLIP-L (300M)
视觉 Token 256 @ 1024x1024 (Base); 256+100n, n ≤ 9 (≤ 1,156/page)
解码器 DeepSeek-3B-MoE:12 层,d = 1280,64 个路由专家 + 2 个共享专家,top-6
激活参数 / 总参数 ~570M / ~3B(解码器);< 1B / ~3.4B(整个模型)
词表 129,280
位置上限 32,768 (RoPE, θ = 10^6)
MTP 头 1 个共享稠密块,递归 K = 3 步(FastMTP)

训练与数据优化

训练过程中,团队混合了主流公开OCR数据集,并针对性补充了Europeana历史报纸、美国国会图书馆缩微文献、NARA档案等高难度真实排版源。在清洗阶段,先用规则过滤掉死循环与重复退化内容,再用高精度视觉大模型进行单次前向重打标。

针对真实文档中复杂公式和深层表格分布稀疏的问题,团队专门构建了合成数据集,在合成页面中高密度塞入结构化表格和公式,并自带单元测试断言,为强化学习阶段提供充足的训练信号。

后训练流程由监督微调、长尾劣化页面鲁棒性微调以及GRPO强化学习交替迭代完成。GRPO阶段的奖励函数由多个确定性可验证项相乘得到,相当于设置了一票否决机制——任何一项指标得零分,整页产生的梯度就会直接清零。不过重复惩罚项不设下限,避免模型通过死循环复读投机提高局部重合度。

GRPO奖励组件说明

组件 信号 作用
内容 混合 LaTeX/HTML 上的归一化编辑距离 文本保真度
公式 公式字符串匹配 公式正确性
表格 TEDS、TEDS-S、表格编辑距离 结构还原
结构有效性 花括号配对、标签闭合、表格完整性 格式规范
单元测试 基准风格的存在性、顺序、数学与表格测试通过率 高密度反馈
重复与格式 重复惩罚、HTML 符合性 退化控制

公开基准评测结果

在公开基准测试的对比中,该模型在多项指标上超越了多款参数规模更大的竞品:

模型 参数 ArXiv OldScans-Math Tables OldScans Multi-col LongTiny Hdr/Ftr Base 总分
Gemini 3 Flash – 80.1 73.6 64.6 45.8 75.3 90.3 27.4 – –
Qwen3-VL-235B 235B/22B 88.4 81.2 86.7 49.6 85.9 88.9 33.6 – –
DeepSeek-OCR 3B/570M 77.5 74.5 77.3 33.1 67.3 83.0 96.1 99.3 76.0
dots.mocr 3B 85.9 85.5 90.7 48.2 85.3 81.6 94.0 99.7 83.9
olmOCR-2 8B 82.9 82.1 84.3 48.3 84.3 81.4 – 99.7 82.4
LightOnOCR-2 1B 89.6 85.6 89.0 42.2 84.8 91.4 19.7 99.6 83.2
chandra-ocr-2 4B 86.9 89.1 92.1 51.1 82.1 93.7 91.4 99.9 85.8
目标模型 3B/570M 86.1 82.3 88.8 42.6 85.5 93.2 88.7 99.9 83.4

在olmOCR-Bench上,该模型拿到83.4分,比基座DeepSeek-OCR高出7.4分,也超过了8B规模的olmOCR-2。在OmniDocBench v1.6评测中,以570M激活参数拿到91.14分,各项指标全面领先DeepSeek-OCR-2,也超过了参数大得多的Qwen3-VL-235B。

这里需要说明Hdr/Ftr(页眉/页脚)指标:该基准的设计偏向剔除边角杂质,越是主动省略页眉页脚的模型得分越高;老老实实整页转录的系统在这项上反而会扣分。

细分维度评测对比

方法 参数 总分 ↑ TextEdit ↓ FormulaCDM ↑ TableTEDS ↑ TableTEDS-S ↑ ROEdit ↓
Gemini 3 Flash – 92.62 0.066 95.16 89.29 93.51 0.172
Qwen3-VL-235B 235B/22B 89.78 0.063 92.55 83.07 86.75 0.166
DeepSeek-OCR-2 3B/570M 90.25 0.050 91.84 83.89 87.75 0.144
HunyuanOCR-1.5 1B 94.74 0.039 94.50 93.67 94.71 0.129
PaddleOCR-VL-1.6 0.9B 96.34 0.033 97.53 94.76 97.10 0.128
目标模型 3B/570M 91.14 0.046 93.28 84.68 89.01 0.142

L4显卡推测解码实测

在单卡NVIDIA L4、vLLM 0.20.1、并发batch size=1的测试环境中,团队对不同模式下的推测解码效果进行了实测:

模式 k 输出Token/秒 ↑ 加速比 S ↑ 接受率 τ c ↓
Eager 0 42.7 1.00x – – 1.00
Eager 1 64.0 1.50x 82.6% 1.83 1.22
Eager 2 77.9 1.82x 69.1% 2.38 1.30
Eager 3 83.1 1.95x 57.6% 2.73 1.40
Graph 0 158.3 1.00x – – 1.00
Graph 1 185.6 1.17x 82.9% 1.83 1.56
Graph 2 183.8 1.16x 69.3% 2.38 2.05
Graph 3 172.9 1.09x 57.9% 2.74 2.51

测试中的τ代表单次推测平均接受的Token数(含验证带出的bonus token);c=τ/S则代表单个推测步折算成多少步标准自回归。

这里有一条工程经验:基线自回归跑得越快,留给推测解码的边际收益空间就越窄。

测试数据显示,当k=3时,Eager模式下的接受率为57.6%,加速比达到1.95x;而在Graph模式下,最优的前瞻步数为k=1,加速比为1.17x。这是因为Eager模式下CPU调度受限,主模型推理较慢,多猜token可以减少CUDA kernel发射次数;而Graph模式下kernel发射被打包优化,自推理速度很快,多猜token的额外开销超过了收益。

生产部署建议:无法使用CUDA Graph的环境(或轻量Eager实例)直接拉满k=3;已经跑通CUDA Graph环境下,只开k=1。

快速部署与使用

该模型提供了多种使用方式,适配不同的部署场景:

API调用方式

最简单的调用方式是通过文档解析API,只需将文档或网页URL传入对应端点,并附带必要的请求头,即可自动完成抓取、渲染和解析,返回Markdown格式的结果。如果只需要转录多页PDF中的某一页,还可以通过额外的请求头指定页码。

curl "https://example-ocr-api.com/https://example.com/document.pdf" \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-Respond-With: ocr-model"

也可以直接调用兼容OpenAI接口规范的托管端点,传入图片或PDF链接即可完成解析:

curl https://api.example.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "ocr-v1",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Transcribe the provided document image into a clean Markdown format, preserving the natural reading order."},
        {"type": "image_url", "image_url": {"url": "https://example.com/document.png"}}
      ]
    }]
  }'

Document OCR

支持将扫描页、照片或PDF转成干净Markdown,表格和公式一并保留。团队准备了一个演示demo,方便快速测试效果。

https://example-demo.com/ocr-test

本地私有化部署

如果需要本地私有化部署,模型的权重与自定义建模代码托管在开源平台,加载时需要指定信任远程代码的参数。启用FastMTP推测加速需要vLLM 0.21以上版本,并在启动引擎前注册一次架构。

import sys
from huggingface_hub import snapshot_download
from PIL import Image
from vllm import LLM
sys.path.insert(0, snapshot_download('model-repo/ocr-v1'))
from deepseek_ocr_mtp import DEFAULT_OCR_PROMPT, register, vllm_llm_kwargs, vllm_sampling_params
register()
llm = LLM(**vllm_llm_kwargs(
    'model-repo/ocr-v1',
    num_speculative_tokens=3,
    mtp_heads=1,
    mtp_recursive=True))
image = Image.open('document.png').convert('RGB')
outputs = llm.chat(
    [{
        'role': 'user',
        'content': [
            {'type': 'image_pil', 'image_pil': image},
            {'type': 'text', 'text': DEFAULT_OCR_PROMPT}]}],
    sampling_params=vllm_sampling_params(max_tokens=4096),
)
print(outputs[0])
以上内容不代表本平台立场,仅供读者参考