HuggingFace镜像/LightOnOCR-1B-1025
模型介绍文件和版本分析
下载使用量0
LightOn OCR-1B Banner

LightOnOCR-1B-1025

模型的完整 BF16 版本。我们推荐此变体用于推理和进一步微调。

LightOnOCR-1B 是一款紧凑的端到端视觉-语言模型,适用于光学字符识别(OCR)和文档理解。它在其权重级别内实现了最先进的准确率,同时比更大的通用视觉语言模型快数倍且成本更低。

在 Colab 中打开

📝 阅读完整博客文章 | 🚀 试用演示 | 📓 微调笔记本

亮点

  • ⚡ 速度: 比 dots.ocr 快 5 倍,比 PaddleOCR-VL-0.9B 快 2 倍,比 DeepSeekOCR 快 1.73 倍
  • 💸 效率: 在单个 H100 上每秒处理 5.71 页(约每天 493k 页),每 1000 页成本低于 0.01 美元
  • 🧠 端到端: 完全可微分,无需外部 OCR 流水线
  • 🧾 多功能: 处理表格、收据、表单、多列布局和数学符号
  • 🌍 紧凑变体: 针对欧洲语言提供 32k 和 16k 词汇表选项

模型概述

LightOnOCR 将视觉Transformer编码器(基于Pixtral)与轻量级文本解码器(基于Qwen3,从高质量开源视觉语言模型蒸馏而来)相结合。 它针对文档解析任务进行了优化,能够从高分辨率页面中提取准确的、具有布局感知的文本。


基准测试

模型ArXiv旧扫描件数学表格多列小文本基础总体
LightOnOCR-1B-1025 (151k 词汇)81.471.676.435.280.088.799.576.1
LightOnOCR-1B-32k (32k 词汇)80.666.273.533.571.287.699.573.1
LightOnOCR-1B-16k (16k 词汇)82.372.975.333.578.685.199.875.4

所有基准测试均使用 Olmo-Bench 上的 vLLM 进行评估。


安装


uv venv --python 3.12 --seed
source .venv/bin/activate

export VLLM_COMMIT=e88bdd60d9a25d985168c9f4a60ab10095236d7c
uv pip install vllm \
    'triton-kernels @ git+https://github.com/triton-lang/triton.git@v3.5.0#subdirectory=python/triton_kernels' \
    --torch-backend=auto \
    --extra-index-url https://wheels.vllm.ai/${VLLM_COMMIT} \
    --prerelease=allow

uv pip install pypdfium2 pillow requests

启动服务器

vllm serve lightonai/LightOnOCR-1B-1025 \
    --limit-mm-per-prompt '{"image": 1}' \
    --async-scheduling

PDF 推理

import base64
import requests
import pypdfium2 as pdfium
import io

ENDPOINT = "http://localhost:8000/v1/chat/completions"
MODEL = "lightonai/LightOnOCR-1B-1025"

# Download PDF from arXiv
pdf_url = "https://arxiv.org/pdf/2412.13663"
pdf_data = requests.get(pdf_url).content

# Open PDF and convert first page to image
pdf = pdfium.PdfDocument(pdf_data)
page = pdf[0]
# Render at 200 DPI (scale factor = 200/72 ≈ 2.77)
pil_image = page.render(scale=2.77).to_pil()

# Convert to base64
buffer = io.BytesIO()
pil_image.save(buffer, format="PNG")
image_base64 = base64.b64encode(buffer.getvalue()).decode('utf-8')

# Make request
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)

渲染与预处理提示

  • 将PDF渲染为PNG或JPEG格式,目标最长边尺寸为1540像素
  • 保持宽高比以保留文本几何结构
  • 每页使用一张图片;vLLM支持批量处理

模型变体

变体描述
LightOnOCR-1B-1025完整多语言模型(默认)
LightOnOCR-1B-32k最快的剪枝词汇版本(32k tokens),针对欧洲语言优化
LightOnOCR-1B-16k最紧凑的变体,具有最小的词汇量

微调

训练和推理的Transformers集成即将推出。

LightOnOCR完全可微分,支持:

  • LoRA微调
  • 领域适应(收据、科学文章、表单等)
  • 使用特定任务语料库进行多语言微调

📓 微调笔记本


数据

训练数据基于多样化的大规模PDF语料库,涵盖:

  • 科学论文、书籍、收据、发票、表格、表单和手写文本
  • 多种语言(以拉丁字母为主)
  • 真实和合成的文档扫描件

该数据集将以开放许可协议发布。


许可证

Apache License 2.0


引用

@misc{lightonocr2025,
  title        = {LightOnOCR-1B: End-to-End and Efficient Domain-Specific Vision-Language Models for OCR},
  author       = {Said Taghadouini and Baptiste Aubertin and Adrien Cavaillès},
  year         = {2025},
  howpublished = {\url{https://huggingface.co/blog/lightonai/lightonocr}}
}