近年来,随着人工智能浪潮的推动,语音识别技术取得了迅猛发展。其中,基于自监督预训练的语音模型凭借其卓越的性能和出色的鲁棒性,已成为学术界与工业界的研究热点。然而,这类模型的参数量动辄达到数亿级别,计算资源消耗极为庞大,这直接限制了它们在许多实际应用场景——尤其是移动设备上的部署与推广。
本文将探讨清华大学语音与音频技术实验室(SATLab)在信号处理领域顶级期刊IEEE Journal of Selected Topics in Signal Processing (JSTSP)上发表的一项研究成果。该研究提出了一种针对无监督预训练语音大模型的全新压缩方案:将非结构化剪枝与截断奇异值分解相结合,旨在实现硬件通用性良好、压缩损失极小的模型精简。实验结果表明,该方法在语音识别任务上的表现显著优于知识蒸馏和结构化剪枝等传统基准方法。

论文链接:https://doi.org/10.1109/JSTSP.2024.3433616
背景:非结构化与结构化剪枝
以HuBERT、WavLM为代表的无监督语音预训练模型,在表征能力和稳健性方面表现优异。只需借助少量标注数据进行微调,便能在多种语音任务中取得令人满意的效果。然而,一个现实难题是:模型参数量过大,难以部署在算力受限的移动设备上。因此,为这类模型进行“瘦身”已成为一个关键研究课题。
模型剪枝是主流的压缩方法之一。其基本原理是通过移除网络中不重要的参数来减少参数量,进而降低存储负担并提升计算速度。根据剪枝的最小单元不同,该方法可分为两类:非结构化剪枝和结构化剪枝。前者以单个参数为独立单元,后者则以连续的参数组——例如矩阵的行或列——作为基本单元。
这两种方法各有利弊。非结构化剪枝的自由度更高,不易误伤真正关键的核心参数,因此性能损失相对较小。然而,剪枝后生成的是稀疏矩阵,若想实现计算加速,必须依赖特定的硬件或计算库,使用门槛较高。相比之下,结构化剪枝可直接缩小矩阵尺寸,硬件适配性出色,但性能损失往往更为显著。
为了在硬件适配性与压缩后模型性能之间取得平衡,该研究尝试了一个巧妙的思路:利用截断奇异值分解,将非结构化稀疏矩阵转换为更小的稠密矩阵,并通过引入核范数正则化、可学习奇异值分解等设计,实现了近乎无损的转换效果。
主要方法:结合剪枝和矩阵分解
非结构化剪枝所得到的稀疏矩阵,可能天然具备低秩特性。一些理论研究表明,矩阵的稀疏度会对其秩的上界产生影响。
下图对比了HuBERT模型中注意力层和线性层矩阵在剪枝前后奇异值分布的变化。不难发现,剪枝后稀疏矩阵的奇异值整体呈现出下降趋势。从数学角度分析,截断奇异值分解会生成一对较小的稠密矩阵,其乘积与原矩阵之间的误差正是被丢弃的奇异值之和。这意味着,对稀疏矩阵进行截断奇异值分解,重构误差更小,对性能的影响自然也更加可控。

不过,低秩性并非稀疏矩阵的必然属性——举个简单例子,对角矩阵虽然极其稀疏,但同时也具备满秩特性。此外,非结构化剪枝模型中的矩阵,有些可能是低秩的,而另一些则可能并非如此。
为确保剪枝过程中低秩结构的存在,该研究引入了核范数正则化,在模型性能与低秩性之间寻求平衡。同时,研究人员还设计了一种可学习的奇异值选择策略,使模型能够根据每个矩阵的具体情况,自动确定最合适的SVD截断比例。整个方法的流程大致如下:

核范数正则化
核范数是矩阵秩的最优凸近似,其定义为矩阵所有奇异值之和。实验过程中发现一个有趣的现象:在剪枝训练后期,随着模型稀疏度逐渐趋于稳定,识别率有所提升,但核范数却呈现出上升趋势。
具体而言,在训练末期,识别错误率随着网络从剪枝损失中恢复而下降,但核范数却在同步上升,这表明矩阵的秩也在随之提高。

尽管充分训练的模型在性能上表现更优,但秩的上升会导致截断SVD重构误差增大,这可能完全抵消训练所带来的性能增益。因此,该研究将矩阵的核范数作为额外的正则化项,通过限制核范数,引导模型在学习过程中朝向稀疏且低秩的结构方向发展。
此外,计算核范数需要进行奇异值分解,时间复杂度较高。为此,研究团队采用了一种近似快速算法,将计算复杂度从矩阵维度的三次方降低到二次方,显著提升了实用性。
可学习的奇异值选择策略
在进行截断SVD时,为所有矩阵使用统一的截断比例显然不够合理。语音预训练模型各层之间的差异极大,即使稀疏度相同,不同层的矩阵秩也可能截然不同。更值得注意的是,同一层中,前馈层的矩阵与注意力层的矩阵,其秩也可能存在显著差异。

从上图中稀疏HuBERT模型各层矩阵的奇异值分布也可以看出,核范数在层间的分布并不均匀,这意味着各层的秩也存在明显差异。例如,FFN层的矩阵中,最顶层的秩远低于靠近输入的最底层。
针对这一挑战,该研究为网络中每一个矩阵的每一个特征值单独设计了一个剪枝掩码,并通过额外的L0正则化项对这些掩码进行优化,最终学习出每个矩阵的最优奇异值移除比例。
实验结果概览
研究团队在四类不同任务上验证了该方法的效果。下表对比了在语音识别、关键词检测、意图识别和说话人日志化这四项任务中,稀疏+分解方法相对于原始模型和非结构化剪枝模型的表现。

实验中,稀疏模型移除了80%的参数量,分解模型保留了10%的奇异值,两者的非零参数量相近。
结果表明,在所有任务中,所提出的结合非结构化剪枝与矩阵分解的压缩方法,均达到了接近甚至超越非结构化稀疏模型的性能水平,这表明该方法能够几乎无损地将非结构化的稀疏模型转化为硬件友好的压缩稠密模型。后续的消融实验也进一步确认,无论是移除可学习的奇异值选择策略,还是去除核范数正则化,都会导致性能出现明显下降。
在与蒸馏和剪枝基线模型的对比中,研究团队选择了硬件适配性较好的蒸馏模型DistilHuBERT和结构化剪枝模型DPHuBERT。结果显示,在更为复杂的ASR任务上,由于压缩损失更为敏感,直接采用知识蒸馏或结构化剪枝往往会导致更大的性能损失。而该研究提出的方法从压缩损失更小的非结构化剪枝入手,利用截断奇异值分解实现近乎无损的转换,最终更好地保留了原始模型的性能。
