deepseek-vl 论文阅读笔记

news2025/1/12 1:04:42

目录

一、已有模型性能差距分析

二、创新点

数据集构建

模型架构

训练策略

实验与评估

三、细节

数据构建

内部SFT数据的分类体系

模型架构

训练流程包括三个阶段

系统包含三个模块

混合视觉编码器

视觉-语言适配器

语言模型

训练策略

阶段一:训练视觉-语言适配器

阶段二:联合视觉-语言预训练

联合语言-多模态训练

扩展视觉-语言预训练

阶段三:监督微调

四、效果


论文:https://arxiv.org/pdf/2403.05525

代码:https://github.com/deepseek-ai/DeepSeek-VL

近期在使用deepseek-vl,把论文原理记录一下~

一、已有模型性能差距分析

开源模型与专有模型在实际应用场景中的性能差距显著,主要原因包括以下几点:

  1. 计算资源分配: 许多开源解决方案将大量计算资源分配给指令微调阶段。然而,训练强大语言模型的经验表明,广泛的预训练在发展通用智能中至关重要。为了使多模态模型具备丰富的世界知识,应强调利用广泛的视觉-语言数据进行全面的预训练。

  2. 数据集整合: 在指令微调过程中,常见的做法是整合各种学术数据集。虽然这种方法可能在基准测试中表现良好,但往往无法提供真实的实际使用体验。

  3. 模型架构: 先前的工作大多将视觉Transformer(通常是文本对齐的)适配到预训练的语言模型。然而,这些模型大多在相对低分辨率(如336×336或448×448)下运行。复杂的实际应用场景(如光学字符识别或微小物体识别)需要高分辨率的处理能力。

  4. 语言技能保持: 虽然一些模型(如01-ai, 2024; Lin等,2023a; Sun等,2023; Wang等,2023b)已经开始利用预训练,但往往忽视了语言技能的保持。在长期的多模态训练后,语言能力常常会退化。由于我们旨在开发同时具备强大语言和视觉能力的通用模型,因此在发展新模态能力时,应该采用一种能够很好地保持语言能力的训练策略。

二、创新点

数据集构建

DeepSeek-VL的预训练数据集来源多样,包括但不限于Common Crawl、Web Code、电子书、教育材料和arXiv文章。该数据集全面覆盖了真实世界的场景,如网页截图、PDF、OCR、图表以及基于知识的内容(如专家知识、教科书),旨在实现广泛且实用的表示,同时保持可扩展性。

尽管我们的预训练数据涵盖了广泛的世界知识,我们的指令微调数据集则经过精心策划,以反映真实的使用场景。为此,我们手动从互联网上收集了GPT-4V和Gemini的真实测试用例,并系统地将这些用例组织成一个全面的分类体系。我们使用这个结构化的分类体系为每个测试图像选择提示,确保指令微调数据集的实用性和相关性。该分类体系还用于创建一个评估数据集,以有效评估模型在真实世界中的表现。

模型架构

视觉模块旨在优化高分辨率视觉输入的利用,同时在固定的token预算内有效管理推理成本。为此,我们采用了混合视觉编码器,其中包括一个用于粗略语义提取的文本对齐编码器(分辨率为384×384)和一个捕捉详细视觉信息的高分辨率编码器(分辨率为1024×1024)。通过融合这两个编码器,我们的混合方法能够将一个1024×1024分辨率的图像(在大多数使用场景中已足够)压缩为576个token。这个token数量在丰富的视觉表示和token经济之间找到了平衡,使其在文本-图像交互和多轮推理场景中都具有可行性。

训练策略

在多模态模型的预训练过程中,一个常见的挑战是当训练过程过于依赖视觉-语言数据时,语言能力可能会退化。我们的研究表明,保持大量的语言数据(具体来说,至少占比70%)对于维护模型内的语言知识完整性至关重要。这种平衡对于实现强大的多模态能力而不损害语言性能至关重要。此外,我们引入了一种新的“模态预热”策略。这种方法在训练过程中逐步调整模态比例,逐渐引入更多的视觉-语言数据。通过精细调整模态比例和预热策略,我们实现了两种模态的平衡性能。

