前沿多模态模型开发与应用实战3:DeepSeek-VL2多模态理解大模型算法解析与功能抢先体验

多模态理解大模型,是一类可以同时处理和理解多种数据形式(如图像、文本、视频等)的人工智能大模型,可以应用于图文理解、视觉问答、文档理解、场景描述等任务。本文将介绍目前热门的 DeepSeek-VL2 多模态大模型。DeepSeek-VL2是一款基于混合专家(MoE,Mixture of Experts)架构的多模态大模型,结合了混合专家架构和多模态数据处理能力,通过稀疏计算和专家分工的方式高效处理多种模态(如文本、图像、音频等)的数据,推理时只激活部分网络参数。而前两期课程介绍的Qwen2.5VL、Janus-Pro 以及 DeepSeek-VL第一代模型,则是经典的Dense类的多模态理解大模型,会对所有模型参数进行计算和更新。MoE(Mixture of Experts)混合专家模型的核心思想是将模型划分为多个专家子网络(experts),并通过路由机制(router)动态选择合适的专家来处理输入数据。MoE的最大优势就是是稀疏激活,只有少数几个专家网络模块会被激活,这意味着计算量可以显著减少,计算效率得到提升,同时精度指标远远超出相同激活参数量的Dense类模型。

DeepSeek-VL2 在视觉理解上的效果展示
DeepSeek-VL2 在视觉理解上的效果展示

接下来,本篇文章内容将包括模型结构、训练流程、模型能力的展示,并以飞桨多模态开发套件 PaddleMIX 中 DeepSeek-VL2 的实现为例,对代码进行逐步解读。

模型架构

DeepSeek-VL2的前身是去年发布的DeepSeek-VL,其模型结构设计是经典的Dense模型结构,也就是有参数都会进行计算和更新。DeepSeek-VL由三个主要模块组成:

  • Hybrid VisionEncoder:混合视觉编码器,采用SigLIP-L作为视觉编码器,结合SAM-B和SigLIP-L编码器,能够高效处理高分辨率图像(1024×1024),同时保留语义和细节信息。高分辨率特征图经过插值和卷积处理后,与低分辨率特征图连接,生成具有2048个维度的视觉token。

  • VL Adaptor:视觉语言适配器,使用两层混合MLP桥接视觉编码器和语言模型。高分辨率和低分辨率特征分别经过单层MLP处理后沿维度连接,再通过另一层MLP转换到语言模型的输入空间。

  • DeepSeek LLM:语言模型是DeepSeek-LLM,其设计遵循LLaMA,采用Pre-Norm结构和SwiGLU激活函数,使用旋转嵌入进行位置编码。

在这里插入图片描述
DeepSeek-VL 架构

而近期发布的 DeepSeek-VL2 尽管是MoE架构,但它也是由三部分核心模块组成:视觉编码器Vision Encoder、视觉-语言适配器VL Adaptor 和 DeepSeek-MoE 语言模型。与其前身 DeepSeek-VL 相比,DeepSeek-VL2 在视觉编码器和语言建模部分都有了显著的提升,这主要是因为DeepSeek-VL2引入了两项重大改进:动态切片策略,以及采用多头隐变量注意力(Multi-head Latent Attention,MLA)机制的 DeepSeek-MoE 语言模型。这些创新使得 DeepSeek-VL2 能够更高效地处理高分辨率视觉输入和文本数据。
在这里插入图片描述
DeepSeek-VL2 架构

  • Vision Encoder:DeepSeek-VL2 采用的也是SigLIP,同时引入了动态切片策略(Dynamic Tiling Strategy),能够处理不同分辨率和长宽比的高分辨率图像。传统的图像编码方法往往固定分辨率,导致在处理较大或不规则图像时性能下降。动态切片策略通过将高分辨率图像分割成多个小块进行处理,减少了计算成本,同时保留了详细的视觉特征。该方法避免了传统视觉编码器的固定分辨率限制,使得模型在处理复杂图像任务(如视觉引导、文档分析等)时具有更好的性能。
  • VL Adaptor:DeepSeek-VL2 采用两层多层感知器(MLP),然后再使用 2×2 pixel shuffle 操作压缩每个图像块的 token 数目,用于视觉特征映射到文本空间。
  • DeepSeek-MoE LLM:语言模型采用了DeepSeek-MoE(Mixture of Experts)架构,并结合了多头潜在注意力机制(Multi-head Latent Attention,MLA)。MLA 机制能够有效压缩键值缓存(KV Cache),提升推理效率。MoE架构则通过稀疏计算进一步提升了效率,使得模型在处理大规模数据时能够实现更高的吞吐量。

