Qwen(通义千问)是阿里云推出的大语言模型,其多模态预训练是一个复杂且专业的过程,虽然官方没有完全公开全部细节, 但从多模态大模型通用的预训练逻辑上,一般包含以下主要步骤:
数据准备
- 多模态数据收集
- 文本数据:从广泛的来源收集大量文本,如互联网网页(新闻、博客、论坛帖子等)、书籍、学术论文、专利文档等。这些文本涵盖多种领域、语言风格和主题,为模型学习语言知识和语义理解提供基础。
- 图像数据:收集各类图像,包括自然场景图像、人物图像、物体图像等。可以从公开的图像数据集(如ImageNet、COCO )获取,也可以通过网络爬虫等方式从合法的图片分享网站收集,但要注意版权问题。
- 音频数据:包含语音对话、音乐、环境声音等。语音数据可以来自语音识别标注数据集、有声读物等;音乐数据可从音乐平台合法获取片段;环境声音数据可通过专业录音设备采集或使用公开的环境音频数据集。
- 视频数据:综合了图像、音频和文本(如视频字幕)信息,来源有电影、电视剧、网络视频、教育视频等。
- 数据清洗与预处理
- 文本数据:去除文本中的特殊字符、乱码、重复内容;进行分词处理,将文本拆分成合适的词或子词单元;对于不同语言的文本,可能还需要进行语言识别和归一化处理。
- 图像数据:调整图像大小,使其符合模型输入的尺寸要求;进行图像归一化,将像素值映射到特定范围(如0 - 1 );对图像进行标注,包括物体类别、位置(边界框坐标)等信息。
- 音频数据:将音频采样率统一到合适的值(如16kHz ),对音频进行降噪处理,提高音频质量;如果是语音数据,还需要进行语音转文本的标注。
- 视频数据:对视频进行帧提取,分离音频和视频流;对视频帧和音频分别进行上述图像和音频的预处理操作,并将视频字幕等文本信息进行整理。
- 数据融合
将经过预处理的不同模态数据按照一定的规则进行融合,形成多模态训练样本。例如,可以将图像与对应的文本描述组合在一起,或者将视频帧、音频和字幕信息关联起来,构建包含多种模态信息的训练实例。
模型构建与初始化
- 选择基础架构
通常基于Transformer架构进行改进和扩展,以适应多模态数据的处理。比如在语言模型部分沿用Transformer的编码器 - 解码器结构,同时针对图像、音频等模态增加专门的处理模块。例如,在处理图像时,可能采用Vision Transformer(ViT )将图像划分为多个patch并编码,使其能够与文本特征在后续进行融合计算。 - 参数初始化
使用一些预训练好的权重(如在大规模文本数据上预训练好的语言模型权重 )对模型中语言相关部分进行初始化,以加快训练收敛速度。对于新添加的多模态处理模块(如视觉编码器),可以采用随机初始化或使用在相关单模态数据上预训练的权重进行初始化。
预训练过程
- 设计预训练任务
- 文本相关任务:如掩码语言模型(Masked Language Model,MLM ),随机掩盖文本中的一些词,让模型预测被掩盖的词;下一句预测(Next Sentence Prediction,NSP ),判断两个文本段落是否在原文中相邻。
- 图像相关任务:图像掩码建模(Image Masked Modeling ),类似文本的掩码语言模型,随机掩盖图像的一些区域,让模型预测被掩盖区域的内容;图像分类任务,根据图像内容预测所属的类别。
- 跨模态任务:图文匹配(Image - Text Matching ),判断图像和文本是否匹配;视觉问答(Visual Question Answering,VQA ),根据图像内容回答相关问题;音频 - 文本对齐(Audio - Text Alignment ),建立音频和文本之间的对应关系等。
- 模型训练
- 将多模态训练样本输入到模型中,根据设计的预训练任务计算损失函数。例如,对于图文匹配任务,使用交叉熵损失函数衡量模型预测的匹配结果与真实标签之间的差异。
- 通过反向传播算法计算损失函数对模型参数的梯度,使用优化器(如Adam、SGD )更新模型参数,以最小化损失函数。在训练过程中,不断调整模型参数,使模型能够更好地处理多模态数据,学习到不同模态之间的关联和语义信息。
- 采用分布式训练技术,将训练任务分配到多个计算节点(如多个GPU服务器 )上并行处理,加速训练过程。同时,设置合适的训练超参数,如学习率、批次大小、训练轮数等,并根据训练过程中的性能指标(如损失值、准确率等)进行调整。
模型评估与优化
- 模型评估
- 使用预留的验证数据集对训练好的模型进行评估。针对不同的预训练任务,采用相应的评估指标。如在文本的掩码语言模型任务中,使用准确率评估模型预测被掩盖词的准确性;在图文匹配任务中,使用准确率、召回率等指标衡量模型判断图像和文本匹配关系的性能。
- 还可以进行人工评估,邀请专业人员对模型在一些复杂多模态任务上的输出进行质量判断,如对视觉问答任务中模型回答的合理性、准确性进行评估。
- 模型优化
- 根据评估结果,对模型进行优化。如果发现模型在某些任务上性能不佳,可能需要调整模型架构,比如增加或减少某些模块的层数、调整注意力机制的参数等;或者重新设计预训练任务,增加一些更具挑战性的任务来强化模型的学习能力。
- 也可以进一步扩充训练数据,补充一些模型表现较差领域的数据,或者对数据进行更精细的标注和处理,然后重新进行训练,不断提升模型的性能和泛化能力。 多模态预训练的评估需要综合考量模型在不同模态及跨模态任务上的表现,以下是一些常见的评估指标:
文本模态相关指标
- 掩码语言模型准确率(Masked Language Model Accuracy,MLM Accuracy)
- 定义:在掩码语言模型任务中,模型预测被掩盖词的正确比例。具体做法是在文本中随机掩盖一定比例的词,让模型预测这些被掩盖的词,然后计算预测正确的词数占总掩盖词数的比例。
- 作用:衡量模型对文本语义和语法的理解能力,以及基于上下文进行语言生成的能力。准确率越高,说明模型在文本理解和生成方面的表现越好。
- 困惑度(Perplexity,PPL)
- 定义:用于评估语言模型预测下一个词的能力,公式为 PPL=∏i=1n1P(wi)nPPL = \sqrt[n]{\prod_{i = 1}^{n}\frac{1}{P(w_i)}}PPL=n∏i=1nP(wi)1 ,其中 P(wi)P(w_i)P(wi) 是模型预测词 wiw_iwi 的概率,nnn 是文本序列的长度。困惑度越低,表明模型对下一个词的预测越准确,对语言的理解和建模能力越强。
- 作用:可以反映模型对文本分布的拟合程度,是衡量语言模型质量的重要指标之一。
- 下一句预测准确率(Next Sentence Prediction Accuracy,NSP Accuracy)
- 定义:在判断两个文本段落是否相邻的下一句预测任务中,模型预测正确的比例。给定两个文本段落,模型需要判断第二个段落是否在原文中紧跟第一个段落,通过计算预测正确的样本数占总样本数的比例得到准确率。
- 作用:评估模型对文本连贯性和逻辑关系的理解能力,有助于模型学习文本之间的语义关联。
图像模态相关指标
- 图像分类准确率(Image Classification Accuracy)
- 定义:模型对图像所属类别预测正确的比例。将图像数据集划分为训练集、验证集和测试集,在测试集上,模型对每个图像预测其类别,然后计算预测正确的图像数量占测试集图像总数的比例。
- 作用:衡量模型对图像内容的理解和识别能力,反映模型在图像特征提取和分类决策方面的性能。
- 目标检测指标
- 平均精度均值(Mean Average Precision,mAP) :用于评估目标检测模型在不同类别目标上的检测性能。对于每个类别,计算其精度 - 召回率曲线下的面积(Average Precision,AP ),然后对所有类别求平均值得到mAP。精度(Precision)是指检测出的目标中真正正确的比例,召回率(Recall)是指真正的目标中被检测出来的比例。
- 作用:能全面反映模型检测不同类别目标的准确性和召回能力,是目标检测任务中最常用的评估指标。
- 图像分割指标
- 交并比(Intersection over Union,IoU) :也称为并集交集比、雅卡尔指数,用于衡量模型预测的分割区域与真实分割区域的重叠程度。计算公式为 IoU=∣A∩B∣∣A∪B∣IoU = \frac{|A \cap B|}{|A \cup B|}IoU=∣A∪B∣∣A∩B∣ ,其中 AAA 是模型预测的分割区域,BBB 是真实的分割区域。对于语义分割任务,通常会计算每个类别以及所有类别的平均IoU(mIoU)。
- 作用:直观地反映模型在图像分割任务中对目标区域的分割准确性,mIoU越高,说明模型分割效果越好。
跨模态相关指标
- 图文匹配准确率(Image - Text Matching Accuracy)
- 定义:在图文匹配任务中,判断图像和文本是否匹配,模型预测正确的比例。通过将图像 - 文本对作为样本,模型预测它们是否匹配,计算预测正确的样本数占总样本数的比例。
- 作用:评估模型理解图像和文本之间语义关联的能力,反映模型在跨模态信息融合和匹配方面的性能。
- 视觉问答准确率(Visual Question Answering Accuracy,VQA Accuracy)
- 定义:模型根据图像内容回答相关问题的正确比例。给定图像和问题,模型生成答案,然后与人工标注的正确答案进行对比,计算回答正确的问题数量占总问题数量的比例。
- 作用:衡量模型综合利用图像和文本信息进行推理和回答问题的能力,是评估多模态模型跨模态理解和生成能力的重要指标。
- 音频 - 文本对齐准确率(Audio - Text Alignment Accuracy)
- 定义:在音频 - 文本对齐任务中,判断音频和文本是否对应,模型预测正确的比例。通过构建音频 - 文本对样本,模型判断其对应关系,计算预测正确的样本数占总样本数的比例。
- 作用:评估模型在音频和文本这两种模态之间建立准确关联的能力,对于语音识别、语音翻译等跨模态应用有重要参考价值。
- 多模态检索指标
- 召回率(Recall) :在多模态检索任务(如根据文本检索相关图像,或根据图像检索相关文本 )中,检索出的相关样本数占所有相关样本数的比例。例如,给定一个文本查询,模型检索出一定数量的图像,召回率就是检索出的与该文本相关的图像数量占所有与该文本相关图像数量的比例。
- 平均倒数排名(Mean Reciprocal Rank,MRR) :对于每个查询,计算其第一个相关结果的排名的倒数,然后对所有查询的倒数排名求平均值。该指标可以衡量模型在多模态检索中找到相关结果的效率,MRR值越高,说明模型在检索任务中的表现越好。
这些评估指标从不同角度对多模态预训练模型的性能进行量化,帮助研究人员全面了解模型在处理多模态数据和执行跨模态任务时的能力,并据此对模型进行优化和改进。 Qwen 多模态系列(包括 Qwen-VL、Qwen2-VL、Qwen2.5-VL)的预训练流程采用三阶段渐进式训练策略,逐步融合视觉与语言模态,并通过数据优化提升模型性能。以下是详细步骤与技术要点:
- 第一阶段:视觉-语言预训练(Vision-Language Pretraining)
目标:对齐视觉与语言特征,建立基础跨模态理解能力。
关键步骤:
• 模型架构:
• 视觉编码器:采用 ViT 架构(如 OpenCLIP ViT-bigG),输入分辨率固定为 224×224。
• 视觉-语言适配器:单层交叉注意力模块,使用 256 个可学习查询向量(learnable queries)压缩图像特征序列至固定长度(256),并注入 2D 绝对位置编码保留空间信息。
• 语言模型:冻结 Qwen-7B 参数,仅优化视觉编码器与适配器。
• 数据与训练:
• 数据集:14 亿图像-文本对,来自 LAION、Coyo、DataComp 等开源库,经严格清洗(保留率 28%),中英文占比分别为 22.7% 和 77.3%。
• 训练目标:最小化文本标记的交叉熵损失(自回归语言建模)。
• 超参数:批量大小 30,720,学习率 2e-4,50,000 训练步。
技术意义:通过大规模弱标注数据初步对齐视觉与文本特征,适配器缓解长序列计算负担,为多任务学习奠基。
- 第二阶段:多任务预训练(Multi-task Pretraining)
目标:引入高质量细粒度数据,解锁全参数训练,增强复杂任务能力(如定位、OCR、多图理解)。
关键步骤:
• 模型调整:
• 解冻语言模型:全参数联合优化视觉与语言组件。
• 分辨率提升:输入图像分辨率增至 448×448,减少细节丢失。
• 动态分辨率(Qwen2/2.5-VL):支持任意分辨率图像,通过 MLP 压缩相邻 2×2 视觉 token 以降低计算量。
• 数据与任务:
• 数据集:7,700 万样本,覆盖 7 类任务:
◦ 细粒度任务:视觉问答(VQA)、引用表达式理解(如 RefCOCO)、边界框检测、OCR。 ◦ 交错数据:图文交替序列(长度 2048),模拟多模态上下文。
• 空间位置编码:边界框坐标归一化至 [0, 1000) 范围,以字符串格式输入,辅以特殊标记 定位。
• 位置编码创新:
• M-RoPE(Qwen2/2.5-VL):将旋转位置嵌入分解为时间、高度、宽度三组件,统一处理文本、图像、视频的位置信息。
技术意义:高分辨率与多任务数据提升细粒度理解能力,动态机制增强模型灵活性。
- 第三阶段:监督微调(Supervised Fine-tuning, SFT)
目标:优化指令遵循与对话能力,生成交互式模型(如 Qwen-VL-Chat)。
关键步骤:
• 模型调整:冻结视觉编码器,仅训练语言模型与适配器。
• 数据构建:
• 规模:35 万指令数据(Qwen-VL)→ 200 万(Qwen2.5-VL),50% 为多模态(图文/视频),50% 为纯文本。
• 数据来源:
◦ 人工标注的定位与多图理解数据。 ◦ 模型合成的对话数据(如 LLM 生成图像描述)。 ◦ 策略拼接的交错多轮对话。
• 过滤机制:
◦ 拒绝采样(Rejection Sampling):对比模型输出与标注答案,仅保留匹配样本。 ◦ 规则过滤:剔除重复、过长或有害内容。
• 视频处理(Qwen2.5-VL):
• 3D Patch 划分:合并连续视频帧,减少语言模型输入 token 数。
• 动态 FPS 采样:按内容重要性调整帧率,时间戳以 hmsf 格式编码。
技术意义:指令数据使模型适应实际交互场景,过滤策略确保输出质量与安全性。
- 长上下文预训练(Qwen2.5-VL 新增阶段)
目标:扩展序列处理能力,支持长视频、复杂文档解析。
关键步骤:
• 架构升级:
• 窗口注意力:多数 ViT 层采用局部注意力,计算复杂度降至线性。
• 动态 token 压缩:MLP 融合相邻 4×4 图像 patch,投影至文本嵌入维度。
• 数据增强:
• 文档解析:合成含表格、公式、乐谱的 HTML 格式数据。
• 绝对位置坐标:边界框基于图像实际尺寸标注,提升空间关系建模。
技术演进总结
阶段 Qwen-VL Qwen2-VL Qwen2.5-VL
视觉编码器 ViT-bigG(固定 448×448) ViT + 动态分辨率 窗口注意力 + 3D Patch 划分
位置编码 2D 绝对编码 2D-RoPE + M-RoPE M-RoPE + 绝对时间对齐
视觉-语言融合 单层交叉注意力(256 queries) MLP 压缩 2×2 token MLP 压缩 4×4 patch
视频支持 ❌ 3D 卷积 + 帧动态分辨率 动态 FPS + 长视频分段
训练数据量 1.4B 图文对 + 350K SFT 77M 多任务 + 混合视频 200 万 SFT + 长上下文数据
核心创新点
- 高效视觉特征压缩:适配器与 MLP 压缩平衡计算效率与信息保留。
- 多模态位置统一:M-RoPE 无缝融合文本、图像、视频时空信息。
- 数据质量优先:拒绝采样与多级过滤确保指令数据高精度。
- 动态适应性:分辨率、帧率、token 长度的动态调整支持复杂场景。
如需代码级实现细节(如动态分辨率处理),可参考 https://blog.csdn.net/gitblog_02881/article/details/144343207。