实验与评估

在模型迭代过程中,我们先在小规模模型上进行实验,然后再扩展到更大的模型规模。然而,小规模模型(如1B模型)无法在基准测试中表现出合理的性能(Schaeffer等,2024),也不能忠实地反映模型的整体性能。为了解决这个问题,我们采用了两种方法。首先,我们将评估协议从多项选择修改为比较选项的困惑度。此外,为防止指令跟随能力成为瓶颈,我们在预训练阶段混入了一小部分指令微调数据。通过这种方式,我们能够在1B模型上实现合理的性能,并更准确地衡量每次迭代在实验中的影响。

通过对通用视觉和语言基准的广泛评估,DeepSeek-VL系列在真实世界应用中展示了卓越的用户体验,并在同等模型规模下在各种视觉-语言基准上实现了最先进或具有竞争力的性能,同时保持了强大的语言中心性能。为了促进创新并支持广泛的应用需求,我们公开了两个版本的模型,分别为1.3B和7B,以满足不同计算能力的需求。

三、细节

数据构建

首先致力于确保数据的多样性、可扩展性,并广泛覆盖真实世界的场景,包括网页截图、PDF、OCR、图表以及基于知识的内容(如专家知识、教科书),以实现对实际情境的全面代表。此外,我们从真实用户场景中创建了一个用例分类,并据此构建了一个指令微调数据集。使用该数据集进行微调显著提升了模型在实际应用中的用户体验。

内部SFT数据的分类体系

内部高质量多模态SFT数据所涵盖的类别在这个分类体系中得到了全面的表示。

主类别描述次类别三级类别
识别这部分用例主要考察大模型对图像内容的理解和描述能力,不需要模型具备高知识储备和推理能力,有些任务可以使用传统机器学习模型完成。全局描述主题描述、事件/行为描述、位置/场景描述、情感/情绪描述、风格识别、食物识别、其他
局部描述指点描述、位置描述、人物识别、对象属性描述、标志识别、计数、货币识别
OCR与转录印刷文本转录、手写文本转录、指定格式转录、指定语言转录
转换这种用例要求模型能够描述和识别图像内容,并使用特定知识(如代码知识、提示工程知识)将图像内容转换为另一种形式。图像转代码UI转代码、图表转代码、照片转SVG/p64编码、公式转代码、流程图转代码
图像转文本图像转提示、文本摘要、基于图像的创作、文本解释
分析这种用例要求模型使用特定知识和逻辑能力对图像内容进行合理的分析和理解,并根据指令描述图像。数据图表分析图形解释、表格解释
专业图表分析电路图、流程图、地图、乐谱、金融图表、平面图、其他
专业图像分析传感器图像、生物和医学图像、声纹图像、点云图像
百科知识分析艺术与文化知识、自然环境知识、食衣住行相关知识、娱乐相关知识、历史知识
常识推理这种用例主要测试模型对生活常识的理解和掌握,需要基于对图像内容的解释和分析结合常识进行推理。关系推理人际关系、空间关系、大小关系、物种关系
功能推理硬件功能推理、软件功能推理
环境推理环境状态分析、基于环境的行为推理、具身智能
异常推理图像异常识别、缺陷检测、事故判断
幽默推理
其他常识推理状态推理、原因推理、属性比较、视错觉、有趣游戏、意图解释、行为预测
逻辑推理这种用例要求模型结合对图像的理解,综合使用领域知识和逻辑推理能力完成相应任务。数学推理代数与运算、平面几何、立体几何
其他逻辑推理物理、化学、生物、代码、智商问题
评估这种用例要求模型根据特定标准评估图像内容。现实评估、相似性评估、美学评估、开放性评估、改进建议
多图分析这种用例考察模型分析和理解多张图像的能力。时间序列理解事件预测、图像排序、行为分析
多图比较属性比较、图文匹配、寻找关联、找不同、图像辨别
安全性这种用例考察模型在安全性方面的表现。暗示性提问、反事实提问、提示注入
模型架构

