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

预训练到微调:深入理解AI的上下游任务

笔者在2022年开始做目标检测时,了解过上游任务和上游任务的区别,在这里举例进行初步的解释。本文以目标检测为例子来解释概念。

一、简单说说:上下游任务的协同关系

上下游任务是前后关系,上游任务先让模型学习到通用的特征表示,下游任务再让模型学习到特定的特征表示来解决特定问题。可以先理解成下图1所示:

预训练
微调训练
微调训练
微调训练
微调训练
上游任务
通用的预训练模型
下游任务
目标检测模型
语义分割模型
机器翻译模型
...
图1. 上下游任务的流程

如上图所示,通过这种分工,上游任务提供"基础能力",下游任务专注"业务落地",形成完整的pipeline。



二、具体讲讲:上游任务(Upstream Tasks)

#1. 核心目标

上游任务的核心是通过大规模预训练让模型学习通用特征表示,得到「预训练模型」,以此为后续下游任务提供强大的迁移能力

通用特征比如COCO数据集中80个类别的330K张图片,部分数据样本如下图2所示:

COCO数据集的示例图片

图2. COCO数据集的示例图片

注:本图引子论文《Microsoft COCO: Common Objects in Context》

#2. 关键特点

1️⃣数据规模大

  • 通常使用海量数据(如目标检测数据集COOC、图片分类数据集ImageNet等)。
  • 例如:YOLO系列在COCO上预训练、BERT在Wikipedia+BookCorpus(16GB文本)上预训练,ViT在JFT-300M(3亿张图片)上训练。

2️⃣学习通用特征

  • 图像领域的颜色、纹理、边缘等特征;
  • 文本领域的词向量、语法结构等特征。

3️⃣迁移能力强大

  • 因为数据集庞大且类别庞大,所以得到的预训练模型通常能适应绝大多数的现实场景。


三、具体讲讲:下游任务(Downstream Tasks)

#1. 核心目标

基于「预训练模型」进行微调训练(Fine-tuning)应用到实际落地场景,解决实际问题。

微调数据集的数据量通常比预训练数据集少几十倍。

#2. 举几个栗子

任务类型输入-输出实际应用
目标检测图片 => 定位+分类工业瑕疵检测、自动驾驶(检测行人、车辆)
语义分割图片 => 分类(像素级别)医学图像(肿瘤区域分割)
机器翻译文本 => 文本Google Translate|有道翻译

#3. 实现方式——微调(Fine-tuning)

1️⃣微调(Fine-tuning)

  • 对整个网络进行微调训练在预训练模型顶部添加任务特定层(如分类头),端到端训练。
  • 适用场景:微调数据集量很大,如几万的数据样本。

2️⃣冻结核心部分并进行微调训练

  • 冻结骨干网络(Backbone),仅对部分网络(如Head)进行微调训练,或添加新模块并进行微调。
  • 适用场景:数据量较小,如只有几百的数据样本。

如果这篇文章对您有些许帮助,请帮忙点个赞👍或收个藏📃。您的支持是我继续创作的动力💪!


不要害怕,不要着急。保持每日的前进☀️与积极的内心❤️,命运总在曲折中馈赠最好的礼物。

http://www.xdnf.cn/news/295579.html

相关文章:

  • 网络延时 第四次CCF-CSP计算机软件能力认证
  • 41.寻找缺失的第一个正数:原地哈希算法详解
  • pyqt写一个单片机配置界面
  • DockerDesktop替换方案
  • AVL树 和 红黑树 的插入算法
  • 模拟芯片设计中数字信号处理一些常用概念(一)
  • Agent2Agent(谷歌A2A)协议原理讲解
  • Linux 文件系统深度解析
  • (二)MMA(整洁架构)
  • 中阳策略:如何从K线行为中提取交易逻辑信号?
  • spring中spring-boot-configuration-processor的使用
  • wordperss AI插件:AI图文+视频+长尾关键词自动生成,已内置deepseek、kimi全模型,支持简单一键接入更多自定义API
  • 动态规划之子序列问题1
  • n8n中Wait节点的使用详解:流程暂停与恢复的实战指南
  • CodeQL-CLI工具小白入门
  • hp主机安装ubuntu 22.04版本并换阿里源
  • 【Unity】一个AssetBundle热更新的使用小例子
  • n8n 中 Compare Datasets 节点使用详解
  • 怎么使用nacos作注册中心 + 配置中心。
  • PCA降维详解
  • 信息安全导论 第八章 入侵检测技术
  • 手表关于MPU6050中的功能实现
  • 深入理解C语言中的内存区域:堆、栈与变量存储空间详解
  • Python 文件操作详解:从基础到实践
  • 面向对象与过程介绍
  • Java学习手册:Hibernate/JPA 使用指南
  • Oracle OCP认证考试考点详解083系列08
  • 高速接口:PCIe 3.0 Link Training的详细过程
  • 5.4 - 5.5Web基础+c语言拓展功能函数
  • MyDB - 手写数据库