在模型尺寸上,DeepSeek-VL2 系列目前有以下3个参数版本:DeepSeek-VL2-Tiny、DeepSeek-VL2-Small 和 DeepSeek-VL2,分别拥有1B、2.8B 和 4.5B 的激活参数。具体的结构设置如下表所示:
在这里插入图片描述
DeepSeek-VL2 三种参数量的模型设置

创新点

Part1
动态图像切片编码策略

  1. 动态切片策略:

DeepSeek-VL2将一张高分辨率图像切片,为了适应不同长宽比,首先定义了一组候选分辨率:CR={(m⋅384,n⋅384) ∣ m∈N,n∈N,1≤m,n,mn≤9}, m:n表示宽高比。对于一张(H,W)图像,在保证宽高比不变下调整图像分辨率,计算以长边对其到候选分辨率所需要的填充的区域面积。选择面积最小的分辨率 (mi⋅384,ni⋅384),然后将调整大小后的图像划分成 mi×ni个 384×384分辨率的局部图块以及一个全局缩略图块。出于计算效率和上下文长度管理的考虑,在处理多于 2 张图像时,禁用动态图块策略。
在这里插入图片描述
DeepSeek-VL2 中的动态切片策略

在将图片切片后,再使用 2×2 pixel shuffle 操作压缩每个图像块的 token 数目, 从 27×27 压缩至 14×14=196 tokens 对于全局缩略图像块(14×14),在每一行的末尾添加14个<tile_newline>标记,从而总共得到14×15=210 个 tokens。当处理 mi×ni 个局部图像块时,在每一行的局部块末尾新增<tile_newline>,共新增mi⋅14 <tile_newline> 个 tokens,完整的 Visual Token 包含 210+1+mi⋅14×(ni⋅14+1) 个视觉标记,这些 Tokens 随后使用两层多层感知器(MLP)投影到语言模型的 Embedding 空间中。

Part2
DeepSeek-MoE语言模型

在语言模型部分,DeepSeek-VL2 使用了 DeepSeek-MoE 语言模型,该模型结合了混合专家(Mixture of Experts, MoE)架构和多头潜在注意力(Multi-head Latent Attention,MLA)机制。MoE 架构通过选择性激活不同的专家网络,实现了计算资源的高效利用和模型性能的提升。而MLA机制MLA机制通过将键值缓存压缩为潜在向量,增强了推理效率,从而提升了吞吐量,且能够在处理多模态信息时,更好地捕捉到视觉和语言之间的复杂关系,进而提升模型在图文理解、问答等任务中的表现。
在MoE训练过程中,为每个专家引入了一个全局偏置项,以经济高效的方式改善专家之间的负载均衡。现有的MoE架构可能存在知识混杂(Knowledge Hybridity)和知识冗余(Knowledge Redundancy)的问题,限制了专家的专业化。在实现思想上,DeepSeek-MoE采用两个主要策略:

  • Fine-Grained Expert Segmentation-细粒度的专家分割,通过细化FFN中间隐藏维度,维持参数数量不变的同时激活更多细粒度的专家,使得激活的专家更加灵活和适应性更强;
  • Shared Expert Isolation-共享专家隔离,将某些专家隔离为共享专家,始终激活,旨在捕捉和巩固不同上下文中的共同知识。
    在这里插入图片描述
    DeepSeek-MOE 的架构

Part3
高效的推理速度与吞吐量

为了提升模型的推理速度,DeepSeek-VL2 在语言部分的处理上引入了键值缓存压缩技术。这项技术能够有效减少计算中的冗余操作,从而提高推理过程的效率,尤其在处理大规模数据时表现出色。通过这种优化,DeepSeek-VL2 在多个任务上不仅表现出了更高的准确率,也大大提升了计算效率。

训练方法

Part1
训练数据

