DeepSeek-OCR核心理念

之前DeepSeek没专门做多模态大模型,近期DeepSeek推出了全新工作DeepSeek-OCR,可以 同时处理图像和文本输入 了。
传统大模型对文本的处理是通过 tokenizer读文本,在处理上下文时的复杂度是O(n2)O(n^2)O(n2)的,当序列非常长时,KV cache的存储以及attention的计算都是非常大的挑战。
DeepSeek-OCR则提出了 看文本模式,通过把 文本视作(压缩进)图像模态进行理解和生成,可以有效避免长文本推理的问题,同时也可以支持更长的长下文。在DeepSeek-OCR文章中写到设计的核心原则:A picture is worth a thousand words(一图胜千言),也就是这个意思。
DeepSeek-OCR的意义远远不止传统OCR的图像文本提取,其实还支持更丰富的多模态大模型的功能和任务,比如 图像理解、物体定位、解答几何题、PDF转Markdown格式等等。

在这里插入图片描述

传统VLM中的Vision Encoder设计和缺陷

在这里插入图片描述

  • 双塔架构:由Vary提出,该方法通过并行SAM编码器来扩展视觉词汇表参数,从而提升高分辨率图像处理能力。虽然该方法具备可控参数和激活存储量,但存在明显缺陷。需要双重图像预处理,这不仅增加了部署难度,还导致pipeline parallelism在训练中很有挑战
  • 基于分块的处理:以InternVL2.0为代表,该方法通过将图像分割成小块进行并行计算,从而在高分辨率下有效降低激活函数的内存占用。 虽然该方法能够处理极高分辨率,但由于通常采用较低的原生编码器分辨率(低于512×512),导致大图像过度碎片化,进而产生大量视觉标记
  • 自适应分辨率编码技术:以Qwen2-VL为代表,该技术采用NaViT范式,通过基于patch的分割技术直接处理完整图像,无需tile并行化。虽然该编码器能灵活处理不同分辨率,但在处理大尺寸图像时存在重大挑战,由于大量激活的内存消耗,可能导致GPU内存溢出,并且在训练过程中,序列打包需要处理超长序列,长视觉token会延缓推理的预填充和生成

DeepSeek-OCR模型架构设计

在这里插入图片描述

DeepSeek-OCR由编码器和解码器构成:

1)DeepEncoder(大约380M参数)

  • 基于窗口注意力机制的感知模块SAM、基于密集全局注意力的CLIP
  • Encoder的目的是提取图像特征、分词处理及视觉表征压缩

2)DeepSeek-3B-MoE Decoder

  • MoE部分只激活570M参数,激活64个专家中的6个以及2个共享专家
  • Decoder的目的是根据图片token和prompt生成对应结果

实验结果

压缩率小于10倍时,DeepSeek-OCR可实现97%的OCR解码精度。即便压缩率达到20倍,其OCR准确率仍维持在60%左右。
在OmniDocBench测试中,该模型仅需100个视觉token,就超越了GOT-OCR2.0;同时在使用不到800个视觉token的情况下,其性能还优于MinerU2.0。

在这里插入图片描述

DeepSeek-OCR每天可为LLM/VLM生成超过200k+页的训练数据(单台A100-40G显卡)。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