常见的微调的方式有哪些?(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](https://mp.weixin.qq.com/s/aAIuZ8LH3flnxNLtlP6d0w "https://mp.weixin.qq.com/s/aAIuZ8LH3flnxNLtlP6d0w")

相关推荐
樂油3 小时前
Claude Code的安装并连接VScode(使用CC Switch或ollama连接)
vscode·ollama·claude code·cc switch
The_Ticker3 小时前
印度股票实时行情API(低成本方案)
python·websocket·算法·金融·区块链
ZC跨境爬虫3 小时前
Scrapy工作空间搭建与目录结构解析:从初始化到基础配置全流程
前端·爬虫·python·scrapy·自动化
EAIReport3 小时前
国外网站数据批量采集技术实现路径
开发语言·python
Ulyanov3 小时前
基于ttk的现代化Python音视频播放器:UI设计与可视化技术深度解析
python·ui·音视频
Freak嵌入式3 小时前
MicroPython LVGL基础知识和概念:时序与动态效果
开发语言·python·github·php·gui·lvgl·micropython
zhangzeyuaaa4 小时前
Python 中的 Map 和 Reduce 详解
开发语言·python
七夜zippoe4 小时前
Java技术未来展望:GraalVM、Quarkus、Helidon等新趋势探讨
java·开发语言·python·quarkus·graaivm·helidon
m0_738120725 小时前
网络安全编程——Python编写基于UDP的主机发现工具(解码IP header)
python·网络协议·tcp/ip·安全·web安全·udp
北冥有羽Victoria5 小时前
OpenCLI 操作网页 从0到1完整实操指南
vscode·爬虫·python·github·api·ai编程·opencli