☰
10分钟上手LightOnOCR-3-4B:从零跑通第一个OCR识别的超简单教程
2026/10/18 3:05:57 网站建设 项目流程

【免费下载链接】LightOnOCR-3-4B

项目地址:https://ai.gitcode.com/hf_mirrors/lightonai/LightOnOCR-3-4B
点击查看免费下载

LightOnOCR-3-4B是 LightOn 推出的新一代轻量级端到端 OCR(光学字符识别)视觉语言模型中最大、最精准的一款,4B 参数量,推荐用于绝大多数 OCR 任务。它不止能把图片里的文字"抄"下来,还能输出每个内容块的位置框(bounding box)、图片描述和图表数据,一个模型就能替代整套复杂的文档理解流水线。本文带你从零跑通第一个 OCR 识别,全程不到 10 分钟。

一、先认识一下 LightOnOCR-3-4B

LightOnOCR-3 是一个 OCR 模型家族,包含三个规格:

型号定位
LightOnOCR-3-4B最精准,推荐用于大多数 OCR 任务(本文主角)
LightOnOCR-3-1B沿用上一代架构,现有部署可直接替换升级
LightOnOCR-3-0.8B更快更省资源

4B 版本基于 Qwen3.5 视觉语言架构(可从 config.json 中看到model_type为qwen3_5),部署简单、速度更快,并以 Apache 2.0 协议开源,研究和商业用途都免费。

它有三个核心卖点:

  • 📝转录模式:传一张图,输出整页 Markdown 文本,表格、公式、代码都能还原
  • 📍Grounding 模式:每个内容块都会带上标签和归一化坐标(0–1000),方便做视觉定位
  • 🖼️视觉理解:图片自动配短描述,图表直接转成数据表格

二、两种提示词模式:一个参数切换功能

LightOnOCR-3-4B 的用法非常克制,只支持两种提示词(其他指令不在训练分布内,效果无法保证):

提示词行为
空字符串""(只传图片)纯转录,输出整页文本为 Markdown
grounding转录 + 定位框 + 标签 + 图片/图表理解

grounding 模式的输出长这样——每块内容前会带一个占位符,标注类型和位置框:

title # Company report 2025 chart <table> <tr><th>Year</th><th>Revenue</th></tr> <tr><td>2024</td><td>€10M</td></tr> </table>

支持的标签包括text、title、table、formula、code、chart、image、header、footer等 17 种(完整清单见 README.md)。注意 grounding 模式输出 token 数比纯转录多约 25%,按需选择即可。

三、环境准备:一步装好依赖

推荐使用uv安装(首次使用uv可先运行curl -LsSf https://astral.sh/uv/install.sh | sh):

uv pip install "transformers>=5.5.4" pillow pypdfium2

⚠️ 注意:LightOnOCR-3-4B 需要Transformers ≥ 5.2(建议 5.5.4+)才能加载 Qwen3.5 模型类,版本过低会直接报错。

四、10分钟跑通第一个OCR识别

下面是完整可运行的示例代码,来自官方 README.md:

import torch from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration model_id = "lightonai/LightOnOCR-3-4B" model = Qwen3_5ForConditionalGeneration.from_pretrained( model_id, dtype=torch.bfloat16, device_map="auto" ) processor = AutoProcessor.from_pretrained(model_id) # 一张小票图片,换成你自己的图片路径即可 url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_ocr/resolve/main/SROIE-receipt.jpeg" prompt = "grounding" # 或 "" 表示纯转录 content = [{"type": "image", "url": url}] if prompt: content.append({"type": "text", "text": prompt}) conversation = [{"role": "user", "content": content}] inputs = processor.apply_chat_template( conversation, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", enable_thinking=False, # 关键:模型以禁用思考模式训练 ).to(model.device) output_ids = model.generate(**inputs, max_new_tokens=1024, do_sample=True, temperature=0.2) generated_ids = output_ids[0, inputs["input_ids"].shape[1]:] print(processor.decode(generated_ids, skip_special_tokens=True))

代码逻辑其实就 4 步:

  1. 加载模型和处理器:from_pretrained会自动下载模型权重(device_map="auto"自动分配显存)
  2. 组装对话:内容里放一张图,再附上提示词(""或grounding)
  3. 应用聊天模板:注意enable_thinking=False,这是模型的默认训练方式,别去掉
  4. 生成并解码:输出就是 Markdown 格式的识别结果

五、想长期部署?用 vLLM 一键起服务

如果要做生产服务,vLLM 是更省事的选择:

vllm serve lightonai/LightOnOCR-3-4B \ --trust-remote-code \ --default-chat-template-kwargs '{"enable_thinking": false}'

启动后就是一个标准的 OpenAI 兼容 API(/v1/chat/completions),把图片以 base64 放进消息即可调用,完整请求示例见 README.md。

关于思考模式还有一个小细节:仓库内置的 chat_template.jinja 默认就是enable_thinking=false,但 README.no_thinking.md 建议显式传--default-chat-template-kwargs '{"enable_thinking": false}',让行为更清晰;如需开启思考模式,显式传true即可。

六、提升识别效果的3个实用技巧

  1. PDF 先转图:按400 DPI渲染,最长边控制在2048px,并保持宽高比(保持比例才能保留文字几何关系),这是官方 README.md 推荐的最佳预处理参数
  2. 温度别太高:示例中temperature=0.2、top_p=0.9是推荐采样参数,识别任务追求稳定性
  3. 提示词只用两种:其他自定义指令属于"分布外"输入,反而会拖效果

七、仓库文件速览

文件作用
README.md完整文档:模式说明、Transformers/vLLM 用法、参数建议
config.json模型结构配置(Qwen3.5 架构、bfloat16)
chat_template.jinja聊天模板,默认禁用思考模式
preprocessor_config.json图像处理器配置(patch_size=16、均值/标准差归一化)
tokenizer.json / vocab.json / merges.txt分词器资源文件
generation_config.json生成默认配置(结束符、缓存等)

写在最后

到这里,你的第一个 LightOnOCR-3-4B OCR 识别就跑通了 🎉 总结一下关键路径:

  • 装依赖 → 加载模型 → 传图 + 选模式(""或grounding)→ 拿到 Markdown 结果
  • 追求稳定部署就用 vLLM 起 API 服务
  • PDF 输入记得 400 DPI + 最长边 2048px

LightOnOCR-3-4B 以 Apache 2.0 协议完全开源,商用也免费,无论是票据、表单、多栏文档还是图表,一个模型就能搞定,非常值得放进你的文档处理工具箱。

【免费下载链接】LightOnOCR-3-4B

项目地址:https://ai.gitcode.com/hf_mirrors/lightonai/LightOnOCR-3-4B
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询