欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > [EAI-026] DeepSeek-VL2 技术报告解读

[EAI-026] DeepSeek-VL2 技术报告解读

2025/2/2 1:28:52 来源:https://blog.csdn.net/weixin_39653948/article/details/145387246  浏览:    关键词:[EAI-026] DeepSeek-VL2 技术报告解读

Paper Card

论文标题:DeepSeek-VL2: Mixture-of-Experts Vision-Language Models for Advanced Multimodal Understanding
论文作者:Zhiyu Wu, Xiaokang Chen, Zizheng Pan, Xingchao Liu, Wen Liu, Damai Dai, Huazuo Gao, Yiyang Ma, Chengyue Wu, Bingxuan Wang, Zhenda Xie, Yu Wu, Kai Hu, Jiawei Wang, Yaofeng Sun, Yukun Li, Yishi Piao, Kang Guan, Aixin Liu, Xin Xie, Yuxiang You, Kai Dong, Xingkai Yu, Haowei Zhang, Liang Zhao, Yisong Wang, Chong Ruan
论文链接:https://arxiv.org/abs/2412.10302v1
论文出处:/
论文被引:/
项目主页:https://github.com/deepseek-ai/DeepSeek-VL2

Abstract

本文介绍了大型专家混合(MoE)视觉语言模型系列 DeepSeek-VL2,在 DeepSeek-VL 基础上做了两个主要升级。视觉组件结合了 Dynamic Tiling 视觉编码策略,旨在处理具有不同纵横比的高分辨率图像。语言组件利用具有多头潜在注意力机制的DeepSeekMoE模型,该机制将键值缓存压缩成潜在向量,以实现高效推理和高吞吐量。在改进的视觉语言数据集上进行训练,在各种任务中展示了优越的能力,包括 VQA、OCR、文档/表格/图表理解和视觉定位(Visual grounding)等。DeepSeek-VL2系列有三个模型:DeepSeek-VL2-Tiny、DeepSeek-VL2-Small和DeepSeek-VL2,分别具有10亿、28亿和45亿个激活参数。 与现有的开源密集型和基于MoE的模型相比,DeepSeek-VL2在激活参数相似或更少的情况下实现了具有竞争力或最先进的性能。

Summary

DeepSeek-VL2 对具身智能的影响?
从PaLM-E开始掀起了利用VLM构建具身场景VQA的模型,pi0引入了擅长做 VG 的PaliGemma作为VLA的骨干,而具身数据高度异构,已有研究从模型层面设计MoE架构的模型来实现跨本体的泛化,比如何恺明团队的HPT。DeepSeek-VL2利用原生MoE的LLM构建VLM,可能天然的适合异构数据学习场景,而无需单独针对policy head进行MoE设计,从而统一动作空间。
在这里插入图片描述

模型架构

在这里插入图片描述

整体上是decoder-only 的 LLaVA 风格架构,包括三个核心模块:(1) 视觉编码器;(2) 视觉语言适配器;(3) 专家混合语言模型。

两个改进:动态平铺(Dynamic Tilimg)策略,多头潜在注意力(Multi-head Latent Attention,MLA)的 DeepSeekMOE 语言模型。这些创新使得模型能够更高效地处理高分辨率视觉输入和文本数据。

Dynamic tiling

在这里插入图片描述

并不神秘, InternVL 系列和 Qwen-VL 系列已经使用。InternVL 系列技术报告中讲得更清楚。
为啥要用这玩意?原来的视觉编码器只能接受固定分辨率的图像输入,这在一些更高分辨率和极端纵横比的图像上需要缩放和padding之后再输入视觉编码器,会影响多模态模型的理解能力。因此,引入了动态分辨率策略。

