LLM常见问题(PEFT 部分)-灵析社区

算法无限

1. PEFT 是啥?如何实现?

PEFT 是一种迁移学习的技术,指在完成预训练的模型基础上,通过进一步微调来适应特定的下游任务。微调可以在具有相似特征的任务之间有较好的泛化能力,同时由于预训练模型有较高的完成度,因此能够加快训练速度并提高模型性能。

PEFT 通常有以下方法:

  1. Adapter Tuning:该方法设计了一个 Adapter 结构,将其嵌入 Transformer 的结构里面,在训练时,固定住原来预训练模型的参数不变,只对新增的 Adapter 结构进行微调
  2. Prefix Tuning:该方法是在输入 token 之前构造一段任务相关的 virtual tokens 作为 Prefix,然后训练的时候只更新 Prefix 部分的参数,而 Transformer 中的其他部分参数固定。
  3. Prompt Tuning:该方法可以看作是 Prefix Tuning 的简化版本,只在输入层加入 prompt tokens,并不需要加入 MLP 进行调整来解决难训练的问题。
  4. P-Tuning(v1):P-Tuning 提出将 Prompt 转换为可以学习的 Embedding 层,作者提出用MLP+LSTM的方式来对 prompt embedding 进行一层处理。Prefix Tuning 是将额外的 embedding 加在开头,看起来更像是模仿 Instruction 指令;而 P-Tuning 的位置则不固定。Prefix Tuning 通过在每个 Attention 层都加入 Prefix Embedding 来增加额外的参数,通过 MLP 来初始化;而 P-Tuning 只是在输入的时候加入 Embedding,并通过      LSTM+MLP 来初始化。
  5. P-Tuning(v2):P-Tuning v2 的目标就是要让 Prompt Tuning 能够在不同参数规模的预训练模型、针对不同下游任务的结果上都达到匹敌 Fine-tuning 的结果。带来更多可学习的参数(从 P-tuning 和 Prompt Tuning 的0.1%增加到0.1%-3%),同时也足够 parameter-efficient。同时加入到更深层结构中的 Prompt 能给模型预测带来更直接的影响。
  6. LoRA:大语言模型虽然参数众多,但是起到关键作用的还是其中低秩的本质维度,基于此该方法为 LLM 设计了一个旁路分支,在涉及到矩阵相乘的模块,引入A、B这样两个低秩矩阵模块去模拟Full-finetune的过程,相当于只对语言模型中起关键作用的低秩本质维度进行更新。

2. 为什么需要 PEFT?

大型预训练模型的训练成本非常高昂,需要庞大的计算资源和大量的数据,一般人难以承受。这也导致了一些研究人员难以重复和验证先前的研究成果。为了解决这个问题,研究人员开始研究 PEFT 技术。PEFT 技术旨在通过最小化微调参数的数量和计算复杂度,来提高预训练模型在新任务上的性能,从而缓解大型预训练模型的训练成本。因此,即使计算资源受限,也可以利用预训练模型的知识来迅速适应新任务,实现高效的迁移学习。

3. 介绍一下 PEFT?

PEFT(Performance Estimation and Modeling for Fine-Tuning)是一种用于微调任务的性能估计和建模方法。它的目的是帮助研究人员和从业者在微调过程中更好地理解和预测模型的性能,并进行更有效的模型选择和调优。

PEFT的主要思想是通过预测模型在微调任务上的性能,提供对不同模型和参数设置的性能估计。这样可以避免在大规模数据集上进行昂贵的微调实验,从而节省时间和计算资源。

4. PEFT 有什么优点?

极大地节省时间和计算资源,全参数微调方法需要在大规模数据集上进行昂贵的实验,耗费大量时间和计算资源。而PEFT通过调整较少的参数量,可以避免资源的浪费,节省时间和计算开销

5. 批处理大小、模型大小、显存大小与训练速度的关系?

  1. 批处理大小(Batch Size):批处理大小是指在每次迭代中同时处理的样本数量。较大的批处理大小可以提高GPU的利用率,加快训练速度,但可能会导致显存不足的问题。如果批处理大小过大,无法适应GPU显存的限制,可能需要减小批处理大小或使用分布式训练等方法来解决显存不足的问题。
  2. 模型大小(Model Size):模型大小指的是微调任务中使用的模型的参数量和内存占用。较大的模型通常需要更多的显存来存储参数和激活值,可能会导致显存不足的问题。在GPU显存有限的情况下,可以考虑使用轻量级模型或模型压缩等方法来减小模型大小,以适应显存限制。
  3. GPU显存:GPU显存是指GPU设备上可用的内存大小。如果微调任务所需的显存超过了GPU显存的限制,会导致显存不足的问题。在这种情况下,可以采取一些策略来解决显存不足,例如减小批处理大小、减小模型大小、使用分布式训练、使用混合精度训练等。

6. PEFT 和全量微调有什么区别?

PEFT 可以使 PLM 高效适应各种下游应用任务,而无需微调预训练模型的所有参数。 微调大规模 PLM 所需的资源成本通常高得令人望而却步。 在这方面,PEFT 方法仅微调少量或额外的模型参数,固定大部分预训练参数,大大降低了计算和存储成本,同时最先进的 PEFT 技术也能实现了与全量微调相当的性能。

7. 当前 PEFT 存在的一些问题

  1. 性能保持:一些 PEFT 技术可能在提高效率的同时,对模型性能产生一定的影响。因此,在使用高效微调技术时需要权衡效率和性能之间的关系,并进行适当的调整和优化。
  2. 数据依赖性:一些 PEFT 技术可能对数据的分布和规模具有一定的依赖性。例如,迁移学习通常需要目标任务和预训练任务具有相似的数据分布。这可能限制了高效微调技术在一些特殊或小规模数据集上的应用。
  3. 可解释性:一些 PEFT 技术可能会引入黑盒操作,使得模型的解释性变得模糊。这可能会影响模型的可解释性和可信度。

阅读量:1660

点赞量:0

收藏量:0