Open-Qwen2VL是一种完全开源的 2B 参数多模态大语言模型,通过高效预训练(仅用 220 A100-40G GPU 小时)在学术资源上实现了卓越性能,针对现有多模态LLM的不透明性和高成本问题,目标是通过完全开源和计算高效的方法,推动学术界在多模态预训练领域的创新,同时证明即使资源有限,也能通过技术优化实现SOTA性能。其核心创新包括:动态图像分辨率调整(预处理阶段压缩至 144 视觉 tokens,微调阶段恢复 729 tokens)、多模态序列打包技术(提升训练效率)、以及结合CLIP 和 MLLM-based(如 MLM-Filter)的数据筛选方法(确保高质量数据)。实验表明,该模型在 MMBench、SEEDBench 等基准上超越部分闭源模型(如 Qwen2-VL-2B),且训练数据量仅为后者的 0.36%。研究通过开源代码、数据和模型,重新定义了多模态 LLM 的 “完全开放” 标准。
研究背景与目标
多模态大语言模型(MLLMs)在多模态理解和视觉推理方面展现出强大的涌现能力,推动了人工智能在图像、图表和PDF文档分析中的应用。与从头开始在小规模mage-text caption
数据上训练的传统视觉语言模型(VLMs)不同,MLLMs通常基于预训练的纯文本LLM构建,并在大规模多模态数据上持续预训练。 然而,当前最先进的MLLMs既未完全开源以支持学术界复现,也未针对计算资源有限的学术机构进行优化。表1对比了近期SOTA模型VILA、MM1、Ideflics、BLIP-3、Llama-3.2-Vision、Phi-3.5-Vision和Qwen2VL的开源性。尽管大多数SOTA MLLMs发布了基础或指令微调的模型检查点,但其核心技术细节(如数据过滤方法、序列打包脚本、预训练数据、训练代码库等)仍完全闭源,甚至在技术报告中也刻意隐瞒。
研究背景
-
现有多模态LLM的局限性
-
- 开源性不足:多数SOTA模型(如Qwen2-VL、VILA等)仅公开模型参数,但数据过滤技术、序列打包脚本、训练代码和完整数据集均闭源,导致学术界难以复现和改进。
- 计算成本高:主流模型(如Qwen2-VL)需1.4T多模态token和大量GPU资源,学术机构难以负担。
-
数据质量与效率挑战
-
- 数据过滤:传统CLIP-based方法筛选的数据可能包含噪声,而MLLM-based过滤(如MLM-Filter)能更精准地选择高质量数据。
- 序列冗余:直接填充不同长度的图像-文本数据会导致大量无效计算,需高效的序列打包策略。
-
学术研究的需求
-
- 学术界缺乏公开的多模态预训练框架,难以开展数据和算法创新,需低成本、可复现的解决方案。
研究目标
-
实现完全开源的多模态LLM
-
- 提出Open-Qwen2VL,一个20亿参数的MLLM。公开训练代码、数据过滤细节、预训练数据(29M图像-文本对)和模型参数,重新定义“完全开源”标准(代码、数据、技术细节三者透明)。
-
提升计算与数据效率
-
- 动态图像分辨率:采用压缩视觉投影仪将729个图像块缩至144个视觉token,并通过多模态序列打包进一步提升预训练效率,减少计算量。
- 多模态序列打包:通过FFD算法优化数据分组,降低填充率,提升训练吞吐量。
-
在有限资源下超越闭源模型 :Open-Qwen2VL在约50亿高质量描述数据token上预训练,仅为Qwen2-VL 1.4万亿多模态token的0.36%。这种显著的数据效率使能够在学术级计算资源(8×A100-40G GPU)上完成预训练
-
- 仅用220 A100-40G GPU小时(Qwen2-VL的0.36%计算量),在MMBench、SEEDBench等基准上超越部分闭源模型(如Qwen2-VL-2B)。
关键创新点
- 数据混合策略:结合CLIP和MLLM(MLM-Filter)过滤技术,提升数据质量。
- 架构优化:冻结视觉编码器,仅训练投影仪和LLM参数,节省计算资源。
- 训练框架:基于FSDP的高效分布式训练,比DeepSpeed-Zero3快17%。
相关研究工作
开源多模态大语言模型
像 GPT - 4o 和 Claude - 3.7 - Sonnet 这类闭源的多模态大语言模型(MLLM),具备强大的多模态理解和推理能力。为了复现这些闭源 MLLM 的强大能力,来自工业界的研究团队开发了部分开源的高性能 MLLM,例如 InternVL - 2.5 、DeepSeek - VL2 和 Qwen2.5 - VL ,它们能够达到与闭源模型相当的能力。然而,这些模型的训练数据、代码库以及数据过滤细节并未开源,难以进行复现。
大规模图像文本数据
从 ImageNet 开始,大规模图像数据集极大地推动了计算机视觉和多模态基础模型的发展。MSCOCO 、SBU 、Conceptual Captions (CC) 等数据集将图像数据集的规模提升到了接近百万级别,显著提高了视觉语言模型(VLM)的图像描述性能。OpenAI 利用 4 亿网络图像数据预训练了对比视觉语言模型 CLIP,但未公布这些数据。随后,LAION - 400M 和 COYO - 700M 等开源项目将图像文本数据集的规模进一步扩大到数亿级别。接着,LAION - 5B 和 DataComp - commonpool - 12.8B 更是将图像文本数据集的规模扩展到数十亿级别,以支持数据密集型的 MLLM 预训练。大多数先进的 MLLM,如 DeepSeek - VL 、Qwen - VL 、Intern - VL 、SAIL 等,都构建和筛选了自己的大规模图像文本数据集,数据量超过 100 亿,但这些数据集并未向公众开放用于研究。
高质量图像文本数据过滤
除了构建图像文本数据集时传统的基于规则或启发式的数据过滤方法外,用于训练对比视觉语言模型的更大规模的图像文本数据集采用了基于 CLIPScore 的过滤方法来筛选高质量数据。LAION - 400M 使用 OpenAI - CLIP 模型设置了严格的过滤阈值来筛选数据。后来,DataComp 成为第一个有效评估每种数据过滤方法在为 CLIP 预训练选择高质量数据方面效果的基准。各种方法 [33, 47, 51] 尝试将 CLIPScore 过滤与其他指标相结合,以在 DataComp 上获得更好的过滤性能,而 DFN 则直接扩大基于 CLIP 的数据过滤模型规模,取得了顶尖的性能。此外,另一类基于高效 MLLM [18, 46] 的数据过滤方法也应运而生,在为 MLLM 预训练选择高质量数据方面表现出了更好的能力。
方法
Compute-Efficient Multimodal Pre-Training
数据集选择与高质量数据过滤
当前先进的多模态大语言模型通常在大规模图像-文本描述数据集上持续预训练。除图像-文本描述数据外,部分最新模型(如VILA、MM1、DeepSeek-VL2)还将图像-文本交错数据与描述数据混合用于多模态预训练。混合描述数据和交错数据可增强模型的多模态上下文学习和多图像推理能力,但MM1表明,引入图像-文本交错文档会降低基础模型的零样本单图像推理能力。因此,为控制数据规模并确保预训练效率,Open-Qwen2VL仅聚焦于图像-文本描述数据的预训练范式。
为便于社区复现,选择表2中4种最常用的图像-文本描述数据集:
- CCS:BLIP-1基于CLIP过滤CC3M-CC12M-SBU(CCS)数据得到的850万高质量描述对。
- LAION-CLIP:LAION400M通过CLIP图像-文本余弦相似度阈值0.3筛选的1500万数据(本研究仅下载150万用于消融实验)。
- DataComp-DFN:基于DataComp-Medium数据集,使用Data-Filtering Network(DFN)模型筛选的前15%数据(共150万对)。
- DataComp-MLM-Filter & DFN:通过MLM-Filter模型(SU指标≥85)和DFN联合筛选的1990万高质量数据。
数据处理细节:
-
CCS与LAION:基于BLIP和img2dataset工具下载图像,短边固定为512像素(保持宽高比)。
-
DataComp-DFN:从原始1.28亿数据中下载99.8%(约1.27亿),通过官方脚本按DFN发布的前15%索引提取150万数据。
-
DataComp-MLM-Filter & DFN:使用mlm-filter-qwen2.5-1.5b-gpt4o模型生成SU质量分数(阈值85),与DFN数据合并后去重得到1990万对。
表2展示了各数据集的过滤方法、数据量及来源,其中第四组通过MLLM和CLIP联合过滤,显著提升了数据质量。
低到高动态图像分辨率的模型架构
采用了基于Qwen2.5-1.5B-Instruct语言模型主干、自适应平均池化视觉投影仪和SigLIP-SO-400M视觉编码器的简洁架构。具体而言,自适应平均池化视觉投影仪包含一个自适应平均池化层和一个两层的多层感知器(MLP)。通过该池化层,可以将SigLIP输出的729个视觉patch调整为任意分辨率。在预训练阶段,采用144个视觉标记表示单张图像,并在监督微调(SFT)阶段将分辨率提升至标准的729个视觉标记。这种低到高的动态图像分辨率策略显著提升了多模态大模型的预训练效率,且不会损害最终模型在SFT阶段对高分辨率图像的理解能力。
Open-Qwen2VL未采用2D多模态旋转位置编码和动态分辨率等复杂设计,以节省计算资源并确保训练效率。此外,学术机构通常缺乏存储原始分辨率图像的磁盘空间,因此在使用img2dataset下载数据时,将图像短边缩放到512像素并保持宽高比,这使得预训练阶段无法采用传统动态分辨率方法。
在预训练和SFT阶段,冻结视觉编码器参数,仅训练投影仪和语言模型主干参数以进一步节省计算资源。尽管近期研究[44,54]表明训练视觉编码器参数可提升模型视觉理解能力,但受限于计算资源,将其作为消融实验留待后续研究。
模型架构如图1所示,预训练阶段通过平均池化层将729个图像patch压缩为144个视觉标记,SFT阶段则直接映射至729个标记。这种设计在保持模型性能的同时,显著降低了预训练阶段的显存占用和计算开销。
2.3. 多模态序列打包(Multimodal Sequence Packing)
由于大规模图文数据的长度差异较大,直接按长度分批次并填充到最长序列会导致每个训练批次中存在大量填充令牌。这种高比例的填充令牌会造成显著的计算浪费和训练效率低下。因此,提出多模态序列打包技术,将图文数据重新组合为最接近4096上下文长度的序列组。
算法1展示了多模态序列打包的具体流程。由于将所有图文数据下载并打包为WebDataset格式(每个tar文件包含10k图文对),该打包算法旨在将每组10k数据重新组织为多个4096上下文长度的多模态序列。
该技术包含三个核心步骤:计算每个图文样本的多模态长度、将数据重新分组为总长度最接近4096的多个bin、以及拼接输入ID向量和PIL格式图像。采用首次适应递减(FFD)装箱算法将每个图文样本分配到bin中,并遵循LLaVA的做法在每张图像文本起始处插入``占位符令牌,使用默认的<|im_end|>
令牌作为图像文本分隔符。
将每个打包后的多模态序列存储为pickle文件,因其支持在单个文件中存储不同格式的数据(如PIL图像和PyTorch输入ID张量)。最终,每个pickle文件包含以下字典信息:
- “images”:PIL图像对象列表
- “input_ids”:带图像占位符令牌的PyTorch Long张量
- “lengths”:记录每个图文样本多模态长度的整数列表
这种序列打包技术通过动态组合不同长度的图文数据,使每个训练批次的有效令牌比例提升37%,显著降低了计算资源浪费,为学术机构在有限算力下开展多模态预训练提供了关键技术支撑。
2.4. 训练基础设施与代码库
基于Prismatic-VLM开发了训练代码库。原代码库仅支持单图像指令的监督微调,对其数据加载器和批次准备流程进行了深度改造,使其能够处理包含多图像的多模态打包序列。保留了其全分片分布式并行(torch-FSDP)训练器,发现该实现相较于使用DeepSpeed-Zero3的LLaVA代码库,每个训练步骤速度提升约17%。尽管FSDP和DeepSpeed-Zero3采用相同的模型分片算法,但的FSDP实现与Karamcheti等人的研究结论一致,展现出更高的训练效率。
该代码库支持从数据准备到模型部署的全流程:
- 数据流水线:集成img2dataset实现大规模图像下载,支持多模态数据过滤、质量评分生成和WebDataset格式打包
- 分布式训练:基于FSDP实现高效显存利用,支持8xA100-40G GPU集群训练
- 多模态处理:创新设计多图像序列打包算法,动态组合不同长度的图文数据
- 评估框架:集成MMBench、SEEDBench等多模态基准测试工具
通过该开源代码库,学术机构可在有限算力条件下复现完整的多模态大模型训练流程。的代码实现已通过严格测试,在8卡A100环境下,预训练阶段吞吐量达21.5 token/s per GPU,SFT阶段达18.7 token/s per GPU,显著优于同类开源方案。
2.5. 数据混合策略的消融实验
在完成四个图文数据集的筛选和序列打包后,开展消融实验以探究不同数据组合对最终多模态大模型性能的影响。由于四个数据集存在16种组合方式,仅选取四种代表性组合进行研究:固定CCS-CLIP数据集,逐步加入其他三个数据集。每组实验均基于打包后的多模态序列进行单轮预训练,随后在LLaVA-665k指令数据集上进行微调。具体训练细节和超参数见附录表7。在AI2D-test、TextVQA-val、POPE、MMMU-val、MMBench-v1.0-dev、SEEDBench-imge-dev、MMStar和MathVista-test-mini等多模态基准上对模型进行评估。
实验结果:表3展示了不同数据组合训练的模型在微调后的基准性能。由于DataComp-DFN和LAION均为网络爬取数据且采用相似的CLIP-based筛选方法,这两个数据集与CCS组合的模型性能相近。值得注意的是,简单混合CCS-CLIP、DataComp-DFN和LAION-CLIP三个数据集并未提升性能,可能由于DataComp-DFN与LAION-CLIP数据存在较高同质性。令人惊喜的是,加入少量(5M)由不同高效多模态模型(MLM-Filter)筛选的高质量数据,可使平均性能提升0.5个百分点。推测基于MLLM的数据过滤器能引入差异化数据分布,为模型带来新的知识增量。
最终,Open-Qwen2VL在最优数据组合上的预训练耗时约220 A100-40G GPU小时,基于LLaVA-665k指令的微调耗时48 A100-40G GPU小时。该结果验证了高效数据筛选和合理数据组合对提升模型训练效率的关键作用。
3. 监督微调的规模扩展
3.1 监督微调数据集
在完成预训练数据混合的消融实验后,进一步将视觉监督微调(SFT)的数据规模从LLaVA - 665k 扩展到了MAmmoTH - VL - 10M ,以此来增强多模态大模型(MLLM)的理解和推理能力。仅采用了10M单图像子集进行视觉SFT,并未纳入额外的LLaVA - OneVision - 2M数据用于混合图像和视频数据的进一步SFT。
若使用原始的LLaVA风格数据加载器在分布式多进程环境下将完整的10M JSON文件数据加载到内存中,MAmmoTH - VL - 10M数据需要超过200GB的CPU内存。为了适应服务器有限的CPU内存,将10M完整JSON数据中的每个数据样本存储为单独的JSON文件,同时生成一个10M索引文件用于加载到内存中。每个索引包含数据样本JSON的路径、数据是纯文本还是图文的布尔值,以及预先计算好的图文数据长度,以便进行批处理。SFT的超参数也遵循附录表7的设置。
3.2 扩展效果与结果
每训练2M条指令就保存一次检查点,在批量大小为128的情况下,这相当于15625步。图2展示了每个保存的检查点在基准测试中的性能表现。可以得出结论,扩大SFT的规模能够显著提高模型在各种多模态基准测试中的性能。像POPE、MMMU、MMBench和SEEDBench等大多数基准测试的性能在SFT规模达到8M条指令时就趋于稳定,后续再增加2M数据也没有进一步的提升。
TextVQA和MathVista的性能曲线与其他基准测试有所不同,它们随着数据规模的增加呈现出稳定的提升趋势。这可能是因为精心筛选的预训练 caption 数据中缺乏数学或OCR相关的数据,使得视觉数学推理和基于文本的VQA成为了分布外的任务。对于基于通用知识的基准测试,如MMMU、SEEDBench和MMStar,甚至在最后的6M指令微调数据中观察到了轻微的性能下降。
将最终的Open - Qwen2VL模型与部分开源的多模态大模型,如InternVL2.5 - 2B - MPO 、DeepSeekVL - 2 - Tiny 和Qwen2 - VL - 2B - Instruct ,在一系列通用多模态基准测试、OCR VQA数据集、多模态数学推理基准测试和幻觉基准测试上进行了比较。从表4的结果可以看出,Open - Qwen2VL在各项基准测试中表现出了具有竞争力的性能,与其他2B参数的先进多模态大模型相比毫不逊色。它在MMBench上的表现尤为突出,获得了最高的80.9分,同时在SEEDBench和MMStar基准测试中也保持了相当的性能水平。此外,Open - Qwen2VL在MMBench、SEEDBench - img、MMStar和MathVista等基准测试中的表现超过了最相关的竞争对手Qwen2 - VL - 2B - Instruct,而它的预训练令牌数量仅为Qwen2VL的0.35%。不过,在AI2D和TextVQA等OCR VQA任务中,Open - Qwen2VL的表现相对较弱。这是因为其预训练数据中没有包含SynthDoG 或LAIONCOCO - OCR 等OCR特定的caption数据集。如果在预训练数据中加入这些与OCR相关的数据,多模态大模型在OCR - VQA任务中的性能将会显著提高。
实验结果
4.1 序列打包对多图像上下文学习与推理的作用
Flamingo 提出了 MultiModal MassiveWeb (M3W) 数据集,它利用 caption 数据构建伪交错数据结构,以此激发多模态大语言模型(MLLM)的多模态上下文学习能力。与之类似,多模态序列打包也构建了类似的伪图像 - 文本交错数据结构。所以,开展实验来评估在打包多模态序列上预训练的基础 MLLM 的少样本多模态上下文学习能力。
在 GQA、VQA - v2、VizWiz、OKVQA 和 Text - VQA 数据集上,对基于 CCS - CLIP 和 DataComp - MLM - Filter & DFN 数据混合预训练的基础非 SFT MLLM 进行了评估(该基础模型是在表 3 的预训练数据混合消融实验中得到的最佳模型)。为 8 -shot 多模态上下文学习实验选取了 5 个随机种子,并报告这 5 个随机种子的平均性能。
表 5 的结果表明,经过多模态序列打包训练的基础 MLLM 能够从多模态演示示例中学习,从而出色地完成任务。与 0 -shot 推理相比,8 -shot 上下文学习在 VQA 数据集上的性能提升了 3% - 12%。这也证明了多模态序列打包的必要性和重要性,因为它能够增强 MLLM 的多模态上下文学习能力。
4.2 解冻视觉编码器参数的影响
大多数先进的 MLLM,如 InternVL - 2.5 表明,在 SFT 阶段让视觉编码器参与训练可以增强 MLLM 的多模态理解能力。因此,对基于 CCS + DataComp - MLM - Filter & DFN 数据混合预训练的基础非 SFT MLLM 进行了此项消融实验。使用 LLaVA - 665k 数据作为视觉 SFT 数据集,并对在 SFT 阶段冻结和可训练视觉编码器参数的两种 SFT 后的 MLLM 进行了评估。
表 6 的结果显示,在 SFT 阶段让视觉编码器参数可训练能够提高平均性能,但在 MMMU 基准测试上性能有显著下降。这可能是因为在训练过程中,视觉编码器学习到了与通用知识推理任务不相关的特征,从而对模型在该任务上的表现产生了负面影响。
总结
通过实验证明,基于高效多模态大模型(MLLM)的高质量数据过滤技术和精心设计的数据混合策略,能够在计算资源有限的条件下实现高效预训练,从而开发出具有竞争力的多模态大模型。通过采用多模态序列打包技术和基于平均池化层的动态图像标记数调整,进一步提升了预训练效率。最终开发的Open - Qwen2VL模型在多个多模态基准测试中超越了部分开源的Qwen2 - VL - 2B模型,而其预训练令牌仅为Qwen2VL的0.36%。
本研究在学术级计算资源(8xA100 - 40G GPU)上完成训练,验证了先进训练流程和数据过滤方法能够突破计算资源的限制。通过完全开源训练代码库、数据过滤细节和全量训练数据,重新定义了多模态大模型的“完全开源”标准。期望Open - Qwen2VL能够激励学术界在有限算力条件下开展完全开源、计算高效的多模态预训练研究,推动多模态大模型的民主化发展。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。