当答案为“无法确定”时,如何设置阈值防止过拟合?

解读

在国内真实业务场景中,大模型落地最怕“幻觉+过拟合”双重风险。
面试官问“无法确定”场景下的阈值设置,本质是在考察:

  1. 你是否能把“不确定性量化”做成可配置、可监控的线上指标
  2. 你是否能把“防止过拟合”从传统机器学习思路迁移到百亿参数生成模型的微调、提示、知识外挂全链路。
    回答必须体现“LLMOps 闭环”:数据→训练→评估→灰度→监控→回滚。

知识点

  1. 不确定性三层信号
    ① 模型级:softmax 最大概率 p_max、熵 H、互信息 MI;
    ② 解码级:beam search 平均分数、length penalty 异常;
    ③ 业务级:与知识库检索 Top-k 的相似度 max_sim、命中空库标志。

  2. 过拟合在 LLM 场景的新表现
    不是训练集准确率高、验证集低,而是微调后模型对分布外(OOD)问题也强行给出肯定答案,导致“无法确定”类样本被错误压制。

  3. 阈值设置原则
    双阈值法
    – 不确定性阈值 τ↑:高于 τ↑ 强制触发“无法确定”;
    – 置信度阈值 τ↓:低于 τ↓ 同样触发“无法确定”。
    动态 τ:按滑动窗口 7 天真实反馈自动微调,窗口内用户点踩率 > 3% 则 τ↑ 增加 0.02,τ↓ 减少 0.01。
    人群灰度:对**高敏场景(医疗、金融)**单独配置 τ,允许 τ↑ 比通用场景高 20%。

  4. LLMOps 防过拟合四件套
    对抗验证:训练集 vs 线上抽样子集训练二分类,AUC>0.6 说明分布漂移,立即冻结模型;
    KL 散度监控:微调前后模型在通用 hold-out 千题基准上的 KL<0.05,否则回滚;
    ε-贪心回灌:每天随机暴露 5% 流量给 base 模型,收集 OOD 样本,**人工标注“无法确定”**后回流训练;
    早停+LoRA 秩衰减:LoRA 秩 r 初始 16,若验证集不确定性误差连续 2 轮不降,r 减半,防止低秩过拟合

答案

线上实操分五步:

  1. 离线标定:用 5k 条历史 OOD 问题人工标注“可答/不可答”,计算三种不确定性指标 ROC,选取 F1 最大时对应的 p_max=0.42、H=1.8 作为初版 τ↑
  2. 微调阶段:采用 LoRA + 0.1% 原始数据混合训练,每 100 step 在 hold-out 千题上计算“无法确定”召回率,若召回率下降 > 5%,立即回退 checkpoint。
  3. 服务化封装:在推理网关层植入 Uncertainty Filter 插件,当 p_max<0.42 或 H>1.8 或 max_sim<0.65 时,统一包装为
    {answer: "无法确定", reason: "知识库未覆盖/模型置信度低", suggest: "已转人工"}
  4. 灰度上线:先切 10% 流量,核心监控指标
    – 无法确定率 3%~8% 为健康区间;
    – 用户点踩率 < 2%;
    – 人工复核准确率 > 95%。
    任一指标异常,自动回滚至 base 模型
  5. 持续监控:每日凌晨跑 对抗验证 + KL 散度任务,结果写入阿里云 SLS 仪表盘,触发钉钉告警。连续 3 天异常即启动冷启动数据回灌,重新标定 τ。

拓展思考

  1. 多模态场景:如果输入含图片,需把 CLIP 相似度也纳入 τ 体系,图文不一致时强制无法确定
  2. 合规留痕:国内监管要求“生成式 AI 服务管理办法”第十九条留存日志,不确定性触发记录需单独建表,保存 6 个月,方便审计。
  3. 强化学习方向:用 RLHF 奖励模型给“无法确定”回答打分,奖励高于 0.8 的样本加入训练,让模型学会主动拒答,而不是被动阈值卡死。