DeepSeek 视觉语言大模型技术演进(从DeepSeek VL/VL2到DeepSeek OCR)

随着 ChatGPT 迅速走红,这两年大家在日常工作中使用 LLM 进行的场景越来越多。本系列将针对主流算法架构进行讲解。

另外,我撰写的大模型相关的博客及配套代码 均整理放置在Github:llm-action,有需要的朋友自取。

最近视觉语言大模型领域逐渐变得成熟,本文详细介绍下DeepSeek在模型架构和训练方法上发展脉络。

DeepSeek VL

背景

目前开源的 MLLM 模型存在下列问题:

  • 多模态的世界知识很关键,目前大部分 MLLM 模型都是在指令微调上面做文章,这样会忽略世界知识而过分强调指令跟随导致在现实场景下使用体验不佳。为了给多模态模型注入丰富的世界知识,应该考虑利用广泛的视觉语言数据进行全面预训练。
  • 在指令微调阶段,很多 MLLM 为了刷榜会使用很多学术类数据集,虽然看起来指标很高,但是实际上体验不好。
  • 在模型架构方面,之前的工作大多将视觉转换器(通常与文本对齐)适配到预训练的语言模型。然而,大多数这些模型的分辨率相对较低,例如:336×336 或 448×448。而复杂现实场景(如OCR或微小物体识别)要求高分辨率的处理能力。
  • 大部分 MLLM 在微调时候都没有考虑 LLM 模型本身能力是否下降,而这也是非常关键的。开发一个训练策略用于在两种模态方面都具备强大能力至关重要。

总的来说,为了得到真的能用的 MLLM 模型,DeepSeek-VL 涉及了全面的预训练、基于场景的分类进行细致的数据整理、用于高分辨率处理的模型架构设计和平衡多模态的训练策略。

数据构造

数据涵盖两类:一种是视觉语言预训练数据, 其目标是增强模型跨模态的理解。另外一种视觉语言有监督微调, 其目标是教会模型完成下游任务。

视觉语言预训练数据

这部分数据的要求是多样化,尽可能包括大量图文世界知识,对标的是 LLM 的预训练阶段。 在这个阶段为了保留 LLM 原先的能力,依然注入了大量 LLM 预训练阶段所使用的纯文本数据,是很关键的。

指令微调阶段

该阶段所需要的数据比较少,要求是高质量多样化。也用了大量 LLM 训练时的纯 SFT 数据。

其中,In-house Data 是内部构建的基于现实场景中收集的 SFT 数据,是精心设计的高指令数据。具体来说是:

  • 首先收集来自不同在线源的 GPT-4V 和 Gemini 的各种真实测试用例。
  • 然后仔细分析这些测试用例并将其组织成一个详细的分类,例如:包括识别、转换、分析、推理、评估和安全等多个类别,如下图所示。构造这种结构化分类法有比较大的好处,例如:可以在制作评测数据集时候平衡各个类别的数据量,当然训练时候也可以这样,方便挑选固定数量的类别平衡的高质量指令数据。

模型架构

系统包含三个模块:混合视觉编码器、视觉适配器和语言模型

混合视觉编码器结合了 SAM-B 和 SigLIP-L 编码器,高效编码高分辨率为 1024 x 1024 图像,同时保留语义和细节信息。

  • 使用基于 SAM-B(一种预训练的 ViTDet 图像编码器) 的仅视觉编码器,用于处理低阶( low-level)语言特征,支持 1024 x 1024 的高分辨率图像输入。
  • 此外,还保留了 SigLIP-L 视觉编码器,处理 384 x 384 的低分辨率图像输入。

