摘要
大语言模型 (LLM) 的最新进展彻底改变了自然语言处理 (NLP) 领域,逐步将其范围扩大到多模态感知和生成。然而,有效地将语音能力集成到 LLM 中带来了重大挑战,特别是在跨不同上下文进行泛化和执行复杂的听觉任务方面。在这项工作中,我们引入了 WavLLM,这是一种具有双编码器的强大且自适应的语音大语言模型,以及一个提示感知的 LoRA 权重适配器,通过两阶段课程学习方法进行了优化。利用双编码器,我们将不同类型的语音信息分离,利用 Whisper 编码器处理语音的语义内容,利用 WavLM 编码器捕捉说话人身份的独特特征。在课程学习框架内,WavLLM 首先通过混合优化基本单任务来构建其基础功能,包括自动语音识别 (ASR)、语音翻译 (ST)、说话人验证 (SV)、情感识别 (ER)、指令调整 (IT) 和语音问答 (SQA),然后对更复杂的任务(例如基本任务的组合)进行高级多任务训练。为了增强灵活性和对不同任务和指令的遵循,在第二个高级多任务训练阶段引入了提示感知的 LoRA 权重适配器。我们在包括 ASR、ST、SV、ER 等任务的通用语音基准上验证了所提出的模型,并将其应用于专门的数据集,例如 SQA 的高考英语听力理解集和语音思维链 (CoT) 评估集。实验表明,所提出的模型在相同模型大小的一系列语音任务中实现了最先进的性能,在使用 CoT 方法执行复杂任务时表现出强大的泛化能力。此外,我们的模型无需经过专门训练即可成功完成高考英语听力理解任务。代码、模型、音频样本和高考评估集可在 aka.ms/wavllm 上找到。
1.介绍
大语言模型 (LLM) 在过去几年中取得了飞速发展,在众多自然语言处理 (NLP) 任务中达到甚至超过人类的熟练程度。这些令人印象深刻的能力归功于对大量训练数据集和大量模型参数的大规模训练,以及先进的训练方法,如指令遵循协议和从人类反馈中强化学习 (RLHF) 算法。随着大语言模型取得重大突破,人们的注意力越来越多地转向多模态大型语言模型 (MLLM) 的功能和进步,这些模型具有聆听、说话、查看和创建内容的能力。
在能力范围不断扩大的过程中,语音作为人类交流的重要形式脱颖而出,这促使大量研究为大型语言模型 (LLM) 配备语音感知功能。通常,LLM 会配备辅助音频编码器,用于预处理音频信号,将其转换为与 LLM 相同的输入空间,从而使其能够实现各种语音任务,例如自动语音识别 (ASR)、语音问答 (SQA) 等。然而,由于两个主要问题,先前的研究尚未克服实现有效泛化的重大挑战:(1) 专门任务对提示设计高度敏感,导致在面对未知或复杂的指令时性能下降;(2) 缺乏语音思维链 (CoT) 能力,而这对于解决复杂任务至关重要。
在本文中,我们提出了一个稳健且自适应的语音大语言模型 WavLLM,旨在增强泛化能力,有效遵循语音指令,并根据提供的文本提示处理给定的语音,以及支持多轮对话。具体来说,为了区分不同类型的语音信息,我们使用 Whisper 编码器对语音的语义内容进行编码,并使用 WavLM 编码器捕获声学信息,例如说话者身份的独特特征。在模型训练阶段,我们开发了一种课程学习方法,该方法逐步微调 LLM 以遵循理解和处理语音的指令,从简单任务开始,逐步推进到更复杂的任务。在最初的混合单任务训练阶段,我们利用由 GPT-4 生成的大量合成口语问答内容数据集,并针对各种以语音为中心的任务(例如自动语音识别 (ASR)、语音到文本翻译 (ST)、情感识别 (ER)、说话人验证 (SV) 等)进行定制,以使用低秩自适应 (LoRA) 技术微调 WavLLM。我们的初步实验表明,通过高效微调技术(例如 LoRA)将语音模态纳入 LLM 可能会导致训练任务(尤其是 ASR 任务)的过拟合,并导致对未未知或复杂指令的泛化能力不佳。为此,我们在高级多任务训练阶段引入了一种新的提示感知 LoRA 权重适配器。该适配器在专门构建的提示感知多任务数据集(例如基本任务的组合)上进行训练,可以根据不同的提示自适应地调整 LoRA 权重,目的是增强初始模型的泛化能力。
我们在以下几个方面对所提出的模型进行了评估:1)单任务,包括 a)通用语音基准,用于语音识别、说话人验证、情感识别和语音翻译;b)中国高考中基于口头查询的问答和英语听力理解测试,该测试呈现不同说话人之间的口头对话,并需要回答与对话相关的基于文本的单答案多项选择题;2)多任务,包括 c)指令无关的多任务数据集,该数据集在单个指令中结合了多个独立提示;d)语音 CoT 评估集,将复杂任务分解为多个子任务以进行有效评估。大量评估表明,我们提出的模型表现出强大的泛化和 CoT 能力,在广泛的语音相关任务中始终超越强基线。
总而言之,本文的贡献可归类如下:
- 配备了提示感知的 LoRA 权重适配器,我们引入了一种基于课程学习的训练方法,该方法可以逐步微调大语言模型,使其遵循具有强大语音处理和理解能力的指令,从简单的任务开始逐渐进展到更复杂的任务。
- 我们的模型将语音信息分解为语义和声学成分,采用 Whisper 编码器和 WavLM 编码器分别对它们进行建模,从而增强了语音表征并为下游任务带来了益处。
- WavLLM 在响应各种提示和完成复杂任务时表现出卓越的泛化能力。它在高考英语听力理解等零样本 SQA 中表现出色,并在基于 CoT 的任务中表现出色,比非 CoT 任务具有更高的性能。
2. Related Work
多模态大语言模型的探索涉及多种数据类型的集成,包括文本、图像、视频、语音、音频等。这是基于文本的大语言模型的自然发展,旨在通过集成文本以外的各种输入形式来实现对世界的感知和内容的创建。例如,Kosmos-1 和 GPT-4V 能够感知文本以外的一般模态,并按照用户提供的指令来处理和分析图像输入。另一个研究方向侧重于提高语言模型的多模态生成能力,使它们能够生成图像或视频等视觉内容,例如 MiniGPT-5 和 Sora。与这项工作相关的研究重点是语音增强大语言模型,旨在赋予 LLM 感知和处理语音信号的能力。
其中,SpeechGPT通过三阶段训练赋予大语言模型跨模态对话能力,以隐藏单元作为语音的离散表示,基于ASR数据和文本SFT数据构建语音文本跨模态指令跟随数据集;LLaSM通过预训练阶段和跨模态指令微调阶段,构建能够理解和跟随指令的大型中英文语音模型;SALMONN,以语音音频语言音乐开放神经网络命名,通过激活微调阶段利用LoRA缩放因子,赋予大型语模型通用听力能力;Qwen-audio将音频语言预训练扩展到30多个任务和各种音频类型,包括人声、自然声音、音乐、歌曲等。尽管它们在特定的语音任务上取得了令人印象深刻的成果,能够按照指令完成任务,但它们在复杂任务上的泛化能力较弱方面仍面临挑战。
Motivation。之前对语音大语言模型 (Speech LLM) 的研究主要集中在根据给定指令执行单个语音任务,而使用单个指令同时完成多个复杂语音任务的可行性仍未得到探索。使用多任务指令可以同时高效完成多个任务,并通过将复杂任务划分为逻辑相关的子任务(如 CoT 任务)来提高性能。
我们的初步实验表明:(1) 之前的开源语音 LLM 在多任务场景中表现不佳,表明这些模型推广到复杂指令的能力有限;(2) 降低 LoRA 缩放因子可能对多任务指令有益,但会导致训练任务结果大幅下降,这表明单个和多个任务可能受益于不同的 LoRA 缩放因子;(3) 在使用各种提示评估开源模型的 ASR 性能时,当模型遇到未知的或多样化的提示而不是已知的提示时,性能会明显下降(3.5% vs. 2.1%,见第 4.4 节)。因此,我们引入了一种从简单到复杂教学任务的课程学习方法,提出了一个提示感知的 LoRA 权重适配器,可根据指令动态调整 LoRA 输出的幅度,并通过在所有训练任务中利用 GPT-4 生成的各种提示来进一步增强泛化能力。
3.Method
在本节中,我们将首先介绍所提框架的模型架构(参见第 3.1 节),该架构由带模态适配器的双语音编码器和带 prompt-aware LoRA 权重适配器的 LLM 组成。在第 3.2 节中,我们概述了基于课程学习的训练阶段,这些阶段最初使 LLM 具备强大的语音处理和理解能力。随后,在第二个高级多任务训练阶段,该模型增强了跨复杂多任务指令进行泛化的能力,同时又不影响其在单个语音任务上的性能。通过最大化以下概率来优化 WavLLM:
p
(
Y
∣
[
X
,
T
]
;
θ
)
=
∏
t
=
0
T
Y
p
(
y
t
∣
[
X
,
T
,
Y
<
t
]
;
θ
)
(1)
p(\textbf Y|[\textbf X,\textbf T];\theta)=\prod^{T_Y}_{t=0}p(y_t|[X,T,Y_{\lt t}];\theta)\tag{1}
p(Y∣[X,T];θ)=t=0∏TYp(yt∣[X,T,Y<t];θ)(1)
其中
X
X
X 和
T
T
T 分别为语音输入和文本提示。
Y
=
[
y
1
,
y
2
,
.
.
.
,
y
T
Y
]
Y = [y_1, y_2, ..., y_{T_Y}]
Y=[y1,y2,...,yTY] 是目标文本输出。
θ
\theta
θ 表示 WavLLM 的参数。WavLLM 训练数据的详细模板可在附录 D 中找到。
3.1 Model Architecture
我们的框架的模型架构如图 1 所示,它由语音编码器(即 Whisper 和 WavLM)以及模态适配器、大语言模型(即 LLaMA)和提出的提示适配器组成。
Speech Encoders and Modality Adapters。为了提取语音中的语义和声学信息,我们使用了两种最先进的语音编码器,即 Whisper 和 WavLM。Whisper 以弱监督方式在大量 680k 小时的语音语料库上进行 ASR 和 ST 任务训练,这些语料库是在各种条件下录制的,因此非常适合编码语音中的语义信息。WavLM 是一种基于预测的自监督学习 (SSL) 预训练模型。在预训练阶段,WavLM 将每个话语与同一批次中多个说话人的信号混合,但有选择地仅预测与话语原始说话人相关的目标。这种训练方法使 WavLM 能够更好地提取与说话人相关的声学信息。在我们的工作中,使用了基于 32 层 Transformer 的编码器 Whisper-large-v2 和 WavLM-base。两种模态适配器都有三个组件,包括两个 1-D 卷积层(用于在时域内对两个编码器的输出进行下采样和对齐)、一个从下到上瓶颈适配器和一个最终线性投影层。语义适配器从 Whisper 编码器的输出接收输入,而声学适配器则从 WavLM 的所有层中获取隐藏状态的加权和,其中权重是可学习的。两个适配器的输出在前馈到线性投影层之前连接在一起。
LLM, LoRA and Prompt Adapter。我们的框架利用 LLaMA-2-7B-chat 作为 LLM 主干,具有 32 层 Transformer 解码器,注意力维度为 4096,专门针对对话相关用例进行了优化。为了将语音模态集成到 LLM 中,我们采用了称为 LoRA 的参数高效微调方法,该方法专门应用于 LLaMA 注意力模块中的key、value、query和output权重矩阵。
为了针对不同的单任务和多任务指令实现自适应 LoRA 缩放因子,受到 Houlsby et al. [2019] 中的适配器层的启发,我们设计了一种在线自适应策略,通过引入具有注意力权重的从下到上提示感知的 LoRA 权重适配器(又名提示适配器),旨在调节 LoRA 对 LLaMA 的影响,如图 1 所示。这是通过在 LoRA 与 LLaMA 交互之前,针对提供的指令生成
D
D
D 维定制参数来实现的,其中
D
D
D 是 LoRA 表示的维度。如图 1 所示,给定长度为
M
M
M 的基于文本的提示
T
T
T,我们可以得到 LLAMA 的表示
t
∈
R
D
×
M
,
t
=
f
(
T
;
θ
L
L
a
M
A
)
\textbf t ∈ \mathbb R^{D×M}, \textbf t = f(T ; \theta_{LLaMA})
t∈RD×M,t=f(T;θLLaMA),并且该表示被输入到提示适配器中以获得 LoRA 缩放因子
r
∈
R
D
×
1
\textbf r ∈ \mathbb R^{D×1}
r∈RD×1:
r
=
g
(
t
;
θ
p
r
o
m
p
t
_
a
d
a
p
t
e
r
)
(2)
\textbf r=g(\textbf t;\theta_{prompt\_adapter})\tag{2}
r=g(t;θprompt_adapter)(2)
=
S
o
f
t
m
a
x
(
I
D
(
W
A
o
)
)
⊙
o
I
M
(3)
=Softmax(\textbf I_D(\textbf W_A\textbf o))\odot \textbf o\textbf I_M\tag{3}
=Softmax(ID(WAo))⊙oIM(3)
o
=
P
u
G
e
L
U
(
P
d
t
)
(4)
\textbf o=\textbf P^uGeLU(\textbf P^d\textbf t)\tag{4}
o=PuGeLU(Pdt)(4)
其中
W
A
∈
R
1
×
D
\textbf W_A ∈ \mathbb R^{1×D}
WA∈R1×D 是注意力权重矩阵,
I
D
(
W
A
o
)
∈
R
D
×
M
\textbf I_D(\textbf W_A\textbf o) ∈ \mathbb R^{D×M}
ID(WAo)∈RD×M 是隐藏状态
o
∈
R
D
×
M
\textbf o ∈ \mathbb R^{D×M}
o∈RD×M 的非正则化权重。
I
D
∈
R
D
×
1
\textbf I_D ∈ \mathbb R^{D×1}
ID∈RD×1 和
I
M
∈
R
M
×
1
\textbf I_M ∈ \mathbb R^{M×1}
IM∈RM×1 是全 1 向量。
P
u
∈
R
D
×
K
\textbf P^u ∈ \mathbb R^{D×K}
Pu∈RD×K 和
P
d
∈
R
K
×
D
\textbf P^d ∈ \mathbb R^{K×D}
Pd∈RK×D 分别是上线性投影层和下线性投影层,GeLU 是 GeLU 激活函数。配备自适应 LoRA 的注意力层的隐藏状态表示为:
h
=
W
0
x
+
(
BAx
)
⊙
(
r
I
M
+
N
T
)
(5)
\textbf h=\textbf W_0\textbf x+(\textbf B\textbf A\textbf x)\odot(\textbf r\textbf I^T_{M+N})\tag{5}
h=W0x+(BAx)⊙(rIM+NT)(5)
其中
x
∈
R
D
×
(
N
+
M
)
\textbf x ∈ \mathbb R^{D×(N+M)}
x∈RD×(N+M) 表示来自长度为
N
N
N 的语音输入
X
\textbf X
X 和文本提示
T
\textbf T
T 的注意力层的输入。
B
∈
R
D
×
R
\textbf B ∈ \mathbb R^{D×R}
B∈RD×R 和
A
∈
R
R
×
D
\textbf A ∈ \mathbb R^{R×D}
A∈RR×D 是 LoRA 参数,
W
0
∈
R
D
×
D
\textbf W_0 ∈ \mathbb R^{D×D}
W0∈RD×D 是注意力层中的权重矩阵。
I
M
+
N
∈
R
(
M
+
N
)
×
1
\textbf I_{M+N} ∈ \mathbb R^{(M+N)×1}
IM+N∈R(M+N)×1 是全 1 向量。
3.2 Curriculum Learning
在本节中,我们提出了基于两阶段课程学习(CL)的训练方法,该方法有助于从学习简单数据到理解复杂数据,从而增强模型的泛化能力。
3.2.1 Mixed Single-Task Training Stage
在第一阶段,利用各种单任务、跨模态、语音文本配对数据集或纯文本数据集,赋予 LLM 强大的语音处理和理解能力。我们冻结了 LLM、WavLM 和 Whisper 编码器的参数,并优化了大型语言模型中的模态适配器、线性层和 LoRA 组件。
Data Construction。第一阶段的混合单任务训练涉及各种语音任务,包括自动语音识别 (ASR)、语音到文本翻译 (ST)、说话人验证 (SV)、情感识别 (ER)、基于口语的指令微调和基于文本的指令微调 (IT) 任务,以及大量 GPT 生成的语音问答 (SQA)。SQA 任务中有各种问题,包括与说话人和性别有关的问题,以及延续和总结任务。同时,这些任务利用了多个数据集,包括带有英语阅读语音的 LibriSpeech、带有多方谈话者会议录音的 AMI,以及带有双通道英语电话对话的 Fisher 和 Switchboard 语料库。使用 GPT-4 生成数据的训练数据和提示的示例分别可以在附录 A.1 和 A.3 中找到。
我们使用 Microsoft Azure 文本转语音 API 生成基于口语的指令微调任务的语音音频片段。在表 1 中,我们列出了有关描述、数据源和数据时间的详细任务信息。
3.2.2 Advanced Multi-Task Training Stage
由于文本和语音模态之间的不一致性,在大量提示重复的语音文本数据(如ASR和ST任务)上使用LoRA方法进行大规模微调,可能会导致模型在特定语音任务上过拟合,从而削弱LLM强大的指令跟随能力。例如,该模型在处理多任务指令时表现不佳,通常只能完成分配任务的一部分。具体来说,如果任务中包括ASR,模型可能只完成ASR部分,而无法处理其余指令。
为此,我们在第二阶段构建了一个更复杂的提示感知多任务数据集,整合了各种单任务指令。在此训练阶段,多任务和单任务数据集将同时使用。此外,我们注意到,简单地加入更具挑战性的训练数据,可能会略微降低单任务指令(如ASR)的性能,较第一阶段的训练结果有所下降。因此,我们引入了一个提示适配器,如第3.1节所示,为不同的指令和任务生成自适应的LoRA缩放系数,并作为一种有效的方法,同时增强模型的泛化能力。
Data Construction。给定一个语音音频片段,我们将该音频片段的不同任务提示以及基于文本的指令调优任务结合在一起作为指令,然后训练目标是按顺序完成任务,并在给出响应之前重复每个提示的关键部分。例如,对于LibriSpeech中的一个话语,可以将ASR、SQA和基于文本的IT(t-IT)任务结合为一个多任务数据集。请参阅附录A.2了解具体示例。在我们的工作中,总共使用了2.9K小时的各种多任务数据,包括ER+t-IT、ASR+t-IT、ST+t-IT、SV+t-IT、SQA+t-IT、ASR+ST、ASR+SQA、ASR+ST+t-IT和ASR+SQA+t-IT结合任务,这些任务总结在表1中。
4.Experiments