自去年底ChatGPT发布后,大模型技术呈井喷式发展态势,学术界和工业界几乎每天都在刷新各个方向的SOTA榜单。随着大模型技术的发展,人们逐渐意识到多模态将是大模型发展的必经之路。其中,图文多模态大模型是一种结合了图像和文本两种模态信息的深度学习模型,本文将重点回顾这一领域的关键进展。
纵观多模态大模型的技术演进,也完全遵循了预训练-微调的整体方案。根据预训练模型中图文模态的交互方式,主要分为以下两种:
双塔结构:代表架构是 CLIP。双塔即一个视觉 Encoder 建模图片信息,一个文本 Encoder 建模文本信息,图像和文本的特征向量可以预先计算和存储,模态交互是通过图像和文本特征向量的余弦相似度来处理。这类模型的优点是处理多模态检索任务,但无法处理复杂的分类任务;
单塔结构:代表架构是ViLT。单塔即一个视觉-文本 Encoder 同时建模图片信息和文本信息,使用 Transformer 模型对图像和文本特征进行交互。这类模型的优点是可以充分地将多模态的信息融合,更擅长做多模态分类任务,检索任务较慢。
CLIP
CLIP由 OpenAI 构建,作为多模态领域的经典之作,被广泛应用于当今多模态模型的基础模型。CLIP通过自监督的方式,使用 4亿对(图像,文本)数据进行训练,它将图像和文本映射到一个共享的向量空间中,从而使得模型能够理解图像和文本之间的语义关系,这是一种从自然语言监督中学习视觉模型的新方法。
CLIP模型主要由两部分组成:Text Encoder 和 Image Encoder。这两部分可以分别理解成文本和图像的特征编码器。CLIP的预训练过程如下所示:
图1 CLIP的预训练过程给定一个Batch的N个(图片,文本)对,图片输入给Image Encoder得到表征 , , ..., ,文本输入给 Text Encoder 得到表征 , , ..., ,(, ) 属于是正样本, (, ) 属于负样本。最大化 N 个正样本的 Cosine 相似度,最小化 N2 -N 个负样本的 Cosine 相似度。
CLIP是从头训练它的 Text Encoder(GPT-2) 和 Image Encoder (ViT),同时使用线性投影 (权重为, ) 将每个编码器的表征映射到多模态的嵌入空间。
ViLT
ViLT 受到 ViT 中 patch projection 技术的启发,希望最小化每个模态的特征提取,因此使用预训练的ViT来初始化交互的 Transformer,这样直接利用交互层来处理视觉特征,无需额外新增视觉 Encoder,把主要的计算量都集中在了 Transformer 的特征融合部分。
下图是ViLT的模型架构:
图1 ViLT模型架构文本输入通过Word Embedding 矩阵 Embedding化,然后和 Position Embedding 相加,最后和 Modal-type Embedding Concate;
图像输入通过分块操作分成 C x