AnyGPT:多模态语言模型,任意处理语音、图像和音乐
人工智能咨询培训老师叶梓 转载标明出处
大模型的能力大多局限于文本处理,而现实世界环境本质上是多模态的,涉及视觉、语言、声音和触觉等多种感知渠道。为了使LLM能够更好地模拟人类的多模态感知能力,复旦大学的研究团队提出了AnyGPT,这是一个创新的多模态语言模型,它能够统一处理包括语音、文本、图像和音乐在内的各种模态。AnyGPT的核心优势在于它能够使用离散表示法来处理不同模态的数据,而无需对现有的大模型架构或训练范式进行任何改动。这一方法完全依赖于数据级别的预处理,使得新模态的整合变得像添加新语言一样简单,从而提高了训练和推理阶段的效率。
在图1提供了AnyGPT模型架构中,所有模态的数据—无论是图像、音乐、语音还是文本—都被分词成离散的标记(tokens)。这些离散的标记随后被送入大型语言模型(LLM),在那里进行自回归的多模态理解和生成处理。AnyGPT模型的创新之处在于,它不需要改变现有的模型架构或训练目标,仅需在数据的预处理和后处理阶段进行操作。预处理涉及将连续的非文本模态数据转换为LLM可以处理的离散标记序列,而后处理则是将这些标记序列解码回原始的数据模态。这种设计允许AnyGPT以统一且高效的方式处理和生成多种类型的数据,同时保持了模型的灵活性和扩展性。
AnyGPT
AnyGPT框架由三个主要部分组成:多模态分词器、多模态语言模型(作为骨干)和多模态去分词器。分词器负责将连续的非文本数据转换为离散的标记序列,这些序列随后被语言模型以自回归的方式进行训练。在推理阶段,去分词器将多模态标记解码回它们原始的表示形式。另外AnyGPT还可以使用多模态增强模块来提高生成结果的质量,例如通过声音克隆或图像超分辨率等技术。
分词器
图像分词器:AnyGPT使用SEED分词器进行图像处理。SEED分词器包括ViT编码器、Causal Q-Former、VQ码本、MLP和UNet解码器。它接收224×224 RGB图像作为输入,将图像编码为16×16的图像块,然后将这些图像块转换为32个因果嵌入。这些嵌入通过一个包含8192个条目的码本被离散化为量化代码序列。MLP用于将视觉代码解码为与预训练的unCLIP Stable Diffusion模型的潜在空间对齐的生成嵌入。UNet解码器最终将生成嵌入恢复为原始图像。
语音分词器:AnyGPT使用的语音分词器是SpeechTokenizer,它采用编码器-解码器架构和残差向量量化(RVQ)。SpeechTokenizer将单通道音频序列压缩成使用八个分层量化器的离散矩阵,每个量化器有1024个条目,实现50 Hz的帧率。第一层量化器捕获语义内容,而第2至8层编码超语言细节。10秒的音频被转换成500×8的矩阵,分为语义和声学标记。AnyGPT使用在Commonvoice和Librispeech数据集上预训练的SpeechTokenizer变体。
音乐分词器:尽管语音和音乐有相似的数据格式,但它们在内容上有显著差异,因此AnyGPT将它们视为不同的模态。音乐分词器使用Encodec,这是一个卷积自编码器,其潜在空间使用RVQ进行量化。使用的Encodec变体已经在20k个音乐曲目上进行了预训练,处理32 kHz单声道音频,实现50 Hz的帧率。生成的嵌入使用四个RVQ量化,每个量化器的码本大小为2048,最终得到8192的音乐词汇表大小。5秒的音乐被编码为250个潜在帧,生成一个250×4的代码矩阵。为了使语言模型能够预测整个音乐片段,4层音乐代码被展平为一个因果序列,逐帧进行预测。
语言模型的骨干
为了将多模态离散表示整合到预训练的LLM中,AnyGPT扩展了词汇表,加入了新的模态特定标记,并相应地扩展了嵌入层和预测层。新加入的参数是随机初始化的。所有模态的标记组合成一个新的词汇表,每种模态在语言模型中被训练以在共享的表示空间中对齐。扩展后的词汇表大小V是所有模态词汇表大小的总和。
多模态生成
生成高质量的多模态数据,如高清晰度图像和高保真音频,是一个挑战。这些数据需要大量的比特来准确表示,导致序列长度增加,对语言模型的计算复杂度要求较高。为了解决这个问题,AnyGPT采用了一个两阶段的高保真生成框架,包括语义信息建模和感知信息建模。首先,语言模型负责在语义层面生成经过融合和对齐的内容。然后,非自回归模型将多模态语义标记转换为感知层面的高保真多模态内容,实现了性能和效率之间的平衡。
具体来说AnyGPT使用与扩散潜在空间对齐的SEED标记进行视觉语言建模。语义层面的SEED标记由扩散模型解码成高质量的图像。对于语音,AnyGPT使用SoundStorm,这是一个非自回归掩蔽语言模型,训练用于从语义标记生成SpeechTokenizer的声学标记。SoundStorm的一个变体使用SpeechTokenizer在多语言LibriSpeech数据集上进行训练。随后,SpeechTokenizer的解码器将所有语音标记转换为原始音频数据。这种方法使AnyGPT能够使用3秒的语音提示复制任何说话者的声音,同时显著减少LLM的语音序列长度。对于音乐,AnyGPT使用Encodec标记来过滤超出人类感知范围的高频细节,然后使用Encodec解码器将这些标记重构为高保真音频数据。
数据
为了实现从任意模态到其他模态的生成,需要跨模态之间具有良好对齐的数据。然而,这样的数据非常稀缺。为了解决这一挑战,研究团队构建了一个以文本为中心的双模态对齐数据集。文本被用作关键中介,以桥接不同模态之间的差距。通过在语言模型中将不同模态与文本模态对齐,目标是实现所有模态之间的相互对齐。
不同模态的表示形式和信息类型差异很大。为了便于跨不同模态的数据量的标准化比较,研究者采用了基于标记计数的量化方法。图2展示了预训练中使用的所有数据及其相应比例。为了在单一批次中获得不同数据类型的平衡表示,对数据量相对较少的模态应用了一定程度的过采样。
图像和文本:研究者使用了来自LAION-2B、LAION-COCO、LAION-Aesthetics和JouneyDB的图像-文本对。LAION-2B提供了从网络获取的带有噪声的替代文本的图像,而LAION-COCO是此数据集的一个600M子集,由BLIP进行字幕注释。通过过滤文本质量、图像纵横比和clip分数等,产生了一个高质量的3亿对语料库。为了提高整体图像生成保真度,研究者补充了高质量的LAION-Aesthetics子集和来自Midjourney的合成数据集JourneyDB。
语音和文本:研究者收集了几个大型英语自动语音识别(ASR)数据集,包括Gigaspeech、Common Voice和多语言LibriSpeech(MLS)。这些数据集分别来自在线平台、志愿者众包和有声读物,共同构成了一个包含57,000小时语音-文本对的语料库,涵盖了各种说话者、领域和录音环境。
音乐和文本:研究者通过从互联网上爬取超过一百万个音乐视频进行了广泛的数据收集。核心步骤是使用Spotify API将这些视频的标题与相应的歌曲匹配。随后,研究者收集了每个音乐音频的全面元数据,包括视频标题、描述、关键词、播放列表名称和Spotify歌词。这些元数据被格式化为JSON并输入到GPT-4进行处理。GPT-4作为一个智能字幕生成器,利用嘈杂的元数据提取有意义的信息,并将其简洁地总结成连贯的句子。这种方法允许研究者为大量音乐音频生成高质量的文本字幕,有效减少了数据集中的幻觉发生。
有效的人机交互应该允许以多种交错模态交换信息。然而,对话中模态数量的增加显著复杂化了数据收集过程。据研究者所知,目前没有一个大规模的指令数据集涉及超过两种模态。这限制了开发一个能够管理具有多个交织模态的对话的综合模型的能力。
为了克服这个限制,研究者从最新的数据合成研究中获得灵感,并构建了一个包含108k多轮对话样本的数据集,这些样本使用生成模型进行合成。通过仔细策划,每个合成对话以交错的方式整合了多种模态——文本、语音、图像和音乐。具体来说,数据合成过程分为两个阶段,如图3所示。
文本基础对话生成:在这个阶段,研究者使用GPT-4生成了一系列文本基础对话。值得注意的是,这些对话中以文本描述的形式包含了非文本模态。为了确保大规模的高质量数据,研究者将这个阶段分为三个步骤。(1) 首先,研究者头脑风暴出100个元话题,涵盖与视听元素相关的广泛场景,并使用GPT-4将这些元话题扩展成20,000个特定话题。(2) 随后,研究者提示LLM基于这些话题生成特定的对话场景。认识到基于文本的LLM在生成多模态元素时的内在限制,研究者准备了几种演示,涵盖尽可能多的模态组合。在生成场景时,从这个演示池中抽取一个子集,作为LLM的示例。这种方法指导模型有效地合成多样化且在上下文中适当的对话场景。(3) 最后,研究者使用GPT-4从场景生成多轮对话。在这些合成的对话中,包括图像和音乐在内的多模态元素通过详细的文本表示来描述。研究者策划了多样化的对话示例,类似于场景生成,以提示模型创建具有尽可能多模态的对话。因此,研究者编译了一个仅以文本格式的大量多模态对话语料库。
文本到多模态转换:在这个阶段,研究者使用先进的生成模型将文本描述转换为多模态元素。研究者使用OpenAI的DALL-E-3进行图像生成,使用MusicGen进行音乐创作,使用Microsoft Azure的文本到语音API进行用户指令和模型文本响应的语音合成。筛选后,研究者获得了一个包含108k高质量多模态对话的数据集,展示了各种多模态组合。该数据集包括大约205k图像、503k语音录音和113k音乐曲目。另外研究者通过从现有的文本指令数据集中提取适合口语叙述的对话,增强了数据集。这通过使用文本到语音模型产生了100k语音对话。两阶段方法有效地收集了大规模的多样化高质量多模态对话。
实验评估
预训练基础AnyGPT模型的能力评估覆盖了所有模态的多模态理解和生成任务。这一评估旨在测试预训练过程中不同模态之间的对齐情况。对于每种模态,分别测试了文本到X(X为图像、音乐和语音)和X到文本的任务。为了模拟真实世界的场景,所有的评估都在零样本(zero-shot)模式下进行,这意味着在评估过程中,AnyGPT没有经过微调或预训练下游训练样本。这一具有挑战性的评估设置要求模型能够泛化到未知的测试分布,展示AnyGPT在不同模态上的通用能力。评估结果表明,作为一个通用的多模态语言模型,AnyGPT在各种多模态理解和生成任务上取得了值得称赞的表现。
图像理解:在图像字幕任务上评估AnyGPT的图像理解能力。比较结果呈现在表2中。使用了MS-COCO 2014字幕基准测试集,并采用了Karpathy分割的测试集。评估使用了CIDEr指标来衡量生成的字幕与真实字幕之间的相似度。
图像生成:文本到图像生成任务的结果显示在表3中。为了与先前的研究保持一致,从MS-COCO验证集中随机选取了30k图像,并使用CLIPscore作为评估标准,该指标基于CLIP-ViT-L计算生成图像与其真实字幕之间的相似度。
自动语音识别(ASR):通过在LibriSpeech数据集的测试清洁子集上计算词错误率(WER)来评估AnyGPT在自动语音识别任务上的性能。使用了Wav2vec 2.0和Whisper Large V2作为基线模型。
文本到语音(TTS):在VCTK数据集上进行零样本TTS评估。评估TTS系统时考虑了说话者相似度和WER,其中WER专注于语音质量。
在MusicCaps基准测试上评估AnyGPT在音乐理解和生成任务上的性能。使用CLAPscore作为客观指标,该指标衡量生成音乐与文本描述之间的相似度。
音乐理解:计算<音乐,真实字幕>对和<音乐,生成字幕>对的CLAPscore,并进行比较。这些分数是在整个测试集上平均得到的。
音乐生成:报告了音乐与文本字幕对齐的CLAPscore指标。
在AnyInstruct-108k数据集上微调后,AnyGPT展示了在任何到任何多模态对话中的能力和潜力。这些示例展示了AnyGPT能够理解并推理包含多种模态的指令,包括文本、语音、图像和音乐,并能熟练地选择适当的多模态组合进行回复。语义-声学分层建模的两阶段框架使AnyGPT能够生成与3秒语音提示的音色和情感相匹配的语音响应。
更多的示例和体验语音和音乐内容,可访问演示页面。https://junzhan2000.github.io/AnyGPT.github.io/
论文链接:https://arxiv.org/abs/2402.12226