1 预训练模型要回答什么
假设你要识别垃圾短信,手里只有 1200 条已标注的短文本。直接从随机参数开始训练,模型既要学习文字怎样表达意思,又要学习什么算垃圾短信;少量样本很难同时承担这 2 项任务。预训练模型提供了另 1 个起点:先在较大规模的数据上学习可复用的表示,再把已有表示迁移到当前任务。它要回答的问题是,哪些过去学到的规律能够减少本次学习所需的数据和计算,以及这些规律在什么条件下会失效。
这里的“模型”不等于能够聊天的系统。用 ImageNet 图像训练过的视觉网络,可以作为花卉分类器的起点;用大量文本训练过的编码器,可以为短信分类生成向量;在大量表格任务上训练的模型,也可能提供表格预测的先验。不同模型的输入、输出和使用方式各不相同。不能因为它们都叫预训练模型,就认为都能接收自然语言指令,或者都适合处理客户流失表格。
表示可以理解为模型整理出的特征。图像原本是像素,视觉模型会逐步把局部纹理、轮廓及其组合变成向量;短文本原本是字符序列,文本模型会把词语及上下文组合成向量。下游任务是我们最终要完成的预测,例如区分 5 类花卉,或者判断短信是否为垃圾信息。在向量后接上较小的分类器,就能把已有表示转成任务所需的类别分数。
预训练的价值需要通过比较才能确认。对客户流失预测,合同类型、入网月数、月费用、历史故障次数等结构化特征,往往已经足够支持逻辑回归或树模型。若没有证据表明预训练表示能够改善验证结果,额外引入庞大模型只会增加维护负担。先提出可检查的假设,例如“视觉表示能在较少花卉标注下提高宏平均 F1”,比笼统地说“预训练更智能”更有意义。

