【多模态】46、DeepSeek-OCR | 一张图片是否真能抵千词

论文:DeepSeek-OCR: Contexts Optical Compression

代码:https://github.com/deepseek-ai/DeepSeek-OCR

出处:DeepSeek-AI

时间:2025.10

一、背景

当前大型语言模型(LLM)在处理长文本时面临计算复杂度高的问题(序列长度的平方级增长),所以该方法探索视觉模态在文本压缩中的潜力,验证"一张图片是否真能抵千词"(高压缩比下保持文本解码精度)。

二、方法

DeepSeek-OCR提出了DeepEncoder,专门解决现有视觉编码器的痛点:高分辨率输入时token过多、激活内存大、不支持多分辨率等。

具体处理流程:

  • 输入图片1024x1024
  • 切分为16x16的patch,共4096patch token
  • 送入SAM(80M,不参与训练)进行local attention,输出还是4096token
  • 送入压缩卷积将4096token降维到256token(重点!)
  • 压缩后的token送入 CLIP-large(300M,训练,去掉第一层patch嵌入层,直接输入压缩后的token),通过全局注意力提取全局信息
  • 将CLIP的输出送入 DeepSeek-3bA570M,训练

特点:

  • 支持高分辨率输入(如 1024×1024)且保持低激活内存。
  • 动态多分辨率支持(Tiny/Small/Base/Large/Gundam 模式),适应不同压缩比需求。
  • 通过位置编码插值实现灵活输入尺寸调整。

三、数据集

数据配比:OCR : general vision : text-only = 70% :20%:10%

1、OCR1.0数据:包括图片OCR和文档OCR

  • 图片OCR:

    • 收集 LAION/Wukong等,使用PaddleOCR打标,中英各1000万
  • 文档OCR:

    • 包括3000万PDF页面(包括100种语言,2500万是中英文、500万是其他语言)
    • 处理方式:
      • ①粗糙处理:使用 fitz 提取全文信息
      • ②精细处理:借助版面检测模型(PP-DocLayout)进行版面切割,然后用OCR模型(MinuerU和GOT-OCR2.0)进行识别
      • 粗糙处理和精细处理的数据会使用不同的prompt用于训练

2、OCR2.0数据:图表、化学公式、平面几何

  • 图表数据:借鉴OneChart,使用pyecharts和matplotlib渲染 1000 万图片,主要包括 line、bar、pie、composite charts。
  • 化学式数据:使用来自PubChem的SMILES格式作为数据来源,并通过RDKit将其渲染为图像,构建500万条图像-文本对
  • 平面几何数据:参考 Slow Perception 进行生成,共构建100万平面几何数据。

3、通用视觉数据:caption、detection、grounding

  • 因为 DeepSeek-OCR不是锚定通用模型的,所以只加了20%的该类数据参与训练,只是为了保留一些通用视觉理解能力。
    4、纯文本数据:为了保留模型语言能力,加入了 10% 的 in-house text-only 数据

四、训练方式

两阶段训练方式:

  • stage1:只训练训练 DeepEncoder,冻结语言模型
  • stage2:全流程训练DeepSeek-OCR

1.4.1 stage1

数据:使用所有 OCR1.0 和 OCR2.0 数据,从LAION 中随机选出 1亿 通用数据

训练超参数:2epoch,batch 1280,AdamW,lr=5e-5,长度=4096

1.4.2 stage2

训练模式:训练由4部分流水线训练(pipeline parallelism,PP)组成,前两部分训练 DeepseekEncoder(SAM+压缩器冻结,CLIP训练),后两部分训练语言模型

五、效果展示

对指令跟随能力一般,下面展示几个支持的典型场景和prompt

1、全文分块定位+识别

2、表格解析、配图理解


3、文本定位、目标定位任务

相关推荐
唯鹿4 小时前
Copilot使用体验
ai·1024程序员节
蔚蓝星辰mic4 小时前
数据库运维查询SQL语句集合
数据库·sql·1024程序员节
金仓拾光集4 小时前
终结工艺数据分散管理:金仓数据库平替MongoDB,实现参数、配方、流程一体贯通
1024程序员节
Better Bench4 小时前
Ubuntu 20.04上安装MuJoCo 210
1024程序员节
傻啦嘿哟4 小时前
Python爬虫数据存储:MySQL实战教程
1024程序员节
正经教主4 小时前
【Trae+AI】和Trae学习搭建App_02:后端API开发
学习·app·1024程序员节
岑梓铭4 小时前
《考研408数据结构》第六章(5.1+5.2+5.3树、二叉树、线索二叉树)复习笔记
数据结构·笔记·考研·408·1024程序员节
wktomo4 小时前
深度学习快速入门手册
1024程序员节
周杰伦_Jay5 小时前
【 RocketMQ 全解析】分布式消息队列的架构、消息转发与快速实践、事务消息
分布式·算法·架构·rocketmq·1024程序员节