具体来说,高分辨率 SAM-B 视觉编码器首先将图像调整为 1024 x 1024,生成 64 x 64 x 256 的特征图。对于 SAM-B 生成的 64 x 64 x 256 大小的高分辨率特征图,VL 适配器首先将其插值为 96 x 96 x 256。随后,它采用两个步幅为 2 的卷积层,生成一个24 x 24 x 1024的特征映射,并将其重塑为 576 x 1024。此外,SigLIP-L 生成的 576 x 1024 大小的低分辨率特征映射与高分辨率特征相连,形成 576 个视觉 token,维度为 2048。这些视觉token在增强高阶语义视觉识别和低阶视觉基础任务方面具有显著能力。然后它们经过 GeLU 激活,并被引导通过嵌入层,与语言模型建立连接。

视觉语言适配器。采用两层混合 MLP 桥接视觉编码器和 LLM。首先,两个不同的单层 MLP 用于分别处理高分辨率特征和低分辨率特征。随后,这些特征沿其维度串接,并通过另一层 MLP 转换为 LLM 的输入空间。

语言模型。基于 DeepSeek LLM,其微观设计大致沿袭 LLaMA,采用 Pre-Norm 结构(RMSNorm),并使用 SwiGLU 作为前馈网络(FFN)激活函数。它还包含了旋转嵌入技术用于位置编码,并与 DeepSeek-LLM 使用相同的分词器。

鉴于目标是进行多模态和语言的联合预训练,从 DeepSeek 的预训练模型中选择一个中间检查点继续预训练。DeepSeek-VL-1B 模型基于 DeekSeek-LLM-1B 模型构建,该模型经过约 5000 亿文本toekn的训练。DeekSeek-VL-7B 模型是基于 DeepSeek-LLM-7B 模型,训练的约 2 万亿个文本toekn。

训练流水线

整个系统采用 3 阶段训练策略。

视觉语言适配器训练

  • 内容:冻结视觉编码器和 LLM 参数,使用图像-文本对数据训练视觉-语言适配器。
  • 目的:在嵌入空间内建立视觉与语言元素之间的概念联系,从而促进LLM对图像中所描绘实体的全面理解。
  • 数据量:从ShareGPT4V获得的125万对图像-文本配对字幕数据集以及250万对文档OCR渲染来训练VL适配器。

视觉语言联合预训练

  • 内容:保持视觉编码器冻结,并优化语言模型视觉语言适配器
  • 数据:不仅进行多模态数据训练,还将大量语言数据纳入训练中。
  • 目的:整合语言数据显著缓解了语言能力的下降 ,并且语言数据的加入并未导致多模态性能的显著损失。同时,不同模态的性能与它们在训练数据集中的比例高度相关。选择语言与多模态数据的训练比例约为7:3。这一比例使模型能够保持语言能力,同时,实现对多模态数据的更好预训练,有效平衡语言和多模态能力的发展。

有监督微调

  • 目的:通过基于指令的微调对预训练的 DeepSeek-VL 模型进行微调,增强其执行指令和对话的能力。
  • 内容:使用视觉语言 SFT 数据优化语言模型、视觉语言适配器和混合视觉编码器,由于 GPU 内存有限,SAM-B 仍然冻结。同时,只监督答案和特殊token并隐藏系统和用户提示。
  • 数据:为确保模型在对话方面的全面熟练度,结合了多模态数据和 DeepSeek-LLM 中使用的纯文本对话数据

DeepSeek-VL 7B 在 64 个节点的集群上消耗 5 天,每个节点包含 8 个 Nvidia A100 GPU,而 DeepSeek-VL-1B 在涉及 16 个节点的设置上消耗 7 天。

为了高效训练,使用一个小策略:多模态训练的时候,由于纯问题和图文数据长度差距很多,如果一个批次里面混合训练则非常低效,所以采用的是分组训练策略,纯文本和图文数据分成不同组进行训练,可以最大化集群效率。

此外,训练过程中,先将语言数据比率设置为1,然后逐渐将其降低到最终模型训练的目标比率 0.7,也就是纯 LLM 数据比例是慢慢降低的,最终证明这种方式效果最好。这一策略有效防止了训练初期语言能力的显著下降,同时在语言和多模态领域后期阶段取得了相对优越的结果。这种渐进的适应使模型能够更顺畅地适应多模态数据的融入,从而提升整体训练的稳定性和性能。