DeepSeek-VL2的上一个版本DeepSeek-VL使用了混合视觉编码器:SigLip-384和SAM-B-1024,可以生成丰富的视觉表征,但是收到固定1024x1024分辨率的输入限制。应用动态分辨率之后,仅仅使用SigLip 视觉编码器就可以处理不同分辨率的图像输入。具体咋干的?首先,定义了一组候选分辨率 C R = { ( m ⋅ 384 , n ⋅ 384 ) ∣ m ∈ N , n ∈ N , 1 ≤ m , n , m n ≤ 9 } C_R = \{ (m \cdot 384, n \cdot 384) | m \in \mathbb{N}, n \in \mathbb{N}, 1 \le m,n,mn \le 9 \} CR={(m384,n384)mN,nN,1m,n,mn9},其中 m : n m:n m:n 表示纵横比。然后,对于输入高宽为 ( H , W ) (H, W) (H,W) 的图像,计算最匹配的高宽比,然后将图像划分为 m i × n i m_i \times n_i mi×ni 384 × 384 384 \times 384 384×384 像素的图像块,再加上一个原始图像的缩略图,最终有 m i × n i + 1 m_i \times n_i + 1 mi×ni+1 个图块,经过 SigLip-SO400M-384 处理后,产生了 27x27=729 个 1152 维的 vision embedding 向量。为了提高计算效率,当处理多张图像时,禁用了动态分辨率。

Vision-Language Adaptor
在这里插入图片描述
在视觉图块处理之后,应用 2×2 的 pixel shuffle,以将每个图块的视觉token从27×27压缩到14×14=196个token。然后,在处理 (1+mi×ni) 图块时引入三个特殊token。对于全局缩略图图块 (14×14),在每一行的末尾添加<tile_newline> token,总共得到 14×15=210 个token。对于 mi×ni 局部图块,它们排列在一个形状为
(mi⋅14, ni⋅14)的二维网格中,在最后一列的末尾添加 mi⋅14 个<tile_newline>token以指示所有局部图块一行的结束。此外,在全局缩略图图块和局部图块之间插入一个<view_separator>token。完整的视觉序列包含
210+1+mi⋅14×(ni⋅14+1) 个视觉token,这些token随后使用两层多层感知器 (MLP) 投影到语言模型的嵌入空间中。图3显示了动态平铺策略。

模型版本:DeepSeek-VL2 有三个变体,模型总计参数为 3B、16B、27B,模型激活参数分别为:1.0B、2.8B 和 4.5B。
在这里插入图片描述

数据构建

训练过程包括三个阶段:(1)视觉-语言对齐,(2)视觉-语言预训练,(3)监督微调 (SFT)

Stage1:视觉语言对齐数据

数据来源:ShareGPT4V
数据模态:图文对
数据类型:图像描述和问答
数据规模:120 万样本(~2B tokens)

Stage2:视觉语言预训练数据

数据来源:开源+改写
数据模态:70%图文对+30%纯文本
数据类型:图文交错、图像描述、OCR、VQA、视觉定位、GroundingQA
数据规模:(~796.5B tokens)

1-图文交错数据
  1. 开源数据抽取:WIT [79]、WikiHow [38] 和 OBELICS [41] 中的 30% 随机样本,30% 是通过 DeepSeek-VL2-Tiny 的预备实验确定的
  2. 开源数据翻译:为了增强多语言能力,从 Wanjuan [29] 中提取的中文内容补充了英文数据集
  3. 内部收集构建:扩展对世界知识的覆盖范围
2-图像描述数据
  1. 开源数据改写:最初使用了各种开源数据集 [50, 78, 73, 51, 48, 82, 40, 36, 39, 8, 80, 37, 25, 28],但是后边分析发现质量参差不齐的问题,因此自己开发了一个图像描述数据生成管线:它以 (1) OCR提示,(2) 元数据信息(例如,位置、相机设置)和 (3) 相关的原始描述作为提示。使用内部图像描述生成器,遵循类似于PixelProse 的提示策略重新为图像添加描述,使用不同的指令来指导VLM的图像描述生成。
  2. 改写数据清洗:基于 DeepSeek Chat 构建质检管线,对生成的图像描述进行打分,然后过滤掉低质量的图像描述。
