Abstract
GPT-4o是一个包罗万象的模型,是大型多模态语言模型发展的一个里程碑。它可以理解视觉、听觉和文本模式,直接输出音频,并支持灵活的双工交互。来自开源社区的模型通常可以实现GPT-4o的一些功能,例如视觉理解和语音聊天。然而,由于多模态数据的复杂性 、复杂的模型架构和训练过程,训练一个包含所有模态的统一模型是具有挑战性的。在本文中,我们介绍了Mini-Omni2,这是一种可视音频助手,能够为视觉和音频查询提供实时的端到端语音响应。通过集成预训练的视觉和听觉编码器,Mini-Omni2保持个人模式的性能。我们提出了一个三阶段的训练过程来对齐模态,允许语言模型在有限数据集上训练后处理多模态输入和输出。对于交互,我们引入了基于命令的中断机制,实现了与用户更灵活的交互。据我们所知,Mini-Omni2是GPT- 4o最接近的复制品之一,具有类似的功能形式,我们希望它可以为后续研究提供有价值的见解。
Introduction
GPT-4o是多模态大型语言模型发展的一个里程碑,尤其体现在三个方面:(1)其强大的多模态问答能力;(2)超越传统的基于文本的输入和输出,能够理解和生成多模态内容;(3)具有中断机制的灵活交互方式,使人机交互更加自然流畅。然而,GPT-4o模型并未向公众开放源代码,其技术规格仍未公开。迄今为止,主流方法主要包括使用各种预训练编码器来获得特定模式的文本输出,例如视觉和音频输入,并利用级联技术集成文本到语音(TTS)模块,该模块复制GPT - 4o的语音输出能力,从而模拟其多模式功能。实现端到端的多模态理解和输出仍然是一项具有挑战性的任务。
最近,随着Llama3.2 等语言模型的功能不断扩展,研究人员开始探索多模态方法来实现gpt4o的性能。然而,这些研究成果往往只关注gpt - 4o的特定功能,如视觉-文本理解(LLava、Flamingo)、音频理解(Qwen2-audio)、多模态理解(VITA)和语音-语音对话(Mini-Omni、Llama-Omni、Moshi)。然而,整合文本、视觉和语音模式仍然具有挑战性。
在我们看来,目前实现三种模式交互的挑战包括以下几个方面:(1) 模型能力 - GPT-4o需要一个统一的模型,全面理解所有模态,同时在广泛的任务中保持稳健的性能;(2)多模态环境下的直接推理输出能力 ——我们最近的工作Mini-Omni 解决了如何增强模型在音频中的流输出能力,为Mini-Omni2的语音交互能力奠定了基础;(3) 大量数据需求 ——GPT-4o的训练需要跨视觉、音频和文本模式的数据集成,与以前的努力相比,数量呈指数级增长;(4) 设计灵活的交互方式 ——GPT-4o的全双工能力也是一个显著的特点。
在本文中,我们介绍了Mini-Omni2作为Mini-Omni的延续,采用单一模型端到端模拟GPT-4o的视觉、语音和文本功能,并通过独特的基于命令的中断机制进行增强。与Mini-Omni一致,我们保留Qwen2 作为基础模型,利用这种紧凑的架构实现全面的多模态理解和跨三模态的实时流式语音推理。此外,我们使模型能够实时接收外部音频输入,模拟其“听觉”感知,并基于内容语义控制语音输出流。Mini-Omni2的模型体系结构如图1所示。作为端到端模型,我们通过直接使用经典的预训练视觉编码器CLIP 和语音识别模型的编码器组件Whisper 作为视觉和音频输入的特征提取器,提高了数据利用效率,并证明了Mini-Omni2算法的通用性。从预训练的编码器和文本嵌入的特征被连接起来形成模型的输入。由于与理解功能相关的挑战,我们没有采用 token-in-token-out 范式。此外,利用文本和音频的延迟并行输出方法,该模型可以立即响应像GPT-4o这样的音频。
在Mini-Omni2中,我们提出了一种基于有限数据量 的高效训练方法,旨在使模型的训练方法能够辅助其他多模态模型进行模态扩展。因此,我们避免了盲目地以指数方式扩展数据集,而是寻求开发一种使用最少新数据的多模态扩展方法。我们采用三个阶段 的训练过程进行模态扩展、对齐和联合训练 。最初,Mini-Omni2模型使用语音识别和图像标题数据集进行adapter训练,从而扩大了多模态理解的范围。接下来,对Mini-Omni2进行了跨模式问答任务的文本输出训练,允许基于adapter的输出特性与文本嵌入对齐,以实现有效的问答。在第三阶段,我们通过结合音频输出和听觉能力(如中断)的训练来关注多模态输出能力。
关于模型的语音交互功能,Mini-Omni2继续利用SNAC tokenizer来确保高质量的语音输出。然而,根据我们的观察,我们认为目前的全双工训练仍然不够稳定。因此,我们认为基于输入语义信息的中断对于实现稳定和灵活的人机交互至关重要 。我们使模型能够使用SNAC对其接收的“听觉”波形进行实时编码,生成令牌,使其能够在每一generation中控制自己的输出。作为演示,我们使用短语“stop omni”构造数据,使用帧级 irq 和 n-irq 特殊令牌来控制生成过程。
为了评估Mini-Omni2的多模态交互能力,我们首先对其在传统视觉和听觉任务上的表现进行了实证测试,验证了该模型在图像说明和语音识别等基本任务上与原始模型保持一致性。接下来,我们进行了一系列额外的实验来测试模型的响应速度,并进行了一些案例研究。
综上所述,我们做出了以下贡献:
- 我们推出了Mini-Omni2,这是第一个具有视觉、语音、文本和听觉中断机制的开源多模态语言模型。据我们所知,它是与GPT-4o功能最相似的端到端模型之一。图2显示了该模型作为可视语音助手的演示。
在这里插入图片描述
输入非流式,输出是流式。
- 基于Mini-Omni的模态展开方法,提出了一种新的训练管道。该管道包括三个训练阶段,允许文本模型首先将响应与多模态输入对齐,并最终在最后阶段将输出扩展到语音模态,采用延迟并行生成算法进行实时语音输出。
- 我们探索了一种基于命令的中断方法,利用流标记作为输入并构建训练数据,使模型能够基于外部语义线索控制其音频输出流。所有的合成数据都将是开源的。
Related Work
Large Vision Language Models
近年来,视觉语言模型发展迅速,是最早与大型语言模型相结合的模型之一。基础工作从CLIP开始,CLIP在我们的工作中也被用作视觉编码器。后续的工作通常使用一个视觉编码器,一个适配器作为中间层,以及一个大型语言模型作为架构,以使LLM能够理解和推理视觉输入。经典作品有:OpenAI的BLIP、BLIP2、Llava、Qwen-VL、Qwen2-VL、InstructBLIP、MiniGPT-4、GPT-4V、谷歌的Gemini、Meta的Llama-3.2。研究人员也在探索其他方向,比如更高分辨率的视觉编码器,比如InternLM-XComposer2-4KHD,以及使用MOE架构,比如CogVLM。本文使用的方法是最经典的,与Llava类似。
Audio Language Modeling
随着大型多模态模型的进一步发展,语音信号也被离散成token,使理解和推理能够以类似于文本模型的方式进行。重要的工作包括语音合成模型如VALL-E,音乐生成模型如MusicGen,以及语音交互工作如AudioPaLM和LauraGPT。就在最近,研究人员已经探索了语音到语音交互的方法,如Mini-Omni, Llama-Omni和Moshi。语音标记化也是生成稳定且信息丰富的令牌的重要方向,最近的作品包括Speechtokenizer,谷歌USM和EnCodec。
Multi-modal Interaction Model
随着GPT-4o的出现,研究人员已经开始研究语音聊天的端到端多模态模型。早期的作品包括Spectron和SpeechGPT,它们使用A-T-T-A方法以端到端方式实现语音输入和语音输出。Mini-Omni引入了一种文本和音频并行生成的方法,使模型可以直接在音频中进行推理。Moshi和Llama-Omni都使用了类似的方法。LSLM和Moshi通过结合说、听信号作为输入,探索了全双工交互能力。VITA可以理解所有的模式,但只输出文本。AnyGPT项目旨在实现完整的多模态理解和生成。这项工作是Mini-Omni的延续,旨在实现具有双工功能的多模态输入和低延迟并行语音-文本输出。
Mini-Omni2
Mini-Omni2的模型体系结构如图1所示。除了文本嵌入模块外,Mini-Omni2还使用CLIP的视觉组件和Whisper-small作为视觉和听觉模式的编码器,从而在训练期间高效地利用数据,并最大限度地减少大量的训练前工作。此外,Mini-Omni2具有实时双工功能,在模型交互中提供了更大的灵活性。本节包括3.1,其中讨论了模型体系结构;3.2给出了输入和输出流的建模方法;3.3节和3.4节分别详细介绍了培训方法和中断方式。
Architecture
Visual Encoder
我们利用CLIP的视觉组件,特别是ViT-B/32模型作为视觉编码器,将输入的图像转换为图像补丁和全局语义特征的长度为49的特征序列。Mini-Omni2 使用单层 LlamaMLP 作为视觉adapter,将这些连接起来形成长度为50 的原始特征序列。
Audio Encoder
在编码器部分,我们继续前面的工作,使用Whisper-small模型作为音频编码器。出于两个原因,我们选择不对音频输入和输出采用令牌输入-令牌输出建模方法。(i) 语音识别中的强语义对齐 。OpenAI提出的Whisper模型经过了数千小时的数据集训练,显示出卓越的稳健性。此外,我们意外地发现Mini-Omni显示出对中文数据的理解,尽管没有在任何中文数据集上进行训练。我们认为这是由于Whisper模型能够自动调整来自不同语言、音调和噪音水平的音频,以传达相同的意思,从而使模型能够专注于用户的意图。(ii)不稳定的开源audio tokens 。我们观察到这样一种现象:a) Mini-Omni2在训练期间的音频损失仍然很高 ,b) 一段音频的tokens可以根据两端的内容而有很大差异 。我们认为,tokens不足以可靠地传达语音输入的内容,在与Whisper等语义特征相比ASR表现不佳就是证明 。
audio tokens 训练鲁棒,数据要求小;audio continuous features 数据要求大,训练时间长,但效果更好。理想的自然是 audio continuous features 的特征作为输入。
Language Model
在这里插入图片描述
Mini-Omni2使用Qwen2-0.5B基础版本作为其基础语言模型。我们使用LitGPT训练框架移植了基于llama的Qwen2模型,采用0.5B模型的配置作为基本语言模型。对于图3所示的多层码本的并行生成,我们通过添加 7×4160 个 sub-LM-heads 来扩展Qwen2模型的词汇表,如图4所示,从而得到181120个词汇表大小。
8个heads并行输出,其中1个head位原始的LM txt的输出,7个新增heads。
Multimodal Languague Modeling
Multimodal Modeling
在这里插入图片描述
Multi-modal token-Mixed Input
图3说明了模型的一些主要任务的输入和输出tokens的建模。在本节中,我们将讨论模型的输入和输出。由于该模型包含多个lm头,因此它以自回归的方式生成多个序列。因此,该模型也接受多个序列作为输入。所述输入序列可包括从最少一种模态到最多三种模态的混合输入。在本小节中,我们将讨论模态混合的方法。
Visual-[Audio|Text] Input
我们的实验表明,当自动回归任务与语义信息相关联时,Transformer架构更容易训练并产生更自然的响应。因此,如图3 (a)所示,我们首先放置由视觉适配器处理的视觉特征,然后放置由音频适配器处理的Whisper特征。最后,在需要自动回归生成响应的位置,我们为响应放置一个特殊的令牌。总长度约为**50(CLIP特征长度)+
(Whisper特征长度)** 。
Single Modality Input
单模态输入可以包括视觉、语音或文本输入。我们将视觉和音频模式的特征放在第1层到第7层之间 。这些特征将被复制,以增强它们在所有层特征平均时的突出性 。值得注意的是,当只输入单个模态的特性而不使用特殊令牌控制时,默认任务是图像标题、语音到文本的问答和文本到文本的问答。
Text-Audio Parrallel Decoding
在Mini-Omni2中,我们基本上保留了MiniOmni的输出策略,采用 Text-Instruct Delay Parallel Decoding 算法来增强音频生成。这种方法利用文本-音频并行解码同时生成音频和文本令牌,利用文本-语音合成实现实时输出。我们继续使用MusicGen引入的并行生成方法,使用SNAC作为音频编码器,其中包括7个互补的令牌层。在一个步骤中,我们生成8个令牌,包括文本,同时在层之间保持一步延迟。 此外,我们合并了一个涉及两个示例的Batch 方法:一个需要文本和音频响应,另一个需要纯文本响应。通过丢弃第一个样本中的文本标记并将第二个样本的输出嵌入到第一个样本中,我们有效地将模型的基于文本的功能转移到音频任务中,以最小的资源开销显著增强了推理能力 。我们已经对Mini-Omni中的具体技术细节进行了详细的说明。
总的来说,我们已经介绍了在单个模型中用于三模态输入和双模态输出的建模方法。通过这些方法,该模型可以完成8个合理的多模态任务,其中一些主要任务如图3所示,展示了在单个推理过程中生成的所有多层令牌。
Training Strategies
在本节中,我们将介绍Mini-Omni2模型的训练阶段。Mini-Omni2的整体训练过程如图5所示。训练过程分为三个阶段,每个阶段采用多任务训练。在图中,除了阶段1之外,一个基本的文本到文本任务被额外地合并,但没有明确地描述。我们将整个训练过程分为三个阶段:
在这里插入图片描述
Multimodal Encoder Adaptation
在第一阶段,我们采用快速、小规模的训练,专注于连接语言模型和编码器的线性层的权重。阶段1的目标是确保模型接收到的多模态特征与模型嵌入层中表示的文本标记的特征非常相似 。我们认为这种方法有两个主要优点:1. 它允许模型在随后的训练中专注于特定于模态的问题回答中的逻辑推理。2. 它最大限度地减少了语言模型核心的参数变化,否则将导致适应其他模态。
Modality Alignment
在第二阶段,模型训练的主要任务是将基于文本输入的问答能力转化为基于图像和音频的问答能力 。在此步骤中,暂时冻结在阶段1中训练的适配器,并且在训练中涉及语言模型的权重。在这个阶段,所有任务都不涉及音频响应。对于像基于图像和基于音频的QA这样的任务,只生成基于文本的响应来建立模型的基本逻辑功能 。语音输出只是将这种逻辑能力扩展到不同的模态。
Post training
在阶段3中,模型的任务是扩展输出模式,以包括音频响应生成。如图5所示,该模型将在阶段1和阶段2的所有任务上进行训练,并为所有问答任务输出音频令牌。此外,该模型将学习中断机制,这是下一节介绍的算法。
Duplex Interaction
实时会话模型需要具有双工功能,以便支持更灵活的交互。然而,这种中断机制不应该是一个简单的基于VAD(语音活动检测)的机制,而是一个可以确定用户是否打算中断模型的系统 。此外,模型的能力应该是高度健壮的,能够处理各种外部情况(例如,噪音、其他对话和不相关的声音)。我们通过基于命令的任务来探索这个功能,当用户说“Stop Omni”时,模型会立即停止说话 。此外,通过开发更适合上下文的中断数据集,这种方法可以自然地扩展为包含更复杂的语义中断机制。
Background Noise Selection:(1)我们随机利用lib -tts数据集中的各种语音识别样本作为原始的人噪声数据样本。(2)我们使用了来自MUSAN数据集的样本,其中包括音乐、人声、白噪声和城市噪声。
Semantic Interruption Construction: 我们用随机的音色合成了“Stop Omni”短语,随后与噪音混合。下一节将介绍具体的数据构建方法。
结合上述数据,模型将在各种噪声中接收包含“Stop Omni”短语的长序列数据。该模型将实时生成两种类型的状态令牌: irq和 n-irq,分别表示用户中断和不中断的意图。在推理过程中,当模型输出 irq令牌时,它将停止生成过程并开始侦听新问题 。对于这个任务,我们使用令牌作为输入来增强模型的实时处理能力。
Data and Evaluation
在本节中,我们将介绍用于训练Mini-Omni2的数据,并给出一些初步评估结果。我们将更详细地解释每种模态的数据组成和构建过程。在实验结果部分,我们只展示了一些应用案例和基本的能力评估。更全面的实验相关的文字和视觉任务将很快更新。
Datasets
Mini-Omni2模型的训练数据主要来自五个组件,如表1所示。(1)文本问答数据 (Textual question-answer Data):在所有训练阶段,每当语言模型权值解冻进行训练时,都会包含文本问答数据,以保持模型的推理能力。我们使用了来自Open-Orca数据集的前150万个问答对。(2)语音识别数据 :使用语音识别数据持续维护模型对外部语音输入的语义理解。我们主要使用LibriTTS、VCTK和Multilingual librisspeech数据集。(3)口语问答数据 :我们没有使用独立的口语数据集;相反,我们使用合成数据 进行训练。语音问答数据来源于Moss-002-sft 数据集。(4)图像问答数据 :我们使用了来自ALLaVA-4V数据集的400,000个样本(标题和指令)。(5)语音助手数据 :为了使模型的响应更符合语音助手的风格,我们持续使用Mini-Omni中引入的VoiceAssistant-400k数据集。
在这里插入图片描述
Training Parameters
Mini-Omni2模型在8个A100 gpu上完成了所有训练步骤。在适配器训练阶段,学习速率从2e-5到2e-3不等,而训练语言模型使用的学习速率在2e-6和2e-4之间。最后的微调是在学习率从2e-6到2e-5之间进行的。我们使用了余弦调度器,它有1500个warm-up步骤,全局批大小为192个。使用完整的数据集对每个阶段进行一个epoch的训练。视觉和音频编码器的尺度在前面有描述,使用的语言模型为Qwen2-0.5B基础模型。所有型号适配器都使用Llama-MLP,中间尺寸为4,864。
Data Construction
Spoken Dialogue Data: 我们使用我们的语音识别数据集作为随机语音音色库。为了确保训练的鲁棒性,从该数据集中选择一个随机样本作为所有语音对话数据输入的语音提示,并使用CosyVoice 进行zero-shot语音合成。对于所有问答数据的输出,使用来自内部TTS系统的相同语音音色。
Interruption Data: 首先,对噪声数据进行流编码和解码,以模拟模型的实时流输入。然后,提取噪声数据的随机片段。在这个片段的末尾,插入了一个“Stop Omni”短语,它以与对话数据相同的方式随机生成语音音色。最后,一个额外的0-10秒的“尾巴”被附加到这个片段的末尾 。在标记方面,尾巴之前的所有数据都被标记为“n-irq”,而尾巴部分被标记为“irq”,表示模型应该被中断。
Experimental Results
目前,我们提供了Mini-Omni2在语音识别中的准确性来评估模型的语音理解能力,并给出了一些实际案例。有关模型经验和更多案例,请关注我们的github库。
在这里插入图片描述
从表2的语音识别结果可以看出,与Mini-Omni相比,添加视觉模态后Mini-Omni2的准确率略有下降。这种现象可能是由于数据的比例相对减少。此外,与模型使用的whisper模块的解码器相比,Mini-Omni2模型在librisspeech-other数据集上的性能优于whisper。这表明我们的训练过程增强了模型在语音识别中的鲁棒性。
Case Study
这里我们展示了Mini-Omni2中的一些用例。
Limitations
我们认为有以下几个方面值得探索和改进:模型和数据大小的缩放。Mini-Omni2的目标是用有限的资源训练小型模型,我们相信更多的数据和计算可以大大增强它的能力。2. 改进风格控制和音频输出的多样性(情感、自然、音色、口音和歌唱)。3. 更丰富的语义中断机制。
Conclusion
在本文中,我们提出了Mini-Omni2,一个统一的多模态语言模型,具有文本、语音、视觉、端到端流音频输出和双工交互的功能。我们的目标是重现一个开源的GPT-4o模型,据我们所知,我们的工作在功能方面也是最接近的。我们使用多个预训练的编码器作为视觉和语音编码器,并将它们与语言模型对齐以扩展模态。此外,我们提出了一个三阶段的模态对齐和扩展训练过程,以实现模型的预期功能。我们还探索了一种健壮的双工交互建模方法,并介绍了我们的数据构造和中断机制。所有的模型和数据集都是开源的,我们希望Mini-Omni2可以作为未来研究的参考。
