技术使用时机指南
一、按比赛阶段
初期:跑通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) |