3-OCR 数据
  1. 开源数据抽取:LaTeX OCR [7] 和12M RenderedText [93],目前仅仅包含中英文字体提取,未来会扩展到更多语种。
4-VQA 数据

通用视觉问答:来自 DeepSeek-VL 中的通用视觉问答。

表格、图标和文档理解:采用 PubTabNet [112]、FinTabNet [111] 和 Docmatix [42] 来增强文档理解能力。

网页to代码和图表to代码生成:

  • 开源数据抽取:利用 Websight [44] 实现网页到代码功能,使用公开的 Jupyter Notebook 中的 Python 绘图代码。
  • 合成数据生成:使用 DeepSeek V2.5 复制了 Websight 的一部分来增强此数据集。利用 DeepSeek V2.5 生成的 Python 绘图代码来减少图表to代码数据中的噪声。

带有视觉提示的数据:遵循 [9],将各种视觉提示(箭头、方框、圆圈和涂鸦)叠加到 [9, 89, 90] 中的图像上,来构建视觉提示理解数据。然后,创建关注这些视觉提示突出显示的对象的问答对。

5-视觉定位数据(Visual grounding data)

数据来源:[71, 75]
数据格式:不同的多模态模型格式可能不同,在使用这类数据训练自己的模型的时候要特别注意。尤其是¬
在这里插入图片描述
训练过程中,prompt 是从候选池中随机抽取的。还构建了object缺失的负样本,以增强模型的鲁棒性。

参数解释:

  • <|ref|>, <|/ref|>, <|det|>, <|/det|>:special tokens
  • <query>:a placeholder for either the category name (e.g., “car”) or description of the object (e.g., “the leftmost person”)
  • [[x1, y1, x2, y2], …]:a list of bounding boxes, where each bounding box corresponds to an object’s position. The coordinates x1, y1 and x2, y2 specify the top-left and bottom-right corners respectively, normalized to values between 0 and 999 according to the resolution of the image. 注意这里的图片尺寸是0-999,而不是归一化。
6-参考表达数据 (Grounded conversation data)

在这里插入图片描述
As in other visual grounding data, <|grounding|>, <|ref|>, <|/ref|>, <|det|>, <|/det|> are special tokens and x1, y1, x2, y2 is subject to the same normalization scheme.

Stage3:SFT 数据

数据来源:开源+内部构建的数据
数据模态:图文对+纯文本+代码
数据类型:GeneralVQA,OCR和文档理解,图标和表格理解,推理、逻辑和数学题,教材和学术问题,网页to代码、图标to代码生成,视觉定位,GroundingQA,纯文本数据
数据规模:(~19.5B tokens)

1-通用视觉问答数据

开源数据清洗:已有的开源数据[74, 10, 43, 9, 27, 31, 47]存在三个问题:(1)答案简短,(2)OCR 质量差,以及(3)内容虚构。通过联合考虑原始问题、图像和 OCR 信息来重新生成答案。 实验表明,这种方法能够产生更全面、更准确的结果。

内部自建数据1:开发了一个内部中文问答数据集,其中包含各种图像描述和单轮/多轮对话。 此数据集有助于减轻语言混合问题。

内部自建数据2:补充现实世界和文化视觉知识,包括动漫、表情包、美食和艺术。

2-OCR和文档理解数据

开源数据清洗:预训练阶段已经让模型具备很强的OCR能力,在SFT阶段没有进一步提高OCR性能,而是专注于清洗现有的开源数据集[43, 24, 92, 104, 66, 77, 31, 67],删除 OCR 质量差的样本。

内部自建数据:对于文档理解,从内部数据中整理了一个多样化的文档页面子集。然后,生成针对文档理解的、多轮对话问答对。

3-表格和图标理解数据