DeepSeek VL2

DeepSeek VL2 利用 MoE 架构在性能和效率上相较于其 DeepSeekVL 实现了显著提升。其主要进展集中在三个方面:(1)动态、高分辨率的视觉编码策略,增强视觉理解;(2)优化的语言模型架构,显著提升训练和推理效率;(3)精炼的视觉语言数据构建流程,不仅提升整体性能,还将模型能力扩展到精准视觉定位等新领域。

模型架构

DeepSeek-VL2由三个核心模块组成:视觉编码器、视觉语言适配器和混合专家语言模型。基于其前身DeepSeek-VL的解码器架构,DeepSeek-VL2引入了两大创新:动态分块策略DeepSeek MoE语言模型

动态分块策略

DeepSeek-VL采用了 SigLIP 和 SAM-B 的混合视觉编码器,分别用于粗粒度和细粒度特征提取。然而,这种固定分辨率的编码器在处理高分辨率和极端长宽比图像时存在局限性。

DeepSeek-VL2 通过将高分辨率图像分割成小的图块来实现动态分块策略。使得使用单一的 SigLIP-SO400M-384 视觉编码器能够高效处理具有不同长宽比的高分辨率图像。预训练的SigLIP以384 × 384的基本分辨率运行。

视觉-语言适配器

在处理视觉块之后,DeepSeek-VL2通过2×2像素 shuffle 操作将每个块的视觉token从27×27压缩到14×14=196个token。此外,还引入了三个特殊token来处理全局缩略图块和局部图块。

  • 对于全局缩略图块(14 × 14),每行末尾添加了 14 个 <tile_newline> token,最终得到 14 × 15 = 210 个 token 。
  • 对于 <math xmlns="http://www.w3.org/1998/Math/MathML"> m i × n i m_i \times n_i </math>mi×ni 的局部图块,它们以形状为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( m i ⋅ 14 , n i ⋅ 14 ) (m_i \cdot 14, n_i \cdot 14) </math>(mi⋅14,ni⋅14) 的二维网格排列,在最后一列末尾附加了 <math xmlns="http://www.w3.org/1998/Math/MathML"> m i ⋅ 14 m_i \cdot 14 </math>mi⋅14 个 <tile_newline> token,表示所有本地局部图块的一行结束。
  • 在全局缩略图块与局部图块之间插入了一个 <view_separator> token。

完整的视觉序列包含 <math xmlns="http://www.w3.org/1998/Math/MathML"> 210 + 1 + m i ⋅ 14 × ( n i ⋅ 14 + 1 ) 210 + 1 + m_i \cdot 14 \times (n_i \cdot 14 + 1) </math>210+1+mi⋅14×(ni⋅14+1) 个视觉token。随后将视觉序列通过两层 MLP 投影到语言模型的嵌入空间中。

DeepSeekMoE 语言模型

DeepSeek-VL2的语言模型基于DeepSeekMoE,采用了MLA,通过压缩键值缓存为潜在向量,显著提高了推理效率。模型还引入了MoE架构,通过稀疏计算实现高效推理。

在 MoE 训练时,为每位专家引入全局偏置项,以经济高效地改善专家间的负载均衡。DeepSeek-VL2 有三个模型尺寸:1.0B、2.8B 和 4.5B。

数据构造

DeepSeek-VL2的训练数据构建分为三个阶段:视觉语言对齐、视觉语言预训练和有监督微调。

视觉语言对齐数据

该阶段主要训练MLP连接器,以桥接预训练的视觉编码器和语言模型。使用了ShareGPT4V数据集,包含约120万条标题和对话样本。

视觉语言预训练数据

预训练数据结合了 70% 视觉语言数据和 30% 纯文本数据,保持了视觉语言能力和纯文本性能的平衡。后者直接来自基石模型的预训练语料库。而视觉语言数据则包括交错图像文本数据、图像描述数据、OCR、视觉问答数据和视觉定位数据。

监督微调数据

