模型的微调和蒸馏过程(简要)

部署运行你感兴趣的模型镜像

一、两者的区别先搞清楚

对比项微调 Fine-Tuning蒸馏 Distillation
目的让模型学会新任务或新数据分布小模型模仿大模型的能力
参与模型一般只有一个模型(在预训练模型基础上更新参数)有两类模型:Teacher(大)和 Student(小)
更新对象更新原模型参数只更新学生模型参数
训练目标最小化真实标签的损失最小化学生与教师输出的差异(+ 标签损失)
使用场景下游任务定制(分类、检索等)模型压缩、加速、移动端部署

二、微调(Fine-Tuning)流程

1.准备预训练模型

选择一个已经在大规模数据上训练好的模型,如:

  • NLP:BERT、GPT

  • CV:ResNet、ViT

  • Speech:Whisper

这些模型提供通用特征提取能力


2. 构造下游任务数据集

格式化为:

  • 输入:文本、图像、语音等

  • 输出:目标标签、目标文本等
    例如情感分类任务:

输入: "这部电影真不错"
标签: 正面

3.修改模型输出层

  • 保留主体网络权重(冻结或部分冻结)

  • 替换输出层(如 softmax 分类头)适配任务维度
    例如:

model.classifier = nn.Linear(hidden_size, num_labels)

例子:从 1000 类改成 5 类

假设你用 ResNet50 做猫狗分类,只有 5 类。
原来模型最后一层是:

model.fc = nn.Linear(2048, 1000)

现在改成:

model.fc = nn.Linear(2048, 5)

这样输出就是 5 维,每个值代表一个类别的得分。

「保留主体网络权重」是什么意思

主体网络(前面的大部分层)已经在海量数据上学到了通用特征,比如:

  • 图像模型:学到边缘、纹理、形状;

  • 文本模型:学到语义、上下文表示。

这些特征对你的小任务也有帮助。
没必要从头再学一遍。

👉 所以我们只训练最后几层(输出层),而保留前面部分参数不动,这叫 冻结(freeze)


4.设置训练超参数

学习率较小(通常 1e-5 ~ 5e-5),
避免破坏预训练权重结构。


5.训练微调

以真实标签计算损失函数:

loss = CrossEntropy(y_pred, y_true)
loss.backward()

通常策略:

  • 全量微调:所有参数都更新

  • 部分微调:只更新最后几层或 Adapter 模块(PEFT)


6.验证与保存

验证集评估 → early stopping → 保存 fine-tuned 模型
输出为 model_finetuned.ptadapter.bin


结果:
预训练模型在新任务上表现更好,泛化性保留但针对性增强。


三、蒸馏(Knowledge Distillation)流程

1.准备 Teacher 模型

一般为性能较强、计算量较大的模型,例如:

  • Teacher: GPT-3

  • Student: GPT-2 / smaller GPT-Neo


2.准备 Student 模型

结构类似但规模更小。
Student 初始化可以是随机或从 Teacher 结构剪枝。


3.准备训练数据

可用:

  • 同任务的真实数据;

  • 或无标注的大量“软标签”数据。


4.Teacher 生成“软标签”

Teacher 模型输出的概率分布(Soft Targets):

teacher_logits = Teacher(x)
teacher_probs = softmax(teacher_logits / T)

其中 T 是温度参数,T>1 可让分布更平滑,传递更多“相似度信息”。


5.Student 模仿 Teacher

Student 预测:

student_logits = Student(x)
student_probs = softmax(student_logits / T)

定义 蒸馏损失(KL 散度):

L_distill = KLDiv(student_probs, teacher_probs)

如果有真实标签,还可以加上普通监督项:

L_total = α * L_distill + (1 - α) * CrossEntropy(student_logits, y_true)

6.训练 Student

反向传播仅作用于学生模型参数,教师冻结。
训练完成后,Student 模型在体积更小的情况下保留了教师的部分能力。


结果:
得到一个性能接近大模型、但推理更快、更轻量的小模型。


四、可视化对比流程

[Fine-Tuning]
预训练模型 -----> 加载下游数据 -----> 更新参数 -----> 专用模型

[Distillation]
Teacher(大模型) ---> 生成软标签
          ↓
    Student(小模型) <--- 模仿 + 学习标签 ---> 轻量模型

五、总结关键点

维度微调 Fine-Tuning蒸馏 Distillation
目标适配任务模仿教师
输入真实数据教师输出(软标签)
输出定制化模型小型模型
优点性能强速度快、体积小
缺点计算开销大需要教师模型

一句话总结:

微调让模型懂新任务,蒸馏让小模型学会大师的思考方式。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值