基于原始的GPT结构和多模态离散化表示,AnyGPT统一了文本、语音、图像、音乐四种模态,并实现任意模态组合的相互转换。
大语言模型(LLM)通过Decoder Only Transformer的架构和Next Token Prediction任务,在海量文本数据上进行训练,不仅学会了各种NLP任务,并涌现出In Context Learning、Chain-of-Thought等新能力。然而,有人预测互联网上的高质量文本数据将在未来几年内用尽,而现有的LLM仍未达到我们对通用人工智能(AGI)的展望。互联网不仅包含文本,还涵盖了图像、音视频等多种模态的数据,赋予大语言模型以多模态能力成为研究的热点方向。
AnyGPT提出了一种生成式训练方案,将所有模态的数据转换为统一的离散化表示,采用Next Token Prediction任务在LLM上统一训练。从压缩即智能的角度出发:当Tokenizer的质量足够高,LLM的困惑度(PPL)足够低,就有可能将互联网的海量多模态数据压缩在同一个模型中,并涌现出纯文本LLM没有的能力。基于原始的GPT结构和多模态离散化表示,AnyGPT统一了文本、语音、图像、音乐四种模态,并实现任意模态组合的相互转换。
我们工作的主要贡献如下:
我们的兴趣在于使用大型语言模型(LLMs)实现任何模态到任何模态的生成。为了实现这一点,我们提出了一个统一框架。如图1所示,该框架由三个组成部分构成:(1)多模态分词器,(2)作为核心的多模态大语言模型,以及(3)多模态生成器。分词器将连续的非文本模态转换为离散的token,随后将这些token组合成多模态交错序列。然后语言模型使用Next Token Prediction Loss在这些序列上进行训练。在推理过程中,多模态token通过对应的生成器解码回原始的表示形式。为了提高生成的质量,可以使用多模态增强模块来对生成的结果进行后处理,如声音克隆或图像超分辨率等。在接下来的部分,我们将介绍每个模块的详细信息。
图像分词器 我们使用 SEED
语音分词器 我们使用 SpeechTokenizer
举例来说,10秒的音频将被转换为一个500×8的矩阵,其中包含500×1的语义token和500×8声学token。在AnyGPT中,大型语言模型(LLM)被用来建模语义token,而一个声音克隆模型补充了剩余的副语言学信息。因此,LLM中的语音词汇表大小等同于一个码本的大小,即1024。
音乐分词器 我们使用 Encodec
为了将多模态离散表示纳入预训练的大型语言模型(LLMs),我们扩展了词汇表,加入每个模态的token,并扩展了相应的嵌入和预测层,新加入的参数随机初始化。所有模态的token组合形成一个新的词汇表,大小是所有模态的token数之和。
有了特定模态的分词器,我们可以将多模态数据压缩成离散的token序列,语言模型在这个序列上使用Next Token
Prediction任务进行训练,使得核心的LLM能自然地以自回归的方式统一多模态感知、理解、推理和生成等任务。
我们使用LLaMA-2 7B
使用语言模型生成高质量的多模态数据是一项具有挑战性的任务,因为它需要大量的存储来准确表示图像和音频,导致序列长度增加,增加了语言模型的计算复杂度。为了解决这一问题,我们采用了两阶段框架进行高质量生成,包括语义信息建模和感知信息建模。在语义层面,自回归语言模型生成经过融合和对齐的多模态token序列,然后非自回归模型将多模态语义token转换为高保真的多模态内容,实现了性能和效率之间的平衡。
具体地,我们使用SEED标记进行视觉语言建模,通过扩散模型将其解码为高质量图像。对于语音,我们利用SoundStorm模型生成声学token,并将其解码为原始音频数据。对于音乐,我们使用Encodec标记过滤高频细节,并通过Encodec解码器将其重构为高保真音频数据。这一框架使得AnyGPT能够在保证生成效果的同时显著减少了语音序列长度,实现对多模态数据的高质量生成。
实现多种模态的对齐需要有这些模态对齐的训练数据,而这类数据十分稀缺。 对此,我们构建了一个以文本为中心的双模态对齐数据构成的多模态对齐数据集,其中文本作为对齐各个模态的的中介,通过将不同模态与文本模态进行对齐,打通任意模态间的对齐。 表1展示了预训练使用的所有数据集及其采样率,图2展示了具体的token比例。对于数据量较小的模态,训练时通过一定的过采样以保证训练时一个batch数据中各个类型数据均衡。
自然的人机交互应当允许用户和对话机器人任意使用多种模态来交换信息。然而模态数量的增加也使得数据收集更加复杂,当前仍缺乏一个包含两个模态以上的大规模指令数据集。这对开发能够理解生成各种模态交织对话模型产生了极大的限制
为解决这一局限,我们设计了一个利用生成模型构造集成了多个模态的对话数据的方法,并得到一个包含108k个多轮对话的数据集AnyInstruct-108k。如图3所示,具体的数据合成流程分为两个阶段,第一个阶段合成以文本形式描述多模态元素的对话,第二个阶段使用文生图、文生语音、文生音乐模型将其中文本描述的多模态元素转换至对应的模态。 其中,为了保证样本的多样性,第一个阶段拆分为三个具体步骤:
在第二阶段,我们使用最新的多模态生成模型将对话中的文本描述转换为多模态内容。我们使用OpenAI的DALL-E 3
经过筛选,我们最终获得了一个包含108k各种模态交错对话的数据集,该数据集包括约205k张图片、503k条语音和113k条音乐。此外,我们通过从现有的文本指令数据集中提取适合朗读的内容,通过使用语音合成获得了100k个语音对话,以增强数据集。
我们使用多种模板将多模态数据构建成多模态序列。每种非文本模态内容的都通过放置在开头和结尾的特殊标记来识别。通常配对的数据包括一种非文本模态(X)- 例如图像,语音或音乐及其对应的文本。我们提示OpenAI GPT-4生成数百个双向生成指令,分别是X到文本或文本到X,例如"Please generate an image based on the provided text.",给定一个标记序列(S)和相关文本(T),我们从我们预先建立的池中随机挑选一个生成方向以及一个指令(I),形成一个三元组(I,S,T)。然后,根据生成方向,使用模板将这个三元组合并到一个序列中
[Human]: {I}.{S}<eoh>。[AnyGPT]: {T}<eos>。
或其变体 [Human]: {I}.This is input:{T}<eoh>。[AnyGPT]: {S}<eos>.
对于像图文交错的网页这样的多模态交错数据,因为它们自然形成句子,我们直接用相应的非文本内容替换。 由于大多数图像和音乐数据来源于网络,存在一定的噪声,这可能影响多模态生成的质量。因此,在第一阶段预训练之后,我们选择性地使用高质量数据集——JourneyDB和LAION-Aesthetics进行文本到图像生成,以及LAION-COCO进行图像到文本生成。对于音乐数据,我们整合了AnyInstruct-108k数据集中的音乐-描述对。剩余的数据保持不变,我们继续对模型进行额外的4000步预训练。表2报告了AnyGPT的详细训练设置和超参数。
为了测试预训练过程中不同模态之间的对齐情况,我们在多模态理解和生成任务上评估预训练得到的AnyGPT基座模型的基本能力。具体来说,我们测试了每种模态的“文本到X”和“X到文本”任务,其中X分别是图像、音乐和语音。 为了模拟真实世界的场景,所有评估都在零样本的设置下进行,即AnyGPT在下游训练样本上未经过微调或预训练。这种要求模型能够泛化到未知的测试分布,从而展示了AnyGPT在不同模式下的通用能力。评估结果表明,AnyGPT在各种多模态理解和生成任务中取得了优良的表现,具体实验结果如下。
图像理解 我们通过图像标注(image captioning)任务来评估模型图像理解能力,结果如表3所示。我们使用MS-COCO
2014
图像生成 如表4所示,我们使用文生图任务评估图像生成。与先前工作一致
语音识别 我们在LibriSpeech
零样本语音合成 我们在VCTK数据集上进行零样本语音合成(Zero-shot Text-to-Speech, TTS)来评测语音生成能力(表6),计算说话人相似度(Speaker similarity)
音乐理解和生成 我们在MusicCaps
对于音乐字幕的评估,我们发现现有的客观评价指标可能在表达音乐字幕任务的表现时有限制。音乐的多样性和主观性导致个人之间的观点不同。只有特定的音乐类型和乐器具有可以容易识别的独特特征。为了确保客观评估,我们计算了<music, real caption>对和<music, generated caption>对的CLAP Score进行比较。
在AnyInstruct-108k微调后,AnyGPT展示出了任意模态间对话的能力。AnyGPT能够理解文字、语音、图像、音乐构成的指令,并选择合适的模态组合进行回复。更多样例请参照我们的项目主页。
在这项工作中,我们介绍了AnyGPT,一个Any-to-Any多模态语言模型,它利用离散表示来统一处理各种模态,包括语音、文本、图像和音乐。离散的多模态表示促进了新模态的无缝集成——类似于加入一种外语——而不需要更改现有的LLM架构或训练范式。为了使模型能够处理任意组合的多模态输入和输出,我们合成了第一个大规模的Any-to-Any多模态指令数据集AnyInstruct-108k,包含了精细交织各种模态的多轮对话。实验结果表明,AnyGPT在各种跨模态任务中取得了有希望的结果,并展示了令人印象深刻的Any-to-Any多模态对话能力,证明了离散表示可以有效且便捷地在统一的大型语言模型内统一多个模态。
Any-to-Any多模态LLM评估基准 Any-to-Any多模态LLM评估基准正在成为研究热点。然而,缺少专门的基准评估这类模型的多维能力,我们迫切需要开发全面的评估基准。
更强的LLM 尽管使用离散化表示的多模态大模型训练比较稳定,但相较单模态,仍会有更高的训练损失,从而影响性能。改善策略可能包括使用更大的LLM和分词器,或采用混合专家(MOE)架构。
改进分词器 在多模态LLMs中,分词器质量直接影响模型的理解与生成能力。可以从多个方面改进分词器,包括优化码本训练、更统一的多模态表征等。
扩展上下文 多模态内容如图像和音频常涉及长序列,导致更大的训练难度和更高的数据要求。对于多模态对话,更长的上下文能增加对话轮数,提升交互深度和复杂度。
Many thanks to Dong Zhang, JiaSheng Ye, RuiBin Yuan and the other co-authors for their help; this project is a result of our collaborative effort.
Sincere thanks to Junqi Dai and Dr. Yunhua Zhou for their guidance and support, meeting you was a fortunate turn in my journey.
I am particularly grateful to Dr. Tianxiang Sun for his guidance throughout the entire process of this project. My heartfelt thanks go to my advisor, Prof. Xipeng Qiu, for his unwavering trust and support.
Special thanks to the Shanghai AI Lab for providing extensive training resources, and to Dr. Hang Yan and Shuo Zhang for their support on resources.