4.3_参数选择方法

4.3 参数选择方法

参数选择方法(Parameter Selection Methods)选择性的对预训练模型中的某个参数子集进行微调。和参数附加方法不同的是,参数选择方法无需向模型添加额外的参数,避免了在推理阶段引入额外的计算成本。通常,参数选择方法分为两类:基于规则的方法和基于学习的方法。

4.3.1 基于规则的方法

基于规则的方法根据人类专家的经验,确定哪些参数应该被更新。基于规则的方法中最具代表性的方法是BitFit[50]。BitFit通过仅优化神经网络中的每一层的偏置项(Biases)以及任务特定的分类头来实现参数高效微调。由于偏置项在模型总参数中所占比例极小(约 0.08%0.09%0.08\% - 0.09\% ),BitFit有极高的参数效率。尽管只微调少量参数,BitFiT依然能在GLUE Benchmark[44]上与全量微调相媲美,甚至在某些任务上表现更好。此外,BitFit方法相比全量微调允许使用更大的学习率,因此该方法整体优化过程更稳定。然而,该方法仅在小模型(如BERT、RoBERT等)上进行验证性能,在更大模型上的性能表现如何尚且未知。

除BitFit以外,还有一些其他基于规则的方法通过仅微调特定的Transformer层来提高参数效率。例如,Lee等人[22]提出,仅对BERT和RoBERTa的最后四分之一层进行微调,便能实现完全参数微调 90%90\% 的性能。PaFi[26]选择具有最小绝对值的模型参数作为可训练参数。

4.3.2 基于学习的方法

基于学习的方法在模型训练过程中自动地选择可训练的参数子集。其中,最为典型方法是Child-tuning[49]。其通过梯度掩码矩阵策略实现仅对选中的择子网络进行梯度更新,而屏蔽子网络梯度以外的梯度,从而实现对微调参数的选择,达到参数高效微调的目的。具体而言,假设 Wt\mathbf{W}_t 是第 tt 轮迭代的参数矩阵,我们引入了一个与 Wt\mathbf{W}_t 同维度的0-1掩码矩阵 Mt\mathbf{M}_t ,用于选择第 tt 轮迭代的子网络 Ct\mathbf{C}_t ,仅更新该子网络的参数,其定义如下:

Mt(i)={1,i fWt(i)Ct0,i fWt(i)Ct(4.5)\mathbf {M} _ {t} ^ {(i)} = \left\{ \begin{array}{l l} 1, & \text {i f} \mathbf {W} _ {t} ^ {(i)} \in \mathbf {C} _ {t} \\ 0, & \text {i f} \mathbf {W} _ {t} ^ {(i)} \notin \mathbf {C} _ {t} 。 \end{array} \right. \tag {4.5}

其中, Mt(i)\mathbf{M}_t^{(i)}Wt(i)\mathbf{W}_t^{(i)} 分别是矩阵 Mt\mathbf{M}_tWt\mathbf{W}_t 在第 tt 轮迭代的第 ii 个元素。此时,梯度更新公式为:

Wt+1=Wtη(L(Wt)WtMt),(4.6)\mathbf {W} _ {t + 1} = \mathbf {W} _ {t} - \eta \left(\frac {\partial \mathcal {L} (\mathbf {W} _ {t})}{\partial \mathbf {W} _ {t}} \odot \mathbf {M} _ {t}\right), \tag {4.6}

Child-tuning 提供了两种生成子网络掩码 M\mathbf{M} 的方式,由此产生两种变体模型:Child-tuning F_F 和 Child-tuning D_D 。Child-tuning F_F 是一种任务无关的变体,它在不依赖任何下游任务数据的情况下选择子网络。在每次迭代时,Child-tuning F_F 从伯努利分布中抽取0-1掩码,生成梯度掩码 Mt\mathbf{M}_t

MtBernoulli(pF),(4.7)\mathbf {M} _ {t} \sim \operatorname {B e r n o u l l i} \left(p _ {F}\right), \tag {4.7}

其中, pFp_F 是伯努利分布的概率,表示子网络的比例。此外,Child-tuning FF 通过引入噪声来对全梯度进行正则化,从而防止小数据集上的过拟合,并提高泛化能力。

Child-tuning DD 是一种任务驱动的变体,它利用下游任务数据来选择与任务最相关的子网络。具体来说,Child-tuning DD 使用费舍尔信息矩阵(FIM)来估计特定任务相关参数的重要性。具体地,对于给定的任务训练数据 D\mathcal{D} ,模型的第 ii 个参数矩阵 W(i)W^{(i)} 的费舍尔信息估计为:

F(i)(W)=1Dj=1D(logp(YjXj;W)W(i))2,(4.8)F ^ {(i)} (W) = \frac {1}{| \mathcal {D} |} \sum_ {j = 1} ^ {| \mathcal {D} |} \left(\frac {\partial \log p \left(Y _ {j} \mid X _ {j} ; W\right)}{\partial W ^ {(i)}}\right) ^ {2}, \tag {4.8}

其中, XiX_{i}YiY_{i} 分别表示第 ii 个样本的输入和输出, logp(YiXi;W)\log p(Y_{i} | X_{i}; W) 是对数似然概率,通过计算损失函数对参数 W(i)W^{(i)} 的梯度得到。通常,我们假设参数对目标任务越重要,它的费舍尔信息的值就越高。因此,可以根据费舍尔信息来选择子网络,子网络 C\mathbf{C} 由具有最高费舍尔信息的参数组成。选择子网络参数的步骤如下:1) 计算每个参数的费舍尔信息值;2) 对这些费舍尔信息值进行排序;3) 选择前 pDp_{D} 比例的参数作为子网络 C\mathbf{C} 。确定子网络后,生成相应的掩码矩阵完成模型训练。

Child-tuning 通过梯度屏蔽减少了计算负担,同时减少了模型的假设空间,降低了模型过拟合的风险。然而,子网络的选择需要额外的计算代价,特别是在任

务驱动的变体中,费舍尔信息的计算十分耗时。但总体而言,Child-tuning 可以改善大语言模型在多种下游任务中的表现,尤其是在训练数据有限的情况下。此外,Child-tuning 可以很好地与其他 PEFT 方法的集成,进一步提升模型性能。

除Child-tuning外,还有一些其他基于学习的参数选择方法。例如,Zhao等人[55]引入与模型权重相关的二值矩阵来学习,通过阈值函数生成参数掩码(mask),然后在反向传播过程中通过噪声估计器进行更新。类似FishMask,Fish-Dip [5]也使用Fisher信息来计算掩码,但掩码将在每个训练周期动态重新计算。LT-SFT [2]受“彩票假设”[11]启发,根据参数重要性,根据在初始微调阶段变化最大的参数子集形成掩码。SAM [12]提出了一个二阶逼近方法,通过解析求解优化函数来帮助决定参数掩码。

基于选择的方法通过选择性地更新预训练模型的参数,在保持大部分参数不变的情况下对模型进行微调。基于选择的方法能够显著减少微调过程中所需要更新的参数,降低计算成本和内存需求。对于资源受限的环境或者需要快速适应新任务的场景尤其适用。然而,这些方法也面临挑战,比如,如何选择最佳参数子集,以及如何平衡参数更新的数量和模型性能之间的关系。

4.3_参数选择方法 - 大模型基础 | OpenTech