要回答“微调时为何选择last.pt而非best.pt”的问题,需结合两者的本质区别用户训练曲线特征以及微调的核心目标,分以下几点展开分析:

一、last.ptbest.pt的本质区别

在YOLOv8训练中,两个文件的生成逻辑完全不同:

  • best.pt:训练过程中验证集性能最优(如mAP50最高)的模型,通常对应训练中期(如150~200轮)。
  • last.pt最后一轮训练结束的模型,对应训练后期(如300轮),保留了最新的权重状态优化器/学习率调度器的状态(如余弦退火的当前学习率)。

二、选择last.pt的核心原因(结合用户曲线)

从用户提供的训练曲线(200轮的结果)来看,last.pt的性能与best.pt差距极小,甚至在某些指标上更优,且更适合微调

1. last.ptbest.pt的性能差距极小

用户的验证集关键指标(如metrics/mAP50(B)metrics/mAP50-95(B))在150轮后已趋于稳定

  • mAP50(B):150轮时约0.89,200轮时仍保持0.89(波动<1%);
  • mAP50-95(B):150轮时约0.58,200轮时升至0.60(缓慢提升);
  • 验证集损失(val/box_lossval/cls_loss):150轮后保持稳定(无明显上升)。

这意味着:

  • **best.pt**可能对应150~180轮(mAP50首次达到0.89);
  • last.pt(200轮)的mAP50best.pt一致,但mAP50-95更高(0.60 vs 0.58),说明对严格阈值的泛化能力更强

因此,last.pt的性能不弱于best.pt,甚至在小目标/遮挡目标检测上更优。

2. last.pt保留了训练的连贯性(关键优势)

微调的核心是在已有训练基础上优化,而last.pt保留了优化器状态(如AdamW的动量、自适应学习率)和学习率调度器状态(如余弦退火的当前学习率)。这些状态对于微调至关重要:

  • 若使用best.pt,需要重新初始化优化器(如AdamW的动量从0.9开始),学习率也需从lr0重新开始(如0.001),破坏了之前的训练连贯性;
  • 若使用last.pt,优化器状态和学习率调度器状态延续自最后一轮(如余弦退火的学习率已降至lr0×lrf=0.001×0.1=0.0001),微调时学习率会平滑下降,避免破坏已有特征。
3. last.pt更适合解决“后期性能瓶颈”

用户的曲线显示,mAP50-95(B)在后期仍缓慢提升(150轮0.58→200轮0.60),说明模型在严格阈值下的泛化能力仍有提升空间。而last.pt最新的模型,包含了后期训练对小目标、遮挡目标的学习成果:

  • 若使用best.pt(150轮),需要重新训练后期的小目标特征,浪费已有成果;
  • 若使用last.pt(200轮),可以直接在已有小目标特征的基础上,通过微调(如增大multi_scalemixup)进一步提升性能。
4. last.pt的过拟合风险可控

用户的验证集损失(val/box_loss≈0.78)与训练集损失(train/box_loss≈0.5差距较小,且无明显上升(150轮后保持稳定),说明无严重过拟合。此时,last.pt过拟合风险best.pt相当:

  • 若使用best.pt,可能因训练轮次少,对复杂场景的适应能力不足;
  • 若使用last.pt,可以通过增强正则化(如增大weight_decay、添加label_smoothing)抑制过拟合,同时保持已有的性能。

三、总结:选择last.pt的核心逻辑

维度 last.pt的优势 best.pt的劣势
性能 best.pt差距极小,mAP50-95更优 mAP50-95略低,对小目标检测能力不足
连贯性 保留优化器/学习率调度器状态,微调更平滑 需重新初始化优化器,破坏训练连贯性
后期瓶颈 包含后期对小目标/遮挡目标的学习成果 缺乏后期训练的特征,需重新学习
过拟合风险 可控(验证集损失稳定) 可能因训练轮次少,对复杂场景适应能力不足

四、建议:何时使用best.pt

若用户的训练曲线显示后期过拟合严重(如验证集损失在150轮后持续上升,mAP50下降),则best.pt(150轮)是更好的选择,因为它避免了后期过拟合的影响。但从用户的曲线来看,无明显过拟合,因此last.pt更适合微调。

结论

微调时选择last.pt而非best.pt,是因为:

  1. last.pt的性能与best.pt差距极小,甚至在mAP50-95(严格阈值泛化能力)上更优;
  2. last.pt保留了优化器和学习率调度器的状态,微调更连贯;
  3. last.pt包含后期对小目标/遮挡目标的学习成果,更适合解决后期性能瓶颈;
  4. last.pt的过拟合风险可控,无需担心后期过拟合。

关键建议

  • 若训练曲线后期无过拟合(验证集损失稳定),优先使用last.pt微调;
  • 若训练曲线后期过拟合严重(验证集损失上升,mAP下降),使用best.pt微调。

结合用户的曲线,last.pt是更优的选择

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