CLIP
基本思想:CLIP的基本算法原理是文本和图像在特征域进行对齐。
CLIP的基本算法原理如下,为了对image和text建立联系,首先分别对image和text进行特征提取,image特征提取的backbone可以是resnet系列模型也可以是VIT系列模型,text特征提取目前一般采用bert模型,特征提取之后,由于做了normalize,直接相乘来计算余弦距离,同一pair对的结果趋近于1,不同pair对的结果趋近于0
1.为了对image和text建立联系,首先分别对image和text进行特征提取,image特征提取的backbone可以是resnet系列模型也可以是VIT系列模型;text特征提取目前一般采用bert模型。
2.特征提取之后,由于做了normalize,直接相乘来计算余弦距离,同一对的结果趋近于1,不同对的结果趋近于0,因为就可以采用对比损失loss(这里要比较大的batch size才能有效果,类似于维护一个大的特征相似度矩阵)
3.图像分类时直接利用zero-shot 方式进行预测,将text假设为 a photo of [object], 分别对image 和 text进行特征提取以及余弦距离,当object为目标类别时,相似度最高,即为预测结果(分类效果好)
NExT-gpt
基本思想:通过将语言模型与多模态适配器和不同的解码器相连接,构建了一个端到端的通用任意多模态语言模型系统NExT-GPT。NExT-GPT利用现有的高性能编码器和解码器进行微调,既避免了从头开始训练的成本,又便于扩展到更多潜在的模态。此外,通过引入模态切换指令微调(MosIT)和手动策划高质量数据集,使NExT-GPT具备复杂的跨模态语义理解和内容生成能力。
1.Encoder+Input Projection:利用现有的开源编码器(ImageBind)对多模态输入进行编码,随后通过各自的Projection 模块将多模态Embedding对齐到Text Embedding。
2.LLM:利用开源 的LLM (Vicuna)作为来处理输入多模态Embedding,进行语义理解和推理。LLM 可以直接输出文本,同时其还将输出一种模态信号指令,来决定调用哪个模态的解码器进行解码输出。
3.对于特定模态的指令,调用对应模态的Projection模块以及相应的开源Diffusion解码器 (Stable Diffusion (SD) for image synthesis, Zeroscope for video synthesis, and AudioLDM for audio synthesis) 生成对应输出。
4.整个MM-LLM系统中,Encoder、LLM、Diffusion都是现成的开源预训练模型,只有输入端和输出端的Projection模块需要训练,只有1%的参数需要更新。(这样首先避免了难度较大的从头训练人工。其次,这种模块化的预训练模型拼接方式能够方便集成更多的模态)