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

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

一、两者的区别先搞清楚

对比项微调 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
目标适配任务模仿教师
输入真实数据教师输出(软标签)
输出定制化模型小型模型
优点性能强速度快、体积小
缺点计算开销大需要教师模型

一句话总结:

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

http://www.dtcms.com/a/500277.html

相关文章:

  • QT-常用控件
  • 安顺北京网站建设wordpress 模板标签
  • 好用的西安IBMS数字孪生集成系统机构
  • Photoshop - Photoshop 工具栏(11)缩放工具
  • 梁平网站2022做网站还能赚钱吗
  • 做公司网站的公司有哪些网站建设工
  • 营销型网站建设的原则做网站的技术要求高吗
  • 【JavaWeb学习】myabtis.xml一次性加载mapper相关的文件
  • 电子商务网站开发课程教案网站制作网站价格
  • 网站备案与所在地好的做淘宝详情页的网站有哪些
  • 深度学习4-PyTorch安装-张量创建-张量转换-张量数值计算
  • 如何快速将多个txt文档合并成一个txt文档?操作简单高效
  • 免费网站模板下载网站网站建设分为哪几个阶段
  • 网站维护提示做网站挣钱吗
  • 怎么找做网站的人关于做情侣的网站的图片大全
  • 可以用自己的电脑做网站主机成全视频免费观看在线看小说原著叫什么
  • 网站loading什么意思怎么把在微企点做响应式网站
  • Altium Designer(AD24)Edit编辑功能总结
  • 建设银行网站怎么登陆不了网站模板 英文
  • 魔搭社区与 Python Notebook:Ubuntu虚拟机+Python+机器学习
  • 外贸自建站模板企业推广策略
  • 深度学习——基于ResNet18迁移学习的图像分类模型
  • 网站培训班有哪些课程紫金保险车险官方网站
  • 抗体药物偶联物(ADCs):从研发突破到临床变革,解码疗效与毒性的核心机制
  • 建邺区建设局网站重庆市特种作业证报名
  • 9861云南网站建设北京建设投标网站
  • 【OS笔记10】:进程和线程8-进程通信
  • 给会所做网站室内装潢设计师
  • 长春建站塔山双喜网络广告营销案例有哪些
  • Linux防火墙利器:iptables详解