微调数据结合了开源数据集和高质量的内部问答对,涵盖了通用视觉问答、OCR和文档理解、表格和图表理解、推理逻辑和数学、教科书和学术问题、网页转代码与图像转Python生成、视觉定位和基于文本的对话数据。

训练方法

DeepSeek-VL2的训练分为三个阶段:视觉语言对齐(初始阶段)、视觉语言预训练(预训练阶段)和有监督微调(微调阶段)。在预训练和微调阶段,所有模型参数,包括视觉编码器、视觉语言适配器和语言模型,同时解锁并训练。在所有阶段,突出视觉理解能力,并专门计算文本token的下一次预测loss。

视觉语言对齐

基于预训练语言模型(DeepSeekMoE 3B/16B/27B),主要目标是建立视觉特征和语言特征之间的联系 。这种对齐使得预训练的语言模型能够有效处理视觉输入。不同于之前的方法保持固定的预训练视觉编码器和语言模型,DeepSeek-VL2将固定分辨率的视觉编码器调整为能够适应动态高分辨率图像 。在此阶段,优化视觉编码器视觉语言适配器,同时冻结语言模型。

视觉语言预训练

在嵌入空间中建立视觉语言对齐后,接下来将大部分计算资源投入视觉语言预训练。

此阶段的重点是开发跨多种任务的综合视觉-语言知识。这个阶段对所有参数进行优化,包括视觉编码器,视觉-语言适配器和 DeepSeekMoE。使用大约800B个图像文本token,该阶段显著增强了模型的多模态理解能力,同时保持了其大部分语言能力。

有监督微调

通过有监督微调增强模型的指令遵循和对话能力。利用内部的视觉-语言 SFT 数据,优化所有参数,同时仅监督答案和特殊token,屏蔽系统和用户的提示。为了增强对话理解,将多模态数据与来自 DeepSeek-V2 的纯文本对话数据结合。这种方法确保了模型在多种视觉-语言任务中的强大表现。

模型超参及基础设施

DeepSeek-VL2 训练不同规格模型的详细超参数如下所示:

作为模型流水线的第一个组件,视觉编码器需要在多个 GPU 间进行细致负载均衡,以防止流水线空泡并优化 GPU 利用率。由于视觉编码器相较于 LLM 模块的独特计算特性导致流水线并行策略面临的一个重大挑战。

为此,作者在流水线并行策略中对视觉编码器进行了细粒度的层划分 。此外,在前向和后向过程中对不同数据并行ranks进行图像分块负载均衡以缓解动态分辨率策略导致的图像分块数量不平衡。此外,训练流程还融合了张量并行和专家并行方法,以实现最高效率。由于部分批次仅包含文本数据,而另一些包含图像数据,引入了两种不同的流水线策略。针对不同类型的数据,并按需在这两种策略之间切换。

最终,DeepSeek-VL2 的训练针对不同规格模型在7/10/14天内完成,使用 16/33/42 节点集群,每个节点配备 8 块 NVIDIA A100 GPU。

DeepSeek OCR

背景

当前 LLMs 在处理长文本时面临显著的计算挑战,其开销随序列长度呈二次增长。本文探索一种潜在的解决方案:将视觉模态作为高效的文本信息压缩媒介。包含文档文本的单个图像可以使用比等效数字文本少得多的token来表示丰富的信息,这表明通过视觉token进行光学压缩可以实现更高的压缩比。

这一见解促使作者从以 LLM 为中心的角度重新审视视觉语言模型,并重点关注视觉编码器如何提升 LLM 在处理文本信息时的效率,而非人类本就擅长的基础 VQA 任务。OCR 任务作为连接视觉与语言的中间模态,为这种视觉文本压缩范式提供了理想的测试平台,因为,它们建立了视觉与文本表现之间的自然压缩-解压映射,同时,提供了定量评估指标。

模型架构

