复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音

AnyGPT: Unified Multimodal LLM with Discrete Sequence Modeling

现实世界是多模态的,生物体间通过视觉、语言、声音和触觉等多种方式感知和交换信息。近日,复旦大学与上海人工智能实验室联合推出了AnyGPT,一个多模态大模型的通用框架,实现任意模态输入输出。AnyGPT在处理多模态输入和输出方面取得了显著进展,为未来语言模型发展指明了方向。

项目主页:https://junzhan2000.github.io/AnyGPT.github.io/

论文地址:https://arxiv.org/pdf/2402.12226.pdf

Github地址:https://github.com/OpenMOSS/AnyGPT

 

摘要

AnyGPT是一种任意多模态语言模型,可以处理语音、文本、图像和音乐等多种模态。它可以通过数据预处理实现无缝集成新的模态,而无需修改现有的大型语言模型架构或训练范式。通过生成模型,我们构建了一个多模态文本中心数据集,用于多模态对齐预训练。实验结果表明,AnyGPT能够处理任意多模态对话,并在所有模态上实现与专门模型相当的性能。

简介

AnyGPT是一个任意到任意的多模态语言模型,通过离散表示实现统一处理。它使用多模态Tokenizer将原始的多模态数据(如图像和音频)压缩成一系列离散的语义Token。这些离散表示使得核心语言模型能够以自回归的方式在语义层面上统一处理感知、理解、推理和生成等任务。离散表示还允许在感知层面上将离散表示转换回原始的模态表示。通过离散表示,我们可以稳定地训练模型,而无需对现有的语言模型架构或训练范式进行任何修改。我们的方法仅依赖于数据级的预处理,从而实现了新模态的无缝集成,类似于添加新语言,并允许直接应用现有的语言模型工具,从而提高了训练和推理阶段的效率。

为了缓解包含所有模态的多模态对齐数据的稀缺性,我们构建了一个以文本为中心的多模态对齐数据集进行预训练。我们的目标是使用文本作为桥梁,通过将其他模态与文本对齐,实现所有模态之间的相互对齐,因为自然语言是最精细的语义表示模态,并且存在于大多数多模态对齐数据集中。为了赋予模型理解和生成与多个模态交织的内容的能力,我们使用先进的生成模型合成了一个多模态指令数据集AnyInstruct-108k。该数据集包含108k个多轮对话样本,使得AnyGPT能够处理任意组合的多模态输入和输出。

实验结果表明,AnyGPT在各种模态上实现了与专门模型相媲美的零样本性能。此外,广泛的案例研究证实了AnyGPT在促进任意到任意的多模态对话方面的显著能力,从而证实了使用离散表示统一多个模态的可行性。

我们的贡献包括:

  • 我们提出了AnyGPT,一个基于Token的任意到任意的多模态语言模型,可以理解和生成包括语音、文本、图像和音乐在内的各种模态。

  • 一个关键挑战是缺乏多模态交织指令跟随数据。我们使用生成模型构建了一个流水线,构建了包含108k个多轮对话和交织多模态元素的数据集AnyInstruct-108k。

  • 我们证明了离散表示可以有效地统一语言模型中的多个模态。

相关工作

多模态大模型

为了让LLM具备跨模态感知能力,常见的方法是将其他模态的预训练编码器作为适配器连接起来,但这些模型通常只能生成文本。为了赋予LLM多模态生成能力,研究者们采用了不同的方法,如冻结文本到图像扩散模型、连续嵌入图像表示、图像离散化编码器等。NExT-GPT利用现有的高性能编码器和解码器,通过少量的投影层参数连接起来,实现了跨模态生成,但没有对LLM进行训练,可能导致性能不佳,且输入和输出的多模态表示缺乏统一形式,存在统一训练和推理的挑战。

多模态离散化

为了创建统一的多模态语言模型,常用的方法是离散化,其中VQ-VAE是一种典型的方法。一些研究还采用残差量化机制来进一步提高保真度。除了基于VQ-VAE的Tokenizer外,还有一些Tokenizer专注于提取高级语义表示。Ge等人的方法将图像离散化为语义级别,SpeechTokenizer则采用RVQ-VAE结构,实现语义和声学信息的分离。

