
模型地址:https://huggingface.co/lightonai/LightOnOCR-2-1B
LightOnOCR-2-1B:轻量级高性能端到端 OCR 系列模型
引言
在文档处理领域,OCR(光学字符识别) 技术一直是将纸质文档转换为可编辑文本的关键。传统 OCR 系统通常依赖复杂的多阶段流水线,不仅难以训练,还容易在适配新数据时出现各种问题。而最近发布的LightOnOCR-2-1B模型家族彻底改变了这一局面。

这个仅有 10 亿参数的端到端视觉语言模型,在 OCR 领域的表现令人惊艳:它不仅在 OlmOCR 基准测试中超越了 90 亿参数的 Chandra 模型 1.5 个百分点,速度还快了 3.3 倍,模型体积却只有后者的九分之一。更重要的是,整个模型家族都以 Apache 2.0 协议开源,为文档处理领域带来了全新的可能性。
核心亮点
性能突破
LightOnOCR-2-1B 在 OlmOCR-Bench 测试中取得了 83.2±0.9 的总分,成为目前该基准测试的最强模型。相比第一代版本和其他竞品,这次升级在各个类别上都实现了显著提升,特别是在 ArXiv 论文、含数学公式的旧文档扫描件以及表格识别方面表现尤为出色。这些进步主要得益于:
- 更大规模、更高质量的训练数据集
- 增强的科学文献覆盖
- 更高分辨率的训练策略

与竞品的对比更能说明问题。在与体积大 9 倍的 Chandra-9B 模型对比中,LightOnOCR-2-1B 不仅准确率更高,还完全不依赖多阶段流水线,保持了端到端架构的简洁性。
速度优势
在实际应用中,速度往往和准确率同样重要。LightOnOCR-2-1B 在单张 H100 GPU 上的处理速度达到了:
- 比 Chandra OCR 快 1.93 倍
- 比 OlmOCR 快 2-3 倍
- 比 dots.ocr 快 1 倍
- 比 PaddleOCR-VL-0.9B 快 2.43 倍
- 比 DeepSeekOCR 快 2.68 倍
这样的速度表现意味着该模型完全可以应用于大规模生产环境的文档处理流水线,在保证准确率的同时满足高吞吐量需求。

丰富的模型家族
为了满足不同应用场景的需求,LightOnOCR-2 发布了一整个模型家族,而不是单一的检查点:
主力模型系列:
- LightOnOCR-2-1B(默认推荐): 纯 OCR 模型,转录质量最佳
- LightOnOCR-2-1B-bbox: 支持图像边界框定位的版本,可输出文档中嵌入图片的位置信息
- LightOnOCR-2-1B-ocr-soup: 平衡版本,兼顾 OCR 和 bbox 能力
基础模型系列:
- LightOnOCR-2-1B-base: 纯 OCR 基础检查点,用于微调和模型融合
- LightOnOCR-2-1B-bbox-base: 支持 bbox 的基础检查点,可用于 RLVR 训练
- LightOnOCR-2-1B-bbox-soup: bbox 变体的融合版本,在 OCR 质量和图像定位之间取得平衡
这种'分而治之'的策略让用户可以根据具体需求选择最合适的模型,而不必在单个检查点中做出妥协。
开放数据集
除了模型本身,LightOnOCR-2 还开源了两个高质量的训练数据集:
- lightonai/LightOnOCR-mix-0126: 包含超过 1600 万页高质量标注文档
- lightonai/LightOnOCR-bbox-mix-0126: 近 50 万页带图像边界框标注的文档
- LightOnOCR-bbox-bench: 专门用于评估文档中图像定位能力的基准测试集
这些数据集的开放将极大推动 OCR 和文档理解领域的开源生态发展。

数据集链接:https://huggingface.co/datasets/lightonai/LightOnOCR-bbox-mix-0126
技术深度解析
模型架构演进
LightOnOCR-2 延续了第一代的端到端架构设计理念,但在多个关键方面进行了优化。模型采用原生分辨率的视觉 Transformer(ViT) 处理图像输入,配合精简的语言模型主干网络。通过多模态投影层将视觉特征与语言特征对齐,实现 PDF 页面到 Markdown 文本的直接转换。
相比传统的多阶段 OCR 流水线,这种端到端设计带来了几个关键优势:
训练简化: 整个模型完全可微分,可以端到端优化,无需协调多个独立组件的训练。
推理高效: 每页只需一次前向传播,无需多次模型调用和中间处理步骤。
适配灵活: 针对新领域或新语言的微调变得简单直接,只需在目标数据上继续训练即可。
数据质量是关键
LightOnOCR-2 的性能提升很大程度上归功于训练数据的质量和规模。训练数据采用知识蒸馏范式,使用 Qwen2-VL-72B 作为教师模型对大规模文档语料进行标注,然后训练规模更小、更专业的学生模型。
数据标注过程包含以下关键步骤:
标注生成: 使用 72B 参数的 Qwen2-VL 模型将 PDF 页面转录为 Markdown 格式,使用 LaTeX 表示数学公式。选择 Markdown 是因为它比 HTML 更轻量、更易解析,同时保留了足够的结构信息。
质量控制: 实施了全面的标准化流程来确保标注一致性,包括:
- 循环检测:通过 n-gram 频率分析识别并过滤重复生成的内容
- 去重:计算序列哈希值识别并删除重复样本
- 图像占位符标准化:统一图像引用格式为

