DeepSeek-VL: Towards Real-World Vision-Language Understanding
0. Abstract
本文的主要贡献:
数据集构建:构建了具有多样性和可扩展性,广泛覆盖真实世界场景的数据集。包括网页截图、PDF文档、OCR文本、图表以及知识型内容(如专家知识、教科书)等。此外,根据真实用户场景将数据进行分类,并据此创建了指令微调数据集。通过该数据集的微调,显著提升了模型在实际应用中的用户体验。
创新的模型架构:采用了混合视觉编码器(hybrid vision encoder),能在固定的token预算下高效处理高分辨率图像(1024*1024),同时保持较低的计算开销。该架构保证模型多种视觉任务中能捕捉到关键的语义和细节信息。
创新的训练策略:既使LLM学会新模态,也保证原有的的语言能力不退化。调控语言和视觉的竞争关系,实现两种模态的均衡融合。
1. Introduction
大语言模型的巨大成功引发了人们对多模态模型的追求。这些模型能同时理解语言和图像,在执行现实世界任务时展现出巨大的潜力。
目前出现了很多开源的VLM方案,在benchmark上表现优秀,但在现实世界中表现不佳。大都存在以下问题(本文的改进方案):
许多方案将重心放在指令微调阶段。作者认为应当使用大量的视觉-语言数据进行充分预训练。(深度预训练)
现有方案多使用学术上的数据集进行微调,缺乏现实世界经验。(精心构建数据集)
现有方案多采用vision transformer与预训练语言模型结合的方式,这类模型分辨率低,不能胜任OCR或微小物体识别任务。(高分辨率处理架构)
有些模型在长期的多模态训练中会出现语言能力的退化。应采用一种既保留语言能力,又掌握新模态能力的训练方式。(平衡多模态特征的训练策略)
DeepSeek-VL具有通用的多模态理解能力,能够处理逻辑图、网页、公式识别、科学文献、自然图像等。
DeepSeek-VL的优势:
Deepseek-VL的预训练数据涵盖了广泛的世界知识,包括网络爬虫、网页代码、电子书、教育资料、arxiv文章等等,全面覆盖现实世界中的场景,数据质量高,具有广泛性和实用性。同时作者团队还精心设计了指令调优数据集,具体来说,作者从网上收集了GPT-4V和Gemini的真实案例,并进行分类,为每个测试图像选择合适的prompt。该分类体系还用于构建评估数据集。
视觉模块采用混合视觉编码器架构,384$\times$384的文本对齐编码器用于粗粒度语义提取,1024$\times$1024的高分辨率编码器用于捕捉细节视觉信息。两者结合,可以将1024$\times$1024的图像压缩为576个token,在视觉表征和token开销间取得平衡,使视觉模块支持文-图交织处理和多轮推理场景。
为了使多模态模型不出现语言能力的退化:1.保持至少70%的语言数据,这对维护模型内部的语言知识完整性至关重要。2.作者提出了模态预热(modality warm-up)策略。该方法通过在训练过程中动态调整模态比例,逐步引入更多视觉-语言数据。
在迭代模型时,首先在小模型上进行实验。然而,形如1B的小模型在benchmark上难以展现理想性能,无法真实的反映模型的实际表现。因此,作者把评估措施从多选改为了各选项的困惑度(PPL)对比;此外,为避免指令跟随能力成为瓶颈,在预训练阶段我们混合了少量指令调优数据。通过这种方式,我们既能利用1B模型获得合理性能表现,又能更精准地量化实验中每次迭代的影响效果。
2. Data Construction
数据集包括两大模块:VL-Pretrain数据、VL-SFT数据
VL-Pretrain整合了多源视觉文本数据,旨在强化模型的基础跨模态理解能力。
VL-SFT相对较小,主要用于训练模型完成特定下游任务。
在stage1,VL-Pretrain用于预热VL adapter
stage2,VL-Pretrain用于联合预训练VL adaptor和VL model
stage3,使用VL-SFT微调整个模型
2.1 VL-Pretraining Data
分为以下7个类别:
Interleaved image-text data(交错式图文数据,使模型对多模态输入具有更好的上下文学习能力),MMC4、Wiki等
Image caption data(图像描述,包含高质量图-文对),Capsfusion、TaiSu等
Table and chart data(图表数据),Chart2text、Unichart
Web Code data(网页代码,使模型具有从图形界面或图表重建代码的能力。从Stack数据集中的jupyter notebook清洗出2million图像-代码对。最终选择1.1million作为是主要训练集,包括一张图像-至少5行代码)
OCR data(文档光学字符识别数据,作者构建了一个中英混合的OCR数据集,包括两部分:1.arxiv文章 2.电子书和教育材料,来自Anna’s Archive)
Scene text OCR(增强模型识别场景中文本的能力)ArT、MLT-17等。
Text-only corpus(纯文本,和DeepSeek LLM的一致)
2.2 VL-SFT Data
包括多个知名开源数据集ShareGPT4V、LAION-GPTV等。
从网络资源中收集GPT-4V和Gemini的多样化真实测试案例,进行分析、归类(蒸馏):
Recognition(考察大型模型对图像内容的理解和描述能力,不需要模型具备高知识储备和推理能力,部分任务可使用传统机器学习模型完成)
Conversion(要求模型描述和识别图像内容,并将图像转换为另一种形式,如UI2Code,Image2Prompt等)
Analysis(基于图像内容进行分析,如表格分析,医学图像分析等)
Commonsense Reasoning(考察模型对常识的掌握,如物体间关系推理、物体功能推理等)
Logical Reasoning(考察模型对领域知识的运用和逻辑推理能力,如数学、物理方面的推理)
Evaluation(要求模型根据特定标准对图像内容进行评估)
Multi-graph(考察模型分析理解多个图像的能力,如时序理解、多图对比等)
Safety(检查模型安全性,如暗示性提问、反事实性提问和prompt注入)
此外还有一部分纯文本SFT数据。
3. Approach
3.1 Architecture
包含三个模块:a hybrid vision encoder, a vision adaptor, and a language model
Hybrid Vision Encoder:作者先是使用了SigLIP作为视觉编码器,但是发现单一的SigLIP编码器存在“CLIP-blind pairs”现象(视觉上不同,但是CLIP编码后却很相似),而且受限于低分辨率的输入。
于是作者采用整合额外的vision-only self-supervised encoders(不依赖语言信息,只基于图像数据进行自监督学习的编码器模型。它通过对图像自身的特征提取和学习,生成图像的特征表示)来增强多模态模型的视觉能力。作者选择了SAM-B高分辨率视觉编码器。
具体来说:
- 图像 → 缩放到1024×1024 → SAM-B → 64×64×256 特征图(相当于一张图片分为64×64块,每块16×16,每块特征维度为256)
- 64×64×256 → VL 适配器 → 插值扩展为96×96×256
- 96×96×256 → 2 个步长为 2 的卷积 → 24×24×1024 → 重塑为 576×1024
- 低分辨率图像 → SigLIP-L → 576×1024 特征图
- 两个 576×1024 特征拼接 → 576×2048 视觉标记
- 经 GeLU 和嵌入层 → 与语言模型连接
Vision-Language Adaptor:采用双层混合多层感知机(two-layer hybrid MLP)。首先,分别使用独立的单层MLP处理高分辨率特征和低分辨率特征。随后,将这些特征按维度拼接,并通过另一层MLP转换为LLM的输入空间。
Language Model:语言模型使用DeepSeek LLM,其微架构大多模仿LLaMA。使用RMSNorm进行Pre-Norm在前馈网络中采用SwiGLU作为激活函数,中间层维度为$\frac{8}{3}d_{model}$。此外,在位置编码中采用了旋转编码。使用DeepSeek相同的分词器。选用DeepSeek的中间检查点继续预训练。
具体来说,DeepSeek-VL-1B模型是基于DeekSeek-LLM-1B模型构建的,该模型使用了约5000亿文本标记的语料库进行训练。而DeekSeek-VL-7B模型则是基于DeepSeek-LLM-7B模型开发的,后者使用了估计2万亿文本标记进行训练。
3.2 Training Pipelines
包含三个阶段
Stage 1)训练Vision-Language Adaptor
将视觉编码器和LLM冻结,使用1.25million 图文对(来自ShareGPT4V)和2.5million 文档OCR数据训练VL adaptor。
目的是在嵌入空间中建立视觉与语言的概念连接,帮助LLM全面理解图像中的实体。
相较于LLM,VL-adaptors参数量较小(比如两层的MLP),限制了该阶段学习的能力。作者通过实验证明,在stage 1扩大数据规模反而会导致性能下降。law of data scaling不起作用。
Stage 2)Joint Vision-Language pretraining
冻结vision ecoder,将LLM和VL adaptor联合训练。
作者一开始仅使用多模态数据训练LLM,在模型多模态能力上升的同时,语言能力却迅速下降。这是可能是因为:1)多模态数据在语言上的简单化,与语言数据的复杂性和分布存在巨大差异;2)多模态与语言模态存在竞争关系,导致LLM出现灾难性遗忘。
因此,作者在训练中进行了多模态数据和语言数据的平衡。作者通过不同比例的数据实验发现:1)加入语言数据能缓解语言能力退化;2)加入语言数据不会导致多模态能力下降;3)不同模态的表现与数据集比例高度相关,多模态:语言大约在3:7最佳。
考虑到7B模型训练过于耗时,可以先训练1.3B的模型,再逐步扩展到7B模型。通过SFT,1.3B模型的知识可以有效的传递到7B模型中。
然而,在第二阶段的训练中,1.3B模型的指标出现剧烈波动,使得训练过程难以监督。这一现象之前有关相关探讨:尽管模型家族的单个词错误率会随着规模扩大而平稳、持续且可预测地变化,但研究者选择的测量方法仍可能引发剧烈且不可预测的变化。作者后来找到了问题的根源:1.3B模型容量有限,再加上训练数据集中缺乏SFT数据,阻碍了模型准确执行命令,即使掌握了正确的知识也难以精准生成选项。
为了应对这些问题,作者采用以下策略:1)采用Multi-choice PPL methodology来监督模型进展。除了输入图片和prompt,还输入与问题相关的答案。通过计算每个候选答案的PPL值来确定模型最终的输出。(既然生成不稳定,就不生成,直接选择);2)在训练数据集中加入少量STF数据,让模型在遵循指令方面获得一定熟练度。
这两种方法的结合确保了1.3B模型训练指标的稳定性。
Stage3)SFT
增强模型遵循指令和参与对话的能力。
对VL-adaptor、LLM、hybrid vision encoder进行微调。由于GPU内存容量有限,SAM-B仍冻结。
仅对答案和特殊标记进行监督,屏蔽系统提示和用户输入。答案是模型生成的结果,特殊token是对话中用于标记的特殊符号。也就是损失函数只看输出不看输入。
3.3 Hyperparameters and Infrastructres
使用轻量级分布式训练框架HAI-LLM进行DeepSeek-VL的训练与评估。
将视觉编码和文本嵌入视为一个模块,把它作为最终模型的第一层。这个模块有着复杂的模型架构,标准的张量并行技术无法使用,但是与上层的transformer模块相比,其计算量相对较小。我们只需在所有张量并行维度上重新计算视觉编码器的前向传播过程。
visual encoders还使得模型各层的执行时间不同,所以我们重新划分模型层级来实现更好的负载均衡和吞吐量。DeepSeek-VL的上层结构和DeepSeekLLM一致。
通过这种微调,我们可以采用Megatron中的标准3D并行技术。以及DeepSeek-LLM中的重叠计算与通信机制。
在64节点集群上运行时,DeepSeek-VL- 7B耗时5天,每个节点配备8个Nvidia A100 GPU;而在包含16个节点的配置下,DeepSeek-VL-1B则需要7天时间。
其余超参数如下所示:
4. Evaluation
4.1 公开多模态benchmark
多模态理解数据集:MMMU、CMMMU等
图表理解:OCRBench等
幻觉:POPE
科学问题:ScienceQA、MathVista
采用基于生成的评估方法(关注模型生成的文本结果,将其与groundtruth对比),结合贪心解码技术(在生成每个 token时,始终选择当前概率最高的 token,而不考虑未来可能的最优选择)。
DeekSeek-VL-7B超过了大多数同规模的开源模型,和比闭源模型仍有差距,这种差异可能源于基础模型规模的差异。
DeepSeek-VL-1.3B在同类规模模型中表现显著更优。在MMB基准测试中,其性能超越了主流开源模型,而参数量仅为其约一半,1.3B vs 2.7B。
4.2 公开语言benchmark
多主题多选:MMLU
语言理解和推理:HellaSwag
语言建模:Pile
数学:GSM8K
编程:MBPP
标准考试:AGIEval
对于从多个答案进行选择的数据集(HellaSwag、MMLU),采用困惑度评估,选择困惑度最小的选项作为最终选择。基于困惑度的评估方法能有效区分模型预测间的细微概率差异,避免了精确匹配式评估带来的不连续性问题。
针对GSM8K和AGIEval数据集,我们采用基于生成的评估方法结合贪心解码技术。这里的生成评估具体指让模型自动生成自由文本,并解析生成文本的解析结果。
我们采用基于语言模型的评估方法进行堆测试,即计算测试语料库的每字节比特数。
可以观察到,在大多数语言基准测试中,DeepSeek-VL的表现与DeepSeek-7B相当甚至更胜一筹。例如,在作为通用语言能力评估基准的HellaSwag数据集上,其得分达到68.4分,而DeepSeek-7B为68.5分。在MMLU和AGIEval等指标上,DeepSeek-VL更胜一筹,这表明多模态训练方法甚至可能助力语言任务。然而,DeepSeek-VL-7B在数学测试(GSM8K)中出现一定程度的退步,这说明尽管视觉与语言模态间的协调性得到提升,二者之间仍存在竞争关系。这可能归因于模型容量有限(7B),而更大规模的模型或许能显著缓解这一问题。总体而言,DeepSeek-VL致力于在应对这些挑战的同时,实现语言能力下降幅度最小化的目标。
4.3 Human Evaluation
作者团队构建了人工评估数据集,包含100个问题,包含7个类别,与SFT的分类一致。
DeepSeek-VL-7B与InternLM-XComposer2-VL、CogVLM及GPT- 4V进行对比
GPT- 4V在多数维度均展现出卓越性能,而所有开源模型在逻辑推理方面仍远逊于GPT- 4V,这凸显了扩大大型语言模型(LLM)规模的必要性。DeepSeek-VL-7B在整体表现上更胜一筹,在识别、转换和常识推理等任务中接近GPT- 4V的水平。
此外还进行了LLM评估,使用GPT-4V对两种模型的答案进行评估。多数情况下DeekSeek-VL的回答更受青睐。
4.4 Ablation Study
Scale up Projector Training
在stage1 逐渐扩大数据集,但性能并未提升。说明projector的容量有限,无法捕捉多模态任务所需的广泛知识。
Training Stage
对比使用不同训练阶段的组合(1+3,2+3,1+2+3),三阶段联合使用效果最好。此外,2+3效果差于1+2+3,说明了VL adaptor预热的必要性。
Modality Group Training
当语言数据和多模态数据混合时,发现直接在batch层面混合显著降低训练效率。这是因为要等待计算较慢的多模态样本完成后才能梯度反向传播,拖慢了整体速度。
作者在每个global step上将不同模态的数据分开,batch内只包含语言或多模态数据。这种方法提升了模型训练效率且不会影响性能。
Modality Warmup
若一开始就按比例混合多模态数据,可能会导致模型不稳定。初始阶段先将语言数据比例设为1,再逐渐降低至最终训练目标值,能避免训练初期模型语言能力下降,同时在语言和多模态领域后期均取得更优效果。
Vision Encoder Selection
为了提高获取和利用图像信息的能力,对比了不同视觉编码器的训练损失。引入纯视觉编码器SAM在Loss指标上有显著提升。所以最终采用SigLP+SAM的方案。
Vision-Language Adaptor Design
为了提高从视觉编码器中提取信息的效率,且遵循当前的token长度限制,有两种方式来调整VL Adaptor:视觉特征的组合方法和MLP adaptor的设计。
先前研究表明,沿序列维度整合视觉特征能提升模型性能,但这也意味着需要视觉特征标记的序列变长,计算开销增大。在序列拼接之前,沿图像宽或高对视觉特征进行堆叠,不比直接沿嵌入维度合并效果好。
(Token Pooling - W:[H,W,C],把每一高度的W方向作池化,得到[H,C],然后接在文本序列后面;Token Pooling - H则是把高度方向压缩)
在adaptor架构方面,每个视觉特征编码器单独使用MLP adaptor可以更精确地调整视觉特征的具体值和分布模式,促进更平稳的模型训练。为不同的视觉编码器使用共享的MLP适配器有助于足够的特征融合。作者采用了混合策略。
Conclusion、Limitation and Future Work
介绍了DeepSeek-VL,一个系列MLLM。
采用了创新的三阶段训练方法,保证了模型的语言和多模态能力。
集成了混合视觉编码器,能处理高分辨率图像,在各类测试中表现优异。
未来将进一步扩大模型规模,并引入MoE技术。
开源万岁!