考虑到效率和大多数真实场景的需求,DeepSeek-VL采用了混合视觉编码器,能够在固定的token预算内高效处理高分辨率图像(1024 x 1024),同时保持相对较低的计算开销。这样的设计选择确保了模型在各种视觉任务中捕捉关键语义和细节信息的能力。

训练流程包括三个阶段
  1. 阶段一:在第一阶段,我们训练视觉-语言(VL)适配器,同时保持混合视觉编码器和语言模型不变。

  2. 阶段二:第二阶段是联合视觉和语言预训练的关键部分,在这一阶段,VL适配器和语言模型都是可训练的。

  3. 阶段三:第三阶段是监督微调阶段,在此期间,我们将训练低分辨率视觉编码器SigLIP-L、VL适配器和语言模型。

系统包含三个模块

我们的系统包含三个模块:混合视觉编码器、视觉适配器和语言模型。在本节中,我们介绍每个部分。

混合视觉编码器

采用SigLIP作为视觉编码器,从视觉输入中提取高级语义特征表示。然而,能观察到单一的SigLIP编码器难以全面解决所有现实世界的问题。CLIP系列的视觉编码器,包括SigLIP,主要设计用于语义视觉表示,但在处理模糊编码时存在挑战,导致视觉上不同的图像被编码为相似的,这被称为"CLIP盲对"(Tong等,2024)。同时,CLIP系列模型受限于其相对低分辨率的输入(如224 x 224、336 x 336、384 x 384、512 x 512),这限制了它们处理需要更多详细低级特征的任务,如密集的OCR和视觉定位任务。

为了应对这些限制,最近的研究(Lin等,2023b;Tong等,2024;Wei等,2023)倡导集成额外的仅视觉自监督编码器,以增强多模态模型的视觉定位能力。基于之前的动机,我们额外利用了一个基于SAM-B(Kirillov等,2023)和预训练的ViTDet(Li等,2022)图像编码器的仅视觉编码器来处理低级特征,该编码器接受高分辨率的1024 x 1024图像输入。除了SAM-B编码器,我们还保留了接受低分辨率384 x 384图像输入的SigLIP-L视觉编码器。因此,我们的混合视觉编码器结合了SAM-B和SigLIP-L编码器,有效地编码高分辨率1024 x 1024图像,同时保留语义和详细信息。具体来说,高分辨率的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个具有2048维度的视觉token。这些视觉token在增强高级语义视觉识别和低级视觉定位任务方面具有很大的潜力。然后,它们经过GeLU激活,并通过嵌入层与语言模型建立连接。

视觉-语言适配器

我们采用一个两层混合MLP来桥接视觉编码器和LLM。最初,使用单独的单层MLP分别处理高分辨率和低分辨率特征。随后,这些特征沿其维度连接,并通过另一层MLP转换为LLM的输入空间。

语言模型

我们的语言模型基于DeepSeek LLM(DeepSeek-AI,2024),其微设计大体遵循LLaMA(Touvron等,2023a,b)的设计,采用带有RMSNorm(Zhang和Sennrich,2019)函数的Pre-Norm结构,并使用SwiGLU(Shazeer,2020)作为前馈网络(FFN)的激活函数,中间层维度为8/3模型维度。我们的语言模型还结合了旋转嵌入(Su等,2024)技术用于位置编码,并使用与DeepSeek-LLM相同的分词器。我们引入了一系列DeepSeek-VL模型。鉴于我们进行多模态和语言联合预训练的目标,我们选择了DeepSeek预训练模型的一个中间检查点继续进行预训练。