- 幻觉过滤:通过对比 VLM 输出与参考 OCR 结果来检测和过滤异常样本
最终的训练数据集包含1760 万页文档,总计455 亿 token(包含视觉和文本 token),图像以原生分辨率渲染,最大尺寸为 1540 像素。
值得注意的是,使用更大的教师模型进行数据标注确实能带来显著的性能提升。在对比实验中,使用 72B 教师模型标注的数据训练出的模型,比使用 7B 教师模型的版本在各项指标上都有明显提升,特别是在复杂的多栏布局、表格和数学内容方面,提升幅度达到了 11.8 个百分点。
边界框能力的权衡
为了满足需要轻量级布局线索的应用场景,LightOnOCR-2 提供了支持边界框输出的变体。这些模型不仅能转录文本,还能标注文档中嵌入图片的位置。
由于 OCR 和边界框检测两个目标可能存在一定冲突,团队采取了差异化策略,提供两个独立的检查点:
- LightOnOCR-2-1B-bbox: 专注于边界框定位精度
- LightOnOCR-2-1B-bbox-soup: 通过模型融合平衡 OCR 质量和定位能力
这种设计避免了在单一模型中强行兼顾两个目标而导致的性能妥协,让用户可以根据具体应用选择最合适的版本。
Transformers 生态集成
LightOnOCR-2 已经正式集成到 Hugging Face Transformers 生态系统中,这带来了诸多实用价值:
简化部署: 可以直接使用标准 Transformers 工具运行,无需从 vLLM 开始配置
便捷微调: 支持常见的 HF 微调工作流,包括 LoRA、PEFT 和 Trainer
硬件灵活: CPU 和本地环境运行成为可能,虽然性能依赖硬件条件,但相比'仅 GPU'的流水线方案已经大幅降低了使用门槛
同时,模型也完全兼容 vLLM 推理引擎,可以轻松构建高吞吐量的生产级服务。
实际应用示例
为了更直观地展示 LightOnOCR-2 的能力,这里展示几个典型文档的处理效果:
技术手册页面
原始图像包含标准技术文档的典型元素:文档编号、图表、多级标题和正文段落。LightOnOCR-2 能够准确识别所有文本内容,保持正确的阅读顺序,并适当处理图片占位符。

转录结果完整保留了文档结构,包括章节编号、图表引用和分段格式,输出为干净的 Markdown 文本。
更多场景支持
LightOnOCR-2 在各类文档场景下都表现出色:
- 数学公式密集页面: 准确识别复杂的数学符号和公式,转换为 LaTeX 格式
- 老旧扫描文档: 对图像质量不佳的历史文档也能保持较高识别率
- 多栏布局: 正确理解多栏文本的阅读顺序
- 表格: 准确识别表格结构并转换为 Markdown 格式
在项目提供的在线演示中,可以上传自己的文档体验实际效果。
性能基准详解
OlmOCR-Bench 测试结果
OlmOCR-Bench 是目前最全面的 OCR 评测基准,包含 1403 页 PDF 文档和 7010 个测试用例,覆盖多种文档类型、提取难点和语言。该基准使用自动化单元测试而非编辑距离进行评估,确保了评测的可重现性。
LightOnOCR-2-1B 在各细分类别上的表现都很均衡,特别是在以下几个难点场景:
- ArXiv 科学论文: 83.2 分,得益于增强的科学文献覆盖和高分辨率训练
- 含数学公式的老旧扫描件: 在图像质量较差的情况下仍能准确识别数学符号
- 表格: 正确理解表格结构并转换为 Markdown 格式
- 多栏布局: 准确把握文本阅读顺序

推理速度测试
为了公平对比不同 OCR 模型的速度 - 性能权衡,测试统一在单张 H100 GPU(80GB) 上进行,所有模型都通过 vLLM 推理引擎提供服务,尽可能充分利用 GPU 内存。
测试方法是在 OlmOCR-Bench 的 1402 个 PDF 文档上运行完整的端到端评测,记录总耗时,然后计算页面处理速度 (页/秒)。

