AI算法选型实战指南:从约束三角形到产线避坑

发布时间:2026/7/4 12:04:04
AI算法选型实战指南:从约束三角形到产线避坑 1. 这不是算法排行榜而是一份AI工程师日常踩坑的实录“Pros Cons of the Most famous AI Algorithms”——看到这个标题我第一反应不是列个表格打分而是想起上个月凌晨三点改模型时的崩溃瞬间用ResNet-50在医疗影像上跑得飞起结果部署到边缘设备直接卡死用LSTM做时序预测训练时loss漂亮得像PPT上线后三天就因延迟突增被业务方拉进紧急会议。这根本不是教科书里的“算法优劣对比”而是我们每天在真实场景里反复权衡的生存手册。核心关键词——算法选型、计算开销、泛化能力、数据依赖、可解释性、部署成本——每一个词背后都是真金白银的试错成本。这篇文章不讲理论推导只讲我在金融风控、工业质检、智能客服三个主力场景中亲手调过、线上跑过、半夜救过火的7类主流AI算法线性回归与逻辑回归、决策树与随机森林、XGBoost/LightGBM、SVM、CNN、RNN/LSTM/GRU、Transformer。适合三类人刚学完吴恩达课程想落地的新手被业务方一句“为什么不用大模型”问懵的算法工程师以及需要快速评估技术可行性的技术负责人。我会告诉你为什么在银行反欺诈场景里一个轻量级XGBoost比99%的所谓“先进模型”更可靠为什么在产线缺陷检测中ResNet-18的精度可能比ResNet-101低2%但推理速度提升4倍、误报率反而下降为什么你花三个月训出来的Transformer在客服对话补全任务上可能被一个精心设计的规则BiLSTM组合打得毫无还手之力。这不是学术综述这是从实验室到产线之间那道布满碎玻璃的窄桥。2. 算法选型的本质在约束条件下的多目标动态博弈2.1 别再迷信“SOTA”先画出你的约束三角形所有算法选择的起点不是查论文而是画一个三角形。三个顶点分别是数据现状、算力边界、业务目标。我见过太多团队栽在这第一步——拿ImageNet上刷榜的ViT模型去处理某地市政务热线的语音转文本结果发现90%的音频信噪比低于15dB标注数据只有300条GPU显存却要求24GB。这种失败不是算法不行是根本没进入博弈场。真正的选型是在三角形内部找那个最稳的落点。数据现状不是看“有多少数据”而是看“什么质量的数据”。比如金融风控你有1000万条历史交易但其中85%是正常交易欺诈样本仅占0.3%且标签噪声高达15%人工审核误判。这时候任何对类别不平衡敏感的算法如标准Softmax分类都会失效必须前置引入SMOTE或Focal Loss或者直接换用对噪声鲁棒的算法如LightGBM的is_unbalance参数。算力边界这里的关键是区分“训练算力”和“推理算力”。训练时用A100集群没问题但推理端可能是嵌入式ARM芯片或手机端。我做过一个对比在Jetson Nano上ResNet-18的TensorRT优化版推理耗时23ms而同等精度的MobileNetV3只需11ms——省下的12ms足够做一次本地缓存校验把端到端延迟压到50ms内这对实时风控就是生死线。业务目标这才是最常被忽略的。电商推荐要的是“点击率提升”但银行信贷审批要的是“可解释性合规审计通过”。去年有个项目客户坚持要用黑盒深度学习结果模型上线前被风控合规部一票否决——因为监管要求必须能清晰说明“为什么拒绝这笔贷款”而LSTM的隐藏层状态根本无法向审计员解释。最后我们用SHAP值决策树规则引擎组合既满足了精度要求又生成了符合银保监《人工智能应用指引》的决策报告。提示每次启动新项目先用一张A4纸画出你的约束三角形标出每个顶点的具体数值如“标注数据2000条噪声率≤8%”、“推理延迟要求≤100ms硬件RK3399”、“业务KPIAUC≥0.85且需输出TOP3风险因子”。这个动作能砍掉70%的无效尝试。2.2 为什么“最著名”不等于“最适合”——从算法基因解码每个著名算法都有其原始设计意图就像一把瑞士军刀主刀锋利但剪刀未必好用。理解它的“基因缺陷”比背诵优点更重要线性模型LR/Linear Regression它的基因是“可解释性”和“线性假设”。当业务方问“为什么给这个用户授信额度5万”你能指着系数说“收入权重0.3负债率权重-0.7”。但一旦遇到强非线性关系比如信用卡逾期次数与违约概率呈指数增长它就会系统性低估风险。我见过一个案例用LR预测房贷违约AUC只有0.62换成XGBoost后升到0.81——不是XGBoost更“高级”而是LR的基因决定了它无法捕捉“连续逾期3次后违约概率陡增”这个关键模式。决策树CART基因是“分段常数拟合”。它天然擅长处理离散特征和异常值比如在工业传感器数据中温度突然跳变到150℃明显故障决策树会立刻切出一个高风险分支。但它的致命伤是“过拟合倾向”——单棵树在训练集上AUC0.99测试集直接跌到0.7。所以实际工程中几乎从不单独用单棵决策树而是用随机森林RF或梯度提升GBDT来抑制这个基因缺陷。SVM基因是“最大间隔超平面”。它在小样本、高维稀疏数据如文本分类上表现惊艳因为核技巧能隐式映射到高维空间。但它的计算复杂度是O(n²)到O(n³)当训练样本超过10万训练时间会指数级增长。我们曾用SVM处理120万条新闻标题分类单次训练耗时17小时而LightGBM只用23分钟精度还高0.8%。CNN基因是“局部感受野权值共享”。这使它对图像平移、缩放有天然鲁棒性但代价是“全局信息弱”。一张CT影像里肺结节可能只占0.1%像素但决定诊断结论。标准CNN容易忽略这种长程依赖必须引入注意力机制如CBAM模块或结合图神经网络GNN建模器官间关系。RNN/LSTM/GRU基因是“序列记忆”。LSTM的遗忘门设计让它比基础RNN更能保留长期依赖但计算开销大。GRU合并了更新门和重置门速度更快但在超长序列1000步上记忆衰减仍严重。我们处理电力负荷预测时用LSTM预测7天负荷误差在第5天后开始显著增大最后改用TCN时序卷积网络利用膨胀卷积捕获长程依赖效果反而更稳。Transformer基因是“全局自注意力”。它彻底摆脱了RNN的时序串行限制能并行处理整个序列。但它的内存占用是O(n²)当处理10万token的法律文书时单层注意力矩阵就需8GB显存。我们不得不采用Longformer的滑动窗口注意力把复杂度降到O(n×w)w为窗口大小设为1024这才让模型能在单卡上跑起来。2.3 真实世界的算法组合术没有银弹只有拼图在产线90%的成功模型都不是单一算法而是针对问题切片的组合。比如智能客服的意图识别系统第一层规则引擎——处理高频确定性query如“查余额”、“转账流程”。响应快10ms、100%准确、无需训练。这部分覆盖了35%的流量。第二层LightGBM——处理中等复杂度意图如“为什么我的信用卡被降额”。用TF-IDF字符n-gram提取文本特征加入用户历史行为统计特征近7天登录频次、投诉次数。训练快、可解释能输出特征重要性、在2000条标注数据上就能达到0.89 F1。第三层微调BERT——处理长尾模糊意图如“上次那个说要给我打电话的人是谁”。只对10%的疑难case触发用领域语料继续预训练再加一层分类头。虽然慢平均200ms但覆盖了剩下5%的最难case。这个三层架构比单纯用BERT处理全部请求整体响应延迟降低62%服务器成本减少40%且运维更简单——规则层出问题运维直接改配置LightGBM层特征漂移重训模型即可BERT层只在必要时才介入。这才是工程思维用最合适的工具解决最匹配的问题切片。3. 七类主流算法深度拆解从原理到产线实操细节3.1 线性回归与逻辑回归被低估的基石也是最容易翻车的陷阱线性回归Linear Regression和逻辑回归Logistic Regression常被新手视为“过时算法”但它们在金融、电信等强监管行业仍是生产环境的绝对主力。原因很简单可审计、可复现、可归因。当监管机构要求提供“模型决策依据”时你不可能交出一个PyTorch模型文件但可以提交一份Excel表格清晰列出每个变量的系数、标准误、p值。但实操中有三个致命陷阱陷阱一忽略数据分布漂移导致的系数失效去年某运营商做用户流失预测用逻辑回归建模初始AUC0.78。上线半年后AUC跌到0.61。排查发现不是模型坏了而是“月均流量使用量”这个核心特征的分布发生了偏移原来用户月均用2GB现在普遍用15GB。原模型中该特征的系数是-0.42用量越大越不易流失但新数据下15GB已接近饱和再增加用量对留存影响趋近于0。解决方案不是换模型而是动态重校准每月用最新30天数据重新拟合该特征的局部线性关系用分段函数替代全局系数。实测后AUC稳定在0.75以上。陷阱二多重共线性引发的系数符号反转在信贷风控中“信用卡总额度”和“已用额度”高度相关r0.92。单独看总额度系数为正额度越高越可能违约已用额度系数为负用得越多越危险——这明显违背常识。这是因为共线性导致最小二乘估计不稳定。正确做法是先做方差膨胀因子VIF检验VIF5即存在严重共线性此时应剔除一个变量或改用岭回归Ridge Regression引入L2正则。我们用Ridge后两个系数符号恢复正常且交叉验证RMSE下降12%。陷阱三未处理异常值导致的模型倾斜某电商平台用线性回归预测GMV训练集中有1条记录单日GMV 2.3亿元实际是系统bug导致的重复计费。这条数据让截距项偏移了1800万元导致所有预测值系统性高估。解决方案是在拟合前强制进行IQR四分位距过滤定义异常值为Q1-1.5×IQR 或 Q31.5×IQR之外的点并用中位数填充。这个简单操作让测试集MAE从420万降至290万。实操心得逻辑回归不是“简单”而是“精准控制”。我坚持一个原则只要业务能接受线性假设就优先用它。因为它的失败是透明的——AUC掉0.1你马上能定位到是哪个特征的分布变了而深度学习掉0.1你可能要花三天查梯度爆炸还是数据管道漏了。3.2 决策树与随机森林从“if-else”的直觉到抗噪鲁棒的工程实践决策树Decision Tree的直观性是它最大的优势也是最大的陷阱。它的if-else结构让业务方一眼看懂“为什么拒绝贷款”如果收入5000且负债率70%则拒绝。但单棵树极易过拟合实际工程中我们永远用随机森林Random Forest或梯度提升树GBDT。随机森林的核心工程技巧特征采样比行采样更重要Sklearn默认max_featuressqrt即每次分裂只考虑√m个特征m为总特征数。但在高维稀疏数据如文本TF-IDF上这个值太小导致树间相似度过高集成效果差。我们改为max_features0.8让每棵树看到更多特征多样性提升OOB误差下降9%。树的数量不是越多越好我们测试过100/200/500棵树的RF。200棵树时OOB误差收敛再增加树数量训练时间翻倍但精度只提升0.002。工程上200是性价比拐点。处理缺失值的实战方案RF内置的缺失值处理用代理分裂在小数据集上有效但在百万级数据上代理分裂会显著拖慢训练。我们的方案是训练前用KNNImputer填充数值型特征用众数填充类别型特征。虽然损失了一点理论优雅但训练速度提升3倍且精度无损。一个真实案例工业轴承故障预测数据振动传感器10kHz采样每秒生成10000点标注为“正常/内圈故障/外圈故障”。挑战单条样本长度10万点直接喂给RF内存爆炸。解法手工特征工程提取时域均值、方差、峭度、频域FFT主频能量占比、时频域小波包分解能量熵共42维特征RF建模n_estimators200, max_depth12, min_samples_split50结果F1-score 0.93单次预测耗时8ms远低于PLC控制周期20ms且能输出各特征重要性——维修工程师据此发现“小波包能量熵”是最早出现异常的指标比温度传感器早预警2.3小时。注意别迷信自动特征工程。在这个案例中我们试过用1D-CNN自动提取特征精度略高0.5%但推理耗时120ms无法满足实时控制要求。工程选择永远是“够用就好”而不是“理论上最优”。3.3 XGBoost/LightGBM/CatBoost梯度提升的三驾马车如何选轮子XGBoost、LightGBM、CatBoost是当前结构化数据建模的绝对王者。它们本质都是梯度提升决策树GBDT但实现哲学不同XGBoost追求“极致精度”。它用二阶泰勒展开近似损失函数分裂时精确计算每个候选分割点的增益支持自定义损失函数。代价是训练慢、内存占用高。适合数据量≤100万、对精度要求极高的场景如金融定价模型。LightGBM追求“极致速度”。它发明了基于直方图的决策树Histogram-based DT和GOSSGradient-based One-Side Sampling。直方图将连续特征离散为128个bin极大减少分割点计算GOSS丢弃梯度小的样本认为信息量低保留梯度大的样本训练速度提升5倍。但对小数据集10万行可能因采样丢失关键模式。CatBoost专治“类别型特征”。它用有序目标编码Ordered Target Encoding解决类别特征泄露问题——传统target encoding用全局均值会导致模型在训练时“偷看”未来标签CatBoost按样本顺序编码确保每个样本只看到它之前的标签。在广告点击率预估中类别特征占比60%CatBoost比XGBoost AUC高0.015。产线选型决策树数据量 50万类别特征多 → CatBoost数据量 50万~500万需要快速迭代 → LightGBM数据量 500万或需自定义损失函数如Focal Loss→ XGBoostLightGBM调参避坑指南基于100项目经验num_leaves不是越大越好设为2^max_depth但上限不超过131否则过拟合。我们常用64或128。min_data_in_leaf防止过深分裂。设为0.001 * n_samples例如100万数据设为1000。feature_fraction每次建树随机选部分特征增强鲁棒性。设为0.8比默认1.0更稳。early_stopping_rounds必须设我们设为100避免过拟合。实操心得LightGBM的categorical_feature参数是神器。某次处理用户画像数据有“城市等级”一线/新一线/二线...这个有序类别特征我们没声明为categorical模型把它当成了无序类别浪费了大量分裂节点。声明后训练速度提升22%AUC提升0.008。3.4 SVM小样本之王大样本之殇以及核技巧的真相SVM支持向量机的“最大间隔”思想很美但它的工程落地充满反直觉细节。它的核心价值不在大数据时代而在小样本、高维、稀疏场景比如生物信息学基因表达数据或法律文书分类每类只有几百份判决书。为什么SVM在大数据上会崩SVM的训练复杂度是O(n²)到O(n³)其中n是样本数。当n10万时理论计算量达10¹⁰实际训练可能耗时数天。而LightGBM是O(n×log(n))10万样本几分钟搞定。所以SVM的适用边界非常清晰n ≤ 1万且特征维度d ≥ 1000。核技巧Kernel Trick的真相很多人以为RBF核高斯核是“万能钥匙”能解决一切非线性问题。错RBF核有两个致命参数γgamma和C惩罚系数。γ控制单个样本的影响范围C控制对误分类的容忍度。我们做过实验在2000条新闻标题分类任务上γ0.001时模型欠拟合AUC0.68γ100时模型过拟合训练AUC0.99测试AUC0.72最优γ0.1AUC0.85。这个最优值与数据分布强相关必须网格搜索没有捷径。SVM的产线救命技巧用LinearSVC替代SVC当数据线性可分或近似线性可分时如文本TF-IDF用LinearSVC基于liblinear复杂度O(n×d)比SVC(kernellinear)基于libsvm快10倍。降维预处理对高维稀疏数据先用TruncatedSVD降到1000维再喂给SVM。我们处理10万维的专利文本SVD降维后SVM训练时间从8小时缩短到22分钟AUC仅降0.003。样本筛选SVM只依赖支持向量Support Vectors。我们可以先用KMeans聚类取每个簇的中心点作为代表样本用1000个代表点训练SVM再用全量数据测试。这样训练快且精度损失可控0.01。提示SVM不是“过时”而是“场景特化”。当你拿到一份只有300个标注样本的医疗影像数据集且特征是2048维的ResNet提取向量时请毫不犹豫地打开sklearn.svm.SVC——这是它最闪耀的时刻。3.5 CNN从LeNet到Vision Transformer卷积的进化与边界CNN卷积神经网络是计算机视觉的基石但它的“卷积”本质决定了它有明确的能力边界擅长局部模式识别不擅长大范围空间关系建模。经典CNN的产线陷阱感受野不足早期CNN如AlexNet感受野仅几十像素无法理解“人站在车前方”这种全局关系。解决方案是堆叠更多层或用空洞卷积Dilated Convolution扩大感受野而不增加参数。下采样丢失细节MaxPooling会永久丢失位置信息。在医学影像分割中我们改用转置卷积Transposed Conv跳跃连接Skip Connection的U-Net结构把浅层的高分辨率特征和深层的语义特征融合Dice系数从0.72提升到0.86。数据增强的副作用随机旋转、裁剪对自然图像有效但对X光片可能破坏解剖结构。我们定制增强只做水平翻转人体左右对称、亮度/对比度微调禁用旋转和仿射变换。ResNet的残差连接为什么是革命不是因为它更深而是因为它解决了梯度消失这个根本问题。在训练100层网络时标准CNN的梯度在反向传播中指数衰减底层权重几乎不更新。ResNet的恒等映射x F(x)让梯度可以无损直达底层使训练超深网络成为可能。但要注意残差连接不是万能的。在时序数据上直接套用ResNet效果很差因为时序的“残差”概念与图像不同——我们后来改用TCN时序卷积网络用因果卷积膨胀卷积构建残差块效果才好。Vision TransformerViT的真相ViT把图像切成16×16的patch线性投影后输入Transformer。它在大数据JFT-300M上超越CNN但小数据上全面溃败。我们在一个5000张CT影像的肺结节检测任务上测试ViT-B/16训练300轮AUC0.79ResNet-50训练100轮AUC0.85。原因ViT缺乏CNN的归纳偏置inductive bias需要海量数据学习“局部性”和“平移不变性”。工程建议小数据任务老老实实用CNN大数据算力充足ViT值得尝试。实操心得CNN不是“越深越好”而是“够深就行”。在工业质检中我们用ResNet-1818层达到99.2%准确率ResNet-5050层只提升到99.3%但推理耗时从18ms涨到41ms。多出的0.1%精度换不来产线的稳定性。3.6 RNN/LSTM/GRU序列建模的旧王以及为何被Transformer部分取代RNN循环神经网络及其变体LSTM、GRU是处理序列数据文本、语音、时序的传统主力。但它们的“时序串行”基因决定了其固有瓶颈。LSTM的遗忘门真的能记住长程依赖吗理论上可以但实践中当序列长度200LSTM的记忆就开始严重衰减。我们处理电力负荷预测序列长96每15分钟一个点LSTM效果很好但处理法律文书摘要序列长1024LSTM的BLEU分数比Transformer低0.15。原因LSTM的隐藏状态h_t是前一时刻h_{t-1}和当前输入x_t的函数信息传递是链式误差会累积。GRU vs LSTM速度与精度的权衡GRU合并了LSTM的遗忘门和输入门参数更少训练更快。在我们的客服对话生成任务中GRU训练时间比LSTM短35%BLEU分数低0.02。这个trade-off是否值得取决于场景如果模型需每日更新如舆情监控选GRU如果精度是唯一KPI如机器翻译选LSTM。RNN的致命伤无法并行RNN必须按时间步顺序计算h₁→h₂→h₃…无法利用GPU的并行计算能力。而Transformer的自注意力所有位置的表示可以同时计算。我们测算过处理1000长度的序列LSTM单步耗时12msTransformer单步耗时3ms并行优势。这就是Transformer崛起的根本原因——不是它更“聪明”而是它更“现代”更契合硬件。RNN的产线生存指南用双向RNNBi-RNN前向RNN捕捉过去信息后向RNN捕捉未来信息拼接后输出效果显著提升。堆叠多层RNN单层RNN容量有限2-3层是常见选择。但层数越多梯度消失越严重必须加LayerNorm。配合CNN做特征提取对长文本先用1D-CNN提取局部n-gram特征再喂给RNN建模长程依赖比纯RNN效果更好。注意不要盲目淘汰RNN。在资源受限的嵌入式设备上一个优化后的LSTM模型量化剪枝可能比同等精度的Transformer小10倍更适合部署。3.7 Transformer全局注意力的双刃剑以及如何驯服它Transformer尤其是BERT、GPT系列已成为NLP的绝对标准但它的“全局自注意力”是一把双刃剑。O(n²)复杂度的现实痛楚自注意力计算所有位置对之间的相关性复杂度O(n²)。处理一篇1000字的合同需要计算100万次相似度处理10万字的判决书需要100亿次计算——单卡根本跑不动。解决方案Longformer用滑动窗口注意力每个token只关注前后w个token 全局token如[CLS]关注所有位置复杂度O(n×w)。w1024时10万token只需1亿次计算。Reformer用局部敏感哈希LSH将相似的key分组只计算组内attention复杂度O(n×log(n))。FlashAttention优化GPU内存访问减少IO速度提升2-3倍显存占用减半。预训练-微调范式的陷阱BERT在通用语料上预训练但金融、医疗等垂直领域术语和句式差异巨大。直接微调效果往往不如预期。我们的方案领域自适应预训练Domain-Adaptive Pretraining用1000万条金融新闻、研报、公告继续预训练BERT-base只训练10个epoch。再微调下游任务F1提升3.2%。提示学习Prompt Learning不改模型权重而是设计模板“这个句子的情感是[MASK]。”让模型预测[MASK]再映射到{正面/负面/中性}。小样本场景下比传统微调更鲁棒。Transformer的部署噩梦PyTorch模型不能直接上生产。必须ONNX转换导出为ONNX格式跨平台兼容TensorRT加速用NVIDIA TensorRT优化FP16精度下BERT-base推理速度从120ms降至35ms动态批处理Dynamic Batching将多个请求合并成一个batch处理GPU利用率从40%提升到85%。实操心得Transformer不是“终点”而是“新起点”。它的真正价值是把NLP从“特征工程模型”时代带入“提示工程模型”时代。现在我们花最多时间的不是调参而是设计prompt——一个好prompt能让小模型发挥大作用。4. 算法选型决策矩阵与产线避坑清单4.1 五维决策矩阵用一张表终结选择困难症面对新项目不再凭感觉而是用这张表快速定位算法类别数据量行特征维度实时性要求可解释性要求典型产线场景我的推荐指数★线性模型任意低-中极高10ms★★★★★银行信贷初筛、电信套餐推荐★★★★☆决策树/RF100万中-高高50ms★★★★☆工业设备故障预警、电商用户分群★★★★★LightGBM10万-500万中-高中200ms★★★☆☆金融反欺诈、广告点击率预估★★★★★SVM1万高-极高1000中★★★★☆法律文书分类、基因序列分析★★★☆☆CNN任意图像/信号中-高★★☆☆☆医学影像诊断、工业质检★★★★☆LSTM/GRU任意序列中★★☆☆☆电力负荷预测、客服对话状态跟踪★★★☆☆Transformer10万文本/序列中-低★☆☆☆☆智能客服问答、合同关键信息抽取★★★★☆推荐指数说明★★★★★在对应场景下综合精度、速度、稳定性、可维护性最佳★★★☆☆有明显优势但需注意特定陷阱如SVM的数据量限制★★☆☆☆可用但通常有更优替代方案如小数据文本分类优先用LightGBMTF-IDF而非Transformer。4.2 产线十大高频问题与根因排查问题从来不是“模型不准”而是“哪里不准”。以下是我在项目中总结的十大高频问题及根治方法问题现象根本原因排查步骤解决方案实操耗时训练AUC高线上AUC暴跌训练/线上数据分布不一致Data Drift1. 抽样线上最近7天数据2. 用KS检验对比关键特征分布3. 查看特征监控告警重做特征工程加入时间衰减因子如用户活跃度∑(logins_i × 0.9^(t-i))2小时模型预测结果全为同一类类别不平衡损失函数未适配1. 统计预测结果分布2. 检查训练集正负样本比3. 查看loss曲线是否平稳下降改用Focal Loss或设置class_weightbalanced15分钟推理延迟忽高忽低GPU显存碎片化或CPU-GPU数据搬运瓶颈1. 用nvidia-smi看显存占用波动2. 用py-spy profile CPU热点启用TensorRT的显存池memory pool或改用固定batch size30分钟特征重要性与业务直觉冲突特征存在强共线性或交互效应1. 计算VIF2. 用SHAP值分析单样本预测3. 做特征消融实验引入交互特征如A×B或用TreeExplainer替代summary plot1天模型上线后精度逐日下降概念漂移Concept Drift1. 监控预测结果分布如输出概率的熵值2. 用ADWIN算法检测漂移点设置自动重训流水线当漂移检测触发用最近30天数据重训自动化小样本场景下模型完全不收敛学习率过大或初始化不当1. 检查loss初始值2. 画learning rate finder曲线3. 查看梯度norm改用AdamW学习率设为1e-5warmup 10% steps20分钟文本分类中长尾类别完全被忽略损失函数对长尾不敏感1. 统计各类别预测准确率2. 查看混淆矩阵对角线改用Label Smoothing或对长尾类别上采样1小时图像模型对光照变化鲁棒性差数据增强策略与线上场景不匹配1. 收集线上bad case图像2. 分析共性如逆光、反光3. 对比训练增强策略增加针对性增强RandomShadow、RandomSunFlare