技术使用时机指南

技术使用时机指南


一、按比赛阶段

初期:跑通Baseline(收益最大)

优先级 技术点 说明
1 EDA探索性数据分析 统计文本长度、类别分布、缺失值、分布一致性,不做EDA后面全白费
2 验证集构造 固定随机种子和折划分,确保实验可复现
3 多模型基准对比 从简单到复杂跑一遍:传统ML → RNN → CNN → USE → BERT,定位性价比最高方向
4 评价指标深度解析 搞清楚比赛用什么指标(Macro-F1/SMAPE/AUC等),后续所有优化都面向该指标
5 基础文本预处理 转小写、去特殊字符等,不宜过度
6 TF-IDF + BernoulliNB 短文本快速baseline,可能接近BERT微调水平

中期:特征工程与模型优化(持续提升)

优先级 技术点 说明
1 缺失值分类处理 按缺失原因填充:不存在填None、为零填0、局部统计量填充
2 异常值检测与删除 散点图识别离群点,仅删除确认的异常
3 目标变量变换 右偏分布用log1p,预测后expm1还原
4 数值转类别/有序编码 修正语义错误,有序特征用Label Encoding保留等级
5 组合特征工程 领域知识构造新特征(如总面积=地下室+1层+2层)
6 Box-Cox变换 偏度>0.75的特征做变换,比log适应性更强
7 社交媒体特征工程 hashtag数、mention数、url数、大写比例等,与CLS向量拼接
8 关键词增强输入 keyword拼接到text前面,零成本利用元信息
9 Byte-level BPE 医疗/多语言文本有UNK问题时,换RoBERTa分词器
10 长文本截断策略 标点符号处截断或按句拆分,避免暴力截断破坏语义
11 动态填充 DataCollatorWithPadding按batch内最长填充,短文本训练加速75%
12 在BERT上层加LSTM/Attention 默认线性分类器表达能力不足时,插入自定义网络层
13 混合池化策略 Max+Avg+Self-Attention Pooling多维度提取特征
14 BERT多层输出加权融合 最后一层不一定最优,对最后4层加权求和
15 模型选型天花板 换DeBERTa V3等更强模型,单模型即可冲入前列
16 分层学习率 新初始化的层用高lr(1e-4),预训练主体用低lr(1e-5)
17 RobustScaler 含异常值的数据用中位数+IQR缩放,替代StandardScaler
18 时序:offset+log变换 多序列量纲差异大时,log(1+offset*x)灵活标准化
19 时序:固有值去除 offset+log后减去历史中位数,消除绝对大小差异
20 时序:趋势特征衍生 短期中位数-长期中位数,显式编码趋势强度
21 时序:成分分解 识别Level/Trend/Seasonality/Cycle/Noise,针对性建模

后期:集成与冲刺(收益递减)

优先级 技术点 说明
1 概率分布平均融合 最简单有效的融合,多模型概率直接算术平均
2 加权平均融合 按验证集表现分配权重,强模型高权重
3 Stacking 基模型概率作为元特征,元模型学习最优组合
4 模型多样性保障 不同模型架构/不同超参/不同种子/不同Fold
5 跨模型字符级融合 不同分词器的模型融合时,必须用Offset Mapping投射到字符级
6 K折伪标签 5折CV在未见过的验证集上生成伪标签,多模型融合降噪
7 半监督伪标签冲刺 模型瓶颈时,用高分模型对无标注数据预测,高置信度样本加入训练
8 TTA 对测试数据做变换后预测加入训练集,间接学习测试分布
9 Label Smoothing 多分类任务后期提分,软化one-hot防止过拟合
10 Multi-Sample Dropout 池化后多次Dropout采样,类似内部集成,收敛更快
11 对抗训练(FGM/PGD) 正则化手段,提高抗干扰能力,Attack Ratio=0.5兼顾速度
12 SWA 训练末期几个Epoch权重平均,更稳健的最终模型
13 对比学习 表征坍缩时用SimCSE/ConSERT改善句子Embedding
14 领域自适应预训练 通用模型在特定领域表现差时,用大量无标注语料继续预训练
15 全量数据重训练 超参确定后用全量数据重训练,通常提升0.5-1个百分点
16 后处理规则 分析Bad Case制定规则:去空格、修正偏移、取整
17 时序:取整技巧 整数型目标变量做round(),零成本后处理
18 时序:复合预测策略 简单模型拟合趋势+复杂模型拟合残差
19 时序:NN交叉验证集成 20个NN取中位数,降低NN随机性带来的方差
20 Code Submission内存管理 进程隔离、最优模型提取、F1排序衰减权重