需要特别说明的是,流水线型方案如 dots.ocr 和 PaddleOCR-VL 每页需要多次模型调用,还有额外的裁剪和预处理开销。虽然流水线可以通过专门的启发式规则提升质量,但速度代价很大。相比之下,LightOnOCR-2 的端到端架构每页只需一次调用,不需要重试或修正逻辑,推理过程更简单、更快、更高效。
第一代技术回顾
端到端架构的优势
第一代 LightOnOCR 就已经确立了端到端训练的核心理念。这个 10 亿参数的紧凑型模型通过在高质量开源 VLM 上进行知识蒸馏训练,在单张 H100 GPU 上达到了 5.71 页/秒的处理速度,相当于每天可处理 49.3 万页文档。
按当前云服务定价计算,这意味着每 1000 页的处理成本不到 0.01 美元,比运行大型 OCR VLM 便宜数倍。这种高效率对实际应用至关重要,因为模型不仅简单稳定,微调成本也很低,很容易适配到新领域、新布局或新语言。
训练策略探索
在开发过程中,团队进行了一系列消融实验来验证各种训练策略的有效性:
单阶段 vs 两阶段训练: 传统做法通常先冻结视觉和语言主干只训练多模态投影层,然后再解冻整个模型进行全参数训练。实验表明,在大规模数据集下,单阶段训练效果与两阶段相当甚至略好,因此最终采用了更简单的单阶段方案。
教师模型规模的影响: 对比使用 7B 和 72B 模型标注的相同数据子集训练的模型,72B 教师带来的性能提升非常明显,特别是在多栏布局 (+22.2 分)、小字体文本 (+12.9 分) 和数学公式 (+17 分) 等复杂场景。这说明对于 OCR 任务,标注质量会随教师模型规模提升而提升,在数据生成阶段投入更大模型可以显著改善下游准确率。
词表剪枝优化: Qwen3 语言模型使用 151,936 个 token 的大型多语言词表,但对于专注特定语言的 OCR 任务,其中大部分 token 都很少或从未使用。团队探索了将词表剪枝到 51k、32k 和 16k 的方案:
- 通过 token 频率分析识别高频 token
- 使用递归频率评分保留必要的子 token 序列
- 保留所有特殊 token 和排名最高的 N 个 token
实验表明,对于英语和法语文档,即使剪枝到 16k 词表 (仅为原词表的 10%),性能几乎不受影响,但非拉丁文字的语言会受到严重影响。32k 词表在速度和准确率之间取得了最佳平衡,推理速度相比完整词表提升约 12%。
分辨率的影响: 模型采用原生分辨率图像编码器,可以按原始分辨率处理文档。测试不同推理分辨率的结果显示,提高分辨率能持续改善性能,特别是在密集文本或小字体文档上。从 1024 像素提升到 1540 像素,平均得分从 70.7 提升到 76.1,其中小字体文本类别提升最为显著 (从 65.8 到 88.7)。
数据增强: 借鉴 Nougat 论文的做法,测试了轻度图像级增强 (小角度旋转、缩放、网格畸变、轻微腐蚀和膨胀) 来模拟真实文档噪声。结果显示,增强对噪声或不规则文本略有帮助,但整体影响很小。考虑到真实场景的复杂性,最终模型仍然使用了数据增强。
微调灵活性验证
为了验证端到端架构的适配能力,团队使用 OlmOCR-mix-0225 数据集的文档子集进行了微调实验。仅用单个 epoch、无额外超参数调整,就将整体得分从 68.2 提升到 77.2,在 headers&footers 类别更是从 40.0 飙升至 91.3。
这个简单的微调实验充分展示了模型的可塑性和适配能力。相比流水线型方案,端到端模型可以持续学习和适应特定数据分布,只需在目标数据上继续训练即可,而流水线的各个独立组件则需要分别标注数据和调整。
实用指南

