压缩语言模型的词嵌入矩阵
像BERT、RoBERTa和DeBERTa这样的预训练语言模型(PLM)在经过任务特定数据微调后,在自然语言推理、情感分类和问答等多样化自然语言任务中展现出卓越性能。PLM通常包含词嵌入矩阵、具有注意力机制的深度神经网络和输出层。由于词汇表规模庞大,词嵌入矩阵往往构成模型的相当大部分:例如,它占BERT模型大小的21%以上,占RoBERTa的31.2%。此外,由于词频差异,词嵌入矩阵包含大量冗余。因此,任何能够压缩词嵌入矩阵的技术都有可能补充其他模型压缩方法,从而提高压缩比。
在今年的知识发现与数据挖掘会议(KDD)上,我们团队提出了一种压缩PLM词嵌入矩阵的新方法,该方法结合了低秩近似、新型残差二进制自编码器和全新的压缩损失函数。我们在自然语言理解和问答任务上评估了名为LightToken的方法,发现其词嵌入压缩比(未压缩矩阵大小与压缩矩阵大小之比)达到25,而性能最佳的前代方法仅达到5。同时,LightToken相比现有矩阵压缩方法实际上提高了准确性,在GLUE基准上超出11%,在SQuAD v1.1上超出5%。
理想特性
压缩PLM词嵌入矩阵的理想方法应具备以下特征:(1)任务无关性,确保在不同下游任务中有效应用;(2)模型无关性,允许作为模块化组件无缝集成到各种骨干模型中;(3)与其他模型压缩技术的协同兼容性;(4)高压缩比且模型性能下降极小。LightToken满足这些标准,以既独立于特定任务又独立于特定模型的方式生成压缩词嵌入。
秩k SVD近似
许多先前研究强调了奇异值分解(SVD)在有效压缩模型权重矩阵方面的效力。SVD将矩阵分解为三个矩阵,其中一个是对角矩阵。对角矩阵中的条目——奇异值——指示每个变量解释的数据方差量。通过仅保留高奇异值,可以将高维数据投影到低维子空间。词嵌入矩阵通常具有相对较少的奇异值。因此,我们方法的第一步涉及使用SVD实现词嵌入矩阵的秩𝑘近似,其中𝑘较小。
残差哈希
在实验中,我们发现仅依赖秩k压缩矩阵虽然提供了实质性压缩,但严重损害了下游任务的性能。因此LightToken还使用残差二进制自编码器来编码完整词嵌入矩阵与从秩k压缩矩阵重构的矩阵之间的差异。
自编码器被训练输出与其输入相同的值,但在此过程中,它们生成输入的压缩向量表示。我们将这些表示约束为二进制:即哈希码。然而,二进制码是不可微的,因此在模型训练期间,为了使用标准梯度下降学习算法,我们必须用温和的sigmoid激活函数近似二进制值,这些函数在低值和高值之间具有陡峭斜率。
在多个训练周期中,温和sigmoid倾向于饱和:网络中的每个节点对每个输入都激活,阻止网络学习非线性函数。因此我们创建了一种新颖的训练策略,其中自编码器训练到接近饱和点,然后针对旧残差与新哈希码之间的残差进行训练。最终哈希码实际上是哈希码的串联,每个哈希码编码前一个码的残差。
损失函数
通常,像我们这样的模型会被训练以最小化重构词嵌入矩阵与未压缩矩阵之间的欧几里得距离。但我们发现欧几里得距离在某些自然语言处理(NLP)任务和训练集较小的任务上产生较差性能。我们假设这是因为欧几里得距离对嵌入空间中向量之间的角度关注不足,而在NLP任务中,角度可以携带语义信息。因此我们提出了一种新的重构损失,作为欧几里得距离的上限。该损失通过重新校准余弦相似度,鼓励模型优先考虑原始嵌入和压缩嵌入之间的对齐。
实验结果
我们在两个基准数据集上进行了全面实验:GLUE和SQuAD 1.1。结果清楚地证明了LightToken相对于现有基线的显著优越性。具体而言,LightToken实现了令人印象深刻的25倍压缩比,同时保持精度水平。此外,当压缩比升至103时,产生的精度损失与原始基准相比仍保持在 modest 的6%偏差范围内。