这篇论文是meta在23年9月发表的,是第一个使用纯文本语言模型训练得到的多模态模型。相比于RA-CM3多出了一个微调的阶段。
作者提出了CM3Leon模型,这是一个检索增强的,基于token的,decoder-only的多模态模型,可以实现文生图以及图生文。下图是生成的图像示例。
CM3Leon模型使用的是纯文本模型,类似于OPT模型,但是对OPT进行了如下的细微改动。
预训练的过程整体和RA-CM3是一致的,但是大概有三点不同。
首先是这篇论文新加了<break>token,用来将文本token和图像token区分开。这点是必要的,因为输出的时候图像向量和文本向量混合在一起了,必须确定哪段是文本向量,哪段是图像向量,文本使用文本的detokenizer,图像使用图像的detokenizer,这是由二者使用不同的tokenizer所决定的。但是RA-CM3中没添加<break>token,可能是那篇论文倾向于只生成一个图像或者一个文本,所以不会出现两个模态向量混合在一起的情况。有了<break>token后模型输出的输入文本还是图像就明确了,首先第一个向量是明确的,假如是文本,那就用文本的detokenizer,如果遇到了<break>就可以切换为图像的detokenizer,之后的向量都是图像向量。
然后是RA-CM3的训练损失由两部分构成,当前样本的损失以及检索出来样本的损失,这里作者考虑到zero-shot场景下是不能添加检索样本的,为了不影响zero-shot性能,作者损失只计算了当前样本的损失。
最后是mask文本的时候,要注意不能把<break>token一起mask掉,这样就起不到分割不同模态数据的作用了。
微调的时候使用交错的文本图像数据,显著地提升了多模态模型在各种任务中的性能,包括图像标题生成,VQA,基于文本的图像编辑以及附加条件的图像生成。
这是在COCO数据集上文生图的zero-shot性能对比,由于是zero-shot,所以测试时不能检索增强,但是训练时还是可以使用检索增强的。可以看到CM3Leon-7B已经超过了StableDiffusion,这对于基于token的自回归模型是相当不容易的。