AIGC 模型的 "预训练-微调" 流程解析
一、核心流程概览
-
预训练阶段
- 目标:在大规模无标注数据上学习通用表示
- 数据量级:$10^9 \sim 10^{12}$ 样本
- 优化目标:最小化自回归损失 $\mathcal{L}{PT} = -\sum{t} \log P(x_t|x_{<t}; \theta)$
- 输出:通用基础模型 $M_{base}$
-
微调阶段
- 目标:使模型适应特定下游任务
- 数据量级:$10^3 \sim 10^6$ 标注样本
- 优化目标:最小化任务损失 $\mathcal{L}_{FT} = f(y, \hat{y}; \phi)$
二、不同任务的参数更新策略
$$ \Delta \theta = \eta \cdot \nabla_{\theta} \mathcal{L}_{FT} $$ 其中 $\eta$ 为学习率,$\theta$ 为模型参数
| 任务类型 | 参数更新范围 | 更新比例 | 典型场景 | 优势/局限 |
|---|---|---|---|---|
| 全参数微调 | $\theta_{all}$ | 100% | 数据充足的任务(>10k样本) | 性能最优,但计算成本高 |
| 顶层微调 | $\theta_{top-k}$ | 5-20% | 中小规模数据(1k-10k样本) | 高效防止灾难性遗忘 |
| 适配器微调 | $\theta_{adapter}$ | 0.5-3% | 多任务部署场景 | 参数隔离,支持动态扩展 |
| 提示微调 | $\theta_{prompt}$ | <0.1% | 极小样本(<100样本) | 零样本泛化能力强 |
三、策略选择的关键因素
-
数据规模
- 大样本:全参数更新 $\theta^* = \arg\min_{\theta} \mathcal{L}_{FT}$
- 小样本:冻结底层 $\frac{\partial \mathcal{L}}{\partial \theta_{base}} = 0$
-
任务相似度
- 高相似度:窄域更新(如仅更新注意力层)
- 低相似度:宽域更新(如更新全连接层)
-
计算约束
GPU 内存限制下的优化方案: $$ \text{内存} \propto |\theta_{update}| \times \text{batch size} $$
四、最佳实践建议
-
渐进式解冻
分阶段更新层:阶段1: 更新 Layer{N} → Layer{N-1} 阶段2: 更新 Layer{N-2} → ... -
差分学习率
设置层级化学习率:
$$ \eta_i = \eta_{base} \times \gamma^{L-i} \quad (i=\text{层索引}) $$ -
正则化技术
- 权重衰减:$\theta_{new} = \theta_{old}(1-\lambda)$
- 知识蒸馏:$\mathcal{L}{KD} = \text{KL}(M{base} \parallel M_{fine-tuned})$
五、效果评估指标
$$ \text{增益} = \frac{\text{微调后精度} - \text{零样本精度}}{\text{全训练精度} - \text{零样本精度}} \times 100% $$ 当增益 >85% 时,表明更新策略高效;<60% 需调整更新范围。
注:实际应用中需通过消融实验确定最优策略,推荐使用 Hugging Face 的
TrainerAPI 实现参数分组更新。
777

被折叠的 条评论
为什么被折叠?



