task04 参数高效微调

微调量化第一章,资料地址:https://datawhalechina.github.io/base-llm/#/chapter11/01_PEFT

前情提要

BERT模型发布以来,预训练-微调 范式在NLP领域取得了重大成功

但是之前使用的全量微调会因为模型参数规模的跃升变得不合适,挑战包括训练成本(巨大的计算资源)、存储压力(保存参数用的存储成本高)、灾难性遗忘(在对特定任务微调时,模型可能会忘记在预训练阶段学到的海量通用知识)、训练不稳定性(大模型网络结构的宽度和深度都很大,其训练过程对学习率等超参极为敏感,很容易出现梯度消失/爆炸等问题,导致训练失败)

上述困境使得研究者们迫切需要一种新范式,即能有效利用大模型的强大能力,又能避免全量微调带来的高昂成本

2020年GPT-3论文提出In-Context Learning,这是一种无需训练的范式,在不调整任何模型参数的情况下,仅通过在输入中提供一些任务示例,就能引导大模型完成特定任务。这一发现催生了"提示工程"的繁荣。这种人工的、离散的文本指令我们称为硬提示。硬提示也存在三个明显的缺陷,一是找到最优提示词需要大量的试错和经验,过程繁琐且不稳定;二是离散的文本在提示表达能力上存在上限,很难充分激发和精确控制大模型的潜力;提示在模型间可能不具备迁移性

于是催生出了参数高效微调,该思想借鉴了计算机视觉领域的迁移学习。在CV任务中我们通常会冻结预训练模型如ResNet负责提取通用特征的卷积层,仅微调后面的全连接层来适应新的分类任务。PEFT将这一思想应用于Transformer架构,并发展出多条技术路线

PEFT技术

参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)

即冻结预训练模型99%以上的参数,只调整其中的极小一部分参数,或者额外增加一些参数,从而使模型以极低的成本适应下游任务。这样既能有效利用大模型能力,又不必承受全量微调高昂成本

PEFT有多条技术路线

Adapter Tuning

Google在2019年为BERT模型设计,在Transformer的每个块中插入小型的"适配器"模块(Adapter)

如下图所示,Adapter被插入到每个子层(注意力层和前馈网络)内部,并与主干网络形成残差连接,在训练时只有Adapter模块的参数会被更新

![[Pasted image 20260124171555.png]]

右侧是Adapter模块自身结构:

降维的全连接层(Feedforward down-project):将高维特征映射到低维空间

非线性激活函数(Nonlinearity)

升维的全连接层(Feedfroward up-project):将特征映射回原始维度

贯穿该模块的残差连接:将模块的输出与原始输入相加,保证信息流的稳定

通过这种结构,Adapter模块可以用极少的参数量来模拟特定任务的知识,而且性能上接近全量微调

但是由于各层插入了额外的模块,训练时仍会带来一定的激活内存与算力开销

Prefix Tuning

核心机制:

  • 前缀激活值(Prefix Activations):图中PREFIX部分对应的激活值hih_ihi是从一个专门的可训练矩阵PθP_\thetaPθ中提取的,这部分参数就是微调的对象
  • 模型计算的激活值:而原始输入x和y对应的激活值,是由冻结的Transformer模型正常计算得出的
    下图的上下两部分分别是在自回归语言模型和编码器-解码器模型中的应用
    ![[Pasted image 20260124192753.png]]
    通过这种方式,模型在不改变原有参数的情况下,学会利用这些可控的前缀引导后续内容的生成,从而适应新任务。Prefix Tuning不仅在输入层添加前缀,还在Transformer的每一层都添加了对应的可学习Prefix,并通过一个小型的前馈网络(MLP)来生成这些参数
相关推荐
aiguangyuan17 小时前
使用LSTM进行情感分类:原理与实现剖析
人工智能·python·nlp
茶栀(*´I`*)19 小时前
【NLP入门笔记】:自然语言处理基础与文本预处理
人工智能·自然语言处理·nlp
aiguangyuan19 小时前
基于BERT的中文命名实体识别实战解析
人工智能·python·nlp
holeer21 小时前
【V2.0】王万良《人工智能导论》笔记|《人工智能及其应用》课程教材笔记
神经网络·机器学习·ai·cnn·nlp·知识图谱·智能计算
aiguangyuan1 天前
基于BiLSTM-CRF的命名实体识别模型:原理剖析与实现详解
人工智能·python·nlp
黑衣骑士兴2 天前
llamafactory 安装和使用
nlp
feasibility.7 天前
多模态模型Qwen3-VL在Llama-Factory中断LoRA微调训练+测试+导出+部署全流程--以具身智能数据集open-eqa为例
人工智能·python·大模型·nlp·llama·多模态·具身智能
aiguangyuan7 天前
使用PyTorch和Hugging Face Transformers构建GPT教学演示:从基础原理到实践应用
人工智能·python·nlp
玄同7658 天前
LangChain v1.0+ Prompt 模板完全指南:构建精准可控的大模型交互
人工智能·语言模型·自然语言处理·langchain·nlp·交互·知识图谱
名为沙丁鱼的猫7299 天前
【MCP 协议层(Protocol layer)详解】:深入分析MCP Python SDK中协议层的实现机制
人工智能·深度学习·神经网络·机器学习·自然语言处理·nlp