[开源推荐] DeepOCR: 基于 VILA 框架复现 DeepSeek-OCR 模型,核心创新在于通过视觉压缩技术实现文本的高效处理
核心问题与解决方案
· 痛点:大语言模型处理长文本时,计算复杂度随序列长度平方级增长,导致效率低下。
· 创新思路:将文本渲染成图像,用视觉编码器压缩处理,实现 7-20 倍的压缩率。这相当于把"读文字"变成"看图片",用更少的信息量传达相同内容。
技术架构
项目采用三层设计,总参数约 380M:
1. DeepEncoder(视觉编码核心)
· SAM 编码器(80M 参数):使用窗口注意力机制处理 1024×1024 高分辨率图像,输出 4096 个特征标记
· 16× 卷积压缩器:通过两层卷积将标记数从 4096 压缩到 256,大幅降低计算量
· CLIP 编码器(300M 参数):对压缩后的特征进行全局语义理解
设计巧妙之处:先用 SAM 的窗口注意力控制内存开销,压缩后再用 CLIP 的全局注意力提取语义,避免了直接处理高分辨率图像导致的内存爆炸。
2. 多模态投影器
· 将 2048 维视觉特征映射到语言模型空间
· 通过换行符和分隔符标记帮助模型理解文档的空间结构
3. 语言解码器
采用 Qwen2-7B 模型(原版使用 DeepSeek-3B-MoE),负责最终的文本生成。
训练方法
采用两阶段训练策略:
阶段 1:视觉-语言对齐(1 轮)
· 数据:59.5 万通用图像-文本对
· 训练目标:仅训练投影器,学习基础的视觉到语言映射
阶段 2:OCR 专项预训练(1 轮)
· 数据:26 万 PDF 文档和图像
· 训练目标:微调投影器和语言模型,冻结视觉编码器
性能表现
1. 优势领域:
· 英文文本识别:编辑距离 0.093,表现优秀
· 简单文档处理:准确率达 99.5%
· 表格结构解析:得分 70.3,空间理解能力强
· 标记效率:仅用约 250 个视觉标记,比传统方法节省 15 倍
2. 改进空间:
· 复杂布局文档(如多栏学术论文):51.2 分
· 数学公式识别:性能较弱,训练数据中数学内容不足
· 中文文档:与英文相比存在差距
实用价值
项目为研究者提供了:
· 完整的开源实现:包括训练脚本、评估工具和预训练检查点
· 架构验证:证明视觉压缩技术在 OCR 任务中的可行性
· 即用工具:支持文本提取、Markdown 转换、图表解析等多种应用场景
局限与未来方向
当前限制主要源于训练资源和数据:
· 仅训练 1 轮,未充分收敛
· 训练数据(26 万样本)相比顶尖模型(100 万+)偏少
· 缺少数学内容和历史扫描文档
· 改进方向包括数据增强、引入强化学习、优化提示词工程等,理论上可将性能提升 17 个百分点。
项目地址
pkulium.github.io/DeepOCR_we…
Discover DeepOCR: a fully open-source reproduction of DeepSeek-OCR, complete with training & evaluation code!
#DeepLearning #OCR