DeepSeek-OCR 采用统一的端到端 VLM 架构,由编码器与解码器组成。编码器(即 DeepEncoder)负责提取图像特征、将视觉表征离散化为 token 并进行压缩;解码器则基于图像 token 与提示(prompt)生成所需结果。 DeepEncoder 约 380M 参数,主要由 80M 的 SAM-base 与 300M 参数的 CLIP-large 串联构成。解码器采用 3B MoE 架构,推理时激活参数约 570M。

DeepEncoder

为探索"光学方式压缩上下文"的可行性,需要具备如下特性的视觉编码器:

  1. 可处理高分辨率;
  2. 在高分辨率下激活开销低;
  3. 视觉 token 数量少;
  4. 支持多分辨率输入;
  5. 参数规模适中。

为此,作者设计了全新的视觉编码器 DeepEncoder。其主要由两部分组成:

  • 以窗口注意力(window attention)为主的视觉感知特征提取组件;
  • 以稠密全局注意力(dense global attention)为主的视觉知识特征提取组件。

为继承之前工作的预训练收益,分别采用 SAM-base(patch 大小为 16) 与 CLIP-large 作为这两部分的主干架构。对于 CLIP,由于其输入不再是原始图像而是上一阶段输出的 token,移除了第一个 patch embedding 层。在两组件之间 ,借鉴了 Vary ,使用 2 层卷积模块对视觉 token 做 16× 下采样:每层卷积核大小 3、步幅 2、填充 1,通道数由 256 增至 1024。

例如,若输入一张 1024×1024 的图像,DeepEncoder 会将其切分为 1024/16 × 1024/16 = 4096 个 patch token。由于编码器前半部分以窗口注意力为主且仅 80M 参数,激活量可接受;在进入全局注意力前,4096 个 token 经过压缩模块变为 4096/16 = 256,从而使整体激活内存保持可控。

当有一幅包含 1000 个光学字符的图像,并希望测试解码所需的最少视觉 token。这就要求模型支持可变数量的视觉 token,即 DeepEncoder 必须支持多分辨率。作者通过位置编码的动态插值来满足这一需求,并设计了若干分辨率模式进行混合训练,使单个 DeepSeek-OCR 模型具备多分辨率能力。

DeepEncoder 主要支持两大输入模式:原生分辨率(native resolution)与动态分辨率(dynamic resolution),各自包含多个子模式。

原生分辨率含四个子模式:Tiny、Small、Base、Large,其分辨率与 token 数分别为 512×512(64), 640×640(100), 1024×1024(256), 1280×1280(400)。

由于 Tiny 与 Small 分辨率较小,为避免浪费视觉 token,直接按原图比例缩放;而 Base 与 Large 为了尽量保留原始长宽比,对图像进行填充(padding)至对应尺寸。填充后有效视觉 token少于名义 token,其计算公式为:

<math xmlns="http://www.w3.org/1998/Math/MathML"> N v a l i d = ⌈ N a c t u a l × [ 1 − ( ( m a x ( w , h ) − m i n ( w , h ) ) / ( m a x ( w , h ) ) ) ] ⌉ N_{valid} = \lceil N_{actual} \times [1 - ((max(w, h) - min(w, h)) / (max(w, h)))] \rceil </math>Nvalid=⌈Nactual×[1−((max(w,h)−min(w,h))/(max(w,h)))]⌉

动态分辨率 由两种原生分辨率组合而成。例如:Gundam 模式 由 n <math xmlns="http://www.w3.org/1998/Math/MathML"> × \times </math>×640 <math xmlns="http://www.w3.org/1998/Math/MathML"> × \times </math>×640 的局部视图(tiles)与 1024 <math xmlns="http://www.w3.org/1998/Math/MathML"> × \times </math>×1024 的全局视图组成,分片方法参考 InternVL2.0。支持动态分辨率主要出于应用层面考虑,尤其面向超高分辨率输入(如报纸版面)。分片相当于一种辅助窗口注意力形式,能进一步降低激活内存。需注意:由于我们原生分辨率较大,在动态分辨率下图像不会被过度切碎(tile 数控制在 2至9)。 在 Gundam 模式下,DeepEncoder 的视觉 token 数为: <math xmlns="http://www.w3.org/1998/Math/MathML"> n × 100 + 256 n\times100+256 </math>n×100+256,其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n 为 tile 数。若图像的宽与高均小于 640,则将 n设置为0,即 Gundam 退化为 Base 模式。