二、按问题场景

模型训飞/不收敛

技术点 何时用
Warmup机制 训练大模型时必须设置,比例0.1~0.2
梯度截断 FP16训练时必须配合,阈值设1
梯度累加 显存不足BS=1时,模拟大BS训练
降低学习率 BERT用1e-5~3e-5,DeBERTa用5e-6~9e-6
Cosine调度器 比线性递减更平滑,帮助找全局最优
换随机种子 某些种子(如42)对特定模型不收敛,换一个试试

过拟合

技术点 何时用
Label Smoothing 多分类one-hot导致过度自信时,ε=0.05~0.1
Dropout 常规正则化,Multi-Sample Dropout可提高到0.3~0.4
对抗训练(FGM/PGD) 在Embedding层加扰动,正则化效果
早停法 验证集性能不提升时停止,Patience=3~5
Weight Decay 通常设0,过拟合严重时可尝试
弃用Flatten改用Pooling 分类器参数量过大导致过拟合时,用Pooling压缩序列维度
减少Epoch 预训练微调3 epoch通常足够
数据量少不做继续预训练 仅1000条数据时继续预训练容易过拟合

样本不均衡

技术点 何时用
频率倒数开根号采样 WeightedRandomSampler权重取倒数开根号,平滑100:1至10:1
类别权重 CrossEntropyLoss中加入类别权重
BCE positive weight 二分类正负样本不均衡时调节
Focal Loss 小类样本极少时,alpha+gamma自适应关注难分样本
Dice Loss + OHEM NER任务负样本远多于正样本时
数据生成与自动标注 小类别样本极少时,爬虫+替换/插入增强

数据量不足

技术点 何时用
半监督伪标签 有标注数据少但无标注数据多时
继续预训练 有大量无标注领域语料(如70G+)时
对比学习(SimCSE) 无标注数据可用时,自监督优化表征
数据增强(同义词/回译) 文本数据量少时扩充训练集
USE冻结式迁移 数据量小、算力有限时快速验证
外部数据集 官方训练集数据量少,寻找相关外部数据集

领域不匹配

技术点 何时用
领域自适应预训练 通用BERT在医疗/金融等特定领域表现差时
脱敏ID词频映射 脱敏数据无法直接用预训练模型时
混合词表初始化 部分脱敏ID映射失败时,用Word2Vec向量替代随机初始化
对比学习级联迁移 外部NLI数据预热 → 领域内自监督微调 → 任务微调
Byte-level BPE 医疗生僻词/多语言混合导致大量UNK时

显存不足

技术点 何时用
梯度累加 模拟大BS训练,设accumulation_steps=4
FP16混合精度 显存减半,速度提升30%~50%,必须配合梯度截断
梯度检查点 用计算时间换显存,可提升BS数倍
动态填充 按batch内最长样本填充,短文本节省75%计算
模型卸载到CPU 极端显存不足时

三、速查表:一句话决策