具体来说,DeepSeek-VL-1B模型是基于DeepSeek-LLM-1B模型构建的,该模型使用约5000亿文本token进行训练。而DeepSeek-VL-7B模型则基于DeepSeek-LLM-7B模型开发,该模型使用约2万亿文本token进行训练。

训练策略

我们认为,一个高效的视觉-语言模型首先应具备强大的语言能力。为了在预训练过程中保持大型语言模型(LLM)的能力,我们探索了一种有效的视觉-语言预训练策略,从一开始就整合了LLM的训练,并仔细管理视觉和语言模态之间的竞争动态。我们从文本开始,逐步调整比例,以实现两种模态的平衡融合。

阶段一:训练视觉-语言适配器

这个阶段的主要目标是在嵌入空间内建立视觉和语言元素之间的概念链接,从而促进大语言模型(LLM)对图像中描绘实体的全面理解。与LLaVA(Liu等,2024b)和Instruct-BLIP(Dai等,2023)进行的先前研究一致,我们采用了类似的方法,在此阶段保持视觉编码器和LLM冻结,仅允许视觉-语言适配器中的可训练参数进行训练。我们利用了一个包含125万对来自ShareGPT4V的图文配对字幕和250万对文档OCR渲染对的数据集来训练VL适配器。

然而,与大语言模型(LLM)相比,视觉-语言适配器(例如,一个两层MLP)的参数容量显著较小。这种模型容量的限制限制了在此阶段可以学习的能力。一个自然的问题是:数据扩展的规律在此阶段是否有效?为了解决这个问题,我们在表8中进行了一个简单的实验。结果表明,在此阶段扩展数据规模并没有带来好处,甚至可能导致性能下降。因此,我们在第二阶段解冻大语言模型(LLM)并探索高效的视觉-语言预训练方法。

阶段二:联合视觉-语言预训练

在这个阶段,我们探索有效的预训练策略,可以视为一个额外的阶段,使大语言模型(LLM)能够理解多模态输入。我们保持视觉编码器冻结,并优化语言模型和VL适配器。

最初,我们尝试直接用多模态数据训练LLM。然而,我们发现尽管多模态性能指标逐渐改善,但语言指标却显著下降,如图4所示(多模态:语言=100%:0%)。这揭示了在LLM基础上直接进行多模态预训练的内在挑战,显示了增强多模态能力和保持语言熟练度之间的关键权衡。

我们假设观察到的现象源于两个主要因素:首先,大多数多模态语料库过于简单,与语言数据的复杂性和分布存在显著差异。其次,多模态和语言模态之间似乎存在竞争动态,导致LLM内语言能力的灾难性遗忘。

联合语言-多模态训练

为了解决这一挑战,我们设计了一种简单而有效的联合语言-多模态训练策略。在训练过程中,我们不仅进行多模态数据训练,还加入大量语言数据以平衡训练重点,缓解观察到的不利影响。我们在图4中对DeepSeek-VL 1B模型进行了实验,探索不同模态混合比例的影响。

图表分析得出几个关键结论:

  1. 整合语言数据显著缓解了语言能力的下降,显著改善了模型的语言性能。
  2. 加入语言数据不会导致多模态性能的显著损失,表明模型保留了其多模态处理能力。
  3. 不同模态的性能与其在训练数据集中的比例密切相关,证实了两种模态之间的竞争关系。

最终,我们选择了语言与多模态数据大约7:3的训练比例。这一比例使模型在保持语言能力的同时,实现了更好的多模态数据预训练,有效平衡了语言和多模态能力的发展。

扩展视觉-语言预训练

然而,模型的预训练阶段需要大量的计算成本,在7B模型上进行迭代需要极大的计算能力和时间。一个合适的策略是先在较小的模型(特别是1.3B模型)上进行实验,然后将其扩展到7B模型。幸运的是,我们观察到从1.3B模型获得的大部分结果可以通过使用SFT(例如编码器设计)有效转移到7B模型。然而,在阶段二训练阶段,我们遇到了1.3B模型生成指标的显著波动,使得有效监督训练过程变得具有挑战性。Schaeffer等(2024)讨论了这一点,“即使模型家族的每个token错误率随着规模的增加平稳、连续和可预测地变化,研究者选择的测量方法也可能导致尖锐和不可预测的变化。”

