一文彻底搞懂Fine-tuning - 参数高效微调(Parameter-Efficient Fine-Tuning)

Parameter-Efficient Fine-Tuning

PEFT(Parameter-Efficient Fine-Tuning)是一种在保持预训练模型大部分参数不变的情况下,通过仅调整少量额外参数来适应新任务的技术。 这些额外参数可以是新添加的嵌入层、低秩矩阵或其他类型的参数,它们被用来“引导”或“调整”预训练模型的输出,以使其更适合新任务。

Parameter-Efficient Fine-Tuning

PEFT的主要方法包括********************Prefix Tuning(在模型输入层添加可训练的前缀嵌入),LoRA(通过低秩矩阵近似模型参数更新),以及Adapter Tuning(在模型层间插入小型神经网络adapters)。

Parameter-Efficient Fine-Tuning

  1. Prefix Tuning
  • Prefix Tuning通过在模型输入层之前添加可训练的前缀嵌入(prefix embeddings)来影响模型的输出。这些前缀嵌入与原始输入拼接后一起输入到模型中,而模型的其他部分保持不变。
  1. LoRA(Low-Rank Adaptation)
  • LoRA通过在原始模型权重矩阵附近添加一个低秩矩阵来近似模型参数的更新。这种方法通过优化这个低秩矩阵来实现微调,而不需要修改原始模型参数。
  1. Adapter Tuning
  • Adapter Tuning通过在模型的每个层之间插入小型神经网络(称为adapters)来实现微调。这些adapters包含可训练的权重,而模型的原始参数保持不变。

Parameter-Efficient Fine-Tuning

__一、Prefix Tuning前缀微调

什么是Prefix Tuning? Prefix Tuning在原始文本进行词嵌入之后,在前面拼接上一个前缀矩阵,或者将前缀矩阵拼在模型每一层的输入前。

这个前缀与输入序列一起作为注意力机制的输入,从而影响模型对输入序列的理解和表示。 由于前缀是可学习的,它可以在微调过程中根据特定任务进行调整,使得模型能够更好地适应新的领域或任务。

Prefix Tuning

**Transformer进行Prefix Tuning?**对Transformer进行Prefix Tuning以实现问答、文本分类等自然语言处理任务。

主要步骤包括在Transformer模型的输入层或各层输入前添加可学习的前缀嵌入,并通过训练这些前缀嵌入来优化模型在特定任务上的表现。

  1. 初始化前缀嵌入
  • 在Transformer模型的输入层之前,初始化一个固定长度的前缀嵌入矩阵。这个矩阵的维度通常是[前缀长度, 嵌入维度],其中嵌入维度与模型词嵌入的维度相同。前缀长度可以根据任务需求进行调整。
  1. 将前缀嵌入与输入序列拼接
  • 将初始化好的前缀嵌入与原始输入序列的词嵌入进行拼接,形成新的输入表示。这个新的输入表示将作为Transformer模型各层的输入。
  1. 训练模型
  • 在训练过程中,**模型会根据输入序列(包括前缀嵌入)和标签数据进行学习。通过反向传播算法,模型会更新前缀嵌入的参数,以最小化在特定任务上的损失函数。**由于只有前缀嵌入的参数被更新,预训练模型的其他参数保持不变,因此这种方法具有很高的参数效率。
  1. 微调与优化
  • 根据训练过程中的表现,可以对前缀嵌入的初始化方式、长度、学习率等参数进行微调,以进一步优化模型在特定任务上的性能。
  1. 训练模型应用于问答、文本分类等任务
  • 训练完成后,将模型应用于问答、文本分类等自然语言处理任务。在推理阶段,只需要将任务相关的输入序列与训练好的前缀嵌入进行拼接,然后输入到模型中即可得到预测结果。

Prefix Tuning

二、LoRA低秩适应微调

什么是LoRA? LoRA(Low-Rank Adaptation)基于预训练模型具有较低的“内在维度”(intrinsic dimension)的假设,即模型在任务适配过程中权重的改变量可以是低秩的。

LoRA通过在预训练模型中引入一个额外的线性层(由低秩矩阵A和B组成),并使用特定任务的训练数据来微调这个线性层,从而实现对模型的高效微调。

LoRA

什么是低秩矩阵?低秩矩阵的秩(即矩阵中最大的线性无关行或列向量的个数)远小于矩阵的行数或列数。

LoRA

