
1. 项目概述为什么我们需要这么多优化策略如果你在训练深度学习模型时感觉像是在开一辆没有方向盘的卡车——速度时快时慢方向飘忽不定甚至动不动就冲下悬崖过拟合或者干脆熄火梯度消失那你绝对不是一个人。模型优化就是给这辆卡车装上方向盘、油门、刹车和导航系统的过程。我们常说的“调参”只是其中很小的一部分。一个模型从设计到最终部署每一步都充满了影响其性能的“开关”和“旋钮”。“深度学习模型的24种优化策略”这个标题乍一看像是一份冗长的清单但它背后反映的是一个核心现实现代深度学习是一个系统工程没有单一的“银弹”。模型的成功是数据、架构、训练过程、正则化技巧和推理优化等多个维度策略协同作用的结果。这24种策略可以看作是一个工具箱里面既有扳手如学习率调整也有螺丝刀如权重初始化还有更精密的仪器如知识蒸馏。掌握它们意味着你能更系统、更自信地解决训练中遇到的各种“疑难杂症”而不是盲目地试错。对于初学者这份清单能帮你建立完整的优化知识框架避免“只见树木不见森林”对于有经验的从业者它是一份自查清单或许能帮你发现之前忽略的优化点或者为特定场景如移动端部署、小样本学习找到新的思路。接下来我将把这24种策略归类到模型生命周期的不同阶段逐一拆解其原理、实操和那些“教科书上不会写”的坑。2. 策略全景图从数据到部署的完整链路在深入细节之前我们先建立一个宏观认知。这24种策略并非杂乱无章它们大致可以归入以下五个核心阶段构成了一个完整的优化工作流第一阶段数据与预处理优化– 好的数据是成功的一半。此阶段目标是让模型“吃”得更好、更高效。第二阶段模型架构与初始化优化– 为模型搭建一个健康的“身体”基础。第三阶段训练过程优化– 核心中的核心控制模型如何“学习”。第四阶段正则化与泛化优化– 防止模型“学傻”过拟合提升其应对未知数据的能力。第五阶段推理与部署优化– 让训练好的模型在实际环境中跑得更快、更稳、更省资源。下面我们就按照这个逻辑展开这24把“利器”。2.1 第一阶段数据与预处理优化策略1-4这个阶段的优化往往性价比最高却最容易被忽视。其核心思想是通过对输入数据的精心处理降低模型的学习难度提升训练效率和最终性能。2.1.1 策略1数据增强Data Augmentation是什么在训练过程中对原始数据施加一系列随机但合理的变换如旋转、裁剪、颜色抖动、添加噪声生成新的、多样化的训练样本。为什么有效这本质上是廉价地扩充数据集并引入不变性先验。例如对猫的图片进行水平翻转它仍然是猫。这迫使模型学习更本质的特征如猫的形态结构而不是记住某些偶然的像素排列如某张图片中猫总是在左侧从而极大提升模型的泛化能力。实操要点与坑领域特异性图像领域的增强旋转、裁剪、MixUp、CutMix非常成熟。但在NLP领域增强需要更谨慎如同义词替换、回译不当的增强可能改变语义。对于时序数据添加噪声、时间扭曲是常见方法。强度控制增强强度是超参数。强度太弱效果不明显强度太强可能生成不真实或无意义的数据干扰学习。通常建议从弱增强开始逐步调强。在线增强 vs 离线增强主流做法是在数据加载时进行在线增强每次epoch都随机变换这样等效于无限的数据集。离线增强预先生成增强数据会占用大量存储且多样性固定不推荐。一个常见误区不要在验证集和测试集上做数据增强评估模型性能必须在原始、干净的数据上进行否则会得到虚假的高分。2.1.2 策略2数据标准化/归一化Normalization/Standardization是什么将输入数据的各个特征对于图像是每个通道的像素值调整到相近的数值范围。常见的有归一化 (Normalization)缩放到 [0, 1] 区间。x (x - min) / (max - min)。标准化 (Standardization)调整为均值为0标准差为1。x (x - μ) / σ。为什么有效想象一下你的特征A范围是[0, 1000]特征B范围是[0, 1]。在计算梯度时特征A的微小变化就会产生巨大的梯度而特征B的变化几乎被忽略。这会导致优化路径非常崎岖收敛缓慢。标准化使所有特征处于同一“起跑线”让优化器如SGD更平稳、更快地找到最优解。实操要点计算统计量均值μ和标准差σ必须仅从训练集计算然后将其用于验证集和测试集的转换。这是为了防止信息从测试集“泄漏”到训练过程。图像处理惯例对于预训练模型如ImageNet上训练的ResNet通常使用固定的均值和标准差例如mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]进行标准化以匹配预训练权重所适应的数据分布。2.1.3 策略3类别平衡处理是什么当数据集中不同类别的样本数量差异巨大长尾分布时采取措施缓解类别不平衡问题。为什么需要模型会倾向于预测样本多的类别因为这样能轻易降低整体损失函数值导致对少数类的识别性能极差。常用方法重采样Resampling过采样复制少数类样本如SMOTE算法生成合成样本。欠采样随机丢弃多数类样本。坑简单的随机过采样容易导致过拟合欠采样会丢失数据信息。损失函数加权Class Weighting在损失函数中给少数类样本的损失赋予更高的权重。这是最常用且有效的方法之一。在PyTorch的CrossEntropyLoss或TensorFlow/Keras的损失函数中直接设置weight或class_weight参数即可。阈值移动Threshold Moving训练时不处理在推理时调整分类决策阈值默认0.5根据验证集性能为少数类选择一个更低的阈值。实操心得对于极度不平衡的数据如1:1000组合策略往往更有效例如使用适度的过采样或SMOTE加上损失函数加权。同时评估指标不能只看准确率Accuracy而应关注精确率Precision、召回率Recall、F1-score尤其是针对少数类的宏平均Macro-averageF1。2.1.4 策略4高效数据加载DataLoader Optimization是什么优化数据从存储到送入模型的过程避免训练速度受I/O瓶颈限制。为什么重要在现代训练中GPU计算速度极快。如果数据加载跟不上GPU就会大量时间处于空闲等待状态利用率GPU-Util很低严重拖慢整体训练速度。核心技巧多进程加载设置DataLoader的num_workers参数如等于CPU核心数。这允许在GPU计算当前批次时后台进程并行预加载下一个批次的数据。固定内存Pin Memory对于GPU训练设置pin_memoryTrue。这会将数据加载到主机CPU的页锁定内存中从而加速到GPU的异步内存拷贝。预处理离线化将耗时较长的预处理如复杂的增强、特征提取提前计算好保存为中间格式如.npy或TFRecord训练时直接加载用空间换时间。使用更快的存储如果数据集巨大考虑使用SSD甚至NVMe硬盘或将其加载到内存盘Ramdisk中。注意num_workers并非越大越好。设置过多会导致进程间切换开销增大可能适得其反。通常设置为CPU逻辑核心数的2-4倍进行测试。监控GPU利用率是判断数据加载是否成为瓶颈的直接方法。2.2 第二阶段模型架构与初始化优化策略5-8模型架构是骨架初始化决定了训练的起点。一个糟糕的起点可能让模型永远无法到达好的终点。2.2.1 策略5权重初始化Weight Initialization是什么在训练开始前为网络中的权重和偏置设置合适的初始值。为什么至关重要不恰当的初始化如全零初始化或方差过大/过小的随机初始化会导致梯度消失或梯度爆炸使得网络无法被有效训练。经典初始化方法Xavier/Glorot初始化适用于使用Sigmoid、Tanh等饱和激活函数的层。它根据该层输入和输出的神经元数量来调整初始权重的方差使得各层激活值的方差保持一致。He/Kaiming初始化专为ReLU及其变体Leaky ReLU, PReLU设计。因为ReLU会将一半的神经元置零方差会逐层衰减He初始化通过放大方差来补偿这一效应是目前最常用的默认选择。实操在现代深度学习框架中这通常已是默认设置如PyTorch的线性层默认使用Kaiming均匀初始化。但当你自定义层时必须显式地调用正确的初始化函数。2.2.2 策略6使用残差连接Residual Connections是什么即ResNet的核心思想。它不要求一个堆叠的层直接拟合一个目标映射H(x)而是拟合残差映射F(x) H(x) - x。这样原始输入信息可以通过“快捷连接Shortcut Connection”直接传递到更深层。为什么是革命性的它解决了深度网络的退化问题。网络不是越深越好超过一定深度训练误差和测试误差反而会上升。残差连接通过恒等映射使得增加深度至少不会让网络性能变差让梯度可以直接流回浅层极大地缓解了梯度消失使得训练成百上千层的网络成为可能。实操要点不仅是ResNet在现代Transformer架构如BERT、ViT中每个子层自注意力、前馈网络周围也都包裹着残差连接。在设计自定义复杂网络时在容易出现梯度问题的模块间添加残差连接是一个有效的经验法则。2.2.3 策略7批量归一化Batch Normalization, BN是什么对一个mini-batch的数据在每一个特征通道上进行归一化减均值除标准差然后学习两个可训练参数缩放因子γ和平移因子β进行还原。为什么有效BN解决了内部协变量偏移问题。即网络中间层的输入分布会随着前面层参数的变化而剧烈变化这迫使后续层需要不断适应新的分布降低了学习效率。BN将每一层的输入稳定在一个固定的分布均值为β方差为γ带来了三大好处允许使用更高的学习率训练更稳定。对权重初始化不那么敏感。有一定的正则化效果因为每个样本的统计量依赖于当前batch引入了噪声。注意事项与坑训练与推理模式不同训练时均值和方差来自当前batch推理时使用训练过程中通过移动平均估算的全局均值和方差。框架会自动处理但务必确保模型处于正确的模式model.train()/model.eval()。在小batch size下效果差因为batch统计量估计不准。此时可考虑层归一化Layer Norm或组归一化Group Norm。不是万能的对于递归神经网络RNN或动态网络BN应用起来较复杂。对于生成对抗网络GANBN可能不适合常用实例归一化Instance Norm。2.2.4 策略8选择合适的激活函数激活函数决定了神经元的非线性表达能力。ReLU及其变体是当前的主流。激活函数公式优点缺点适用场景ReLUf(x)max(0,x)计算高效缓解梯度消失“神经元死亡”负梯度为0大多数CNN和全连接层的默认选择Leaky ReLUf(x)max(αx, x)(α很小如0.01)解决了“神经元死亡”问题引入了一个需要选择或学习的超参数α担心神经元死亡的场景如GAN的判别器PReLUf(x)max(αx, x) α可学习将Leaky ReLU的参数α变为可学习增加少量参数希望模型自己学习最佳非线性时Swishf(x)x * sigmoid(βx)平滑、非单调实验显示在某些任务上优于ReLU计算量稍大涉及sigmoid在搜索最佳架构时值得尝试尤其是深度网络GELUx * Φ(x)(Φ为标准正态分布CDF)基于概率视角被BERT、GPT等Transformer模型采用计算比ReLU复杂NLP领域的Transformer模型实操建议从ReLU开始它是经过充分验证的基准。如果遇到训练不稳定或怀疑神经元死亡可统计网络中输出恒为0的神经元比例可以尝试切换到Leaky ReLU或PReLU。在Transformer架构中直接使用GELU。2.3 第三阶段训练过程优化策略9-16这是优化策略最密集、最核心的区域直接控制着模型学习的“引擎”。2.3.1 策略9优化器选择Optimizer优化器决定了参数更新的方向和步长。SGD随机梯度下降最基础带动量Momentum的SGD能缓解震荡加速收敛。优点最终收敛点泛化性能可能更好。缺点需要精心调整学习率对所有参数使用同一学习率。Adam自适应学习率优化器的代表。为每个参数计算独立的自适应学习率。优点通常收敛非常快对学习率不敏感默认0.001效果就不错。缺点有时泛化性能不如SGD可能收敛到尖锐的极小值。AdamWAdam的改进版将权重衰减正则化从梯度中解耦出来进行正确的L2正则化。这是当前绝大多数场景的默认推荐尤其在训练Transformer和CNN时其性能通常优于Adam。经验法则如果你追求最好的最终精度并且有时间和算力进行精细调参可以尝试SGD with Momentum。如果你想要快速出结果或者任务不那么敏感AdamW是你的首选。对于视觉任务SGD仍有一席之地对于NLP任务AdamW几乎是标配。2.3.2 策略10学习率调度Learning Rate Scheduling学习率是训练中最重要的超参数之一。动态调整它至关重要。StepLR每过一定步数epoch将学习率乘以一个衰减因子gamma。简单直接。CosineAnnealingLR学习率按余弦函数从初始值衰减到0。通常能取得比StepLR更好的效果因为它衰减得更平滑。CosineAnnealingWarmRestarts余弦退火的热重启版本。每次重启时使用一个较大的学习率然后再次余弦衰减。这有助于模型跳出局部最优在复杂任务上表现优异。OneCycleLR在一个周期内学习率先线性上升到一个最大值再线性下降到一个远低于初始值的极小值。配合动量的反向周期是一种非常激进而高效的策略能极大加快收敛。实操心得使用学习率预热Warmup几乎总是有益的。在训练开始时用很小的学习率如初始lr的1/10训练几个epoch再上升到预设学习率。这能让模型在初始阶段稳定地探索参数空间避免“开局崩盘”。CosineAnnealingWarmRestarts和OneCycleLR通常内置了预热逻辑。2.3.3 策略11梯度裁剪Gradient Clipping是什么当梯度的L2范数超过某个阈值时将其按比例缩放到阈值。为什么需要主要用于防止梯度爆炸这在训练RNN/LSTM时非常常见在训练深度Transformer或GAN时也可能遇到。爆炸的梯度会导致参数更新过大模型瞬间“失控”损失变成NaN。如何操作在PyTorch中可以在优化器更新步骤前调用torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm)。阈值max_norm是一个经验值常见如0.5, 1.0, 5.0。监控梯度范数可以帮助你确定合适的阈值。2.3.4 策略12自动混合精度训练Automatic Mixed Precision, AMP是什么在训练中同时使用单精度float32和半精度float16。前向传播和梯度计算用float16以提升速度、减少显存占用权重更新和部分敏感操作如Softmax用float32以保证数值稳定性。好处通常能带来1.5倍到3倍的训练加速并显著减少GPU显存占用从而允许使用更大的batch size或更大的模型。如何使用现代框架PyTorch的torch.cuda.amp TensorFlow的tf.keras.mixed_precision使其非常简单通常只需几行代码包裹训练循环即可。重要警告AMP不是完全透明的。有时会导致收敛曲线略有不同通常仍在误差范围内极端情况下可能不稳定。对于全新的、非常敏感的任务建议先不用AMP调出一个稳定的基线再开启AMP进行加速。对于成熟的任务如图像分类、目标检测可以放心使用。2.3.5 策略13标签平滑Label Smoothing是什么在计算分类损失如交叉熵时不直接使用硬标签如[0, 0, 1, 0]而是将其软化。例如对于正确类别置信度设为0.9而非1.0对于错误类别设为0.1/(K-1)而非0其中K是类别总数。为什么有效硬标签会鼓励模型对正确类别的预测概率无限逼近1这可能导致两个问题1)过拟合模型对训练数据过于自信2)对错误过于脆弱。标签平滑作为一种正则化技术降低了模型对训练标签的置信度鼓励其学习更宽泛的特征提升了泛化能力和校准度模型预测概率与其真实准确性更匹配。实操在PyTorch中可以在CrossEntropyLoss中设置label_smoothing参数。平滑因子通常设为0.05到0.1之间的小数。2.3.6 策略14知识蒸馏Knowledge Distillation是什么用一个庞大、高性能的“教师模型”去指导一个小巧的“学生模型”进行训练。学生模型不仅学习真实数据的标签还学习教师模型输出的“软标签”概率分布。为什么强大软标签包含了类比硬标签更丰富的信息例如“狗”和“狼”的相似度高于“狗”和“汽车”。学生模型通过模仿教师模型的这种“暗知识”往往能达到比直接用硬标签训练更好的性能甚至有时能“青出于蓝”。这是模型压缩和性能提升的利器。训练损失Loss α * HardLoss(学生输出, 真实标签) (1-α) * SoftLoss(学生输出, 教师输出)。其中SoftLoss通常使用KL散度并引入一个“温度”T来软化概率分布。2.3.7 策略15集成学习Ensemble是什么训练多个模型然后将它们的预测结果进行组合如投票、平均。为什么是“大杀器”集成能有效降低方差提升模型的鲁棒性和泛化能力是比赛中刷高分的常用技巧。其理论依据是不同的模型可能会在不同的数据子集或特征上犯错集成可以平均掉这些错误。常用方法Bagging通过自助采样训练多个独立模型然后平均。随机森林是典型代表。Boosting顺序训练模型每个新模型专注于纠正前一个模型的错误。AdaBoost、GBDT、XGBoost属于此类。Snapshot Ensemble在同一个模型的训练过程中使用循环余弦退火的学习率在每次学习率周期的谷底保存一个模型快照。这些快照模型虽然参数共享但由于处于不同的局部最优集成后效果很好。代价集成的主要缺点是推理时需要运行多个模型计算和存储成本成倍增加。因此多用于竞赛或对精度要求极高的离线场景。2.3.8 策略16早停法Early Stopping是什么在训练过程中持续监控模型在验证集上的性能。当验证集性能在连续多个epoch耐心值内不再提升时就停止训练并回滚到验证集性能最好的那个epoch的模型权重。为什么有效且必要这是防止过拟合最简单、最有效的方法之一。深度学习模型容量大很容易过拟合训练数据。继续训练只会让模型在训练集上越陷越深而在验证集上性能下降。早停法自动找到了泛化能力最佳的平衡点。实操要点耐心值patience是关键超参数。设置太小可能导致训练不充分就停止设置太大则浪费计算资源。通常根据任务和数据集大小设置在10到50之间。务必保存“最佳模型”的检查点而不是最后一个epoch的模型。2.4 第四阶段正则化与泛化优化策略17-21这个阶段的策略专注于给模型“戴上枷锁”防止其记忆训练数据鼓励其学习通用模式。2.4.1 策略17Dropout是什么在训练时以前向传播中随机“丢弃”即暂时屏蔽网络中一部分神经元如50%使其输出为0。在测试时使用所有神经元但对其输出乘以丢弃概率或等价地在训练时对保留的神经元做缩放。为什么有效Dropout可以看作是一种模型平均。每次丢弃相当于训练了一个不同的“子网络”。测试时这些子网络共享权重并进行平均预测。这强制神经元不能过度依赖其他特定的神经元必须学习更鲁棒的特征从而降低了过拟合风险。现代用法在CNN中Dropout通常用在全连接层之后。在Transformer中Dropout被用在注意力权重和前馈网络的输出上。注意BatchNorm和Dropout同时使用有时会相互干扰需要小心调整顺序或丢弃率。2.4.2 策略18权重衰减Weight Decay是什么在损失函数中添加一个L2正则化项惩罚大的权重值。Loss_new Loss_original λ * ||w||^2。优化器在更新权重时会同时向零方向缩小权重。为什么是基础正则化它鼓励模型学习更小、更分散的权重对应于更平滑的函数降低了模型的复杂度从而提升泛化能力。关键点如前所述在使用Adam等自适应优化器时务必使用AdamW它正确实现了权重衰减与自适应学习率的解耦。2.4.3 策略19数据增强进阶版在第一阶段我们提到了基础的数据增强。这里将其视为一种强大的正则化手段。更高级的增强策略如CutMix将一张图像的一部分裁剪下来粘贴到另一张图像上标签按面积比例混合。比简单的裁剪或MixUp更能鼓励模型学习物体的局部特征和位置不变性。RandAugment自动搜索最优的数据增强策略组合避免了手动设计增强流水线的繁琐。 这些方法通过创造更困难、更多样的训练样本极大地增强了模型的泛化能力。2.4.4 策略20随机深度Stochastic Depth是什么在训练深度网络如ResNet时随机地“跳过”即直接使用恒等映射一些网络层。类似于在层级别做Dropout。效果它同样起到了训练多个不同深度子网络并集成的效果。不仅能正则化模型还能显著减少训练时间因为每次前向传播经过的层数变少了同时测试性能可能还有提升。2.4.5 策略21对抗训练Adversarial Training是什么在训练过程中主动生成一些针对模型的、人类难以察觉的微小扰动对抗样本并将这些对抗样本加入到训练数据中让模型同时学习分类正常样本和对抗样本。为什么能提升泛化这强制模型学习到的决策边界更加平滑和鲁棒对输入的小变化不敏感。虽然最初是为了防御对抗攻击但研究发现它也能作为一种强大的正则化方法提升模型在干净数据上的泛化性能。当然其计算成本也更高。2.5 第五阶段推理与部署优化策略22-24模型训练好了如何让它在实际应用中飞起来2.5.1 策略22模型剪枝Model Pruning是什么识别并移除网络中不重要的权重设为0或整个神经元/通道。目标在尽可能保持精度的前提下大幅减少模型参数数量和计算量得到更小、更快的模型。非结构化剪枝剪掉单个权重。压缩率高但需要特殊的稀疏计算库或硬件才能获得加速。结构化剪枝剪掉整个通道、滤波器或层。更容易获得实际的推理加速因为输出的是稠密模型。典型流程训练一个大模型 - 评估权重重要性如基于绝对值大小或梯度信息 - 剪枝 - 对剪枝后的模型进行微调以恢复精度 - 重复“剪枝-微调”过程。2.5.2 策略23量化Quantization是什么将模型权重和激活从高精度如float32转换为低精度如int8。好处减少模型大小int8模型大小约为float32的1/4。加速推理整数运算在现代CPU/GPU/DSP上比浮点运算快得多且功耗更低。便于部署许多边缘设备如手机、嵌入式芯片对低精度计算有原生支持。分类训练后量化直接对训练好的模型进行量化最简单但精度损失可能较大。量化感知训练在训练过程中模拟量化操作让模型提前适应低精度精度损失小是推荐的做法。2.5.3 策略24模型编译与图优化是什么在模型部署前使用专门的编译器如TVM, TensorRT, OpenVINO, XLA对计算图进行一系列高级优化。优化手段算子融合将多个连续的操作如Conv BN ReLU融合成一个内核减少内存读写开销。常量折叠将计算图中可以预先计算的部分静态化。内存优化重用内存缓冲区减少动态内存分配。针对目标硬件优化为特定的CPU、GPU或NPU生成高度优化的内核代码。实操对于PyTorch模型可以先通过torch.jit.trace或torch.jit.script将其转换为静态图再送入TensorRT等引擎进行优化。对于TensorFlow可以使用TensorFlow Lite或TensorRT。这一步通常能带来数倍的推理速度提升。3. 策略组合与实战路线图面对一个具体任务你不需要也不可能同时使用所有24种策略。合理的做法是分阶段、有重点地应用。新手快速启动路线图基础套餐数据标准化 He初始化 AdamW优化器 学习率预热与余弦退火 早停法。这能解决80%的常见训练稳定性问题。效果提升加入适合你任务的数据增强 标签平滑 权重衰减调优。防止过拟合如果模型在训练集上表现很好在验证集上变差依次尝试增加数据增强强度、加入Dropout、尝试更小的模型。进阶调优路线图性能冲刺尝试OneCycleLR策略、知识蒸馏、集成学习。部署准备对最终模型进行量化感知训练和剪枝然后使用模型编译工具优化部署到目标硬件。4. 避坑指南与核心心法最后分享几条从无数次“炼丹”中总结出的核心心法监控是王道不仅要看损失和准确率曲线更要监控梯度范数防爆炸、权重分布初始化是否合理、激活值分布是否有饱和。TensorBoard或Weights Biases是你的好朋友。超参数调优有顺序先调学习率、batch size和优化器。稳定后再调正则化强度权重衰减、Dropout率。数据增强策略可以相对独立地调整。不要一开始就同时调整所有参数。Batch Size与学习率增大batch size时通常需要同比增大学习率如batch size翻倍学习率也大致翻倍以保持更新方差不变。但这不是线性严格的需要实验。随机种子很重要深度学习训练具有随机性。为了实验可复现以及公平比较不同策略固定随机种子包括Python, NumPy, PyTorch/TF的随机种子以及CUDA是必须的。从简单开始建立基线永远从一个简单的模型如3层CNN和标准的优化配置开始得到一个性能基线。然后再逐步增加复杂性或尝试新策略。这样你才能清晰地知道每个改动带来了什么影响。理解你的数据在应用任何花哨的策略之前花时间可视化你的数据理解其分布、噪声和难点。很多时候问题的根源在于数据本身优化算法无力回天。深度学习模型优化是一场结合了理论、经验和大量实验的工程艺术。这份24种策略的清单为你提供了丰富的工具。真正的技巧在于根据具体任务、数据和资源约束像一位老练的厨师一样选择合适的工具进行组合与调配最终“烹制”出高性能的模型。