code:https://github.com/bytedance/SALMONN/
paper:https://arxiv.org/abs/2310.13289
SALMONN 是一个大型语言模型 (LLM),支持语音、音频事件和音乐输入,由清华大学电子工程系和字节跳动开发。SALMONN 可以感知和理解各种音频输入,从而获得多语言语音识别和翻译、音频语音共推理等新兴能力,而不是纯语音输入或音频事件输入。这可以被视为赋予 LLM “耳朵”和认知听力能力,这使得 SALMONN 向具有听力的通用人工智能迈出了一步。
SALMONN 的模型架构如下所示。窗口级 Q-Former 用作连接模块,将 Whisper 语音编码器和 BEATs 音频编码器的输出融合为增强音频令牌,这些令牌与 LLM 输入空间对齐。LoRA 适配器将增强的 LLM 输入空间与其输出空间对齐。文本提示用于指示 SALMONN 回答有关一般音频输入的开放式问题,答案位于 LLM 文本响应中。
相较于语音识别、音频字幕等传统语音和音频处理任务,SALMONN 利用 LLM来实现认知导向的音频感知,极大地提高了模型的通用性和任务的丰富性。此外,SALMONN 能够以相对较高的准确性遵循文本命令甚至语音命令。由于 SALMONN 只使用基于文本命令的训练数据,因此聆听语音命令也是一种跨模态新兴能力。
为了解决由于在预训练和微调阶段出现的任务过拟合问题,即LLM局限于在指令微调中使用的特定任务,而对于没有出现的任务能力很差,而提出了一个额外的少量样本激活微调阶段,以使SALMONN重新获得LLM的突现能力。
Introduction
在本文中,我们提出了一种语音音频语言音乐开放神经网络(SALMONN),它是一种单一音频-文本多模态大语言模型(LLM),能够感知和理解三种基本类型的声音,包括语音、音频事件和音乐。为了增强在语音和非语音音频任务上的表现,SALMONN采用了双编码器结构,其中包括来自Whisper语音模型的语音编码器(Radford等,2023)和BEATs音频编码器(Chen等,2023c)。使用窗口级查询Transformer(Q-Former)(Li等,2023a)作为连接模块,将可变长度的编码器输出序列转换为可变数量的增强音频token,以输入到Vicuna LLM(Chiang等,2023),并能够以高时间分辨率实现音频-文本对齐。低秩适应(LoRA)方法(Hu等,2022)应用于Vicuna,作为跨模态适配器,将Vicuna的增强输入空间与其输出空间对齐,从而进一步提升其性能。在窗口级Q-Former和LoRA的跨模态预训练和指令微调阶段,使用了一系列语音、音频和音乐任务。最终得到的多模态LLM局限于在指令微调中使用的特定任务,特别是语音识别和音频描述,表现出有限或没有的跨模态突现能力,我们称之为任务过拟合问题。本文中,跨模态突现能力指的是在训练中未见的跨模态任务的执行能力,实质上是LLM的突现能力(Wei等,2022b),在指令微调过程中丧失。为此,我们提出了一个额外的少量样本激活微调阶段,以使SALMONN重新获得LLM的突现能力,并减轻对已训练任务的显著灾难性遗忘。
为了评估 SALMONN 的认知听力能力,使用了广泛的语音、音频事件和音乐基准。 任务可以分为三个级别。 第一级对经过指令调优训练的八个任务进行基准测试,例如语音识别、翻译和音频总结,而其他两个级别对未经训练的任务进行基准测试。 第二级包括五个基于语音的 NLP 任务,例如翻译为未经训练的语言和槽填充(slot filling,即从文本中提取特定信息并填充到预定义的槽位中),这依赖于语音和文本标记之间的多语言和高质量对齐。 最后一级的任务,包括基于音频的讲故事和语音音频协同推理等,不仅需要理解语音,还需要理解非语音听觉信息。 实验结果表明,SALMONN 作为单一模型可以执行所有这些任务,并在标准基准上实现具有竞争力的性能,这揭示了构建能够“听到”并理解通用音频输入的人工智能 (AI) 的可行性由语音、音频事件和音乐的混合组成。
本文的主要贡献可以总结如下。
• 我们提出了SALMONN,尽我们所知,这是第一个能够感知和理解包括语音、音频事件和音乐在内的一般音频输入的多模态LLM。
• 我们通过调整LoRA缩放因子来研究跨模态涌现能力的存在,并提出了一种低成本的激活调优方法,作为额外的训练阶段,能够激活跨模态涌现能力,并减轻对训练中已见任务的灾难性遗忘。
• 我们在一系列反映一般听觉能力的任务上评估SALMONN,并提出了两个新任务:基于音频的讲故事和语音音频共同推理。
模型和训练
模型架构
SALMONN 的模型架构如图 1所示。
两个互补听觉编码器【用于建模语音音频和非语音音频】的输出特征被同步并结合在一起。Q-Former被用作连接模块,并应用于帧级别,其输出序列与文本指令提示集成,并通过LoRA适配器输入到LLM中,以生成文本响应。
双重听觉编码器:使用了OpenAI的Whisper模型(Radford等,2023)的语音编码器和BEATs音频编码器(Chen等,2023c)。(Whisper模型经过大量弱监督数据的训练,适用于语音识别和翻译,其编码器输出特征适合建模语音并包含背景噪音的信息(Gong等,2023a)。BEATs经过迭代自监督学习训练,提取高级非语音音频语义信息,并提出有效的声学tokenizer,将连续音频特征量化为丰富的语义离散标签)输入音频首先被标记化,然后在训练中被掩蔽和预测。标记器通过提炼音频标记的语义知识进行更新(Chen等,2023c)。因此,这两个编码器的结果听觉特征是互补的,适合包含语音和非语音信息的一般音频输入。由于两个编码器具有相同的输出帧率50Hz,连接后的输出特征表示为:
Z=Concat(Encoderwhisper(X),Encoderbeats(X)),
其中 X 是可变长度的一般音频输入序列,Encoderwhisper(⋅) 和 Encoderbeats(⋅) 分别是Whisper和BEATs编码器,Concat(⋅) 是在特征维度上逐帧连接的操作,Z 是具有 T 帧的连接编码器输出序列。
窗口级Q-Former:Q-Former结构通常用于将图像编码器的输出转换为固定数量的LLM文本输入标记(Li等,2023a),在处理可变长度的音频输入时需要进行修改。具体而言,将输入图像的编码器输出表示为 Zl,Q-Former使用固定数量的可训练查询 Q 将 Zl 转换为 N 个文本标记 Hl,这需要多个堆叠的Q-Former块。Q-Former块类似于Transformer解码器块(Vaswani等,2017),但在第一个块中使用固定数量的可训练静态查询 Q,并从自注意力层中移除因果掩码。通过这种方式,Q-Former允许查询在 Q中首先使用自注意力层相互引用,然后使用交叉注意力层与 Zl 进行交互。
对于一个变长的通用音频输入Z=[Zt]t=1T,通过将 Z 分割成大小为 L 的窗口,并用零填充最后一个窗口,可以表示为{{Zt}t=(l−1)×L+1l×L}l=1⌈T/L⌉。而不是在序列级别使用 Q-Former 将整个 Z转换为 N 个文本标记,SALMONN 在窗口级别使用 Q-Former,就好像每个窗口中的编码器输出帧堆叠在一起形成一幅图像一样。因此,文本标记序列 H 变为:
其中 Q-Former(·) 是 Q-Former 函数,H 的形状为 ⌈T/L⌉×N 的文本标记。窗口级的 Q-Former 使用可变数量的文本标记,因此在处理可变长度序列时效率更高。此外,H 被强制与 Z 具有单调对齐,从而提高了时间分辨率,这对于语音识别非常重要。
LLM 和 LoRA:本工作中使用的是预训练的 Vicuna LLM(Chiang et al., 2023),该模型是针对指令微调的 LLaMA LLM(Touvron et al., 2023)。LoRA(Hu et al., 2022)是一种广泛使用的参数高效微调方法,用于 LLM 适应,在 SALMONN 中用于调整 Vicuna 自注意力层中的查询和数值权重矩阵。在本工作中,LoRA 是可训练的,而 Vicuna 不是。
训练方法
本节介绍了 SALMONN 的三阶段跨模态训练方法。除了最近视觉 LLM 所采用的预训练和指令微调阶段(Dai et al., 2023; Zhang et al., 2023b),还提出了一个额外的激活微调阶段,以解决指令微调中对语音识别和音频描述任务的过拟合问题。
预训练阶段:基于语音识别和语音描述音频进行预训练
为了减小预训练参数(LLM 和编码器)与随机初始化参数(连接模块和适配器)之间的差距,使用大量的语音识别和音频描述数据对窗口级 Q-Former 和 LoRA 进行预训练。这两个任务包含关于语音和非语音音频事件内容的关键听觉信息,并且都不需要复杂的推理和理解,因此可以帮助 SALMONN 学习听觉信息与文本信息之间的高质量对齐。
指令微调阶段:
类似于 NLP(Wei et al., 2022a)和视觉语言(Dai et al., 2023),音频-文本指令微调使用了一系列监督的语音、音频事件和音乐任务,如表 1 所示,作为 SALMONN 训练的第二阶段。根据任务的重要性(例如语音识别和音频描述)以及在测试中拥有此能力的不可或缺性(例如重叠语音识别、电话识别和音乐描述)选择这些任务。指令提示基于与音频数据配对的文本生成。
任务过拟合:
尽管仅通过前两个训练阶段构建的 SALMONN 可以在指令微调中训练的任务上产生有竞争力的结果,但它在执行未训练的跨模态任务时表现出有限或几乎没有能力,尤其是那些需要跨模态共同推理能力的任务。特别是,该模型有时会违反指令提示,生成与其所接受的任务无关的响应,仿佛它接收到的指令与训练中常见的任务相关(例如语音识别)。我们将这一现象称为任务过拟合。在这里,我们对该问题进行了理论分析,详细的实验验证见第 5.3 和 5.4 节。
我们将任务过拟合归因于两个原因。首先,与用于 LLM 训练的纯文本数据相比,我们的跨模态指令微调中仅使用了更简单的指令提示(Wei et al., 2022a),因此生成的响应并不复杂且多样。同时,指令微调中包含的一些任务,特别是语音识别和音频描述,具有比其他任务(如语音和音频问答)更确定的输出。这两个原因结合导致内在条件语言模型(LM)偏向于一个缺乏良好泛化能力的错误分布,阻止了 SALMONN 执行未训练的跨模态任务。更具体地,在测试时,给定新指令提示 I 的测试输入 X 的响应文本序列 Y^ 可以生成为 Y^=argmaxYPΛ(Y|X,I),这也是训练中要最大化的目标。利用贝叶斯法则,有
由于在 SALMONN 训练中仅看到有限的文本响应,内在条件 LM PΛ(Y∣X) 偏向于与 X 强对齐的 Y 序列,例如自动语音识别(ASR)和自动音频描述(AAC)任务的转录,尤其是简单且短的转录。根据公式(3),这导致 I′(具有更多样本响应的zero-shot 指令)具有小的 PΛ(Y∣X,I′)。
激活微调阶段:
缓解任务过拟合的有效方法是对内在条件 LM PΛ(Y∣X) 进行正则化。实现这一点的简单方法是对具有更长和更多样化响应的任务进行微调,例如基于听觉信息的问答和讲故事。这类任务的配对训练数据可以基于与语音识别或音频和音乐字幕数据配对的文本生成,可以由人工注释者手动生成,也可以通过提示文本基础 LLM 自动生成。
我们采用一种高效的方法,使 SALMONN 能够通过简单地降低 LoRA 适配器的缩放因子来生成长且多样化的响应。这是一种正则化 PΛ(Y∣X) 的替代方法,因为内在条件 LM 只能通过窗口级 Q-Former 和 LoRA 学习,因为它们是训练中唯一更新的模块。降低 LoRA 缩放因子的效果在第 5.2 节中可以找到,确实可以激活问答和讲故事能力,并生成长且多样化的响应,但也会显著降低在训练任务上的结果。为了在恢复跨模态突现能力的同时保持竞争力的结果,我们建议使用以降低的 LoRA 缩放因子生成的 SALMONN 响应来执行称为激活微调的第三阶段微调。随后在第 5.4 节中展示的实验结果表明,激活微调是一种高效且有效的少样本自监督训练方法。
实验设置
模型设置
SALMONN 使用 Whisper-Large-v2(Radford et al., 2023)模型的编码器作为语音编码器,使用微调后的 BEATs(Chen et al., 2023c)编码器作为音频编码器,以及具有 13B 参数的 Vicuna LLM(Chiang et al., 2023)作为基础 LLM。对于窗口级 Q-Former,我们使用 N = 1,仅有一个可训练查询,设置L = 17,这大约对应于每个窗口 0.33 秒。因此,对于 30 秒的音频,Q-Former 输出 88 个文本标记。关于 LoRA(Hu et al., 2022)的超参数,我们将秩设置为 8,缩放因子设置为 4.0。在训练中,仅更新 Q-Former 和 LoRA 的参数,结果约为 3300 万(M)参数,约占整个 SALMONN 模型的 0.24%。
数据设置
采用第 3.2 节中提出的三阶段训练。用于第一预训练阶段的数据包括 960 小时的 LibriSpeech 训练集(Panayotov et al., 2015)和 1000 小时的 GigaSpeech M 集(Chen et al., 2021)用于语音识别,以及 2800 小时的 WavCaps(Mei et al., 2023)(去除音频片段超过 180 秒的部分)、AudioCaps(Kim et al., 2019)和 Clotho(Drossos et al., 2020)数据集用于音频描述生成。
第二个指令调优阶段涉及多个任务,包括自动语音识别(ASR)、自动语音翻译(AST)、自动音频字幕(AAC)、音素识别(PR)、情感识别(ER)、音乐字幕(MC)、重叠语音识别(OSR)、说话人验证(SV)、性别识别(GR)、语音问答(SQA)、音频问答(AQA)和音乐问答(MQA)。在SQA、AQA和MQA任务中,问题是基于文本字幕标签使用ChatGPT生成的,模型需要根据通用音频输入和带有问题的文本提示提供答案。本阶段使用的数据列在表1中,其中“En2Zh”指的是从英语到中文的AST。
在最后的激活调优阶段,SALMONN基于音频片段编写了十二个故事,使用了reduced的LoRA。然后,模型使用基于教师强制的交叉熵训练进行12步训练,每一步只使用一个故事样本,以激活SALMONN的跨模态突现能力。
任务设置
由于文本LLM具备通过指令调优进行zero-shot学习的能力(Wei et al., 2022a),因此当将基于文本的主干LLM与多模态编码器连接时,期望能实现高质量的跨模态对齐,从而出现这样的能力。为了评估SALMONN的zero-shot跨模态突现能力,选择了15种语音、音频和音乐任务,并将其分为三个不同的层次。
任务层级1包括在指令调优中使用的任务,因此对SALMONN来说最容易执行。这些任务及其训练数据的列表在第4.2节中给出,各任务的评估指标见表2。
任务层级2包括未训练的任务,因此比层级1更具挑战性。层级2的任务是基于语音的NLP任务,包括语音关键词提取(KE),评估基于语音内容提取的关键词的准确性;基于口语查询的问题回答(SQQA),评估根据语音中的问题检索的常识知识;基于语音的槽填充(SF),评估从语音内容中获得的所需槽值(通常是命名实体)的准确性。还包括两个AST任务,En2De(英语到德语)和En2Ja(英语到日语),它们也被视为跨模态突现能力,因为指令调优中仅训练了En2Zh。SALMONN的主干LLM Vicuna可以根据语音转录执行所有层级2的任务,因此SALMONN将以完全端到端的方式实现这些任务,而无需任何显式的语音识别。
任务层级3是最具挑战性的任务,包括基于音频的故事讲述(Story)和语音音频共同推理(SAC)。基于音频的故事讲述是根据来自一般音频输入的听觉信息编写有意义的故事。SAC要求模型理解嵌入在输入音频片段中的口语问题,从背景音频事件或音乐中寻找证据,并根据此进行推理以回答问题。根据我们的知识,这两个层级3的任务是首次在本文中提出的,要求SALMONN以完全端到端的方式感知语音、音频和音乐,并根据听觉信息进行理解和推理。
表2列出了所有测试集及其评估指标。跟随率(FR)是某些层级2和层级3任务的额外指标,测量SALMONN能够成功遵循指令的百分比。考虑到所选任务复杂,且更容易因任务过拟合导致指令违反,因此引入FR。值得注意的是,我们仅通过计算故事中不同单词的数量来计算故事任务的多样性指标,这仅代表故事的丰富性,而非质量
实验结果
所有15个任务的完整结果:
表3展示了SALMONN在所有15个任务上的结果。从结果来看,无论是否进行激活调优,SALMONN在所有一级任务上都能产生竞争力的结果。然而,未进行激活调优的模型在二级和三级任务上表现严重受限,几乎无法执行。特别是在SQQA、故事和SAC等强调多模态交互的任务中,未调优的SALMONN几乎无法遵循指令。进行激活调优后,SQQA、SF、故事和SAC任务的执行成功率显著提高。图2展示了在激活调优不同训练步骤中,模型在ASR和PR、SQQA、故事和SAC任务上的表现变化趋势,表明激活调优只需少量训练样本和步骤即可激活新兴能力:ASR和PR的结果几乎保持不变,而SQQA、故事和SAC的结果则出现了新兴趋势。由于篇幅限制,结果的更详细分析在附录B中讨论。
降低LoRA缩放因子的影响:
本节探讨在未进行激活调优的情况下,测试时降低LoRA缩放因子对缓解任务过拟合问题的影响。如图3所示,当LoRA缩放因子降至约2.0,即其原始值的一半时,模型突然展现出跨模态推理能力,这与%PER的下降一起证明了LoRA中嵌入的内在条件语言模型的存在。
任务过拟合与激活调优分析:
为了验证内在条件语言模型的影响,我们计算了每个激活调优阶段步骤的困惑度(PPL)。具体而言,对于给定的音频 X,使用基于特定任务的文本指令提示I 的教师强制方法计算与探测任务对应的 Y 序列的概率,或在不使用 I 的情况下进行计算。
如图4所示,比较了故事/SAC任务的真实响应(通过折扣LoRA缩放因子生成)与由于任务过拟合而导致模型错误执行的任务响应(本例中为AAC)。在子图(a)和(b)中,计算 PΛ(Y∣X) 时未使用文本指令提示,结果显示未进行激活调优时,AAC的 Y 的PPL明显低于Story/SAC的 Y。在激活调优过程中,这些任务之间的PPL差距得到缓解,表明对主导AAC任务的偏向显著降低。在子图(c)和(d)中,我们探测了带有Story和SAC指令的 PΛ(Y∣X,I)。结果表明,在激活调优之前,即使文本指令提示是执行Story/SAC,AAC的PPL仍低于Story/SAC,这解释了模型未能遵循指令的原因。在激活调优过程中,Story/SAC的 Y 的PPL值逐渐低于AAC,最终模型能够执行指令任务。
使用不同任务和数据的激活调优:
我们探索了几种激活方法来激活模型,包括基于音频编写的长故事、带有长答案的文本问答(QA)任务对,以及长语音转录的ASR任务。这三种方法都对LoRA和Q-Former进行了微调。通过忽略Q-Former和音频输入,Vicuna和LoRA被微调为适应的文本基础LLM。作为另一对照组,进行了使用LoRA和Q-Former但不微调Q-Former的实验。
结果如表4所示。从结果来看,ASR(长)即用长标签训练的ASR任务,或仅基于文本提示输入的故事(文本基础)都无法激活模型。而使用长答案的故事或QA训练(故事或QA(长))则能够激活模型。这是因为ASR任务强调提高高质量的跨模态对齐,使得分布更加偏向内在条件语言模型。至于基于文本的故事微调,实际上影响的是P(Y∣Tx,I) 而不是 P(Y∣X,I),其中Tx 是语音的参考文本。因此,基于文本的训练无法缓解任务过拟合。带有长答案的QA数据能够激活LLM,但激活模型的性能不如使用故事任务激活的模型,尤其导致生成响应的重复率较高。这可能是因为QA任务的配对答案多样性低于故事任务,从而导致内在条件LM PΛ(Y∣X) 的正则化效果不如预期。