大型语言模型(LLM)已经展示出了显著的语言能力。基于先进LLM的GPT-4,展现出了超越以往视觉语言模型的非凡多模态能力。我们认为这是由于与以前的多模态模型相比,使用了更先进的LLM。不幸的是,GPT-4的模型架构和训练策略尚不为人知。为了赋予LLM多模态能力,我们提出了X-LLM,它使用X2L接口将多模态内容(图片、语音、视频)转换成外语,并输入到一个大型语言模型(ChatGLM)中。
具体来说,X-LLM使用X2L接口将多个冻结的单模态编码器和一个冻结的LLM对齐,其中
X-LLM的训练包括三个阶段:
我们的实验表明,X-LLM展现了令人印象深刻的多模态聊天能力,有时候表现出在未见过的图像/指令上的多模态GPT-4的行为,并且在一个合成的多模态指令跟随数据集上与GPT-4相比取得了84.5%的相对分数。
同时,我们还对使用LLM进行ASR和多模态ASR进行了定量测试,希望推动基于LLM的语音识别时代的到来。
参考链接:
https://x-llm.github.io/ https://arxiv.org/pdf/2305.04160.pdf
近年来,多模态语言模型得到了快速发展。这些模型在多模态理解和响应生成方面具有出色的能力,并且在图像标注、视觉问题回答、视觉对话、视频标注以及口语对话等任务上表现良好。
值得注意的是,最近发布的大规模多模态模型GPT-4,展示了许多令人印象深刻的能力。例如,GPT-4可以遵循各种指令来完成语言任务,并且还能回答关于图像的各种问题。举例来说,GPT-4能给出图像的详细准确描述,理解并解释视觉内容中的幽默,并且甚至能基于手写代码图像提供正确的网站建设代码。尽管GPT-4展示了非凡的能力,不幸的是,我们不知道其模型结构和训练方法的细节。我们相信这是因为GPT-4相比之前的多模态模型使用了更先进更大规模的语言模型。有了强大的语言能力支撑,GPT-4可以以语言的形式表达理解到的视觉内容。
为了验证这一假设并让大型语言模型(LLM)具备多模态能力,我们提出了X-LLM。它通过X2L接口将图像、语音和视频等多模态信息转换为外语,然后将转换后的多模态信息输入到一个大型语言模型(ChatGLM)。
具体来说,X-LLM使用X2L接口对齐多个冻结的单模态编码器和一个冻结的LLM。X2L接口包括
其中“X”表示多模态,“L”表示语言。
图像接口和视频接口的结构相同,我们采用了BLIP-2中的Q-Former将视觉信息转换为外语表征。为了效率,视频接口复用了图像接口在图文数据上的参数,但进一步利用视频-文本数据训练,以使编码后的视频特征与LLM对齐。
语音接口利用continuous integrate-and-fire (CIF)机制和transformer结构将语音话语转换为外语表征。
X-LLM的训练包括三个阶段。
在前两个阶段,我们使用图像字幕数据、视频字幕数据和自动语音识别(ASR)数据训练X2L接口。为了更好地使LLM具备多模态能力,我们基于开源数据集构建了一个多模态指令数据集(约10K),以进一步改进所提出的模型。尽管没有经过第三阶段的训练,X-LLM已经有能力完成视觉口语问答等多模态任务,我们发现,仅使用少量额外的多模态指令数据,LLM可以进一步统一多模态的能力。
在我们的实验中,我们发现X-LLM具有类似于GPT-4的能力。例如,
这些能力以前并不存在于早期的多模态模型中,但现在通过X-LLM强大的语言建模能力成为可能。
X-LLM旨在将多个预训练的单模态编码器与高级的大规模语言模型(LLMs)对齐,如下图所示。
具体来说,
我们设计了一个模块,将多模态信息与LLM对齐,统称为X2L接口,包括
X2L接口旨在将多模态信息转换成外语,其中包括图像接口、视频接口和语音接口。
图像接口由Q-Formers和一个I-Adapter模块组成。
视频接口的结构与图像接口相同,同样由Q-Formers和一个V-Adapter模块组成。我们使用均匀采样,并用T帧来表示每个视频。然后我们将每一帧视为一幅图像。
视频接口将每一帧的特征转换成一个包含Li拟语言嵌入的序列,然后视频接口将所有序列连接起来,获得最终的拟语言嵌入,其长度为T × Li。
为了将语音编码器的语音特征转换为更具语义的表征,我们引入了一个称为语音接口的语音到语言转换接口。
语音接口由两部分组成,即
C-Former是CIF模块和一个12层transformer结构的组合。首先,CIF模块通过可变长度的下采样将语音编码器的语音特征序列压缩成与相应转录文字序列等长的令牌级语音嵌入序列。假设语音编码器为输入语音发射的特征序列长度为U,而语音发声的转录文字序列的令牌长度为Ls,那么令牌级语音嵌入序列的长度应为Ls(U通常是Ls的几倍)。接着,transformer结构为CIF模块提供的令牌级语音嵌入提供上下文建模。最后,S-Adaptor用于将transformer结构的输出投影到LLM的输入向量空间中,进一步缩小语音和语言之间的语义差距。
为了高效地实现X-LLM,我们提出了一个三阶段训练策略。
在第一阶段,传统的方法是使用大量的图像-文本数据将图像编码器与图像Q-Former对齐,类似于BLIP2的第一阶段,它使用了大约5亿对图像-文本配对。然而,我们发现,尽管BLIP2使用的是英文数据,我们仍然可以利用BLIP2中Q-Former的预训练参数来实现一个中文多模态LLM。
因此,在第一阶段,为了高效地实现X-LLM,我们只需要通过语音接口将语音编码器的表示转换为准语言表示。对于与语音相关的结构,我们使用包含多个ASR数据集的CIF基础ASR模型进行训练,以获得C-Former中的语音编码器和CIF模块。基于CIF的ASR模型包括一个语音编码器、一个CIF模块和一个解码器。我们使用这个ASR模型的语音编码器作为语音编码器,并使用这个ASR模型的CIF模块作为在语音接口的C-Former中的CIF模块。
请注意,在所有后续训练阶段,语音编码器和CIF模块的参数都保持冻结。
如上所述,尽管存在语言差异,我们仍然可以复用BLIP2中Q-Former的参数。具体来说,我们使用BLIP2第二阶段训练好的Q-Former来初始化X-LLM中图像接口的Q-Former。为了将Q-Former适配到中文LLM,我们使用了一个组合数据集,总共大约有1400万对中文图像-文本配对进行训练。
接下来,我们使用训练好的图像接口来初始化视频接口(Q-Former和V-Adapter),并在翻译后的视频-文本数据上训练视频接口。
最后,我们使用ASR数据训练语音接口,以便将语音接口的输出与LLM对齐。
需要注意的是,在整个第二训练阶段期间,所有编码器和LLM都保持冻结,只有接口进行训练。
在前两个训练阶段之后,我们的X-LLM展现出了显著的能力,能够基于多模态信息合理地回答人类提出的查询,并且获得了大量的知识。我们观察到,即使没有针对多种模态的联合训练指令,比如“使用声音输入基于图像回答问题”,X-LLM也能够执行需要多种模态的任务,如视觉口语对话、多模态语音识别和多模态机器翻译。这一显著的能力可能是由于X-LLM集成了LLM卓越的指令泛化能力,这一能力已经扩展到了多模态领域。这种能力使我们能够在前两个阶段独立训练更多的模态,并将它们集成到模型中,而无需与现有模态进行联合训练。
为了探索多模态联合指令数据在进一步增强X-LLM执行多模态任务能力方面的潜力,比如视觉口语问题回答,我们构建了一个简洁但高质量的多模态指令数据集。
与MiniGPT-4和LLaVA的数据集不同,这些只包含图像-文本指令数据以及其他文本指令数据集,用于指令微调和对话,我们的数据集支持多模态联合指令,并包括
在这个阶段,我们使用构建的紧凑且高质量的数据来微调我们的模型。在微调过程中,我们使用以下模板中预定义的提示:
<Image><ImageFeats></Image><Video><VideoFeats></Video><Speech><SpeechFeats> </Speech>Question: <Instruction>\n Answer:
在这个提示中,<Instruction>代表我们预定义指令集中随机抽样的一个指令,包括不同的形式,比如
需要注意的是,我们不会为这个特定的instruction prompt设定特别的回归损失。
因此,X-LLM可以整合多种模态,并根据需要基于各种指令组合生成更自然、更可靠的回应。
参考链接:
https://github.com/phellonchen/X-LLM
本文展示了X-LLM的有效性,该模型通过X2L接口将多种模态作为外语注入到大型语言模型中,赋予LLM强大的多模态能力。
我们设计了一个三阶段训练方法来训练X-LLM,在前两个阶段中每个模态接口都具有很高的独立性,便于同时训练。通过前两个阶段的训练,X-LLM可以通过语言与每个模态进行交互。此外,得益于其对大型语言模型指令泛化能力的整合以及对多模态领域的适应,X-LLM可以在不进一步微调联合指令数据集的情况下完成涉及多模态的任务(例如视觉口语问答)。未经训练的多模态整合极大地促进了X-LLM的模态扩展。为了进一步探索联合多模态指令数据对X-LLM整合多模态能力的影响,我们构建了一个精简但高质量的多模态指令数据集,并且在该数据上微调后X-LLM的性能进一步提高。
这个项目仍在进行中,目前有几个局限性:
未来有几个可进一步探索的方向: