摘要
语音语言模型在生成逼真语音方面取得了显著进展,其中神经编解码器语言模型脱颖而出。然而,人们往往忽视了整合人类反馈以使语音输出与人类偏好保持一致。本文首先分析了编解码器语言模型中的分布差距,强调了它如何导致训练和推理阶段之间的差异,从而对性能产生负面影响,以此来解决这一差距。然后,我们探索利用从人类反馈中学习来弥合分布差距。我们引入了 SpeechAlign,这是一种迭代自我改进策略,可将语音语言模型与人类偏好保持一致。SpeechAlign 涉及构建偏好编解码器数据集,将标准编解码器token与合成token进行对比,然后进行偏好优化以改进编解码器语言模型。这个改进周期是迭代进行的,以稳步将弱模型转换为强模型。通过主观和客观评估,我们表明 SpeechAlign 可以弥合分布差距并促进语音语言模型的持续自我改进。此外,SpeechAlign 表现出强大的泛化能力,适用于较小的模型。代码和模型将在 https://github.com/0nutation/SpeechGPT 上提供。
1.Introduction

大型语言模型 (LLM) 通过预训练、有监督微调 (SFT) 和从人类反馈中强化学习 (RLHF) 等技术展示了其强大的能力。语音语言建模领域取得了重大进展,特别是随着采用音频编解码器等离散语音表示。然而,当前的语音语言模型主要关注与增强 LLM 的指令遵循能力相关的 SFT 阶段,而忽略了整合人类反馈以使语音输出与人类对质量、自然度和表现力的偏好保持一致。幸运的是,从人类反馈中学习已成为将 LLM 输出分布与人类期望保持一致的强大解决方案。最成功的方法是从人类反馈中强化学习 (RLHF),通过整合奖赏建模和强化学习阶段来实现这一目标。此外,一些计算效率高的替代方案已被证明能够有效地调整 LLM 行为,而无需明确的奖赏建模。
基于 LLM 的语音语言模型成功的关键在于利用将语音表示离散化的音频编解码器。利用音频编解码器的神经编解码器语言模型已证明其在语音生成任务中的有效性。它主要采用分层方法,由自回归 (AR) 和非自回归 (NAR) 模型的管道组成,如图 3 (a) 所示。AR 模型生成语义token或编解码器第一层的token,称为 AR token。这些 AR token作为 NAR 模型的输入,以生成声学token或编解码器标记的后续层,称为 NAR token。然而,这个pipline系统在编解码器语言模型的训练和推理阶段之间引入了差异。在训练中,NAR 模型的输入是来自真实语音的标准 AR token。然而,该模型在推理过程中接收由 AR 模型生成的合成 AR token。如第 2.3 节所示,这两类 AR token之间存在分布差距,这对 NAR 模型的性能产生不利影响。
我们能否通过学习人类反馈将编解码器语言模型的输出校准到真实的编解码器分布?为编解码器语言模型收集大量高质量的偏好数据集是一项挑战。首先,编解码器token通常以数字形式表示,人类无法直接理解,因此无法直接收集人类对这些token的偏好。此外,收集人类对语音的偏好以收集对编解码器token的反馈带来了多重挑战,包括不同人类标注者之间的不一致以及扩大数据集大小的难度。
我们提出了 SpeechAlign,一种将语音语言模型与人类偏好对齐的迭代式自我改进策略。为了避免对额外的人工标注数据的需求,我们通过将标准 AR token视为偏好数据、将合成 AR token视为非偏好数据来构建成对偏好编解码器数据集。并进行人工验证以确保其与人类偏好的一致性。在获得偏好数据集后,我们探索不同的偏好优化策略来改进编解码器语言模型。经过一个完整的循环,我们迭代地进行偏好数据集收集和偏好感知优化,以将弱编解码器语言模型不断转化为更强的编解码器语言模型。实验结果表明,SpeechAlign 可以持续提高语音语言模型的语音生成性能。
我们的贡献总结如下:
- 我们提出了 SpeechAlign,这是第一个通过学习人类反馈来对齐语音语言模型的方法。
- 我们提出了一种迭代自我改进策略,无需额外的人工标注数据即可将弱编解码器语言模型转换为更强大的编解码器语言模型。
- 我们分析了编解码器语言模型中的分布差距问题,并探索了弥合差距的各种策略。
2.Preliminary Analysis on Distribution Gap
在本节中,我们进行了初步实验来分析真实和合成编解码器token之间的分布差距,并证明这种差距会降低编解码器语言模型的性能。
2.1 Background
我们构建了一个编解码器语言模型,称为 SpeechAlign-sft,作为分析分布差距的基线系统。与(Zhang et al., 2024; Budzianowski et al., 2024) 类似,我们依靠 SpeechTokenizer 来提取语音编解码器token。SpeechTokenizer 是一种基于残差矢量量化 (RVQ) 的语音tokenizer方法,并分层地解开不同 RVQ 层之间语音信息的不同方面。SpeechTokenizer 的输出包含 Q = 8 Q = 8 Q=8 个分层的 RVQ token ( q 1 , . . . , q Q ) (q_1, . . . , q_Q) (q1,...,qQ)。SpeechAlign-sft 由基于 SpeechGPT 的自回归 (AR) 模型和基于 SoundStorm 的非自回归 (NAR) 模型组成。AR 模型学习从输入标准文本到第一层编解码器token q 1 q_1 q1 的映射。我们继续在 LibriSpeech 数据集上对 (Zhan et al., 2024) 中预训练的 SpeechGPT 模型进行微调,以获得 AR 模型。有关训练过程的详细信息,如第 4.1 节所述。NAR 模型采用 SoundStorm 的训练和推理过程,并学习在第一层token和提示语音的基础上生成后续层的 SpeechTokenizer 标记。我们使用 (Zhan et al., 2024) 中预训练的 SoundStorm 模型。在推理时,AR 模型将输入文本转换为 AR token,NAR 模型使用这些token以及提示语音作为条件来生成 NAR token。然后,这些标记被 SpeechTokenizer 解码器连接起来并转换为语音。
2.2 Visualization of Distribution Gap

为了分析分布差距,我们从 LibriSpeech 数据集中随机选择 1000 个语音-文本对,并按照第 3.1 节中的过程构建由三元组
D
v
i
s
=
{
(
t
,
y
g
,
y
s
)
}
D_{vis} = \{(\textbf t, \textbf y_g, \textbf y_s)\}
Dvis={(t,yg,ys)} 组成的测试语料库。这里
t
\textbf t
t 是输入文本,
y
g
\textbf y_g
yg 是真实的 AR token,
y
s
\textbf y_s
ys 是 SpeechAlign-sft 生成的合成的 AR token。输入文本
t
\textbf t
t 与真实 AR token
y
g
\textbf y_g
yg 连接并输入到 SpeechAlign-sft 模型中。此过程产生序列中每个 AR token最后一层的隐藏状态。通过在时间维度上应用均值池化,这些隐藏状态被聚合以生成真实 AR token的单个向量表示
R
e
p
g
Rep_g
Repg。类似地,我们使用相同的过程获取合成 AR token的
R
e
p
s
Rep_s
Reps。使用 t-SNE 在 2D 空间中可视化向量,如图 2 (a) 所示。我们可以观察到,标准 AR token和合成 AR token的表示非常不同,它们自然形成两个不同的集群,表明它们之间存在显著的分布差距。
2.3 Distribution Gap Degrades Performance

NAR 模型使用真实 AR token作为输入进行训练,但在推理过程中,输入切换到合成 AR token。由于现有的分布差距,这会导致训练和推理过程之间出现差异,从而可能影响性能。为了深入研究这个问题,我们使用 NAR 模型进行了语音重建实验。我们构建了一个由三元组数据
D
t
e
s
t
=
{
(
z
,
y
g
,
y
s
)
}
D_{test} = \{(\textbf z, \textbf y_g, \textbf y_s)\}
Dtest={(z,yg,ys)} 组成的数据集,其中
y
g
\textbf y_g
yg 和
y
s
\textbf y_s
ys 在第 2.2 节中描述,
z
\textbf z
z 表示来自同一说话者的 3 秒提示语音,但与用于
y
g
\textbf y_g
yg 和
y
s
\textbf y_s
ys 的语音不同。NAR 模型通过将提示语音与真实 AR token或合成 AR token相结合作为输入来执行语音重建,分别为每种类型的token生成语音。根据字错误率 (WER) 和说话人相似性 (SIM) 指标来评估生成的语音的质量,并与基本事实进行比较。如表 1 所示,与合成 AR token生成的语音相比,真实 AR token生成的语音表现出更低的 WER 和更高说话人相似度得分。这一发现证明了分布差距对 NAR 模型的性能产生了不利影响。
3.SpeechAlign

我们以第 2.1 节中详细介绍的 SpeechAlign-sft 作为基线系统,称为
p
θ
0
p_{θ_0}
pθ0。在这个框架中,AR 模型表示为
p
θ
0
a
r
p^{ar}_{θ_0}
pθ0ar,NAR 模型表示为
p
θ
0
n
a
r
p^{nar}_{θ_0}
pθ0nar。如图 3 (b) 所示,SpeechAlign 的第一步是构建将真实编解码器token与合成编解码器token进行对比的偏好数据集。利用此数据集,我们实现各种偏好优化策略来对齐基线模型。这个过程是迭代执行的,从而实现编解码器语言模型的持续自我改进。
3.1 Preference Data Collection

收集人类偏好的标准方法是提示模型对问题产生两个不同的响应,然后要求标注者选择他们喜欢的响应。然而,收集人类对编解码器数据的偏好是不切实际且不可扩展的。相反,我们通过对比真实编解码器token与合成编解码器token来构建偏好编解码器数据集。具体来说,我们从 LibriSpeech 数据集中随机抽取
N
N
N 个语音-文本对
P
=
{
(
s
,
x
)
}
i
=
1
N
P = \{(\textbf s, \textbf x)\}^N_{i=1}
P={(s,x)}i=1N,其中
s
=
(
s
1
,
.
.
.
,
s
∣
s
∣
)
\textbf s = (s_1, ..., s_{|s|})
s=(s1,...,s∣s∣) 是语音,
x
=
(
x
1
,
.
.
.
,
x
∣
x
∣
)
x = (x_1, ..., x_{|x|})
x=(x1,...,x∣x∣) 是相应的转录文本,
N
N
N 为 50000。对于每个语音
s
s
s,我们采用预训练的 SpeechTokenizer 来提取离散表示并将第一个 RVQ 层的token表示为真实 AR token
y
g
\textbf y_g
yg。对于相应的转录文本
x
x
x,AR 模型
p
θ
0
a
r
p^{ar}_{θ_0}
pθ0ar 将其作为输入以生成合成 AR token
y
s
\textbf y_s
ys。按照上述步骤,我们可以得到偏好编解码器数据集
D
p
f
=
{
(
x
,
y
g
,
y
s
)
}
i
=
1
N
D_{pf} = \{(\textbf x, \textbf y_g, \textbf y_s)\}^N_{i=1}
Dpf={(x,yg,ys)}i=1N。
Human Verification。为了验证构建的偏好编解码器数据集的质量,我们通过从
D
p
f
D_{pf}
Dpf 中随机抽取 100 条并采用第 2.3 节中概述的相同过程将
y
g
\textbf y_g
yg 和
y
s
\textbf y_s
ys 转换回语音来进行人工验证。这样,人类就可以并排比较它们,并在语音质量和语音相似性方面选择更好的语音。从表 2 中的结果中,我们可以得出结论,人类更喜欢从真实 AR token重建的语音,而不是从合成 AR token重建的语音,这表明构建的偏好编解码器数据集与人类偏好有效一致。
3.2 Preference Optimization
在本节中,我们介绍如何使用偏好编解码器数据集进行偏好优化来对齐编解码器语言模型,包括 Chain-of-Hindsight、直接偏好优化、RLHF-PPO 和 Best-of-N 采样。
Chain-of-Hindsight (CoH)。通过将各种形式的反馈转换成句子并将其与相应的响应整合在一起,CoH 使模型能够从正面和负面反馈中学习,从而识别和纠正负面属性或错误。在推理时,模型会被引导根据提示中的反馈类型生成所需的输出。在我们的案例中,我们首先将反馈信号转换为描述性模板,然后通过将响应与相应的反馈模板相结合来构建训练数据,如下所示:

AR 模型通过偏好语料库
D
p
f
D_{pf}
Dpf 上的负对数似然损失进行优化,如下所示:
L
C
O
H
=
−
E
(
x
,
y
g
,
y
s
)
∼
D
p
f
[
l
o
g
p
θ
0
a
r
(
y
g
∣
x
,
T
g
)
+
l
o
g
p
θ
0
a
r
(
y
s
∣
x
,
T
s
)
]
L_{COH}=-\mathbb E_{(x,y_g,y_s)\sim D_{pf}}[log~p^{ar}_{\theta_0}(y_g|x,T_g)+log~p^{ar}_{\theta_0}(y_s|x,T_s)]
LCOH=−E(x,yg,ys)∼Dpf[log pθ0ar(yg∣x,Tg)+log pθ0ar(ys∣x,Ts)]
在推理阶段,我们以“高质量”的形式向模型提供正反馈,以指导模型产生有利的输出。
Direct Preference Optimization (DPO)。无需使用显式奖赏模型或强化学习,DPO 就可以微调模型以符合人类偏好。DPO 考虑了偏好相应相对于非偏好响应的可能性,并针对该目标优化了 LLM 模型。DPO 训练的提示模板如下:
在我们的情况中,DPO 损失如下:
L
D
P
O
=
−
E
(
x
,
y
g
,
y
s
)
∼
D
p
f
[
l
o
g
σ
(
l
o
g
p
θ
a
r
(
y
g
∣
x
,
T
)
p
r
e
f
a
r
(
y
g
∣
x
,
T
)
−
l
o
g
p
θ
a
r
(
y
s
∣
x
,
T
)
p
r
e
f
a
r
(
y
s
∣
x
,
T
)
)
]
L_{DPO}=-\mathbb E_{(x,y_g,y_s)\sim D_{pf}}[log\sigma(log\frac{p^{ar}_{\theta}(y_g|x,T)}{p^{ar}_{ref}(y_g|x,T)}-log\frac{p^{ar}_{\theta}(y_s|x,T)}{p^{ar}_{ref}(y_s|x,T)})]
LDPO=−E(x,yg,ys)∼Dpf[logσ(logprefar(yg∣x,T)pθar(yg∣x,T)−logprefar(ys∣x,T)pθar(ys∣x,T))]
其中
p
r
e
f
a
r
p^{ar}_{ref}
prefar是参考模型并用
p
θ
a
r
p^{ar}_{\theta}
pθar来初始化。
RLHF-PPO。RLHF 方法涉及在反映人类偏好的数据集上训练奖赏模型。然后应用 RL 算法来调整语言模型的策略,以支持获得高奖赏的响应,同时确保与原始模型行为的偏差最小。使用偏好数据集
D
p
f
D_{pf}
Dpf ,我们可以参数化奖赏模型
r
ϕ
(
x
,
y
)
r_ϕ(x, y)
rϕ(x,y) 并通过最大似然估计参数。通过将任务视为二分类,我们利用负对数似然损失:
L
r
m
=
E
(
x
,
y
g
,
y
s
)
∼
D
p
f
[
l
o
g
σ
(
r
ϕ
(
x
,
y
g
)
−
r
ϕ
(
x
,
y
s
)
)
]
L_{rm}=\mathbb E_{(x,y_g,y_s)\sim D_{pf}}[log~\sigma(r_{\phi}(x,y_g)-r_{\phi}(x,y_s))]
Lrm=E(x,yg,ys)∼Dpf[log σ(rϕ(x,yg)−rϕ(x,ys))]
其中
σ
σ
σ 是sigmoid函数。奖励模型
r
ϕ
(
x
,
y
)
r_ϕ(x, y)
rϕ(x,y) 由 AR 模型
p
θ
a
r
p^{ar}_θ
pθar 初始化,在最后一个 Transformer 层之上有一个线性层,以产生单个标量预测作为奖赏值。在 RL 阶段,我们使用 PPO 算法针对奖赏模型优化 AR 模型。特别地,我们将 AR 模型
p
θ
0
a
r
p^{ar}_{θ_0}
pθ0ar 细化为以下优化问题:
m
a
x
p
θ
0
a
r
E
x
∼
D
p
f
,
y
∼
p
θ
0
a
r
(
y
∣
x
)
[
r
ϕ
(
x
,
y
)
]
−
β
D
k
l
[
p
θ
0
a
r
(
y
∣
x
)
∣
∣
p
r
e
f
a
r
(
y
∣
x
)
]
\mathop{max}\limits_{p^{ar}_{\theta_0}}\mathbb E_{x\sim D_{pf},y\sim p^{ar}_{\theta_0}(y|x)}[r_{\phi}(x,y)]-\beta\mathbb D_{kl}[p^{ar}_{\theta_0}(y|x)||p^{ar}_{ref}(y|x)]
pθ0armaxEx∼Dpf,y∼pθ0ar(y∣x)[rϕ(x,y)]−βDkl[pθ0ar(y∣x)∣∣prefar(y∣x)]
其中
β
β
β 表示调节 KL 惩罚程度的系数,
p
r
e
f
a
r
p^{ar}_{ref}
prefar 是参考模型,并用
p
θ
a
r
p^{ar}_θ
pθar 进行初始化。
Best-of-N Sampling (BoN)。通过在偏好数据上训练奖赏模型,我们实施了一种 Best-of-N 方法来提高输出编解码器token的质量。具体来说,我们使用 AR 模型对 N 个响应进行采样。然后由奖赏模型评估这些响应,并选择获得最高奖赏分数的响应作为最终响应,作为 NAR 模型的输入。
3.3 Iterative Self-Improvement

按照上述步骤可得到更新后的 AR 模型,记为
p
θ
1
a
r
p^{ar}_{θ_1}
pθ1ar。使用这个更新后的模型,我们可以创建一个新的偏好编解码器数据集
D
p
f
D_{pf}
Dpf。然后,此数据集可作为通过偏好优化进一步改进 AR 模型的基础。AR 模型的迭代自我改进过程(如算法 1 中所述)可以不断校准输出分布,使其接近真实的编解码器标记分布。
4.Experiments

350

被折叠的 条评论
为什么被折叠?