后续实验使我们确定了这一问题的根本原因:1.3B模型的容量有限以及训练数据集中缺乏SFT数据,这些都阻碍了模型准确执行指令的能力。即使模型具备正确选项的知识,它也难以精确生成这些选项。

为了解决这些挑战,我们采用了双管齐下的方法。首先,我们使用多选PPL(Perplexity)方法来监控模型的进展。这包括不仅将提示和图像输入网络,还将与问题相关的所有答案输入网络。随后,我们计算每个答案位置(如A、B、C、D)的PPL,并选择模型认为正确的选项作为最终答案。其次,我们在训练数据集中引入了少量的SFT数据,使模型能够获得一些遵循指令的能力。这两种方法的结合确保了1.3B模型训练指标的稳定性,并在第三阶段后带来了更好的性能。

阶段三:监督微调

在这个阶段,我们对预训练的DeepSeek-VL模型进行基于指令的微调,以增强其遵循指令和进行对话的能力,最终创建了交互式的DeepSeek-VL-Chat模型。我们使用视觉-语言SFT数据优化语言模型、VL适配器和混合视觉编码器,如表2所示,由于GPU内存的限制,SAM-B保持冻结状态。我们仅监督答案和特殊token,并屏蔽系统和用户提示。为了保证模型在对话中的全面能力,我们使用了多模态数据和DeepSeek-LLM中使用的纯文本对话数据的混合。这种方法确保了模型在各种对话场景中的多功能性。

四、效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nfs和web服务器的搭建

(一)web服务器的搭建 1.配置基本环境 要点有,yum源,包含nginx和阿里云(或者腾讯云或者华为云),这里的相关知识可以参考之前的yum配置笔记 2.安装nginx yum -y install nginx 3.验证并且开启服…

MLCC电容特性及注意事项

MLCC结构和工作原理 如下图所示,MLCC电容结构较简单,由陶瓷介质、内电极金属层和外电极三层构成。 MLCC的电容量公式可以如下表示: C:电容量,以F(法拉)为单位,而MLCC之电容值以PF&…

AWE2025正式启动,AWE×AI 推动智慧生活的普及

7月18日,2025年中国家电及消费电子博览会(AWE2025)正式启动。主办方宣布,AWE2025的主题为“AI科技、AI生活”,展会将于2025年3月20-23日在上海新国际博览中心举办。 作为全球三大家电和消费电子领域展会之一&#xff…

数字孪生智慧农业技术:优化农业生产的未来

随着科技的进步和全球食品需求的增长,数字孪生智慧农业技术作为现代农业生产的新兴力量,正在为农业界带来革命性的变化和巨大的发展潜力。本文将深入探讨数字孪生智慧农业技术的核心架构、关键技术应用及其在提升农业生产效率和可持续发展中的作用。 ###…

word压缩大小怎么弄?这几种方法轻松压缩word文件!

word压缩大小怎么弄?面对庞大无比的Word文档,我们往往遭遇诸多不便,它们如同数据海洋中的巨鲸,不仅鲸吞存储空间,更在传输途中缓缓游弋,耗费大量时光,在资源有限的设备上,这些文档仿…

python基础语法 007 文件操作-1读取写入

1 文件操作 1.1 什么时候用文件操作? 打开文档写东西看东西拿文档做统计 在python 文档操作作用 存储数据读取数据 打开文件有什么用? 读取数据,写入数据不管什么数据都可以用open打开,如可复制一张图片 1.2 open() 读取,…

开源模型应用落地-FastAPI-助力模型交互-进阶篇-中间件(四)

一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理,使应用程序能够处理各种不同的请求场景,提高应用程序的灵活性和可扩展性。 在数据验证和转换方面,高级用法提供了更精细和准确的控制&#…