本课围绕 1 个可复现的比较展开:在公开的 Oxford Flowers 102 数据集中固定选择 5 个类别,以预训练视觉模型进行特征提取和局部微调。垃圾短信分类用于说明文本迁移,客户流失用于提醒我们保留简单基线。所有分数都必须对应明确的数据划分、阈值和指标;示意数字只帮助解释决策,不代表实际运行结果。学习目标是选出合理起点并识别失效原因,而非记住某个模型名称。
2 预训练目标与下游迁移
模型在预训练时接受的学习信号,决定了它倾向于保留什么信息。监督式图像分类要求模型根据图像预测已有类别,于是它可能学到有利于区分物体的纹理和形状。文本中的掩码预测要求根据上下文恢复被遮住的内容,下一词预测要求根据前文预测后续内容;这些目标都能产生有用表示,但得到的能力并不完全相同。还有通过匹配相关样本学习表示的方法,本课只需知道目标不同会影响迁移效果。
预训练任务与下游任务通常不相同。图像模型可能从未见过当前花卉类别,却已经学会表示花瓣边缘、色彩组合和整体形状。新分类器可以把这些特征重新组合为类别判断。这种迁移依赖共享规律,而非保证模型记得某张图片。反过来,如果下游任务依赖预训练时未保留的信息,例如极细小的病灶变化,原有表示就可能不足,甚至主动忽略我们最关心的差异。
迁移流程中有 2 类可训练部分:提取表示的主干,以及把表示映射到预测结果的任务头。冻结主干是保持其参数不变,只训练任务头;微调则允许主干的部分或全部参数继续变化。两者都应先加载预训练参数,再根据下游训练集学习。验证集负责比较方案和选择停止位置,测试集只在决策完成后用于最终评估。若反复根据测试结果改方案,测试集就参与了选择,分数会过于乐观。
划分必须先于会从数据中学习的处理。以短信分类为例,先将重复或近似重复短信归为同组,再按组划分训练、验证、测试,避免同 1 条广告换个号码后同时出现在训练和测试中。词表统计、特征缩放及任何根据标签选择特征的操作,只能使用训练部分拟合。预训练模型所需的固定分词器或图像标准化规则可以直接复用,但不能借这个理由把整个下游数据集拿去学习新的统计量。
还要区分“下游划分干净”与“预训练数据不存在重叠”。公开数据集可能被收进预训练语料或图像集合,因此高分不一定代表对新样本的迁移。应检查可获得的数据说明、使用与部署更接近的补充测试,并记录无法核实的重叠风险。我们通常不能证明所有预训练样本的来源,但可以明确已知证据和评估限制,避免把公开榜单分数直接当成业务表现承诺。
3 冻结、微调与提示边界
冻结主干并不意味着完全不用训练。我们仍要为当前任务训练分类头,使它把已有向量映射成 5 类花卉或 2 类短信。好处是需要更新的参数较少,通常训练更快,也更容易在少量数据上建立稳定基线。若图像变换完全固定,可以预先缓存特征,重复比较任务头;若每轮随机裁剪图像,特征也会改变,不能把固定缓存当成仍在进行随机增强的训练。
局部微调是在任务头之外,开放主干靠近输出的部分继续学习。它给模型适应花瓣形态等任务细节的机会,也提高了过拟合风险。可先训练任务头,再以更小的主干学习率开放末端模块,观察验证集是否持续改善。全参数微调会更新整个主干,灵活性更高,但标注少、标签噪声大时,也更容易破坏原有的通用表示。可训练参数多并不构成选择它的充分理由。
提示是另 1 条边界。对支持指令输入的生成模型,可以在输入中给出任务说明和示例,让模型输出“垃圾”或“正常”;这通常不更新模型参数。普通图像分类网络没有指令接口,把“请识别花卉”写在文件名里不会让它遵守指令。提示与微调也不是相互替代的万能按钮:前者依赖已有能力和输入设计,后者改变参数,两者都需要在目标数据上进行独立评估。
比较文本提示方案时,要固定提示文本、示例来源、输出类别解析规则以及失败处理。提示中的示例只能来自训练集,不能挑选测试集里的短信作示范。若模型输出解释却没有合法类别,应把它作为解析失败记录下来,不能只统计成功解析的样本。生成结果中的文字也不天然是概率,不能把“我有 90% 把握”直接当作可用于阈值选择的分类分数。
策略选择可以从资源和数据条件出发。标注少且来源接近预训练领域时,先冻结主干;已有较可靠验证集且冻结方案存在明显不足时,再尝试局部微调;全参数微调需要更多数据与稳定收益证据。若考虑提示,先确认模型支持对应输入和输出,并将调用时延、输出稳定性纳入比较。选择的依据应是验证收益、错误类型和资源成本共同形成的记录,不能只比较训练准确率。
4 动手:对比一次特征提取与微调
使用 Oxford Flowers 102 的官方划分,按类别编号固定选取 1–5 类,并保留每张图像的原始划分。这个子任务仍需下载完整的数据说明,再按官方标签筛选,不能从网页随手收集几张图片替代。把类别编号重新映射为 0–4,写入映射表,同时保存样本清单、随机种子与数据版本。官方划分中每类训练样本较少,正适合观察迁移收益与过拟合,但不能据此推断大规模训练的最佳策略。
先做数据检查:确认图像可解码、标签属于目标类别、同 1 文件没有跨集合出现;额外检查近似重复图像,并记录处理原则。若发现需要改变官方划分的重复项,应明确这是修订后的实验,所有方案都使用同样的修订。训练时采用轻量随机裁剪和水平翻转,验证与测试采用固定尺寸变换;缩放与标准化遵循预训练权重的输入要求。避免旋转、裁剪过强而把关键花瓣完全移出画面。
选取公开可获取的 ResNet-18 及其 ImageNet 预训练权重,并记录具体权重版本。方案 A 冻结主干,替换为 5 类任务头;方案 B 从相同的原始预训练权重重新开始,训练任务头后开放最后 1 个主干阶段。训练阶段涉及归一化层时,要明确其统计量是否更新;只设置参数不求梯度,并不必然阻止运行统计量变化。冻结方案可把主干保持在评估模式,同时让任务头进入训练模式。

把以下步骤作为实现顺序:先固定清单与变换,再构造模型,随后仅将需要更新的参数交给优化器。方案 A 可从任务头学习率 0.001 开始;方案 B 可保留相同任务头学习率,将开放主干的学习率设为 0.0001。它们只是起始配置,具体适用性由验证结果决定。每个阶段设置最多 20 轮,依据验证宏平均 F1 保存最佳权重,并设定连续 5 轮没有改善时停止。提前说明各阶段预算,避免让某方案得到无限次尝试。
每轮结束记录训练损失、验证损失、宏平均 F1 和训练耗时。分类结果取 5 类分数中最高的类别,逐类计算精确率、召回率和 F1,再对 5 类 F1 取平均。精确率回答“预测为这类的图像有多少正确”,召回率回答“这类图像有多少被找回”。如果某类没有被预测到,计算工具可能产生未定义值,需要统一零分处理规则并报告该现象,不能悄悄忽略这个类别。
用 3 个固定随机种子重复训练,分别记录验证结果,形成均值与波动范围;完成模型和训练配置选择后,再用锁定方案评价测试集。不要从 3 次结果中只报最好 1 次。可以额外加入相同结构随机初始化的参考方案,帮助判断预训练带来的收益,但它必须拥有明确且可比较的训练预算。最后保存最佳权重、配置、类别映射、逐样本预测和错误图像索引,使其他人能追溯分数来源。
例如,若方案 A 的验证宏平均 F1 为 0.82,方案 B 为 0.84,同时方案 B 的重复实验波动更大,就不能仅凭 0.02 的差值宣称必然更优。这些数字仅为示意。应检查收益是否在多个种子和关键类别中稳定出现,是否值得额外训练时间。若方案 B 改善来自某 1 类而另外 2 类召回下降,也要回到任务要求判断。完成这组检查后,实验才能支持“采用哪种迁移策略”的决定。
5 通用能力与领域适配取舍
通用表示覆盖面广,但不保证每个领域都合适。自然照片中的形状与纹理,可能适合花卉分类;显微图像的尺度、颜色形成方式与判别线索却不同。领域适配是让模型更贴近目标数据及任务,可以表现为调整输入处理、补充代表性标注、选择更相关的预训练来源,或进行适度微调。不能把所有适配问题都压缩成“增加训练轮数”,因为某些差异来自数据定义和采集过程。
适配程度越高,模型通常越有机会利用当前领域的细节,但也越可能依赖有限样本中的偶然规律。花卉照片若总把某类拍在温室背景里,微调可能提高现有验证分数,却强化背景依赖。需要同时观察主体特征和采集条件:按光照、拍摄设备、背景复杂度分组查看错误,必要时补充不同背景的数据。分组样本很少时,分数只能作为排查线索,不能据小幅波动做确定结论。
交互中的策略从冻结移动到局部微调和全参数微调时,注意比较可训练参数、验证表现及训练成本。曲线是解释取舍的教学示意,不能当成真实花卉实验的测量值。现实中曲线可能完全不同:来源很接近时冻结就足够,来源差异较大但数据充足时微调收益更明显,标签错误严重时增加适配反而伤害表现。滑块的意义是把假设显露出来,帮助决定下一次该测什么。
资源也是策略的一部分。冻结主干通常降低反向传播所需的内存和计算,却不会自动降低最终推理成本,因为推理仍需运行主干。缓存特征只适用于输入可预先处理且允许保存向量的情境;新图片到来仍要经过特征提取。小型模型、较低输入分辨率或批量推理可能改变时延与精度,需要另做测量。训练节省了多少,不能直接写成线上成本减少多少。
表格任务尤其需要保持选择空间。例如公开客户流失数据中,可以先用合同类型、任期、月费用训练逻辑回归与树模型,采用分层划分并处理缺失值。若客户有多期记录,应按客户分组,面向未来预测还要按时间划分。预训练表格模型需要证明自己在同样评估条件下改善了 AUC、目标阈值处的召回率或其他关键指标,同时满足输入和时延要求;通用能力只是候选优势,不能代替这组证据。
6 常见坑:下游数据过少仍全参猛训
最典型的错误是看到训练准确率迅速接近 1,就继续增加轮数并开放全部参数。少量图像可以被模型记住,训练损失下降不代表新图像表现更好。如果验证损失在早期下降后反弹,宏平均 F1 开始波动,而训练损失仍持续下降,应优先怀疑过拟合。先确认验证样本和标签没有错误,再尝试恢复最佳检查点、冻结更多层、减小学习率或缩短训练,而非默认模型容量不足。
少样本验证本身也可能不稳定。某类验证集中只有少量图像,错分 1 张就会明显改变召回率;反复根据这些波动更换配置,会逐渐让验证集成为隐形训练目标。应限制尝试范围,保存每次配置与结果,并通过重复种子观察稳定性。如果任务后果较大,优先补充独立且有代表性的标注,比继续细调学习率更有价值。测试集在这个过程中必须保持封存。
另 1 个常见误判来自类别不平衡。以公开 SMS Spam Collection 为例,正常短信占多数,始终预测正常也可能得到看似不错的准确率,却完全找不回垃圾短信。应同时报告垃圾类精确率、召回率与 F1,并查看类别数量。若模型输出可用的连续分数,可在验证集上根据误拦正常短信的代价选择阈值,再锁定阈值评价测试集;不要在测试集上尝试许多阈值后只报最佳结果。
ROC-AUC 衡量模型对正负样本的排序能力,并不指定实际使用的阈值。AUC 较高仍可能在业务要求的低误报区域表现不足;正类稀少时,还应关注精确率与召回率的关系以及对应样本量。若训练使用类别权重或重采样,要仅作用于训练集,并记录概率可能需要重新校准。验证和测试必须保留目标场景的自然类别比例,否则报告的精确率可能偏离实际使用体验。

泄漏会制造另一种假象:训练和验证都非常好,上线却迅速失效。客户流失特征若包含解约后才出现的账户状态,就是让模型提前看到了答案;短信模板跨集合重复,也会夸大迁移收益。排查顺序应从样本来源、划分单位、特征可用时间入手,再检查模型配置。预训练权重再优秀,也无法让含有未来信息的评估变成有效评估。发现泄漏后需要重做划分和训练,不能仅在报告中删去可疑特征名称。
7 案例:领域偏移让预训练优势消失
设想在公开花卉子集上,冻结方案表现稳定,局部微调略有改善;接下来要处理手机在户外拍摄的同类花卉。新图像包含遮挡、低光、远距离主体与复杂背景,拍摄者还可能只上传难识别的照片。原测试集分数描述的是原有采样条件,无法自动覆盖这些变化。模型在新场景下降,可能来自输入分布变化,也可能来自标签定义变化,必须先弄清是哪种差异。
建立 1 份独立的目标场景评估集,使用相同类别定义,由能够识别花卉的标注者核对。按拍摄设备或拍摄者分组,避免同次连拍跨集合;保留光照、主体大小与遮挡情况等辅助标签。用于诊断和策略选择的部分应成为目标验证集,另留目标测试集用于最终评价。若原先收集的数据已经被反复查看并用于选方案,就不能继续把它称为完全独立的测试证据。
示意结果可以这样读:原分布上冻结方案宏平均 F1 为 0.86,局部微调为 0.89;目标场景上分别为 0.62 与 0.58。这不是实测结论,而是说明“原数据上更高”不保证“新场景更高”。如果微调主要强化了温室背景与类别之间的联系,换到户外后可能退化得更多。也可能是固定裁剪把远处花朵裁掉了,所以不能仅凭这 4 个数字就断定主干学坏了。

先检查图像方向、颜色通道、缩放和标准化是否与训练一致,再按光照、主体大小及设备分组查看混淆矩阵与错误图。若小主体组最差,可比较更合理的裁剪和输入分辨率;若所有设备都在某 2 类之间混淆,应核对类别定义与标注。只有排除处理错误和标签问题后,才把问题归因到表示不适合目标领域。每项修改都先在目标验证集比较,避免用目标测试集指挥修复。
真正需要适配时,可以补充覆盖目标条件的训练样本,保留部分原领域样本,并重新比较冻结与局部微调。新增样本数量有限时,冻结方案仍可能更稳。评估应同时报告原领域与目标领域表现,避免修复户外图像后把原场景能力完全丢掉。如果目标任务出现了训练时不存在的新类别,原有 5 类分类器会被迫把它归入已有类别;此时需要扩展任务定义或建立拒识流程,不能只调分类阈值就宣称解决。
8 把迁移策略写进模型方案
模型方案需要写出能被复查的选择理由。先描述预测对象和输出:例如“对输入花卉图像输出 5 类之一”,或者“在短信到达时判断是否需要进入待复核队列”。再说明可用输入、标签规则和数据来源。客户流失场景要定义观察窗口与预测窗口,确保输入在预测时已经存在;短文本场景要定义重复模板的分组方式。任务边界会决定样本如何划分,模型名称应放在这些条件之后。
接着列出基线与迁移候选。花卉实验可以比较冻结主干、局部微调及预算明确的随机初始化参考;表格实验则应保留逻辑回归与树模型。对每个候选记录预训练来源、权重版本、输入变换、开放参数范围、训练预算和停止规则。这里无需逐个解释网络内部模块,但必须让执行者知道哪些参数会更新,以及怎样从原始预训练权重开始重跑,防止不同实验意外继承此前微调结果。
评价部分要把指标连接到错误代价。花卉分类采用宏平均 F1,帮助发现平均准确率掩盖的弱类别,同时报告各类召回率;短信拦截优先控制正常短信被误拦的比例,再看垃圾短信召回;客户流失可以报告 ROC-AUC,并在可干预人数限制下比较命中效果。没有单个指标能自动替代全部判断,尤其不要把多个不同目标压成“准确率达标”这样含糊的结论。
还应规定选择与退出条件。若局部微调的改进小于重复实验波动,且耗时明显增加,就保留冻结方案;若目标场景差距大于原分布上的策略差距,优先补充领域数据;若错误集中在含糊标签,先修订标注规则。把这些条件预先写出,能够减少看到分数后临时更换解释。预算耗尽但证据不足时,结论应是“尚不能确认收益”,而非选取最好看的运行作为最终答案。
交付内容包括数据清单、配置、权重、类别映射、指标计算规则和目标场景限制。部署前测量实际输入尺寸下的单样本时延、批量吞吐与峰值内存,注明硬件和软件条件。部署后持续抽样标注,检查类别比例、输入质量以及分组错误是否改变。输入分布变化只是预警,真实性能下降仍需标签确认;若确认退化,应能回退到已验证版本,并重新进入划分、比较和评估流程。
9 从预训练模型走向GPU 架构(H32)
到这里,已经能从学习问题判断为什么采用预训练,以及如何在冻结与微调之间选择。接下来还有资源问题:同样的图像与主干,为什么冻结训练需要的内存通常更少,而推理时间却没有同比下降?原因是训练除前向计算外,还可能保存中间结果、计算梯度并维护优化器状态;冻结减少了其中一部分工作,但预测时的特征提取仍然存在。具体节省多少要根据实现测量。
GPU 适合并行处理模型中的大量数值运算,但“放到 GPU 上”不会自动修复数据泄漏、类别不平衡或领域偏移。数据解码与传输跟不上、批量太小,或者频繁在处理器之间搬运数据,都可能影响吞吐。下一课讨论 GPU 架构(H32)时,将从计算单元、存储与数据移动的关系解释这些现象;本课不提前展开线程组织和底层执行细节。
可以先为下一课保留 1 张实验资源记录表,填入输入尺寸、批量大小、冻结范围、每轮耗时和峰值显存。比较时让硬件、数据清单与软件版本保持一致,并区分首次初始化耗时与稳定运行耗时。显存不足导致批量缩小后,不能把变化后的训练速度全部归因于微调策略本身;多个条件同时改变时,需要补充对照才能解释原因。
预训练与硬件的连接因此很具体:迁移策略决定哪些计算需要执行,输入尺寸与批量决定需要同时处理多少数据,硬件能力决定这些工作能以什么速度和资源代价完成。先证明任务与评估有效,再分析瓶颈并优化执行。掌握这个顺序,就能在后续硬件课程里把性能数字放回真实训练流程,避免用更强设备掩盖无效的实验设计。
放进方案里
本项目使用 Oxford Flowers 102 官方划分中的类别 1–5,任务为图像单标签分类。保存数据版本、样本清单与类别映射;检查跨集合重复,任何修订均记录并供所有候选共用。训练采用轻量增强,验证与测试采用固定变换,输入标准化遵循预训练权重要求。目标场景限定为已知类别图像,其他花卉及无法辨认的输入另行制定处理流程。
候选采用相同 ResNet-18 预训练权重。基线冻结主干并训练任务头,比较方案先训练任务头再开放末端阶段,以较小主干学习率进行局部微调。固定训练预算、停止规则与 3 个随机种子,按验证宏平均 F1 选择检查点和策略,同时报告逐类精确率、召回率、训练耗时与峰值显存。若微调收益未稳定超过重复实验波动,优先保留冻结方案。所有配置确定后再评价测试集,并保留逐样本预测以供复查。
主要风险为少量标注引发过拟合、公开数据与预训练来源重叠,以及户外图像带来的领域偏移。部署前建立按拍摄来源隔离的目标验证集与目标测试集,分组检查光照、遮挡和主体大小。若出现退化,先核对输入处理、划分和标签,再补充代表性数据,重新比较迁移策略。任何针对目标验证集的修改都要留下记录,目标测试集只用于最终确认。
交付数据说明、权重版本、训练配置、最佳检查点、指标报告和运行条件。推理成本单独测量单样本时延、批量吞吐及峰值内存,不能由冻结训练的节省直接推断。上线后抽样标注并复核关键类别召回率,确认退化时回退到已验证版本。方案验收同时检查预测质量、资源限制与目标场景覆盖,后续性能优化交由 GPU 架构(H32)的测量方法进一步解释。
10 小结:下一步GPU 架构(H32)
预训练模型提供可迁移的表示,收益来自任务之间共享的规律。冻结、局部微调、全参数微调与提示具有不同前提,选择需要干净的数据划分、合适的指标和可比较的实验。遇到低分先排查处理、标签、泄漏与领域差异;遇到高分也要确认它是否覆盖目标场景。
自测时尝试回答:为什么冻结主干后仍要训练任务头?为什么高 AUC 不保证短信误拦足够低?为什么局部微调在原测试集更好,却可能在户外照片上更差?如果训练准确率继续上升而验证 F1 下降,你会先保存什么证据、调整什么条件?能够用本课实验解释这些问题,就可以带着每轮耗时和显存记录进入 GPU 架构(H32),学习计算与数据移动如何影响实际性能。