训练架构
多模态模型的目标,都是致力于把两个模态的数据(图像数据-自然语言数据)编码到同一个语义空间。所以一般来说都会有两个模块,一个图像编码器,一个文本编码器。一些方法为了提升效果,会附加一些模块,比如 Albef 加了一个融合编码器。另一些方法为了让模型同时具有理解图像文本和生成文本的功能,加了生成模块。
所有的损失函数都是为了让整个模型能同时理解图像和文本的语义。
对比学习当之无愧
非常经典的就是 CLIP 了,用图像编码器编码 + 文本编码器编码,得到的特征让它们相乘,让成对儿样本的特征的乘积靠近1,让不成对儿的样本特征的乘积靠近0。
图文匹配
给模型加个二分类层,让图像和文图特征一起送进这个二分类层训练,让配对的预测结果更靠近1,不配对的预测结果更靠近0。
这个跟对比学习不一样,注意区分。对比学习直接算乘积,图文匹配是一起送进二分类层训。等训完了这个二分类层就光荣退休了。
masked token 预测
文本编码器里,把文本的 token 遮掉,让模型预测它是哪个 token。这种方式是 bert 的训练法,被拿来做多模态,是为了让模型从图像特征里获取信息,从而更准确地预测文本里被遮掉的 token。
举个例子,图片里有只长颈鹿,文本被遮掉的的部分是“A photo of [masked token]”,这样模型就不得不从图片里找到长颈鹿这个信息。
图文生成
BLIP 和 BLIP2 里的,不预测 masked token 了,直接自回归预测句子的下一个 token。这种方式是 GPT 的训练方法,被拿过来做多模态,一是为了让模型从图像里学到跟文本相关的信息,二是这样的多模态模型不光能理解和编码图像文本信息,还能直接根据图文生信息成文本,直接做了类似于图文问答的任务。
动量蒸馏筛选难负样本
Albef 首先提出的,原因是网上爬的数据普遍存在噪声,当模型学到噪声数据时,错误的、或者说弱相关的图像文本对儿就会对模型产生负面影响。如果能有更多的监督信号就好了,所以有了动量蒸馏法。
动量蒸馏法存在两个模型,两个模型的参数不一样,其他全都一样。一个是 base 模型,正常更新参数,另一个是动量模型,用 EMA 的方式去更新参数(举个粗浅的例子,EMA 的参数 = 0.9 x 上一个模型的参数 + 0.1 x 更新后的模型参数)。
首先,当数据 x 进来时,先喂给动量模型,得到 y'。此时我们有 y 和 y' 两个标签,其中 y 是原始标签(放在对比学习里就是 one-hot 向量),另一个 y' 是用动量模型得到的伪标签。
生成文本与过滤策略(captioning and filtering,也被翻译为“字幕与过滤”)
这个是 BLIP 提出的,用来过滤网络数据集里的图文不匹配的噪声数据。BLIP 是一个即可以根据图像生成文字,又可以判断图文相似度的模型。
比如网上有些图片画面是夕阳下的一座桥,但配文是“这是从我家楼顶拍的”,这样的图文对儿送给模型,模型就会学的非常迷惑。
它的做法是,在小的、干净的数据集上先训两个模型:一个是“看图说话”模型(也就是 captioner),喂一张图能生成对应的描述图像的文本;另一个是“判断文本和图片是否匹配”模型(也就是 filter)。
在训练多模态模型的过程中,先用 captioner 给这张图生成文本 Y',然后把生成的文本和原始数据集里的文本 y 喂给过滤器 filter 打分,留下分数高的文本作为图像对应的文本喂给多模态模型进行学习。
还是上面的例子,原始文本是“这是从我家楼顶拍的”,captioner 生成的文本是“夕阳下的一座桥”, filter 认为 captioner 生成的文本最贴近图像的意思,就保留 captioner 生成的这条文本,然后喂给多模态模型训练。
这里要考虑一个问题,用 captioner 和 filter 来指导多模态模型(VLP),为什么有效?在它没见过的数据上 captioner 和 filter 会不会误导模型?
答案是:还是利大于弊的。
假设 captioner 和 filter 都只学会了一部分图像和文本的知识。 训练 VLP 时,如果出现 captioner 和 filter 学过的知识,毋庸置疑,提高了数据纯度; 如果出现了文本生成器和过滤器没学过的知识,首先生成器会生成的不准确,其次过滤器会也过滤的不准确, 假设它随机过滤掉了一半网络文本和一半生成文本。 此时模型学习时,依然学到的是带噪样本。 所以总的来说,captioner 和 filter 提高了它们见过的那类数据的纯度,对没见过的数据的影响或许不大。
所以,这样做的意义是,第一,它用高精度生成器和过滤器来得到高性能的双功能的多模态模型;第二,对于生成器和过滤器学过的内容,样本纯度可以提升,它俩没学过的内容样本纯度保持不变,所以总体上会让纯度提升一部分。
高质量数据微调
在大而多样的数据集上进行预训练,在更小但更高质量的数据集上进行微调,可以显著提高性能。
这个方法是在 Stable Video Diffusion 里提到的,已经在另外两篇论文了验证了。
这两篇论文是:1)Emu: Enhancing image generation models using photogenic needles in a haystack;2)High-Resolution Image Synthesis with Latent Diffusion Models。
目前这个方法也在 Stable Video Diffusion 中被验证了,那基本可以肯定所有的大模型在经过noise的数据训练后,再在一个高质量小数据集上微调,最终效果会好得多。
多模态模型(图像-文本)的训练方法通常旨在联合学习和理解图像与文本两种不同模态之间的对应关系,以实现跨模态的理解、检索、生成等多种任务。以下是一些普遍采用的训练方法:
1、对比学习:CLIP (Contrastive Language-Image Pre-training):CLIP通过让模型在大量图像-文本对上进行预训练,学习将相关联的图像和文本编码到相同的特征空间中,并最大化它们之间的相似度,同时最小化不匹配对的相似度。
2、联合嵌入学习:UNITER: UNITER等模型使用Transformer架构,从多个大规模图像-文本数据集中提取联合嵌入表示。模型通过自注意力机制联合处理视觉和语言输入,共同预测掩码信息或进行其他预训练任务。
3、多任务学习:预训练阶段会设计多种预训练任务,例如掩码语言建模、掩码区域分类、图文匹配、序列-序列生成等,这些任务能够迫使模型理解和捕捉不同模态间的关键联系。
4、冻结部分参数进行微调:在一些资源受限的情况下,可以采取冻结大模型的部分参数(如GPT系列的文本部分),只训练新增的视觉模块,从而快速适应多模态任务。
5、跨模态交互结构:
1)Single-Stream 模型:将图像和文本特征融合在一个统一的流中,共同参与后续的高层特征提取和交互。
2)Cross-Stream 模型:图像和文本分别通过独立的编码器得到各自的特征向量,然后在某个层次上进行交叉交互,比如通过注意力机制来实现跨模态的信息交换。
6、多模态数据增强:训练时不仅使用原始图像和文本配对,还可能引入各种数据增强技术,比如图像旋转、裁剪、色彩变换以及文本的同义替换、句子结构调整等,以增加模型的泛化能力。
7、FLAVA方法:FLAVA提出了一种联合图像、文本和其他模态数据的多模态预训练框架,在训练过程中充分利用单一模态任务的数据,提高模型在单模态和跨模态任务上的表现。
8、BEiT系列模型:能够进行大规模预训练,且在不同的视觉及视觉-语言任务上表现出色,利用自监督或半监督学习的方式从大规模未标注数据中学习图像和文本的通用表征。
综上所述,多模态模型的训练涉及构建能够捕获并融合不同模态信息的深度神经网络架构,通过对比学习、多任务学习等策略在大规模数据集上进行预训练,进而迁移至下游的具体应用场景中。
主流的图像—文本的多模态技术实现方法有哪些?
1、特征提取与融合:通过使用卷积神经网络(CNN)提取图像的视觉特征,使用循环神经网络(RNN)或Transformer提取文本的语义特征,然后将两种特征进行融合,得到图像-文本的多模态表示。
2、神经网络对齐:通过使用神经网络模型,如双向长短时记忆网络(BiLSTM)或Transformer,将图像和文本进行对齐,使得它们在同一空间中具有相似的表示。
3、共享嵌入空间:通过将图像和文本映射到一个共享的嵌入空间中,使得它们在该空间中的表示具有相似性。这可以通过训练一个共享的嵌入模型,如Siamese网络或Triplet网络来实现。
4、注意力机制:通过使用注意力机制,将图像和文本的重要信息进行对齐和加权,从而得到更好的多模态表示。注意力机制可以在特征提取阶段或特征融合阶段使用。
5、生成对抗网络(GAN):通过使用生成对抗网络,如图像生成对抗网络(GAN)或文本生成对抗网络(GAN),实现图像和文本之间的互相生成和对抗,从而达到更好的多模态表示。
需要人工智能入门进阶学习资料包!想听免费AI公开课的!让你倾听圈内大牛来揭秘未来AI发展潮流, 还能与行业大佬面对面交流,领取行业大佬提供的学习资料!
可以关注威信公众号:AI技术星球 回复:211 了解获取
需要论文指导发刊的 【AI交叉学科、SCI、CCF-ABC、期刊、会议、本硕博论文、在职论文指导、Kaggle带队拿牌、 润色发刊等 】
白嫖100G入门到进阶AI资源包+kaggle竞赛+就业指导+技术问题答疑 1、超详细的人工智能学习路 2、OpenCV、Pytorch、YOLO等教程 3、人工智能快速入门教程(Python基础、数学基础、NLP)附源码课件数据 4、机器学习算法+深度学习神经网络基础教程 5、人工智能必看书籍(花书、西瓜书、蜥蜴书等) 6、顶刊论文及行业报告 7、SCI论文攻略 及润色等