开源数据复用:Cauldron[43]数据集具有较高的质量,可以直接用

开源数据清洗:通过基于原始问题重新生成所有公共数据集[14, 49]的答案来增强基于表格的问答数据

4-推理、逻辑和数学数据

开源数据清洗:使用更详细的推理过程增强了公共推理数据集[76, 43, 61, 17, 102, 109],并标准化了响应格式,将最终答案放在响应的末尾。

5-教材和学术数据

内部自建数据:构建了一个内部数据集,重点关注文档集合中的教材。 此数据集主要强调跨多个学科的大学水平内容。

6-网页代码和Python绘图代码数据

开源数据清洗:通过重新生成答案来提高其质量

内部自建数据:扩展了内部用于网页代码和Python绘图代码的数据集,超出了预训练期间使用的数据集

7-视觉定位数据

开源数据翻译:使用来自[85, 64, 101, 2, 110, 23]的数据开发了VG数据集,为了提升模型能力,将查询短语翻译成中文,并创建额外的负样本。

合成数据生成:还添加了上下文视觉定位数据,其中任务涉及在给定参考图像中由矩形或椭圆突出显示的参考对象的情况下,跨多个图像定位同一类别中的对象。

在这里插入图片描述
参数解释:

  • <|grounding|>, <|ref|>, <|/ref|>, <|det|>, <|/det|> are special tokens
  • <object> placeholder represents phrases like “an object within the red bounding box” while is the model’s description of the detected object (e.g., “cat”)
8-视觉定位对话数据

使用[62, 72]构建基于视觉定位的对话数据,以进一步增强预训练阶段建立的模型能力。

9-纯文本数据

为了保持模型的语言能力,在SFT阶段还使用了纯文本指令调优数据集[98, 4, 18, 68, 91, 70, 84, 6, 19]。

训练策略

DeepSeek-VL2 通过三阶段流程进行训练:
1)初始阶段——视觉-语言对齐:建立视觉特征和语言特征之间的联系,使预训练语言模型能够有效地处理视觉输入;使用Stage1数据;冻结LLM,训练视觉编码器和视觉-语言适配器MLP

2)预训练阶段——视觉-语言预训练:增强模型的多模态理解能力,同时保持了其大部分语言能力;使用Stage2数据;解冻所有参数(包括视觉编码器、视觉-语言适配器和语言模型)训练

3)微调阶段——SFT:确保模型在各种视觉-语言任务中具有强大的性能;使用Stage3数据;解冻所有参数(包括视觉编码器、视觉-语言适配器和语言模型)训练

在所有阶段,都强调视觉理解能力,并仅针对文本token计算下一个token预测损失。
在这里插入图片描述

超参数如表2所示

基础设施:由16/33/42个节点组成的集群在7/10/14天内完成,每个节点配备8个NVIDIA A100 GPU。

模型评估

定量分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定性分析

GQA

在这里插入图片描述

多图对话

在这里插入图片描述

视觉定位

在这里插入图片描述

视觉定位对话

在这里插入图片描述

实验结论

在问介绍了DeepSeek-VL2,这是一个基于MoE的视觉语言模型的增强版本,共有3B、16B和27B参数规模,对应的激活参数分别为1.0B、2.8B和4.5B。 此配置有助于在训练和推理阶段有效地降低计算消耗,三个模型分别可以在具有10GB、40GB和80GB内存的单个GPU上部署。 采用动态平铺视觉编码策略来有效地处理具有各种纵横比的高分辨率图像。

局限性:

  • 目前,DeepSeek-VL2 的上下文窗口每次对话会话仅允许包含少量图像。计划在下一个版本中扩展上下文窗口,以实现更丰富的多图像交互。
  • 此外,与其他VLM一样,该模型偶尔会在模糊图像或未见过的物体时表现不好。
  • 最后,虽然 DeepSeek-VL2 在视觉感知和识别任务方面表现出色,但推理能力仍有待加强。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com