LoRA将预训练模型的权重矩阵的增量(即微调前后的权重差异) 分解为一个低秩矩阵A和一个原始矩阵B的乘积,即ΔW = AB。 在微调过程中,仅训练低秩矩阵A的参数,而保持原始矩阵B和预训练模型的其他部分不变。

LoRA

LoRA参数主要包括秩(lora_rank,影响性能和训练时间)、缩放系数(lora_alpha,确保训练稳定)、Dropout系数(lora_dropout,防止过拟合)和学习率(learning_rate,控制权重更新步长),它们共同影响模型微调的效果和效率。

1. 秩(Rank)

  • 参数名称:lora_rank

  • 描述:秩是LoRA中最重要的参数之一,它决定了低秩矩阵的维度。秩的大小直接影响模型的性能和训练时间。

  • 常用值:对于小型数据集或简单任务,秩可以设置为1或2;对于更复杂的任务,秩可能需要设置为4、8或更高。

2. 缩放系数(Alpha)

  • 参数名称:lora_alpha

  • 描述:缩放系数用于在训练开始时对低秩矩阵的更新进行缩放,以确保训练过程的稳定性。

  • 常用值:缩放系数的具体值取决于秩的大小和任务的复杂度。

3. Dropout系数

  • 参数名称:lora_dropout

  • 描述:Dropout是一种正则化技术,用于防止模型过拟合。在LoRA Fine-tuning中,Dropout系数决定了在训练过程中随机丢弃低秩矩阵中元素的概率。

  • 常用值:Dropout系数的常用值范围在0到1之间,具体值取决于模型的复杂度和数据的规模。

4. 学习率(Learning Rate)

  • 参数名称:learning_rate

  • 描述:学习率决定了模型在训练过程中权重更新的步长。适当的学习率可以帮助模型在训练过程中更快地收敛到最优解。

  • 常用值:学习率的具体值取决于多个因素,包括模型的复杂度、数据的规模以及训练过程中的其他超参数设置。

LoRA

三、Adapter Tuning适配器微调

什么是Adapter Tuning? Adapter Tuning能够在保持模型参数数量相对较小的情况下,通过增加少量可训练参数(即适配器)来提高模型在特定任务上的表现。

Adapter Tuning的核心思想是在预训练模型的中间层中插入小的可训练层或“适配器”。这些适配器通常包括一些全连接层、非线性激活函数等,它们被设计用来捕获特定任务的知识,而不需要对整个预训练模型进行大规模的微调。

Adapter Tuning

Adapter Tuning如何实现? Adapter Tuning在预训练模型中插入设计的适配器模块,仅训练这些模块参数以微调模型,同时保持预训练模型参数不变,并在特定任务数据集上评估性能。

Adapter Tuning

  1. 准备环境:安装并配置好深度学习框架(如 PyTorch 或 TensorFlow)和相关的库,这些框架和库将用于模型的训练、评估和部署。

  2. 定义 Adapter 模块:根据任务的具体需求,设计适配器的结构。适配器通常包括输入层、输出层、可能的下投影和上投影前馈层(用于调整特征的维度),以及非线性激活函数等。这些组件共同构成了能够学习特定任务知识的轻量级模块。

  3. 在预训练模型中插入 Adapter:将设计好的适配器模块插入到预训练模型的特定位置,通常是 Transformer 架构中的某些层之间,比如两个全连接层(也称为前馈网络或FFN)之间。这样做可以使得适配器能够捕获并转换经过该层的特征表示,从而适应新的任务。

  4. 准备数据集:收集并处理用于微调的数据集,包括训练集、验证集和测试集。这些数据集应该能够反映目标任务的特性,以便模型能够从中学习到有效的表示和决策规则。

  5. 定义模型:将预训练模型与插入的适配器模块相结合,定义出完整的模型结构。在这个过程中,需要确保模型能够正确地处理输入数据,并通过适配器模块进行特征的转换和提取。

  6. 训练模型:在特定任务的数据集上训练模型。在训练过程中,只调整适配器模块的参数,而保持预训练模型的主要参数不变。这样做可以保持预训练模型在通用任务上的性能,同时使模型能够快速适应新的特定任务。

  7. 评估模型:在测试集上评估模型的性能。通过比较模型在测试集上的预测结果与实际标签之间的差异,可以评估模型在特定任务上的准确性和泛化能力。根据评估结果,可以对模型进行进一步的调整和优化。

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值