Gundam 与四种原生模式联合训练,实现一模多能的目标。 Gundam-master 模式(1024×1024 局部视图 + 1280×1280 全局视图)则在已训练完成的 DeepSeek-OCR 上继续训练得到,主要是出于负载均衡考虑,由于其分辨率过大,若与其他模式同时训练将拖慢整体训练速度。

MoE 解码器

解码器采用 DeepSeekMoE,具体为 DeepSeek-3B-MoE。推理阶段,模型在 64 个路由专家中激活 6 个,外加 2 个共享专家,合计约 570M 激活参数。3B DeepSeekMoE 非常适合以特定领域(本文为 OCR)为中心的 VLM 研究:它具备 3B 模型的表达能力,同时享有约 570M 参数小模型的推理效率。

解码器从 DeepEncoder 压缩后的潜在视觉 token 重构原始文本表征:

<math xmlns="http://www.w3.org/1998/Math/MathML"> f dec : R n × d latent → R N × d text ; X ^ = f dec ( Z ) where n ≤ N f_{\text{dec}}: \mathbb{R}^{n \times d_{\text{latent}}} \rightarrow \mathbb{R}^{N \times d_{\text{text}}}; \quad \hat{\mathbf{X}} = f_{\text{dec}}(\mathbf{Z}) \quad \text{where } n \le N </math>fdec:Rn×dlatent→RN×dtext;X^=fdec(Z)where n≤N

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> Z ∈ R n × d latent \mathbf{Z} \in \mathbb{R}^{n \times d_{\text{latent}}} </math>Z∈Rn×dlatent 为 DeepEncoder 压缩后的潜在视觉 token, <math xmlns="http://www.w3.org/1998/Math/MathML"> X ^ ∈ R N × d text \hat{\mathbf{X}} \in \mathbb{R}^{N \times d_{\text{text}}} </math>X^∈RN×dtext 为重构后的文本表征。函数 <math xmlns="http://www.w3.org/1998/Math/MathML"> f dec f_{\text{dec}} </math>fdec 表示一个非线性映射,可通过类似 OCR 的训练由紧凑型语言模型有效学习。合理推测,LLM 通过专门的预训练优化,会更自然地集成这些能力。

数据引擎

DeepSeek-OCR 构建了复杂而多样的训练数据,包括:OCR 1.0 数据(以传统 OCR 任务为主,如场景图像 OCR 和文档 OCR)、OCR 2.0 数据(以复杂人工图像的解析任务为主,如常见图表、化学式、平面几何解析数据)以及通用视觉数据(主要用于为 DeepSeek-OCR 注入一定的通用图像理解能力,并保留通用视觉接口)和纯文本数据(确保模型的语言能力,引入了 10%的内部纯文本预训练数据,所有数据处理至 8192 个token长度,这也是 DeepSeek-OCR 的序列长度)。

最终,训练 DeepSeek-OCR 时,OCR 数据占 70%,一般视觉数据占 20%,纯文本数据占 10%。

训练流程

DeepSeek-OCR的训练流程非常简洁,主要包含两个阶段: a) 独立训练 DeepEncoder; b) 训练 DeepSeek-OCR。 注意:Gundam-master 模式是基于已训练好的 DeepSeek-OCR 模型,使用 600 万条采样数据继续训练得到的。

训练 DeepEncoder

参考 Vary ,采用一个小型语言模型,并使用下一个token预测(NTP)框架训练 DeepEncoder。在该阶段,使用上述全部 OCR 1.0 与 2.0 数据,以及从 LAION 采样的 1 亿条通用数据。所有数据训练 2 个 epoch,批量大为 1280,采用 AdamW 优化器,配合余弦退火调度器,并将学习率设置为 5e-5,训练序列长度 4096。

