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)来生成这些参数
相关推荐
troubles maker4 天前
LLaMA-Adapter V2: Parameter-Efficient Visual Instruction Model
llm·nlp·llama·多模态
装不满的克莱因瓶4 天前
自然语言处理中的词嵌入——从离散符号到语义向量空间
人工智能·python·深度学习·ai·自然语言处理·nlp
To_OC5 天前
用 ESM 模块化搭建 DeepSeek LLM 调用,顺带用 Prompt 实现轻量 NLP 任务
人工智能·nlp·deepseek
极光代码工作室6 天前
基于NLP的论文关键词提取系统
python·深度学习·自然语言处理·nlp
不好听6139 天前
Prompt 驱动 NLP:用大语言模型重新定义自然语言处理开发范式
设计模式·node.js·nlp
Goodbye9 天前
基于 Prompt 工程的 NLP 系统开发实践 —— 以 DeepSeek 大模型为例
nlp
jimi11269 天前
从零理解 Transformer
人工智能·深度学习·nlp
元拓数智10 天前
跨库NL2SQL可信落地的核心:用IntaLink破解数据关系“迷雾”
数据库·人工智能·ai·nlp·agent·llama
yuanyuan2o212 天前
Transformers NLP 任务:阅读理解问答
人工智能·算法·自然语言处理·nlp·github
m沐沐14 天前
【机器学习】NLP---用 Python+TF-IDF 给《红楼梦》自动提取关键词
人工智能·python·机器学习·自然语言处理·nlp·中文分词·tf-idf