图表数据变表格!LightOnOCR-3-0.8B 视觉理解能力上手:图片描述与图表数据提取实战
图表数据变表格!LightOnOCR-3-0.8B 视觉理解能力上手:图片描述与图表数据提取实战
LightOnOCR-3-0.8B 是 LightOnOCR-3 家族中最小巧的 OCR 视觉理解模型。作为端到端的视觉语言模型,它不仅能把文档文字转成 Markdown,还能理解图片内容:为插图生成简短描述、把图表(charts)转成结构化的数据表格。本文带你快速上手这两项视觉理解能力。
认识 LightOnOCR-3-0.8B:最小的轻量级 OCR 模型
LightOnOCR-3 是新一代高性能轻量级 OCR 模型家族,相比上一代在速度和转录质量上都有显著提升,并首次引入视觉理解能力。0.8B 是其中最轻量的一款,与更大的兄弟共享相同的版式分析和视觉理解特性:
| 变体 | 定位 |
|---|---|
| LightOnOCR-3-4B | OCR 效果最佳,推荐大多数任务使用 |
| LightOnOCR-3-1B | 延续 LightOnOCR-2-1B 架构,可直接升级旧部署 |
| LightOnOCR-3-0.8B | 快速高效(Fast and Efficient),适合速度敏感的轻量场景 |
几个值得注意的亮点:
- 🚀 架构升级:0.8B 与 4B 基于 Qwen3.5 视觉语言架构,更容易接入现有工具链,速度显著提升(模型结构可参考 config.json)
- 🧾 端到端:一个模型替代复杂的文档理解流水线,部署和维护更简单
- 🧩 通用性强:支持表格、收据、表单、图表、多栏版式、数学公式等
- 📜 许可证友好:Apache 2.0,研究与商用均免费
三种使用模式速览:转录、定位、视觉理解
LightOnOCR-3 系列通过**提示词(prompt)**切换工作模式,这也是上手最重要的知识点:
| 模式 | 输入 prompt | 输出内容 |
|---|---|---|
| 转录模式 | 空字符串 ""(只传图片) |
整页文字,Markdown 格式 |
| 定位模式(Grounding) | grounding |
每个内容块附带标签 + 边界框坐标 |
| 视觉理解 | 随 grounding 模式开启 | 图片获得简短描述、图表变成数据表 |
⚠️ 注意:除了空字符串
""和grounding之外的其他指令属于分布外输入,请勿使用。如果你之前用过 LightOnOCR-2,切换到 3 系列无需任何改动,空 prompt 仍是默认行为。
实战一:图片描述——让插图"开口说话"
在 grounding 模式下,输出的每个内容块前都会带一个占位符,格式为 标签,坐标是页面归一化到 0–1000 的数值:
title
# Company report 2025
text
Revenue rose 20%.
image
A solar-powered factory.
第三行 image 后面紧跟的 "A solar-powered factory." 就是模型为图片生成的简短描述。这个能力让插图不再是"文字黑洞",可以被检索和问答(QA)流水线直接使用。
常用标签含义速查:
| 标签 | 含义 | 标签 | 含义 |
|---|---|---|---|
text |
正文段落 | image |
插图、照片等图片区域 |
title |
各级标题 | chart |
图表、曲线图 |
list |
列表内容 | table |
表格区域及内容 |
formula |
数学公式 | code |
代码块 |
caption |
图表说明文字 | header / footer |
页眉 / 页脚 |
带 + 后缀的标签表示"延续块"(上一块的续写),并非独立的语义类型。
实战二:图表数据提取——图表直接变表格
这是本次视觉理解能力中最实用的功能:图表块会输出一个包含全部数据点的 HTML 表格,把"只能看、不能算"的视觉信息变成可直接入库的结构化数据:
chart
<table>
<tr><th>Year</th><th>Revenue</th></tr>
<tr><td>2024</td><td>€10M</td></tr>
<tr><td>2025</td><td>€12M</td></tr>
</table>
拿到这份 HTML 表格后,你可以直接解析成 DataFrame 做分析、导入 Excel 或数据库,无需再人工誊抄图表上的数字。典型应用场景:财报图表数字化、论文实验数据整理、BI 报表归档。
💡 小提示:grounding 模式比纯转录平均多输出约 25% 的 token(每页 1,433 vs 1,158,4B 模型数据),属于一次性的成本换取全部视觉信息,整体依然划算。
LightOnOCR-3-0.8B 快速上手:安装与运行
一键安装依赖
uv pip install "transformers>=5.5.4" pillow pypdfium2
0.8B 使用 Qwen3.5 的模型类加载(需 Transformers ≥ 5.2,建议 5.5.4+),并已默认禁用思考模式(thinking),这与训练时的设置一致。
最小可运行示例
import torch
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
model_id = "lightonai/LightOnOCR-3-0.8B"
model = Qwen3_5ForConditionalGeneration.from_pretrained(model_id, dtype=torch.bfloat16, device_map="auto")
processor = AutoProcessor.from_pretrained(model_id)
prompt = "grounding" # 视觉理解;改成 "" 则为纯文字转录
content = [{"type": "image", "url": "report_page.png"}]
if prompt:
content.append({"type": "text", "text": prompt})
inputs = processor.apply_chat_template(
[{"role": "user", "content": content}],
add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt", enable_thinking=False,
).to(model.device)
output = model.generate(**inputs, max_new_tokens=1024, do_sample=True, temperature=0.2)
print(processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
关键点就三个:prompt 选 "" 或 grounding、enable_thinking=False、采样用 temperature=0.2。
用 vLLM 部署为服务
如果要把模型作为 API 服务长期提供,vLLM 一行即可拉起:
vllm serve lightonai/LightOnOCR-3-0.8B \
--trust-remote-code \
--default-chat-template-kwargs '{"enable_thinking": false}'
之后按 OpenAI 兼容接口发送图片 + 提示词即可,适合批量处理文档场景。
图片预处理最佳实践:渲染参数怎么定
图片质量直接影响 OCR 和图表提取效果,官方给出两条建议:
- 把 PDF 渲染为图片时使用 400 DPI,并控制最长边为 2048px
- 始终保持宽高比,保留文字几何信息
预处理的具体参数(patch 大小、归一化均值等)定义在 preprocessor_config.json 与 processor_config.json 中,Qwen3VLProcessor 会自动完成,无需手动配置。
性能一览:小模型也有硬实力
仓库内置的评测结果(见 .eval_results/olmocrbench.yaml 与 .eval_results/parsebench.yaml):
| 基准 | 任务 | 得分 |
|---|---|---|
| olmOCR-bench | 综合(overall) | 85.5 |
| olmOCR-bench | 表格(table_tests) | 90.8 |
| olmOCR-bench | 多栏版式(multi_column) | 85.2 |
| ParseBench | 图表(chart) | 64.7 |
| ParseBench | 表格(table) | 84.5 |
可以看出,表格理解是它的强项;图表数据提取作为新能力,对复杂图形的覆盖还有提升空间,常规柱状图、折线图、饼图基本不在话下。
仓库文件指南:每个文件是干什么的
| 文件 | 说明 |
|---|---|
| model.safetensors | 模型权重文件 |
| config.json | 模型结构配置(Qwen3.5 架构、bfloat16 精度、24 层文本塔) |
| tokenizer.json、vocab.json、merges.txt | 分词器词表与合并规则 |
| chat_template.jinja | 对话模板,支持图像/视频占位符与 thinking 开关 |
| preprocessor_config.json | 图像预处理参数(patch 大小、缩放等) |
| generation_config.json | 生成参数(特殊 token 设置) |
| README.md | 完整官方文档:使用模式、示例代码、基准成绩、引用信息 |
总结
LightOnOCR-3-0.8B 用最小的体量带来了完整的视觉理解能力:空 prompt 快速转录全文、grounding 提示词一次拿到标签、坐标、图片描述和图表数据表。三个要点帮你记住它:
- 两种 prompt:
""纯转录,grounding全量视觉理解 - 图表变表格:
![chart]块后直接是 HTML 数据表,可程序化解析 - 预处理到位:400 DPI、最长边 2048px、保持宽高比
如果你的文档里图表较多,又想在低算力环境下跑文档数字化流水线,这个 0.8B 的小模型值得一试。