AnyGPT

文章提出了一个名为AnyGPT的多模态大模型,包含语音,文本,图片和音乐,该模型能够实现多模态输入和输出,并且将所有模态都看作离散的表示,统一处理所有模态,而内核使用大语言模型LLM进行建模,因此该模型可以在现有的LLM框架上去训练,仅仅在数据处理层面上有所差异,将新的模态无缝地加入到模型中。此外,文章为了训练模型,构造了一个多模态的指令数据集用于多模态到多模态的对齐。 当前有很多多模态大模型,但都是以多模态输入为主,很少有同时具备多模态理解和输出的能力。如果有同时具备两者能力的模型,其处理多模态信息的方式较复杂,并且需要修改现有的模型和方法,训练的难度较大。为此,文章提出了一种简单有效的模型,用统一的离散表示来统一处理多模态数据。文章的贡献如下: - 提出了基于token的多模态大模型AnyGPT,能够同时理解和生成多模态数据。 - 构造了多模态混合的多轮对话数据集AnyInstruct-108k - 展示了离散表示可以在语言模型中有效地统一多个模态 下面介绍一下AnyGPT,首先介绍tokenizer。对于图片模态数据,模型使用SEED tokenizer,该tokenizer于2023年提出,专用于图片模态的离散表示。对于语音模态数据,模型使用SpeechTokenizer的RVQ-1,也就是第一层token,该层token包含着语音数据的语义信息。最后对于音乐模态,对于该模态,文章使用了Encodec对其进行tokenize,在该文章的设置中由于Encodec的离散编码有四层,文章将每一帧四层token平铺,得到一维的离散表示。 下表展示了各模态token化的细节。 在数据生成阶段,对于不同模态的高质量生成同样存在巨大的挑战。在LLM得到各模态语义token输出后,文章提出了两阶段框架,对不同模态进行了不同的处理,实现了高质量的数据生成。对于图片模态,将SEEDtoken作为扩散模型的输入,实现了图片的高质量生成。对于语音数据,该模型得到语义token后,使用SoundStorm模型以非自回归方式生成了语音数据的声学token,然后再将语义token和声学token共同解码,得到了高质量的语音数据,该SoundStorm模型使用SpeechTokenizer的token进行训练。最后对于音乐模态数据,直接将得到的token重新组织成四层token并解码得到音乐数据。 然后就是构造一些模态对其的数据用于模型的训练,这部分由于不是重点就省略了,具体可看原文。 下面展示一下模型的实验结果,可见模型在图像理解,图像生成,语音识别,TTS,音乐理解和生成,多个模态的任务上都能达到较好的水准。 最后,文章提到了未来的方向和AnyGPT的局限: - Any-to-Any多模态大模型的评判基准(Benchmark) - 加强LLM,扩大规模或者使用混合专家模型MOE - 更好的tokenizer - 更长的context上下文,对于AnyGPT只支持5s的音乐