训练 DeepSeek-OCR

当 DeepEncoder 就绪后,接下来在HAI-LLM平台训练 DeepSeek-OCR。 整个模型使用流水线并行(PP),分为 4 个部分,其中,DeepEncoder 负责 2 个部分,解码器负责 2 个部分。

  • 对于 DeepEncoder:将 SAM 与压缩器视为视觉分词器,放在 PP0 并冻结参数;将 CLIP 部分视为输入嵌入层,放在 PP1 并解冻进行训练。
  • 对于语言模型:DeepSeek3B-MoE 共 12 层,在 PP2 与 PP3 各放 6 层。

总共使用 20 个节点(每个节点 8× A100-40G)进行训练,数据并行(DP)= 40,全局 batch size = 640。采用 AdamW 优化器,搭配基于步数(step-base)的调度器,并将初始学习率设置为 3e-5。

对于仅纯文本数据,训练速度约 900 亿 tokens/天;而多模态数据,训练速度约 700 亿 tokens/天。

结语

DeepSeek-VL的创新点在于混合视觉编码器的设计。它整合了SAM-B和SigLIP-L两个编码器,分别处理高分辨率和低分辨率图像,以此兼顾细粒度细节捕捉和全局语义对齐。通过三阶段训练策略(适配器预热、联合预训练、监督微调),有效避免了模型在学习视觉能力时遗忘原有的语言能力,语言能力保留率达到了95%以上。

DeepSeek-VL2在DeepSeek-VL的基础上,重点攻克了高分辨率图像处理和复杂视觉任务两大难题。通过将高分辨率图像分割成多个图块(tile)分别处理,再整合信息,实现了对图像细节的更精细理解。同时,采用了混合专家(MoE)架构作为语言模型底座,在保持高性能的同时,显著提升了模型的推理效率。

而 DeepSeek OCR 的其核心思想是,将文本内容转换为图像形式,能用比原来少得多的视觉token来表示相同的信息量,从而实现对文本信息的高效压缩。其模型架构由编码器(DeepEncoder)和解码器(DeepSeek-3B-MoE)组成。

  • DeepEncoder:这是一个创新的三级串联架构,能够对高分辨率文档图像进行高效编码和压缩,最终输出极少量(例如256个)的视觉token。
  • DeepSeek-3B-MoE:作为解码器,它根据编码器压缩提供的视觉摘要,生成最终的文本内容。

实验证明,DeepSeek-OCR在10倍压缩率下,解码精度高达约97%(接近无损);即使在20倍压缩率下,精度仍保持在约60%的可用水准。在实际基准测试中,它仅用100个视觉token的性能就超过了竞品使用256个token的表现。

回顾 DeepSeek 视觉语言大模型的演进路径,可以清晰地看到其技术思路的升级:从初期的多模态能力构建,到中期的处理能力强化,最终走向了利用视觉压缩技术重塑文本处理范式。

相关推荐
sir76113 分钟前
Redisson分布式锁实现原理
后端
大学生资源网34 分钟前
基于springboot的万亩助农网站的设计与实现源代码(源码+文档)
java·spring boot·后端·mysql·毕业设计·源码
苏三的开发日记43 分钟前
linux端进行kafka集群服务的搭建
后端
苏三的开发日记1 小时前
windows系统搭建kafka环境
后端
爬山算法1 小时前
Netty(19)Netty的性能优化手段有哪些?
java·后端
Tony Bai1 小时前
Cloudflare 2025 年度报告发布——Go 语言再次“屠榜”API 领域,AI 流量激增!
开发语言·人工智能·后端·golang
想用offer打牌1 小时前
虚拟内存与寻址方式解析(面试版)
java·后端·面试·系统架构
無量1 小时前
AQS抽象队列同步器原理与应用
后端
9号达人2 小时前
支付成功订单却没了?MyBatis连接池的坑我踩了
java·后端·面试
用户497357337982 小时前
【轻松掌握通信协议】C#的通信过程与协议实操 | 2024全新
后端