AnyGPT

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

Tokenization

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

图像Tokenizer。使用SEED tokenizer进行图像Tokenization。

语音Tokenizer。使用SpeechTokenizer,采用残差矢量量化(RVQ)的编码器-解码器架构。在AnyGPT中,使用大语言模型(LLM)对语义Token进行建模,而语音克隆模型补充了剩余的副语言信息。

音乐Tokenizer。虽然语音和音乐共享相似的数据格式,但它们的实质性内容差异导致我们将它们视为不同的模式,每种模式都配备了自己的Tokenizer。对于音乐,我们使用Encodec作为音乐Tokenizer。

语言模型Backbone

扩大词汇表。为了将多模态离散表示合并到预训练的LLM中,我们使用新的特定于模态的Token扩展词汇表,从而扩展相应的嵌入和预测层,新合并的参数随机初始化。来自所有模态的Token组合起来形成一个新的词汇表,其中每个模态在语言模型中进行训练,以便在共享的表示空间中对齐。

统一多模态语言模型。配备特定于模态的Tokenizer,我们可以将多模态数据压缩成离散的Token序列,这些序列可以通过语言模型使用下一个Token预测损失进行训练。这自然使核心LLM能够以自回归的方式统一感知、理解、推理和生成等任务。

我们使用LLaMA-2 7B作为Backbone,除了重塑嵌入矩阵和预测层外,语言模型的其余部分保持不变。

多模态生成

分为的两个阶段,包括语义信息建模和感知信息建模。语言模型生成经过语义级别的融合和对齐的内容,然后非自回归模型将多模态语义Token转换为高保真的多模态内容。对于视觉语言建模,使用SEED Token和扩散模型生成高质量图像。对于语音,使用SoundStorm模型生成语音Token,然后SpeechTokenizer解码器将所有语音Token转换为原始音频数据。对于音乐,使用Encodec Token过滤高频细节,然后使用Encodec解码器将这些Token重构为高保真音频数据。这种方法可以在保证性能和效率的同时,使AnyGPT能够复制任何说话者的声音。

多模态数据

预训练数据

我们构建了一个以文本为中心的双模态对齐数据集。在这里,文本被用作一个重要的中介,以弥合各种形式之间的差距。通过将不同的模态与语言模型中的文本模态对齐,我们的目标是实现所有模态之间的相互对齐。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

图像和文本。我们使用了来自LAION-2B、LAION-Aesthetics和JouneyDB 的图像-文本对。我们通过过滤文本质量、图像长宽比和剪辑分数等因素对这些数据集进行了细化,得到了一个300万对的高质量语料库。为了提高整体图像生成的保真度,我们使用高质量的LAION-Aesthetics子集和Midjourney的合成数据集JourneyDB来补充我们的数据。

语音和文本。我们使用了包括gigasspeech、Common Voice和Multilingual librisspeech。这些数据集分别来自在线平台、志愿者众包和有声读物,共同构成了一个57,000小时的语音文本对语料库,涵盖了各种各样的演讲者、领域和录音环境。

音乐和文本。我们从互联网上抓取了超过一百万的音乐视频。使用Spotify API将这些视频的标题与相应的歌曲进行匹配。随后,我们为每个音乐音频收集了一组全面的元数据,包括视频标题、描述、关键词、播放列表名称和Spotify歌词。

训练样本构建。为了训练语言模型(LM),我们使用各种模板来构建多模态句子,然后LM对其进行自回归处理。此外,我们观察到句子长度在不同模态和数据集上的显著差异。为了提高训练效率,同一数据集的样本被连接成一个长序列,并遵循模型的最大序列长度。

多模态交错指令数据构造

