发表时间:arXiv 2024年2月26日
论文链接:https://arxiv.org/pdf/2402.12226
作者单位: Fudan University
Motivation:
LLM 在理解和生成人类语言方面表现出非凡的能力。但是,LLM 的能力仅限于针对文本的处理。而现实世界的环境本质上是多模态的:生物体通过不同的通道感知和交换信息,包括视觉、语言、声音和触觉。
因此,开发 LLM 的多模态能力,势必对 LLM 来讲是个有前途的方向。当前的方法主要是将一个多模态的编码器 (比如视觉的 ViT) 和 LLM 相结合,使其能够处理各种模态的信息,并利用 LLM 强大的文本处理能力来产生有效的输出。但是这种策略仅限于文本生成,不包括多种模态的输出。比如 Emu[1],SEED-LLaMA[2] 等等。虽然将文本与一个额外的模态对齐相对简单,但在单个框架内集成3种以上的模态,并在它们之间实现双向对齐,就是个更加困难的挑战。
解决方法:
(1)提出 AnyGPT,一种 any-to-any 的多模态大语言模型。采用离散的表征统一处理语音、文本、图像和音乐等多种不同模态信号。实现方案:使用多模态分词器 (tokenizer),将原始的多模态数据,比如图像和语音,压缩成离散语义 token 的序列。再使用多模态解分词器 (de-tokenizer),将离散语义 token 的序列转换回原始模态数据。离散表征的好处是能够过滤掉高频的,特定于模态的感知信息,同时保留基本的低频语义信息。架构层面,继承现有的 LLM 架构,无需任何修改。同时允许直接应用现有的 LLM 工具,从而提高训练和推理的效率。
(2) 构建了一个多模态,以文本为中心的数据集 AnyInstruct-108k。该数据集利用生成模型合成,是一个大规模多模态指令数据集。实现方案:该数据集包含 108k 个多轮对话样本,这些样本复杂交织了各种模态,从而使 AnyGPT 模型能够处理多模态输入和输出的任意组合。在这个数据集中,文本作为中间对齐的媒介。通过将不同的模态与文本模态对齐,来实现在所有模态之间的相互对齐。
(3) 非常有趣的一点:证明了离散表征可以非常有效地使用 LLM 来统一多种模态的数据。
实现方式:AnyGPT 方法包含3个部分:多模态 tokenizer,LLM 架构,和多模态 de-tokenizer。tokenizer 将连续的非文本模态转换为离散的 token 序列。LLM 使用 next token prediction 的训练目标进行训练。在推理时,通过多模态 de-tokenizer 将 tokens 解码回原始模态的表征。
实现方式:
AnyGPT 生成过程:
高质量多模态数据的生成,包括高清图像和高保真音频。这是一个很有挑战性的问题,因为这些数据需要更长的位宽,导致更长的序列。但是 LLM 的计算量随着序列长度增加而指数级增加,因此需要想其他方法。
为了解决这个问题,AnyGPT 采用两阶段框架进行高保真生成,包括语义信息建模和感知信息建模。第一阶段,LLM 任务是语义级别的生成。第2阶段,非自回归模型将多模态语义标记转换为感知级别的高保真多模态内容,在性能和效率之间取得平衡。
对于图像,SEED tokens 通过扩散模型解码为高质量图像。对于语音,使用 SoundStorm[7]这个非自回归掩码语言模型,经过训练可以从语义 tokens 中生成 SpeechTokenizer 的声学 tokens。对于音乐,作者使用 Encodec tokens 过滤掉人类感知之外的高频细节,然后使用 Encodec 解码器将这些 tokens 重建为高保真音频数据。
实验:多模式理解和生成任务,旨在测试预训练过程中不同模态之间的对齐。具体而言,作者测试了每个模态的文本到X和X到文本任务,其中X分别是图像、音乐和语音。为了模拟现实世界的场景,所有评测都是在 Zero-Shot 的模式下进行的。这意味着在评测过程中不会进行任务对下游任务的微调或训练。评估结果表明,AnyGPT 作为通才多模态语言模型,在各种多模态理解和生成任务上实现了最先进的性能。
结论:AnyGPT 是一种 any-to-any 的多模态大语言模型,它可以处理多种模态数据,包括语音、文本、图像和音乐。不同于之前的多模态大模型的点是 AnyGPT 使用了 LLM 的架构和范式。但是与 LLM 不同的是,AnyGPT 把不同模态的数据作了一些恰当的预处理,从而使得这些数据都能使用 LLM 来建模。同时,为了训练这种 any-to-any 的多模态大语言模型,作者构建了一个多模态数据集,是第一个大规模多模态指令数据集。