快速开始
LightOnOCR-2 提供了两种主要的使用方式,可以根据具体需求选择最合适的部署方案。
方式一:使用 Transformers 库
对于本地开发和小规模应用,可以直接使用 Hugging Face Transformers 库。需要注意的是,LightOnOCR-2 需要从源码安装最新版本的 transformers(尚未包含在稳定版本中)。
uv pip install git+https://github.com/huggingface/transformers
uv pip install pillow pypdfium2
基本使用示例:
import torch
from transformers import LightOnOcrForConditionalGeneration, LightOnOcrProcessor
device = "mps" if torch.backends.mps.is_available() else "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float32 if device == "mps" else torch.bfloat16
model = LightOnOcrForConditionalGeneration.from_pretrained("lightonai/LightOnOCR-2-1B", torch_dtype=dtype).to(device)
processor = LightOnOcrProcessor.from_pretrained("lightonai/LightOnOCR-2-1B")
url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_ocr/resolve/main/SROIE-receipt.jpeg"
conversation = [{"role":"user","content":[{"type":"image","url": url}]}]
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
)
inputs = {k: v.to(device=device, dtype=dtype) if v.is_floating_point() else v.to(device) for k, v in inputs.items()}
output_ids = model.generate(**inputs, max_new_tokens=1024)
generated_ids = output_ids[0, inputs["input_ids"].shape[1]:]
output_text = processor.decode(generated_ids, skip_special_tokens=True)
print(output_text)
方式二:使用 vLLM 推理引擎
对于生产环境和大规模文档处理,推荐使用 vLLM 来获得更高的吞吐量和更好的性能。
# 安装 vLLM 0.11.1 或更高版本
uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install vllm==0.11.2
# 启动推理服务
vllm serve lightonai/LightOnOCR-2-1B \
--limit-mm-per-prompt '{"image": 1}' \
--mm-processor-cache-gb 0 \
--no-enable-prefix-caching
启动服务后,可以通过 API 接口调用:
import base64
import requests
import pypdfium2 as pdfium
import io
ENDPOINT = "http://localhost:8000/v1/chat/completions"
MODEL = "lightonai/LightOnOCR-2-1B"
pdf_url = "https://arxiv.org/pdf/2412.13663"
pdf_data = requests.get(pdf_url).content
pdf = pdfium.PdfDocument(pdf_data)
page = pdf[0]
pil_image = page.render(scale=2.77).to_pil()
buffer = io.BytesIO()
pil_image.save(buffer, format="PNG")
image_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8')
payload = {
"model": MODEL,
"messages": [{"role":"user","content":[{"type":"image_url","image_url":{"url": f"data:image/png;base64,{image_base64}"}}]}],
"max_tokens": 4096,
"temperature": 0.2,
"top_p": 0.9,
}
response = requests.post(ENDPOINT, json=payload)
text = response.json()['choices'][0]['message']['content']
print(text)
图像预处理建议
为了获得最佳 OCR 效果,在准备输入图像时需要注意以下几点:
- 分辨率设置: 将 PDF 渲染为 PNG 或 JPEG 格式时,建议最长边设置为 1540 像素
- 保持宽高比: 务必保持原始宽高比,以确保文本几何关系不被破坏
- 单页处理: 每次输入一个页面图像,vLLM 支持批量处理多页
- 渲染参数: 使用 200 DPI 进行 PDF 渲染可以获得较好的清晰度和性能平衡
这些预处理步骤能够确保模型接收到质量适中的输入,在准确率和处理速度之间取得最佳平衡。
模型选择建议
根据应用场景选择合适的检查点:
纯文本转录场景: 选择LightOnOCR-2-1B(默认版本),转录质量最佳,适合'将 PDF 转换为干净文本/Markdown'的需求。
需要图像定位的场景: 如果需要知道文档中图片的位置信息,可以选择:
- LightOnOCR-2-1B-bbox: 定位精度优先
- LightOnOCR-2-1B-bbox-soup: 平衡 OCR 和定位性能
微调或研究用途: 使用基础检查点:
- LightOnOCR-2-1B-base: 纯 OCR 基础版本
- LightOnOCR-2-1B-bbox-base: 支持 bbox 的基础版本,可用于 RLVR 训练
团队还提供了微调教程,方便在自己的数据上进行领域适配。
在线体验
可以在演示空间上传文档体验 LightOnOCR-2 的实际效果,无需本地部署。
https://huggingface.co/spaces/lightonai/LightOnOCR-2-1B-Demo

总结与展望
LightOnOCR-2-1B 的发布标志着文档 OCR 技术的一个重要里程碑。凭借端到端架构、精心设计的训练数据和高效的模型设计,它在准确率、速度和易用性三个维度都树立了新标杆。
核心优势总结:
- 性能领先: 在 OlmOCR-Bench 上超越所有同等规模甚至更大规模的竞品
- 高效实用: 处理速度比主流方案快 2-5 倍,成本仅为大型 VLM 的几分之一
- 完全开源: Apache 2.0 协议,包含模型、数据集和训练细节
- 灵活适配: 端到端架构使得微调和领域适配变得简单直接
- 生态友好: 完整集成到 Transformers 和 vLLM 生态系统
未来方向:
根据团队透露,技术细节的完整预印本论文即将发布,将包含更深入的方法论阐述和实验分析。同时,开源的大规模训练数据集将为社区提供宝贵资源,推动 OCR 和文档理解领域的进一步发展。
对于需要处理大量文档的应用场景——无论是学术研究、企业文档管理还是历史资料数字化——LightOnOCR-2 都提供了一个强大、高效且易于部署的解决方案。它证明了在垂直领域,精心设计的小模型完全可以超越体积庞大的通用模型,为 AI 应用的实用化和普及化提供了新的思路。
相关链接: