本节摘要:迁移学习与 Fine-tuning 是包含关系而非并列关系——迁移学习是"把知识从源搬到目标"的整体策略,微调是实现搬运的一种具体工序。本节用一张概念地图厘清策略层与工序层,辨析特征提取、微调、领域适应、参数高效微调各自在地图上的位置,并用一个决策示例演示怎么从策略出发落到工序。
打开任何技术社区,"迁移学习"与"微调"经常被当作同义词使用。混用有历史原因:在预训练模型普及后,业界做的迁移九成以上就是"下载权重、换头、继续训练",策略与工序重合度太高,说话时懒得区分。但工程上有区分的价值——当你的项目遇到"迁移效果不好"时,问题可能出在策略层(源与目标根本不匹配,该做领域适应或换源),也可能出在工序层(学习率过大、冻结不当)。不区分两层,排查就无从下手。
读图方式:上层是"要不要搬、搬什么"的决策,下层是"怎么搬"的操作。微调(全量、部分、参数高效三种力度)都挂在"基于参数的迁移"分支下——它搬运的载体是模型参数。特征提取也是参数迁移的特例(参数原样搬运,零更新),但通常单独列出,因为它的施工动作完全不同。
各工序的定位一览:
| 术语 | 层次 | 搬运载体 | 典型场景 |
|---|---|---|---|
| 迁移学习 | 策略 | 任意(参数/特征/实例) | 总纲 |
| 特征提取 | 工序 | 参数(冻结不更新) | 数据极少、任务相似 |
| 微调 | 工序 | 参数(小幅更新) | 数据中等、任务有差异 |
| 领域适应 | 策略+工序 | 特征空间对齐 | 同任务跨领域 |
| 参数高效微调 | 工序 | 极少量新增参数 | 大模型、多任务切换 |
用一个真实感十足的例子走一遍流程。任务:法律合同文本的二分类(有效/存疑),标注约三千条。
策略层判断:源选通用中文预训练语言模型,领域距离中等(法律文本与通用语料风格差异明显但不悬殊),标注量中等。结论走"基于参数的迁移"。
工序层落地有三档候选,先做参数量与风险的粗算再定:
# 三档工序的成本粗算(以 BERT-base 约一亿一千万参数为例) total = 110_000_000 # BERT-base 参数量 new_head = 768 * 2 + 2 # 二分类头:768*2 权重 + 2 偏置 feature_extract = new_head full_finetune = total + new_head lora_params = 0 # LoRA 粗算:每目标模块 2*(d*r),秩 r=8 d = 768 r = 8 lora_per_module = 2 * d * r # 降维矩阵 + 升维矩阵 n_modules = 72 # BERT-base 12 层 x 6 个投影模块(粗算) lora_params = lora_per_module * n_modules + new_head for name, n in [("特征提取", feature_extract), ("全量微调", full_finetune), ("LoRA微调", lora_params)]: print(f"{name}: 可训练参数 {n:,},占比 {n/total*100:.2f}%") # 输出: # 特征提取: 可训练参数 1,538,占比 0.00% # 全量微调: 可训练参数 110,001,538,占比 100.00% # LoRA微调: 可训练参数 885,538,占比 0.80%
三千条标注属于中等偏少的量级:全量微调能吃下但有过拟合风险,LoRA 占千分之八参数、正则效果天然好,特征提取则可能因领域差异吃不透。经验上的选择是先跑特征提取做基线,再上 LoRA 或小学习率全量微调对照——这正是第 5 章工地三的施工顺序。注意这个例子里,策略层的选择(参数迁移而非领域适应)一旦改变,工序清单会整个换掉:领域适应的工序是加对抗判别器、做伪标签,而不是调冻结范围。
把本节与前三节的概念合并成速查表,贴在工位上能省掉一半的沟通歧义:
| 说法 | 层次 | 动的是什么 | 一句话定位 |
|---|---|---|---|
| 迁移学习 | 策略 | 参数或特征或样本 | 总纲:把源的知识用于目标 |
| 预训练 | 工序(源侧) | 全部参数 | 在源域源任务上的原始施工 |
| 特征提取 | 工序 | 只训新头 | 冻结旧宅只装新门厅 |
| Fine-tuning | 工序 | 部分或全部参数 | 受控的继续训练 |
| 参数高效微调 | 工序 | 极少量新增参数 | 外挂扩建,骨干不动 |
| 持续预训练 | 工序 | 全部参数 | 用领域语料续跑预训练目标 |
| 领域适应 | 策略 | 特征空间对齐 | 同任务跨分布的专门方案 |
| 提示工程 | 使用方式 | 什么都不动 | 改输入不改权重 |
用法示例:评审会上有人说"我们做一下迁移学习",你按表追问三句——走哪条策略路线、用哪个工序实现、动多少参数——方案是否想清楚,三个答案立刻见分晓。术语表的价值不在背诵,在于把含糊的动词逼成可执行的动作。
⚠️ 常见坑:排查"迁移效果差"时只在工序层打转(换学习率、换轮数),从不回到策略层检查源任务与目标任务是否真的相关。工序再精,也救不了选错的旧宅。