deepseek-vl 论文阅读笔记

目录

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

二、创新点

数据集构建

模型架构

训练策略

实验与评估

三、细节

数据构建

内部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.mzph.cn/bicheng/50530.shtml

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

相关文章

AMQP-核心概念-3

本文参考以下链接摘录翻译: https://www.rabbitmq.com/tutorials/amqp-concepts 队列(Queues) AMQP 0-9-1模型中的队列和其他消息任务队列系统中的队列非常相似:它们用于存储被应用消费的消息。队列和交换机有一些相同的属性&…

【React】JSX:从基础语法到高级用法的深入解析

文章目录 一、什么是 JSX?1. 基础语法2. 嵌入表达式3. 使用属性4. JSX 是表达式 二、JSX 的注意事项1. 必须包含在单个父元素内2. JSX 中的注释3. 避免注入攻击 三、JSX 的高级用法1. 条件渲染2. 列表渲染3. 内联样式4. 函数作为子组件 四、最佳实践 在 React 开发中…

云计算实训室建设可行性报告

一、建设云计算实训室的目的和意义 随着信息技术的飞速发展,云计算作为一种新型的信息服务模式,已经成为推动信息技术创新和促进信息产业发展的重要力量。中高职院校作为培养高素质技能人才的重要基地,应当紧跟时代步伐,加强云计…

视觉-语言-行动模型:将网络知识迁移至机器人控制(RT-2论文翻译)

RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control RT-2: 用互联网知识训练的视觉语言模型融入到机器人控制中 RT1 论文翻译: https://blog.csdn.net/weixin_43334869/article/details/135850410 文章目录 RT-2: Vision-Language…

关键词查找【Boyer-Moore 算法】

1、【Boyer-Moore 算法】 【算法】哪种算法有分数复杂度?- BoyerMoore字符串匹配_哔哩哔哩_bilibili BM算法的精华就在于BM(text, pattern),也就是BM算法当不匹配的时候一次性可以跳过不止一个字符。即它不需要对被搜索的字符串中的字符进行逐一比较,而…

AI绘画入门实践 | Midjourney:使用 --tile 制作面料纹理与壁纸背景图

在 Midjourney 中,--tile 生成可以连续平铺的图像,常用于面料墙纸与纹理的无缝图案。 使用格式:提示词 --tile 使用演示 a pink rose, clean background --tile --niji 5 无缝图检查工具:https://www.pycheung.com/checker/ 平铺…

文件共享功能无法使用提示错误代码0x80004005【笔记】

环境情况: 其他电脑可以正常访问共享端,但有一台电脑访问提示错误代码0x80004005。 处理检查: 搜索里输入“启用或关闭Windows功能”按回车键,在“启用或关闭Windows功能”里将“SMB 1.0/CIFS文件共享支持”勾选后(故…

STM32智能家居控制系统教程

目录 引言环境准备智能家居控制系统基础代码实现:实现智能家居控制系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:家居监测与优化问题解决方案与优化收尾与总结 1. 引言 智能家居控制系统通…

【数据结构--排序】

目录 一、排序概述1.1、排序的相关定义1.2、排序用到的结构与函数 二、常见排序算法2.1、冒泡算法(交换顺序)(1)算法(2)性能分析 2.2、简单选择排序(1)算法(2&#xff09…

FastAPI(七十一)实战开发《在线课程学习系统》接口开发-- 查看留言

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前FastAPI(七十)实战开发《在线课程学习系统》接口开发--留言功能开发分享了留言开发,这次我们分享查看留言 梳…

网络服务与应用

一、 文件传输 FTP 1、FTP采用典型的C/S架构(即服务器端和客户端模型),客户端与服务器端建立TCP连接之后即可实现文件的上传、下载。 2、FTP传输过程 1)、主动模式(POST):入站连接 2&#x…

SqlSugar删除没有定义主键的实体类对应的数据库表数据

一般而言,使用SqlSugar的DbFirst功能创建数据库表实体类时,如果数据库表有主键,生成的实体类对应属性也会标识为主键,如下图所示。   但有时候生成的实体类没有自动配置主键,这时可以通过以下方式进行删除操作&…

【计算机网络】HTTP协议实验

一:实验目的 1:理解HTTP协议的基本工作原理。 2:使用Wireshark或其他抓包工具捕获并分析HTTP数据包,理解HTTP通信的具体过程。 3:通过分析抓包数据,识别常见的HTTP状态码及其含义。 二:实验仪…

光伏电站的运维经验

选择逆变器一是要看产品本身的效率和品质;二是要看系统的架构,怎么做的更简单,更可靠;三是要看场景的适应性;四是看服务。箱式逆变房后期运维无需协调多个厂家,大大提升了运维效率。相比自制土建房&#xf…

02集成开发工具配置VScode SSH连接Ubuntu20.04 - 输入密码连接

文章目录 1. running the VScode in Admin mode2. Install the plugin3. New Remote4. Enther the command at the top blanket column in VS Code5. Setup the ssh config file6. Restart VScode7. Connect to the Server8. Open the remote folder 1. running the VScode in …

简单了解反射

反射 文章目录 反射获取class对象的三种方式利用反射获取构造方法利用反射获取字段(成员变量)利用反射获取成员方法反射的作用 获取class对象的三种方式 ①Class.forName(“全类名”);(源代码阶段使用) ②类名.class&#xff08…

Linux中如何用ida调试fork后的子进程

原文链接 > https://redqx.github.io/linux/2024/07/24/linux-debugfork.html 本文的一些图片引用可能有一些问题, 比如数据不对劲,但无伤大雅 自己懒得粘贴图片了 环境: wsl-kali-2024 ida-7.7 插件: Lazy_ida, 还有一个什么插件不知道什么名字, 可以把汇编转字节码 …

Elasticsearch概念及ELK安装

1、Elasticsearch是什么 它是elastic技术栈中的一部分。完整的技术栈包括: Elasticsearch:用于数据存储、计算和搜索 Logstash/Beats:用于数据收集 Kibana:用于数据可视化 整套技术栈被称为ELK,经常用来做日志收集…

python题解

宽度与对齐 输出455、-123、987654,宽度为5,分别左对齐和右对齐 格式 输入格式: 无 输出格式: 输出为整型,空格分隔。每个数的输出占一行 样例 1 输入: 无 复制 输出: 455 455 -123 -123 98…

【MySQL进阶篇】锁:全局锁、表级锁以及行级锁

一、锁的概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须要解决的一个问题&am…