当答案为“无法确定”时,如何设置阈值防止过拟合?
解读
在国内真实业务场景中,大模型落地最怕“幻觉+过拟合”双重风险。
面试官问“无法确定”场景下的阈值设置,本质是在考察:
- 你是否能把“不确定性量化”做成可配置、可监控的线上指标;
- 你是否能把“防止过拟合”从传统机器学习思路迁移到百亿参数生成模型的微调、提示、知识外挂全链路。
回答必须体现“LLMOps 闭环”:数据→训练→评估→灰度→监控→回滚。
知识点
-
不确定性三层信号
① 模型级:softmax 最大概率 p_max、熵 H、互信息 MI;
② 解码级:beam search 平均分数、length penalty 异常;
③ 业务级:与知识库检索 Top-k 的相似度 max_sim、命中空库标志。 -
过拟合在 LLM 场景的新表现
不是训练集准确率高、验证集低,而是微调后模型对分布外(OOD)问题也强行给出肯定答案,导致“无法确定”类样本被错误压制。 -
阈值设置原则
① 双阈值法:
– 不确定性阈值 τ↑:高于 τ↑ 强制触发“无法确定”;
– 置信度阈值 τ↓:低于 τ↓ 同样触发“无法确定”。
② 动态 τ:按滑动窗口 7 天真实反馈自动微调,窗口内用户点踩率 > 3% 则 τ↑ 增加 0.02,τ↓ 减少 0.01。
③ 人群灰度:对**高敏场景(医疗、金融)**单独配置 τ,允许 τ↑ 比通用场景高 20%。 -
LLMOps 防过拟合四件套
① 对抗验证:训练集 vs 线上抽样子集训练二分类,AUC>0.6 说明分布漂移,立即冻结模型;
② KL 散度监控:微调前后模型在通用 hold-out 千题基准上的 KL<0.05,否则回滚;
③ ε-贪心回灌:每天随机暴露 5% 流量给 base 模型,收集 OOD 样本,**人工标注“无法确定”**后回流训练;
④ 早停+LoRA 秩衰减:LoRA 秩 r 初始 16,若验证集不确定性误差连续 2 轮不降,r 减半,防止低秩过拟合。
答案
线上实操分五步:
- 离线标定:用 5k 条历史 OOD 问题人工标注“可答/不可答”,计算三种不确定性指标 ROC,选取 F1 最大时对应的 p_max=0.42、H=1.8 作为初版 τ↑。
- 微调阶段:采用 LoRA + 0.1% 原始数据混合训练,每 100 step 在 hold-out 千题上计算“无法确定”召回率,若召回率下降 > 5%,立即回退 checkpoint。
- 服务化封装:在推理网关层植入 Uncertainty Filter 插件,当 p_max<0.42 或 H>1.8 或 max_sim<0.65 时,统一包装为
{answer: "无法确定", reason: "知识库未覆盖/模型置信度低", suggest: "已转人工"}。 - 灰度上线:先切 10% 流量,核心监控指标:
– 无法确定率 3%~8% 为健康区间;
– 用户点踩率 < 2%;
– 人工复核准确率 > 95%。
任一指标异常,自动回滚至 base 模型。 - 持续监控:每日凌晨跑 对抗验证 + KL 散度任务,结果写入阿里云 SLS 仪表盘,触发钉钉告警。连续 3 天异常即启动冷启动数据回灌,重新标定 τ。
拓展思考
- 多模态场景:如果输入含图片,需把 CLIP 相似度也纳入 τ 体系,图文不一致时强制无法确定。
- 合规留痕:国内监管要求“生成式 AI 服务管理办法”第十九条留存日志,不确定性触发记录需单独建表,保存 6 个月,方便审计。
- 强化学习方向:用 RLHF 奖励模型给“无法确定”回答打分,奖励高于 0.8 的样本加入训练,让模型学会主动拒答,而不是被动阈值卡死。