SqlServer: LAG等开窗函数应用

原贴: https://bbs.csdn.net/topics/619167074 https://learn.microsoft.com/zh-cn/sql/t-sql/functions/lag-transact-sql?viewsql-server-ver16 CREATE TABLE #kcb(xlh INT,shul INT,ftshl INT ) INSERT INTO #kcb(xlh,shul,ftshl) SELECT 1,20…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 中文分词模拟器(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

python基础语法 007 文件操作-2文件支持模式文件的内置函数

1.3 文件支持的模式 模式含义ropen a file for reading(default)wopen a file for writing,creates a new file if it does not exist or truncates the file if it exists x open a file foe exclusive creation. if the file already exists, the operation fails.独创模式&…

Redis中的哨兵(Sentinel)

上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。 文章目录 一、引入哨兵机制 二、基本概念 三、主从复制的问题 四、哨…

tensorflow keras Model.fit returning: ValueError: Unrecognized data type

题意:TensorFlow Keras 的 Model.fit 方法返回了一个 ValueError,提示数据类型无法识别 问题背景: Im trying to train a keras model with 2 inputs: an image part thats a tf.data.Dataset and a nor mal part represented by a pd.DataF…

Python游戏制作-开心消消乐游戏

制作一个类似“开心消消乐”的消除游戏在Python中是一个相对复杂的项目,因为它涉及到多个游戏机制,如元素匹配、消除动画、游戏界面设计、关卡管理以及用户交互等。 步骤 1: 定义游戏结构和元素 首先,你需要定义游戏的基本元素,…

一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略

一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略 HTTP协议使用明文传输,不能保证安全性,而使用HTTPS却能够保证传输安全 为什么HTTPS能够保证传输安全呢? HTTPS在HTTP的基础上除了要进行TCP三次握手,还会进行TLS的四次握…

国产系统上的 Copilot 初体验

2023年,微软发布了 Windows Copilot,到2024年更进一步,将 Copilot 深度集成到 Windows 11 系统中,免费供用户使用,这一举措震动了整个科技业界。然而,令人遗憾的是,Windows Copilot 并未对中国区…

盘点2024年5款实用靠谱的学术翻译工具。

学术翻译软件能够帮我们们快速处理大量的外语文本,可以节省自己翻译时间,降低阅读难度。对于那些需要大量阅览外语资料和文献的人来说,使用学术翻译软件来辅助学习研究效率是十分高的。这里会帮助大家列举5个专业又高效的学术翻译软件。 1、…

Vue3企业级项目开发实战课-笔记记录

基础篇 vue3的编译和非编译模式 Vue.js 代码经过编译后才能在浏览器运行,而且,Vue.js 代码编译后的结果就是基于非编译语法来运行的。 vue3代码编译过程主要进行了一下操作 把 Vue.js 代码里的模板编译成基于 JavaScript 代码描述的 VNode&#xff0…

计算机技术基础 (bat 批处理)Note3

计算机技术基础 (bat 批处理)Note3 本节主要讲 Goto ; Find ; TYPE ; START ; CALL 命令 Goto 命令 Goto 命令:指定跳转到标签行,找到标签行后,程序将处理下一行开始的命令。(它本身不执行任何操作&…

快速认识EA(Enterprise Architecture)

前言 企业架构,英文是:Enterprise Architecture,简称:EA,是承接企业战略规划与IT建设之间的桥梁,是企业信息化的核心,主要包括业务架构和IT架构。 架构的本质是管理和解决系统的复杂性&#x…

Windows及Linux系统加固

君衍. 一、Windows加固1、配置简介2、账户配置3、本地配置4、安全设置 二、Linux加固1、配置简介2、网络配置3、日志和审计配置4、访问认证和授权配置5、系统运维配置 一、Windows加固 1、配置简介 通常在Windows安全配置中有两类对象 一类是Windows Server,如win …