[阅读笔记23][JAM]JOINTLY TRAINING LARGE AUTOREGRESSIVE MULTIMODAL MODELS

这篇论文是24年1月发表的,然后是基于的RA-CM3和CM3Leon这两篇论文。它所提出的JAM结构系统地融合了现有的文本模型和图像生成模型。

主要有两点贡献,第一点是提出了融合两个模型的方法,第二点是为混合模型精心设计的指令微调策略。

下图是一个示例,再给出问题回答时可以生成若干张相关的图片,便于提问者对答案的理解。

图文自回归模型来自于CM3leon,已经在2.4T的token上预训练过了,上下文长度为4096。大语言模型使用相同的结构,在1.4T的token上以2048上下文长度预训练过了。然后又用30B的token以4096上下文长度训练。图像的tokenizer来自VQ-VAE,接收的输入图像分辨率为256*256,将一张图像表示为1024个token,然后词表大小是8192。

这篇论文整体工作主要分两阶段,第一阶段就是将两个自回归模型进行融合,第二阶段是图像和文本交错的指令微调。

融合时有三种方案可以选择,首先是比较简单粗暴的方法,由于两个模型结构上是相同的,所以可以对应参数直接取均值。之前的BTX在融合多个专家模型时也使用了类似的策略。这种方案叫做JAM-Uniform。

第二种方案是JAM-Width,也就是将两个模型从宽度上拼接起来。这样词向量维度就需要翻倍,原来是4096,现在是8192,然后enbedding的投影矩阵直接拼接起来。对于注意力层,它这里列举的可能是多头注意力中多个头拼接起来以后再投影时使用的投影矩阵,因为就那个矩阵是方阵。像其他的参数,比如前馈层等等也按照相同的策略拼接起来。最后模型参数变成了26B。

第三种方案是借助交叉注意力实现模型融合。使用共享的输入输出投影层,并且最后添加了一个线性层,将两个模型最终输出拼接起来输入进线性层,然后线性层的输出维度是单个模型输出的维度,实现了降维。

这篇论文的第二个贡献点就是图文交错的指令微调,与以往的仅使用图像文本对来微调不同,这种微调方式得到的模型可以实现输出交错的图像和文本,图像与文本强相关,可以增强文本的可理解性。

具体在微调的时候有两种设置,也就是微调时是否引入Shutterstock这一预训练使用的图像文本数据,根据后续消融实验,发现引入以后图像生成质量更高。

最后展示一下模型的结果,左上是CM3衍生出来的模型之间的性能对比,使用困惑度指标进行比较,可以看到Cross结构效果最好。右上是JAM-Cross结构中插入交叉注意力层的频率,可以看到频率太高也不好。左下是JAM-Width中注意力映射矩阵拼接后参数初始化问题,直接用原来的参数copy过来会更好一点。右下是指令微调阶段是否引入Shutterstock这一预训练使用的图像文本数据,根据实验结果,引入以后效果更好。

这是一个定性对比,与当前最相关的GILL模型进行对比,GILL也可以生成文本和图像的交错输出,但是生成的文本比较简略。

相关推荐
普宁彭于晏30 分钟前
元素水平垂直居中的方法
前端·css·笔记·css3
m0_637146931 小时前
计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程
笔记·tcp/ip·计算机网络
Lester_11011 小时前
嵌入式学习笔记 - freeRTOS vTaskPlaceOnEventList()函数解析
笔记·学习
moxiaoran57533 小时前
uni-app学习笔记二十三--交互反馈showToast用法
笔记·学习·uni-app
scdifsn10 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
jackson凌13 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.14 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
大写-凌祁15 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable22215 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
傍晚冰川16 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习