训练架构
多模态模型的目标,都是致力于把两个模态的数据(图像数据-自然语言数据)编码到同一个语义空间。所以一般来说都会有两个模块,一个图像编码器,一个文本编码器。一些方法为了提升效果,会附加一些模块,比如 Albef 加了一个融合编码器。另一些方法为了让模型同时具有理解图像文本和生成文本的功能,加了生成模块。
所有的损失函数都是为了让整个模型能同时理解图像和文本的语义。
对比学习当之无愧
非常经典的就是 CLIP 了,用图像编码器编码 + 文本编码器编码,得到的特征让它们相乘,让成对儿样本的特征的乘积靠近1,让不成对儿的样本特征的乘积靠近0。
图文匹配
给模型加个二分类层,让图像和文图特征一起送进这个二分类层训练,让配对的预测结果更靠近1,不配对的预测结果更靠近0。
这个跟对比学习不一样,注意区分。对比学习直接算乘积,图文匹配是一起送进二分类层训。等训完了这个二分类层就光荣退休了。
masked token 预测
文本编码器里,把文本的 token 遮掉,让模型预测它是哪个 token。这种方式是 bert 的训练法,被拿来做多模态,是为了让模型从图像特征里获取信息,从而更准确地预测文本里被遮掉的 token。
举个例子,图片里有只长颈鹿,文本被遮掉的的部分是“A photo of [masked token]”,这样模型就不得不从图片里找到长颈鹿这个信息。
图文生成
BLIP 和 BLIP2 里的,不预测 masked token 了,直接自回归预测句子的下一个 token。这种方式是 GPT 的训练方法,被拿过来做多模态,一是为了让模型从图像里学到跟文本相关的信息,二是这样的多模态模型不光能理解和编码图像文本信息,还能直接根据图文生信息成文本,直接做了类似于图文问答的任务。

最低0.47元/天 解锁文章
450

被折叠的 条评论
为什么被折叠?



