Open-Qwen2VL 是论文《Open-Qwen2VL: Compute-Efficient Pre-Training of Fully-Open Multimodal LLMs on Academic Resources》的官方代码仓库,该工作已被 COLM 2025 收录,作者为 Victorwz 等。项目聚焦于在有限学术计算资源下高效预训练完全开源的多模态大语言模型(MLLM)。
【主要用途】 该仓库提供一套完整的多模态大模型训练与数据处理流程,覆盖从原始图文数据到模型预训练、监督微调及评测的全链路,适用于在学术环境下开展多模态大模型研究的开发者与研究人员。
【主要能力】
- 数据质量评分生成:支持使用 DFN/CLIP 以及 MLM-Filter 为数据生成质量分数。
- 高质量数据筛选与重分片:基于质量分数选择高质量数据,并重分片为 webdataset 格式。
- 多模态序列打包(Multimodal Sequence Packing):面向大规模图文数据集(webdataset 格式),同时支持 caption 数据和交错(interleaved)数据;更新后支持打包为单个 JSON 文件,内含 base64 字符串图像和文本,可节省 95% 磁盘空间。
- 预训练:支持使用打包后的多模态序列进行预训练,脚本参数包括 CKPTID(保存检查点的 id)、STAGE(可选 pretrain 或 full-pretrain,后者使视觉编码器也可训练)、BSZ(全局批大小)、PER_GPU_BSZ(每 GPU 批大小,若全局批大小不等于 GPU 数乘以每 GPU 批大小则应用梯度累积)。
- 监督微调(SFT):支持小规模 SFT 数据(如 LLaVA-665k)和大规模 SFT 数据(如 MAmmoTH-VL-10M),脚本参数包括 CKPT_PATH(预训练后 MLLM 检查点路径)、CKPTID、DATAPATH(SFT 数据集 JSON 文件路径)。
- 评测:提供一系列多模态基准的评测支持,具体见 docs/Eval.md。
【使用方式】
- 若需预训练或 SFT MLLM,需安装 flash-attention。
- 预训练数据已以 webdataset 格式发布在 Open-Qwen2VL-Data,可通过 huggingface-cli download 或直接 git clone 下载。
- 序列打包支持输出单个 JSON 文件(含 base64 图像和文本),以节省磁盘空间。
- 训练前需按 README 中的序列打包说明为每个子数据集准备 pickle 文件,然后运行训练脚本。
- 大规模 SFT 需先下载并解压 MAmmoTH-VL-10M 图像,再运行 python data_prepare/split_mammoth_10m.py 将每个指令样本拆分为单个 JSON 文件,之后运行训练脚本。
- 数据质量评分与数据筛选请参考 docs/DATA_Filter.md。
- 评测请参考 docs/Eval.md。
【发布信息】 2025 年 3 月 31 日:发布全部预训练模型与指令微调模型检查点(Open-Qwen2VL 和 Open-Qwen2VL-Base);发布 webdataset 格式的全部预训练数据(Open-Qwen2VL-Data);发布技术报告。 2025 年 5 月 16 日更新:支持序列打包为单个 JSON 文件。
【基础与引用】 代码库基于 prismatic-vlms 和 vlm-evaluation 开发。若认为该仓库有帮助,可引用其论文。
【限制】 资料未提供模型的具体参数规模、训练所需的具体硬件配置、各基准评测的具体分数、许可证信息以及详细的安装命令全文,这些内容暂未提供。