当前位置: 首页 > news >正文

常见的微调的方式有哪些?(Lora...)

1.LoRA(Low-Rank Adaptation)

核心思想: 不修改原始权重,旁路添加低秩矩阵

┌─────────────────────────────────┐
│ 原始Linear层 (W: 4096×4096) │
│ ❄️ 冻结不训练 │
│ ↓ x │
│ W·x (输出) │
└─────────────────────────────────┘
+ (相加)
┌─────────────────────────────────┐
│ LoRA旁路 │
│ x → A(8×4096) → B(4096×8) │
│ 🔥 只训练这两个矩阵 │
│ ↓ │
│ B·A·x (输出) │
└─────────────────────────────────┘

2.Prompt Tuning

核心思想: 在输入序列前添加可学习的"软提示词"

原始输入:
[The, movie, is, great] → Encoder → 输出

Prompt Tuning:
[P1, P2, P3, ..., Pk, The, movie, is, great] → Encoder → 输出
↑____________↑
可学习的soft prompts
(只训练这些)

具体做法:

  • 模型权重全部冻结
  • 只在输入前添加 k 个可学习的embedding向量 (比如20个)
  • 只训练这20个向量
  • 参数量: 极少 (20 × 768维 ≈ 15K参数)

输入层:
┌──────────────────────────────────────┐
│ [🔥P₁] [🔥P₂] [🔥P₃] ... [🔥Pₖ] │ ← 可训练的prompt embeddings
│ [❄️The] [❄️movie] [❄️is] [❄️great] │ ← 真实输入(正常处理)
└──────────────────────────────────────┘

❄️ Transformer层 (冻结)

输出

3.Adapter

核心思想: 在Transformer层之间插入小型瓶颈网络

原始Transformer块: Input → Self-Attention → Add&Norm → FFN → Add&Norm → Output 加入Adapter后: Input → Self-Attention → Add&Norm → [🔥Adapter] → FFN → Add&Norm → [🔥Adapter] → Output ↑ ↑ 新插入的模块 新插入的模块

具体做法:

  • Transformer层冻结
  • 在每层后插入Adapter模块
  • 只训练Adapter参数
  • 参数量: 1-3% (取决于bottleneck大小)

4.IA3(Infused Adapter by Inhibiting and Amplifying Inner Activations)【基本不用】

核心思想: 用可学习的缩放向量调整激活值

原始: h = W·x IA3: h = (W · diag(l)) · x = W · (l ⊙ x) ↑ ↑ 可学习的缩放向量 逐元素相乘

具体做法:

  • 权重矩阵W冻结
  • 只学习一个缩放向量l(长度等于输入维度)
  • 将输入x逐元素乘以l,然后再乘以W
  • 参数量: 极少 (每层只有一个向量, 比如768个参数)

可视化:

对于 K、V、FFN 的投影: 输入 x (768维) ↓ x ⊙ l_k (逐元素相乘) ← 🔥 l_k是768维可训练向量 ↓ ❄️ W_k · (缩放后的x) ← W_k冻结 ↓ 输出

5.Full FT(Full Fine-Tuning / 全量微调)

核心思想: 所有参数都训练

预训练模型的所有参数 → 🔥全部解冻 → 在下游任务上训练

具体做法:

  • 加载预训练权重
  • 所有层的所有参数都设为可训练
  • 在目标数据集上重新训练
  • 参数量: 100%

6.固定Encoder(Feature Extraction)

核心思想: 把预训练模型当特征提取器,只训练新加的分类头

输入 → ❄️Encoder(冻结) → 特征 → 🔥分类头(新建+训练) → 输出

具体做法:

  • Encoder所有层冻结
  • 去掉原来的输出层,加一个新的(比如线性层)
  • 只训练这个新的分类头
  • 参数量: <1% (只有分类头)

https://mp.weixin.qq.com/s/aAIuZ8LH3flnxNLtlP6d0w

http://www.jsqmd.com/news/229916/

相关文章:

  • 没预算怎么做AI安全?学生党亲测:云端GPU每小时1块真香
  • StructBERT实战:企业客服系统情感分析模块部署教程
  • StructBERT API开发手册:情感分析接口调用详解
  • 五层电梯西门子S7-200PLC梯形图程序:实现电梯功能、开关门动作、上下行运动、外呼按钮、优...
  • AI智能体压力测试:云端模拟百万并发请求
  • StructBERT实战教程:产品评论情感倾向分析
  • 边缘AI+云端协同方案:本地轻量化,复杂计算上云
  • AI智能体强化学习:游戏AI训练平台,即开即用
  • 中文情感分析API搭建:StructBERT应用评测
  • StructBERT实战:构建论坛情感分析系统完整教程
  • StructBERT实战:构建论坛情感分析系统完整教程
  • AI智能体安全测试指南:云端沙箱环境,3块钱全面检测
  • StructBERT
  • 中文情感分析模型比较:StructBERT优势解析
  • 中文情感分析实战:StructBERT模型指南
  • 没机器学习经验怎么做AI安全?预训练模型一键调用
  • 中文情感分析实战:StructBERT模型性能评测
  • 中文情感分析WebUI搭建:StructBERT轻量CPU版部署步骤详解
  • 中文情感分析WebUI搭建:StructBERT详细步骤
  • 中文文本情感分析部署:StructBERT轻量级方案
  • StructBERT轻量版揭秘:为何在CPU上表现优异
  • 智能工单分类实战:NLP+规则引擎,云端3步搞定客服升级
  • 储能调频里程
  • 【火山引擎与TRAE协同打造智慧供应链平台建设:从数据智能到研发提效】
  • 中文情感分析API开发:StructBERT REST接口实战
  • StructBERT轻量CPU版优化:内存占用与性能平衡技巧
  • 中文文本情绪识别教程:StructBERT部署详解
  • 中文情感分析WebUI开发:StructBERT轻量级部署教程
  • StructBERT轻量级优化:CPU高效推理
  • 低成本学AI:云端GPU按需付费,比培训班实战性强