赞
踩
链接:https://arxiv.org/pdf/2308.12966.pdf
项目:https://github.com/QwenLM/Qwen-VL/tree/master
demo:https://modelscope.cn/studios/qwen/Qwen-VL-Chat-Demo/summary
《Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond》 https://arxiv.org/abs/2308.12966
Qwen-VL-Chat Tutorial:https://github.com/QwenLM/Qwen-VL/blob/master/TUTORIAL.md
三大模块的参数量:
Qwen-VL模型的整体网络架构包括以下三个组件:
大型语言模型(Large Language Model):
视觉编码器(Visual Encoder):
位置感知的视觉-语言适配器(Position-aware Vision-Language Adapter):
作用:为了缓解由于长图像特征序列而产生的效率问题,Qwen-VL引入了一个视觉-语言适配器,用于压缩图像特征。适配器包括一个单层的交叉注意力模块,随机初始化。
来源:适配器的初始化是随机的。
这三个组件共同构成了Qwen-VL模型的整体网络架构,实现了对图像和文本的综合理解与处理。
Qwen-VL中的“Position-aware Vision-Language Adapter”是一个组件,其作用是为了解决长序列的图像特征在效率上的问题。具体来说,它的工作方式如下:
(1)压缩图像特征序列:
(2)考虑位置信息:
该组件的作用在于使得长序列的图像特征变得更加紧凑,从而提高了处理效率。同时,考虑到位置信息可以帮助模型更准确地理解图像细节,因此在压缩过程中保留了这方面的信息。
在处理大量的图像特征时,尤其是在序列非常长的情况下,直接传递可能会导致效率问题。通过引入这个“Position-aware Vision-Language Adapter”,可以有效地处理长序列,提高了模型的整体性能。
• Stage1 为预训练,目标是使用大量的图文Pair对数据对齐视觉模块和LLM的特征,这个阶段冻结LLM模块的参数;
• Stage2 为多任务预训练,使用更高质量的图文多任务数据(主要来源自开源VL任务,部分自建数据集),更高的图片像素输入,全参数训练;
• Stage3 为指令微调阶段,这个阶段冻结视觉Encoder模块,使用的数据主要来自大模型Self-Instruction方式自动生成,目标是提升模型的指令遵循和多轮对话能力。
(1)在Qwen-VL模型的第一个预训练阶段,针对文本标记的训练目标是最小化文本标记的交叉熵(cross-entropy)。具体来说,模型的任务是尽量减小文本标记的预测与真实标记之间的差距,以提高文本生成的准确性。
在这个阶段,作者使用了AdamW优化器,并设置了以下超参数:
β1 = 0.9
β2 = 0.98
ε(eps)= 1e−6
(2)对于学习率调度,作者采用了余弦学习率调度(cosine learning rate schedule)。最大学习率(maximum learning rate)被设置为2e−4,最小学习率(minimum learning rate)为1e−6,并使用了线性热身(linear warm-up)的方法,热身步数为500步。
(3)使用了权重衰减(weight decay)为5e−2和梯度剪切(gradient clipping)为1.0来优化模型的训练过程。
这些优化器和学习率调度的选择旨在帮助模型更好地学习图像与文本之间的关联关系,从而实现文本标记的准确性提高。
在第一个预训练阶段,训练过程持续了50000步,消耗了大约15亿的图像文本样本和5000亿的图像文本tokens。
多任务预训练阶段(3.2)
We unlocked the large language model and trained the whole model. The training objective is the same as the pre-training stage.
在第二个多任务预训练阶段:
具体来说,Qwen-VL模型在第二个预训练阶段同时进行了以下七个任务的训练:
在这个阶段,作者综合利用了不同的数据源和任务,使得模型能够在多方面进行训练,从而提升其对于图像与文本的综合理解能力。
在监督微调阶段,Qwen-VL模型通过引入额外的指导微调数据来提升其交互和对话能力,从而生成了交互式的Qwen-VL-Chat模型。这些多模态的指导调整数据主要来自于图像描述或对话数据,这些数据可以通过LLM(Large Language Model)自我训练生成。然而,这些数据通常只涵盖了单一图像对话和推理,且仅限于对图像内容的理解。因此,作者们通过手动标注、模型生成和策略串联等方法构建了一组额外的对话数据,以将定位和多图像理解能力融入到Qwen-VL模型中。
这样做的目的是确保模型可以有效地将这些能力传递到更广泛的语言和问题类型中,从而提升了模型在交互和对话方面的性能。在这个阶段,作者们将模型的视觉编码器冻结,仅优化语言模型和适配器模块,以保证模型的训练稳定和有效。
训练Qwen-VL-Chat模型的微调参数设定:
在Qwen-VL模型的训练过程中,为了适应多图像对话和多图像输入,作者采取了一些措施:
<|im_start|>
and <|im_end|>
),用于便于对话的终止。以下是一个示例:
通过这样的设计,模型可以更好地理解多图像对话,并能够根据用户提供的不同图像进行交互。这种方式有助于模型适应处理多个图像输入的场景。
在训练过程中,只对答案和特殊标记(上例中为蓝色)进行监督,而不监督角色名称或问题提示。在这个阶段,视觉编码器被冻结,只优化语言模型和适配器模块。具体来说,Qwen-VL-Chat模型以全局批次大小为128进行训练,采用学习率调度,最大学习率为1e−5,最小学习率为1e−6,线性预热3000步。
Qwen-VL模型的第一个预训练阶段使用了一个大规模、弱标记的、通过网络爬取得到的图像文本对数据集。这个预训练数据集包括了来自公开资源和部分内部数据的图像文本对。为了保证数据质量,研究人员对数据集进行了清理,去除了其中的某些模式。在清理后,原始数据集中包含了50亿对图像文本对,而剩余的数据经过处理后仍然有14亿对,其中77.3%为英文文本,22.7%为中文文本。
为了增强模型对细节的理解和定位能力,Qwen-VL的训练过程涵盖了数据形式,包括了区域描述、问题和检测。与传统的图像-文本任务不同,这些数据形式要求模型准确理解和生成符合指定格式的区域描述。
具体来说,Qwen-VL的训练数据包括了以下内容:
与传统的图像-文本任务不同之处在于,Qwen-VL的训练数据要求模型不仅能够处理图像和文本的匹配,还需要理解和生成符合指定格式的区域描述,这要求模型具备更强的细节理解和定位能力。传统的图像-文本任务可能更侧重于图像标注或问题回答,而不一定需要生成特定格式的区域描述。
用于视觉问答(VQA)任务的数据集包括了以下几个:
GQA (Hudson and Manning, 2019)
VGQA (Krishna et al., 2017)
VQAv2 (Goyal et al., 2017)
DVQA (Kafle et al., 2018)
OCRVQA (Mishra et al., 2019)
DocVQA (Mathew et al., 2021)
在文章中,为了改善与文本相关的任务,作者采取了以下措施:
监督微调阶段SFT(3.3)
In this stage, we freeze the visual encoder and optimize the language model and adapter module.
350k
Qwen-VL模型的输入中,图像经过了以下处理:
因此,经过视觉编码器和适配器处理后,图像会生成一个包含256维特征的固定长度序列,以供后续模型处理和理解。
为了区分图像特征输入和文本特征输入,作者引入了两个特殊的标记:和。其中:
<img>
标记代表着图像特征的开始,标志着图像内容的起始点。</img>
标记代表着图像特征的结束,标志着图像内容的结束点。这两个特殊标记的引入使得模型可以清晰地识别并区分图像特征和文本特征,从而正确处理输入数据。
在处理边界框输入和输出时,作者采取了以下具体步骤:
边界框输入:
特殊标记:
关联描述词或句子:
为了正确地将边界框与相应的描述词或句子关联起来,作者引入了另一组特殊标记,分别是"“和”"。
这两组标记用于标示被边界框引用的内容。
通过这些处理步骤,Qwen-VL模型能够有效地处理边界框的输入,从而增强了模型对细节的理解和定位能力。
[1] 苏神-Transformer升级之路:17、多模态编码位置的简单思考
[2] Qwen-VL:突破视觉与语言融合的多模态模型,GPT4V的国产化替代
[3] 模型方法-Qwen-VL中文的多模态模型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。