LLM常见问题(Adapter-tuning 部分)

288 阅读6分钟

1. 为什么需要适配器微调(Adapter-tuning)?

  1. 避免灾难性遗忘:在全参微调方法中,微调过程可能会导致预训练模型在原任务上的性能下降,即灾难性遗忘。适配器微调通过只微调适配器层,可以避免对预训练模型的其他部分进行大幅度的更新,尽可能保留大模型原本的知识从而减少灾难性遗忘的风险。
  2. 减少微调的计算量和时间:全参微调方法需要更新整个模型的参数,需要大量的计算资源和时间。适配器微调可以显著减少微调的计算量和时间,因为它只需要微调适配器层的参数,而不需要重新训练整个模型。
  3. 提高模型的可解释性和可复用性:适配器微调可以使模型更具可解释性和可复用性。通过在适配器层中添加任务特定的适配器,我们可以更好地理解模型在不同任务上的表现,并且可以将适配器用于其他类似的任务,从而提高模型的可复用性。

2. 适配器微调(Adapter-tuning)思路?

在预训练模型每一层(或某些层)中添加 Adapter 模块(如下图左侧结构所示),微调时冻结预训练模型主体,由Adapter模块学习特定下游任务的知识。每个 Adapter 模块由两个前馈子层组成,第一个前馈子层将 Transformer 块的输出作为输入,将原始输入维度 d 投影到 m,通过控制m的大小来限制 Adapter 模块的参数量,通常情况下 m << d。在输出阶段,通过第二个前馈子层还原输入维度,将m重新投影到 d,作为 Adapter 模块的输出(如下图右侧结构)。

image.png

3. 适配器微调(Adapter-tuning)特点是什么?

  1. 保留预训练模型的知识:适配器微调只微调适配器层的参数,而不改变预训练模型的其他参数。这样可以保留预训练模型在大规模数据上学到的知识和特征表示能力
  2. 减少微调的计算量和时间:相比于传统的微调方法,适配器微调只需要微调适配器层的参数,而不需要重新训练整个模型。这样可以大大减少微调的计算量和时间消耗。
  3. 提高模型的可解释性和可复用性:适配器微调在预训练模型中添加了适配器层,这些适配器层可以理解为任务特定的模块。通过适配器层,模型的性能在不同任务之间可以更好地解释和比较,并且适配器层可以用于其他类似的任务,提高模型的可复用性。
  4. 灵活性和可扩展性:适配器微调可以在不同的预训练模型和任务中应用。适配器层的设计可以根据任务的特点进行调整,以适应不同的任务需求。这种灵活性和可扩展性使得适配器微调成为一种通用且高效的微调方法。

4. AdapterFusion 思路是什么?

AdapterFusion 多任务学习框架分成两个阶段。首先针对于每个任务,学习一组新的 adapter 参数。然后,针对于某个特定目标任务,学习一个融合模块把第一步的所有 adapter 结合起来。假设第二阶段的每个任务都被包括在第一阶段里了,不考虑第二阶段引入新的任务的情况。

5. AdapterDrop 思路是什么?

为了加快推理速度,在推理时可以对某几层的 adapter 进行剪枝。根据的结论,靠近输入的 adapter 被剪掉后对性能影响更小。因此,AdapterDrop 的作者提出,推理时可以剪掉最下方 n 层的 adapter,也就是最靠近输入的前 n 层。为了尽可能地减小掉点,作者设计了两种训练方案:

  • specialized AdapterDrop: 训练时固定 n,训练后的模型推理时也固定剪掉前n层。
  • robust AdapterDrop: 训练时每个 batch 都随机选取 n 的大小,训练后的模型可以适应多个 n。

6. AdapterDrop 特点是什么?

  1. 动态适配器选择:AdapterDrop 引入了适配器层的随机丢弃机制,使得模型可以在训练过程中动态选择使用哪些任务的适配器层进行微调。这种动态适配器选择机制可以增加模型的鲁棒性和泛化能力,使得模型能够适应不同任务的变化和不确定性。
  2. 鲁棒性和泛化能力:通过随机丢弃适配器层,AdapterDrop 可以让模型在训练过程中随机选择使用哪些任务的适配器层进行微调。这种随机性可以增加模型对于噪声和干扰的鲁棒性,并提高模型的泛化能力。
  3. 减少计算量和参数数量:通过随机丢弃适配器层,AdapterDrop 可以减少模型的计算量和参数数量。在训练过程中,只有部分任务的适配器层被使用,其他任务的适配器层被丢弃,从而减少了模型的计算量和参数数量,提高了模型的效率和可扩展性。

7. MAM Adapter 思路是什么?

MAM 旨在 Adapter、Prefix Tuning 和 LoRA 之间建立联系的统一方法。MAM Adapter 的思路是通过引入掩码机制和掩码预测任务,增强适配器层的表示能力,并通过联合训练优化任务预测和掩码预测的准确性。 这种方法可以提高适配器微调的性能,进一步增强多任务学习的效果。

8. MAM Adapter 特点是什么?

  1. 掩码机制增强表示能力:MAM Adapter 引入了掩码机制,通过随机掩码部分适配器层的神经元,从而增强适配器层的表示能力。这种掩码机制可以使得适配器层的表示更加丰富和多样化,有助于提高多任务学习的性能。
  2. 联合训练优化任务和掩码预测:MAM Adapter 在训练过程中不仅优化任务的预测准确性,还同时优化掩码预测任务的准确性。通过最小化任务预测的损失和掩码预测的损失,来更新模型的参数。这样可以使得模型能够同时学习任务的表示和掩码的生成,进一步提高多任务学习的性能。
  3. 灵活的任务选择和预测:在推断和预测阶段,可以根据具体的需求选择使用所有任务的适配器层进行预测,或者选择使用部分任务的适配器层进行预测。这种灵活的任务选择和预测机制可以根据具体应用场景的需求进行灵活调整,提高模型的适应性和可用性。
  4. 提高多任务学习性能:MAM Adapter 通过增强适配器层的表示能力和联合训练优化任务和掩码预测,可以提高多任务学习的性能。适配器层的表示能力增强了模型对任务的适应能力,而掩码预测任务的优化可以使得模型学习到更加鲁棒的表示。