首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >FireRed-OCR开源:2B模型拿下文档解析第一

FireRed-OCR开源:2B模型拿下文档解析第一

作者头像
代码简单说
发布2026-06-16 16:23:50
发布2026-06-16 16:23:50
340
举报
文章被收录于专栏:代码简单说代码简单说

FireRed-OCR开源:2B模型拿下文档解析第一

关键词:FireRed-OCR、文档解析、结构幻觉、OmniDocBench、Qwen3-VL、表格识别、公式识别、端到端OCR、Markdown输出、本地商用部署

在这里插入图片描述
在这里插入图片描述

在做知识库构建和 RAG 项目时,我踩过最多的坑,不是向量检索,而是文档结构还原

最近来自小红书超级智能团队的 FireRed-OCR 给了一个非常干脆的答案: 用仅 20 亿参数(2B) 的轻量模型,在 OmniDocBench v1.5 端到端评测中拿下 92.94% 综合得分第一,超过 Gemini 3.0 Pro、DeepSeek-OCR 2 和 Qwen3-VL-235B。

更关键的是: 模型已在 ModelScope 开源,Apache 2.0 协议,支持本地商用部署。


一、它到底解决了什么问题?

1️⃣ 文档解析的核心痛点:结构幻觉

在复杂文档解析中,通用大视觉语言模型(VLM)存在典型问题:

  • 表格行列错位,数据串行
  • 公式“脑补”符号
  • 多栏文档阅读顺序混乱
  • 标签未闭合,Markdown 结构损坏

这类问题被称为:结构幻觉(Structural Hallucination)

本质原因在于:

通用 VLM 强于语义生成,但缺乏对空间结构的强约束。

FireRed-OCR 的目标非常明确: 把模型从“语言生成器”改造成“结构工程师”。


二、核心技术:三阶段渐进式训练

FireRed-OCR 并非简单微调,而是完整的训练框架设计。

第一阶段:多任务预对齐

目标:建立空间感知基础。

  • 目标检测
  • 区域识别
  • 版面 → Markdown 映射

这一阶段相当于给模型建立“文档坐标系”。


第二阶段:专项监督微调(SFT)

在高质量 Markdown 数据上进行精调:

  • 统一输出结构
  • 强化层级表达能力
  • 保证逻辑一致性

这一步确保模型输出可直接进入下游系统。


第三阶段:格式约束强化学习(Format-Constrained GRPO)

这是核心创新。

在 GRPO(Group Relative Policy Optimization)基础上,引入格式奖励信号,覆盖四个维度:

维度

约束内容

公式

LaTeX 语法合法性

表格

标签完整闭合

层级

Markdown 嵌套正确

文本

字符级识别精度

模型每次生成后都会被“格式打分”。

长期训练后形成结果:

输出不仅语义正确,而且结构合规。


三、数据引擎:几何 + 语义数据工厂

团队构建了一套自动数据增强系统:

  • 几何特征聚类
  • 多维度标注
  • 长尾版式增强
  • 合成复杂多栏文档

专门解决真实场景中“奇怪排版”的问题。


四、模型效果

OmniDocBench v1.5(标准基准)

FireRed-OCR-2B:

  • 端到端方案第一
  • 综合得分:92.94%

需要说明:

  • PaddleOCR-VL-1.5(94.50%)
  • GLM-OCR(94.60%)

属于多模型流水线方案,并非单模型端到端。

FireRed-OCR 是端到端单模型中的最优解。


OCRBench TextRec(文字识别)

FireRed-OCR-2B:

  • 93.5 分
  • 超过 GPT-5.2(93.0)
  • 超过 Gemini-3.0 Pro(91.9)

FireRedBench(复杂版式压力测试)

  • FireRed-OCR-2B:74.62
  • GLM-OCR:74.33
  • PaddleOCR-VL-1.5:76.47
  • Qwen3-VL-2B:65.58

可以看到:

相比基座模型,提升接近 9 分。


五、快速上手

基于 Qwen3-VL 架构。

安装依赖

代码语言:javascript
复制
pip install transformers qwen-vl-utils

推理示例

代码语言:javascript
复制
from modelscope import Qwen3VLForConditionalGeneration, AutoProcessor
from conv_for_infer import generate_conv
import torch

model = Qwen3VLForConditionalGeneration.from_pretrained(
    "FireRedTeam/FireRed-OCR-2B",
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

processor = AutoProcessor.from_pretrained("FireRedTeam/FireRed-OCR-2B")

image_path = "./examples/complex_table.png"
messages = generate_conv(image_path)

inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt"
).to(model.device)

generated_ids = model.generate(**inputs, max_new_tokens=8192)

generated_ids_trimmed = [
    out_ids[len(in_ids):]
    for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]

output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True
)

print(output_text)

输出即标准 Markdown,可直接进入:

  • RAG
  • 向量数据库
  • 知识图谱
  • 数据清洗流程

六、部署建议

1️⃣ 硬件要求

  • 2B 参数
  • bfloat16
  • 显存约 4–5GB
  • RTX 3090 / A10 单卡即可

建议开启:

代码语言:javascript
复制
attn_implementation="flash_attention_2"

可明显降低显存峰值。


2️⃣ max_new_tokens 设置

  • 学术论文页面:8192 或更高
  • 普通文档:4096 可加速推理

3️⃣ 图像质量

建议:

  • ≥150 DPI
  • 尽量避免过度压缩
  • 避免极端歪斜

低质量扫描会导致整体分数降至约 74 分水平。


七、端到端 vs 流水线怎么选?

方案

优点

缺点

流水线

极致精度

工程复杂

FireRed-OCR

部署简单、结构稳定

极端场景略低 1–2%

如果你做的是:

  • 学术论文解析
  • 财报结构抽取
  • 技术文档数字化
  • RAG 知识库构建

FireRed-OCR 是当前性价比非常高的选择。


八、总结

FireRed-OCR 做对了一件事:

在垂直任务中,用专项训练打败大参数堆叠。

  • 三阶段渐进训练
  • 格式约束强化学习
  • 几何语义数据引擎

让 2B 模型在专项文档解析上战胜 235B 通用模型。

这也说明一个趋势:

在工程落地场景中,结构正确性比语言华丽更重要。

模型地址:

https://modelscope.cn/models/FireRedTeam/FireRed-OCR

如果你正在做文档数字化或知识库建设,这个项目值得测试一轮。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FireRed-OCR开源:2B模型拿下文档解析第一
  • 一、它到底解决了什么问题?
    • 1️⃣ 文档解析的核心痛点:结构幻觉
  • 二、核心技术:三阶段渐进式训练
    • 第一阶段:多任务预对齐
    • 第二阶段:专项监督微调(SFT)
    • 第三阶段:格式约束强化学习(Format-Constrained GRPO)
  • 三、数据引擎:几何 + 语义数据工厂
  • 四、模型效果
    • OmniDocBench v1.5(标准基准)
    • OCRBench TextRec(文字识别)
    • FireRedBench(复杂版式压力测试)
  • 五、快速上手
    • 安装依赖
    • 推理示例
  • 六、部署建议
    • 1️⃣ 硬件要求
    • 2️⃣ max_new_tokens 设置
    • 3️⃣ 图像质量
  • 七、端到端 vs 流水线怎么选?
  • 八、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档