有效的人机交互应该允许以各种交错的方式交换信息。然而,对话中越来越多的模式大大复杂化了数据收集过程。据我们所知,目前还没有涉及两种以上模态的大规模指令数据集。这对发展一个能够管理多种相互交织的方式的对话的综合模式造成了重大限制。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

为了克服这一限制,我们从最新的数据合成研究中汲取灵感,并使用生成模型构建由108k个多回合会话样本组成的数据集。通过精心策划,每个合成对话以交错的方式集成了多种模式——文本、语音、图像和音乐。我们的数据合成过程分两个阶段进行。

生成包含多模态元素的基于文本的对话。我们使用GPT-4来生成一系列基于文本的对话。为了确保大规模的高质量数据,我们将此阶段分为三个步骤。(1)我们头脑风暴100个元主题,以涵盖与视听元素相关的广泛场景,并使用GPT-4将这些元主题扩展到20,000个特定主题。(2)我们提示LLM根据这些主题生成具体的对话场景。(3)利用GPT-4生成基于场景的多回合对话。在这些综合对话中,包括图像和音乐在内的多模态元素通过详细的文本表示来描述。

文本到多模态转换。我们使用先进的生成模型将文本描述转换为多模态元素。我们使用OpenAI的DALL-E-3进行图像生成,MusicGen进行音乐作曲,Microsoft Azure的文本到语音API从用户指令和模型的文本响应中进行语音合成。

经过过滤,我们得到了108k高质量的多模态对话数据集,具有多种多模态组合。该数据集包括大约205k图像,503k录音和113k音乐曲目。此外,我们通过从现有的适合口语叙述的纯文本指令数据集中提取对话来增强我们的数据集。通过使用文本到语音模型,产生了10万个语音对话。

实验

评估

在零样本模式下,AnyGPT表现出了出色的性能,展示了其在不同模态下的通用能力。这个评估挑战了模型在未知测试分布下的泛化能力。

图像

在图像描述任务中,使用MS-COCO 2014数据集和Karpathy分割测试集进行评估。在文本到图像生成任务中,使用MS-COCO验证集中的30k张图像和CLIP分数作为评估标准。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

语音

ASR任务中,我们使用LibriSpeech数据集的test-clean子集来计算AnyGPT的词错误率(WER)。我们将Wav2vec 2.0和Whisper Large V2作为基准。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

TTS任务中,我们在VCTK数据集上进行了零样本的文本到语音评估。结果见表5。我们使用说话人相似度和词错误率(WER)来评估TTS系统,其中WER主要关注语音质量。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

音乐

使用CLAP分数作为客观指标来评估AnyGPT在音乐理解和生成任务上的表现。在音乐字幕评估中,现有的客观指标可能存在局限性,因为音乐的多样性和主观性导致不同人对音乐的看法不同。为了确保客观评估,我们计算了<音乐,真实字幕>对和<音乐,生成字幕>对的CLAP分数进行比较。这些分数在整个测试集上进行平均。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

例子

经过在AnyInstruct-108k数据集上的微调后,AnyGPT展示了在任意多模态对话中的潜力和能力。它可以理解和推理各种模态的内容,并选择适当的多模态组合进行回复。它的语义-声学层次建模框架使其能够生成与3秒语音提示的音色和情感相匹配的语音响应。建议访问演示页面以获取更多示例和体验语音和音乐内容。

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

《复旦发表AnyGPT,多模态大模型的通用框架,实现任意模态输入输出,支持图像、音乐、文本、语音》- 投稿作者:灵度智能 - 发布于:GetAI社区

更多例子请前往项目主页查看。

总结

AnyGPT利用离散表示统一处理语音、文本、图像和音乐等多种模态。离散多模态表示有助于无缝集成新的模态,而不需要改变现有的LLM架构或训练范式。为了使模型能够处理任意组合的多模态输入和输出,作者合成了第一个大规模的任意多模态指令数据集AnyInstruct-108k。实验结果表明,AnyGPT在各种跨模态任务中取得了有希望的结果,并证明了离散表示可以有效方便地统一多个模态在一个大型语言模型中。

1

评论0

请先
显示验证码