你遇到的问题 用什么
模型训飞Loss变0 Warmup(0.1) + 梯度截断(1) + 降低lr
验证集好线上差 对抗训练 / 早停 / 减少Epoch
小类样本太少 Focal Loss / 采样权重倒数开根号 / 数据生成
BERT在医疗文本差 继续预训练 / 换DeBERTa / 对比学习级联迁移
脱敏数据用不了BERT 词频映射 + Word2Vec初始化失败部分
显存不够BS=1 梯度累加 + FP16 + 动态填充
多模型融合没提升 确保模型多样性(不同架构/超参/种子)
NER预测位置偏了 Offset Mapping修正 + 去首尾空格 + 去硬编码+1
时序GBT预测偏低 复合预测: LR拟合趋势+GBT拟合残差
时序不同序列量纲差太大 offset+log变换 → 减历史中位数去固有值
损失函数和评价指标不一致 直接用评价指标作为损失函数(如SMAPE Loss)
比赛最后冲刺没方向 伪标签 / TTA / 全量重训练 / SWA
想快速验证方案 USE冻结迁移 / TF-IDF+NB,几分钟出结果
预训练模型分类器太弱 上层加LSTM/Attention / 混合池化 / 多层输出加权
Code Submission超时 进程隔离释放内存 + 最优模型提取 + 长句拆分(500字符)
NER数据少过拟合 RoBERTa+CRF + 5折CV + 多折融合
NER预测位置不准 Bad Case分析 + 书名号/引号规则修正 + 概率阈值过滤
NER想冲高分 BERT多层动态融合 + FLAT(SOTA) + 特殊概率融合
文本分类小类太少 Focal Loss + Class Weight + 采样权重倒数开根号
文本分类想换更强模型 DeBERTa V3(单模型最强) / MacBERT(中文优化)
推荐系统召回不够 多路召回(ItemCF+UserCF+DeepWalk+双塔DNN)
推荐系统排序不强 DeepFM(通用首选) / DIN(序列注意力)
推荐系统多目标冲突 MMOE(软共享) / PLE(目前最强)
推荐系统用户多兴趣 MIND(动态路由) / ComiRec(注意力)
时序深度学习选模型 LSTM(首选) / GRU(数据少/快速实验)
高频因子挖掘 订单簿因子+成交因子+买卖单细分+联动因子+聚类因子
因子有效性评估 ICIR>0.5强因子 + 分层回测单调性验证
时序半监督 伪标签(高置信度) + 一致性正则 + Mixup时间步对齐
分类过拟合 MixUp/CutMix + Label Smoothing + 加强增强
检测密集目标漏检 Soft-NMS + 降低置信度阈值 + Mosaic增强
检测多模型融合 WBF(首选) > Soft-NMS > 标准NMS
分割小目标梯度不稳定 Dice Loss分母平方 + smooth系数
医学大图显存不够 TIF→PNG切片训练,预测时拼接
噪声标签分类差 Bi-tempered Loss / Clean Label / Label Smoothing
大模型训练跑飞 WarmUp(5~10%) + 降低学习率
检测置信度阈值不好选 OOF网格搜索最优阈值
分类后期提不动 Label Smoothing + 跨架构融合 + TTA
分割边界模糊 Attention机制 + 多尺度特征(ASPP/SPP)
检测小目标漏检 FPN/BiFPN + 增大输入尺寸 + 多尺度TTA
数据量太少 外部数据集 + 伪标签 + 强增强 + 小模型
推理太慢 减小输入尺寸 / 减少TTA / 模型蒸馏

四、新增技术速查

你遇到的问题 用什么
大模型显存不够 梯度检查点 + FP16 + LoRA微调
想快速确定学习率 LR Finder自动搜索
训练不稳定想提升泛化 EMA(指数移动平均)
想免费获得集成效果 Snapshot Ensemble(余弦退火快照)
NER嵌套实体 GlobalPointer / MRC-NER
长文本超过512 Token Longformer / BigBird / 滑动窗口
时序长序列预测 PatchTST / N-HiTS / TimesNet
检测小目标漏检 SAHI切片辅助推理
分割IoU指标不优 Lovasz Loss替代Dice Loss
细粒度分类混淆 ArcFace增加类间间隔
推荐系统特征交叉 DCN V2 / AutoInt / xDeepFM
推荐系统CVR预估 ESMM全空间多任务
调参训练成本高 Hyperband / BOHB快速淘汰差配置
少样本NER MRC-NER(阅读理解式)
少样本分类 Prompt-based分类 / PET
对比学习改善表征 SimCSE / ConSERT
领域不匹配 DAPT领域自适应预训练
参数高效微调 LoRA / P-Tuning v2
多目标权重难调 GradNorm / Uncertainty Weighting
新架构替代ViT ConvNeXt / EfficientNetV2
推荐序列召回 SASRec / NextItNet
推荐图召回 LightGCN
因子不纯净 因子中性化(截面回归去风险)
因子随时间失效 动态因子权重(指数加权IC)