DeepSeek-VL2 从多种来源构建了一个综合性的视觉-语言数据集。训练过程分为三个阶段:(1)视觉-语言对齐(VL alignment);(2)视觉-语言预训练(VL pretraining);3)监督微调(Supervised Fine-Tuning)。

  • VL alignment 数据
    对齐阶段专注于训练多层感知机(MLP)VL Adaptor,以桥接预训练的视觉编码器和大型语言模型。这一阶段使用了ShareGPT4V数据集,该数据集包含大约120万个描述和对话样本。
  • VL-Pretrain 数据
    VL-Pretrain 数据结合了视觉-语言数据和纯文本数据,以保持VL能力和纯文本性能之间的平衡。对于DeepSeek-VL2,作者保持了大约70%的VL数据和30%的纯文本数据的比例,后者直接来源于作者基础大型语言模型(LLM)的预训练语料库。

Image-Text 混合数据:
数据收集始于几个开源数据集,包括WIT、WikiHow和OBELICS中的30%随机样本。这一特定的混合比例是通过使用DeepSeek-VL2-Tiny进行初步实验确定的。为了增强多语言能力,在主要以英语为主的数据集中补充了从Wanjuan中提取的中文内容。此外,DeepSeek-VL2 还开发了一个内部数据集,以扩大对一般现实世界知识的覆盖范围。

Image Caption 数据:
图像描述是视觉语言模型(VLM)训练中的基础数据,提供了视觉信息和文本信息之间的直接对齐。因为开源数据集质量差异很大,为了解决这些质量不一致的问题,DeepSeek-VL2开发了一个全面的图像描述流程,该流程考虑了:(1)光学字符识别(OCR)提示;(2)元信息(例如位置、相机设置);(3)原始描述作为提示。DeepSeek-VL2 使用内部Captioner,使用 类似于PixelProse的提示策略重新为图像添加描述,采用不同的指令来指导VLM生成描述。尽管Catpion整体质量有所提高,在大规模标注流程中观察到了重复问题。为了缓解这一问题,DeepSeek-VL2采用一个质量控制流程,使用DeepSeek Chat仅根据 Caption 的写作质量进行评分。

OCR 数据:
LaTex OCR 和 12M RenderedText、包括不同文档类型的大规模内部数据集

VQA 数据:

  • DeepSeek-VL 通用的VQA数据。
  • 表格、图表和文档理解数据。PubTabNet、FinTabNet 和 Docmatix。
  • Web-to-code 和 plot-to-Python 生成。Websight,并遵循DeepSeek-VL的方法,使用公开的Jupyter笔记本中的Python图表。通过使用DeepSeek V2.5对Websight 部分数据增强。作者还利用DeepSeek V2.5生成的Python图表代码来减少plot-to-code 中的噪声。
  • 包括视觉提示的 QA数据:参考Vip-llava构建具有不同视觉提示(箭头、方框、圆圈和涂鸦)的数据。
    Visual grounding 数据:
    基于Kosmos-2和Objects365构建 视觉定位数据,并采用以下模版构建
  • Prompt: \texttt{Locate <|ref|><|/ref|> in the given image.}
  • Response: \texttt{<|ref|><|/ref|><|det|>[[x1, y1, x2, y2],\ldots]<|/det|>}

Grounded 对话数据:
基于 Kosmos-2 构建视觉定位对话数据 并采用以下模版构建

  • Prompt: \texttt{<|grounding|>Can you describe the content of the image?}
  • Response: $\texttt{Two <|ref|>dogs<|/ref|><|det|>[[x1, y1,
    x2, y2],\ldots]<|/det|> are running on the grass.}
  1. SFT 数据

DeepSeek-VL2 的SFT数据结合了多种开源数据集与高质量的内部QA对。

General visual question-answering:
虽然VQA数据集种类繁多,但它们通常存在三大局限:(1)回答简短;(2)光学字符识别(OCR)质量不佳;(3)内容虚幻。为解决这些问题,DeepSeek-VL2 综合考虑原始问题、图像和OCR信息来重新生成回答。作者的实验表明,这种方法能产生更全面、更准确的结果。在DeepSeek-VL2的开发过程中早期版本,尤其是Tiny变体,偶尔会在中文回答中不恰当地插入英文单词。这一问题在DeepSeek-VL2 大型模型中并不存在,这表明它源于模型容量有限以及视觉-语言预训练阶段中英文数据的不平衡。为解决小型模型中的这一局限,DeepSeek-VL2团队开发了一个包含多样图像描述和单轮/多轮对话的内部中文问答数据集。该数据集有助于缓解语言混合问题。此外还创建了补充现实世界的和文化相关的视觉知识,包括动漫、网络梗、美食和艺术的内部数据集。

OCR and document understanding:

得益于DeepSeek-VL2先进的Caption Pipeline,DeepSe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值