真实面经题目 · 原创解析

模型对齐后变得过于保守、经常拒答时,如何调整偏好数据、拒答策略和安全阈值?

这题考的是对齐训练中的 helpfulness 与 harmlessness 校准能力:候选人要能把过度拒答拆成数据标签、偏好目标、reward/judge 偏置、安全分类阈值和线上策略问题,并给出训练与评估闭环。

出现于:百度 · 算法

60 秒回答模板

对齐后过于保守,首先要确认它是“该拒不拒”还是“可答却拒”的问题。真正需要优化的是 false refusal:用户请求本来安全、可回答或可以在安全边界内部分回答,但模型直接拒绝。排查上我会先做拒答 taxonomy,把样本分成明确危险、明确安全、边界模糊、需要澄清、可提供安全替代方案几类;再看训练数据里是否把大量边界问题标成拒答,是否缺少“安全回答”的 chosen 样本,是否 rejected 总是更长更具体而 chosen 是模板化拒绝,导致偏好模型学会保守模板。训练策略上,需要补充安全可答数据和边界样本:例如把敏感但合法的教育、医疗、法律、代码安全、防诈骗等请求标成有边界的帮助性回答,而不是一概拒绝;在 DPO/RLHF 里把“合规回答优于空泛拒绝”作为明确偏好,同时保留真正危险请求的拒答。还要审计 reward model 或 LLM judge 是否对拒答有过高奖励,调节 helpfulness/harmlessness 权重、DPO beta、KL 约束和安全分类阈值。评估上不能只看安全通过率,要同时看拒答率、误拒率、边界请求 helpfulness、危险请求拦截率和人工审核。上线时可以把训练校准和外部安全 guardrail 分层:模型尽量给出安全有用回答,高风险场景由分类器和策略层兜底。

考点 核心指标是 false refusal
难度 真实面经题
回答目标 让候选人能把过度拒答当作对齐校准问题处理:定义 false refusal,审计数据和 reward 偏置,补充安全可答偏好样本,校准策略阈值,并用安全与可用双指标验证。

深入解析

01

先定义过度拒答

过度保守不是拒答越少越好,而是安全可答问题被拒绝。需要区分 true refusal 和 false refusal:危险请求、违规操作和不可协助内容应拒绝;普通知识、合法咨询、可提供高层建议或可安全改写的问题不应直接拒绝。定义清楚后才有训练目标。

02

建立拒答 taxonomy

样本应分成明确安全、明确危险、边界模糊、需要澄清、可安全替代、政策不适用等类别。不同类别的目标行为不同:明确安全要直接回答,边界模糊要澄清或加限制回答,危险请求要拒绝并给安全替代。没有 taxonomy,数据标注会把复杂边界压成“拒绝/不拒绝”二分类。

03

数据标签经常是主因

过度拒答常来自偏好数据中拒答样本过多、边界问题被错误标拒、chosen 总是安全模板、可答样本缺少限制性回答示范,或者标注者为了规避风险倾向选择拒答。模型会学习“拒绝更安全、更容易得高分”,最终牺牲 helpfulness。

04

补充安全可答和边界样本

修复时要加入大量“敏感但可答”的样本,例如安全教育、防御性代码、合规医学常识、法律常识、心理支持、新闻事实、历史研究等,并标注如何给出范围限制、免责声明、澄清问题和安全替代方案。目标是让模型学会有边界地帮助,而不是只有拒绝和放开两种模式。

05

偏好对要惩罚空泛拒绝

在 DPO 或 RLHF 数据里,应构造 chosen/rejected 对:对于安全可答请求,合规且有帮助的回答应优于空泛拒绝;对于危险请求,拒绝加安全替代应优于直接执行。这样 reward 或 preference objective 才能同时学到 helpfulness 和 safety 的条件边界。

06

审计 reward/judge 偏置

如果 reward model 或 LLM judge 过度奖励拒答模板,即使 SFT 数据较好,RL/DPO 也会把模型推向保守。要分桶看 reward 分数:安全可答样本中,拒答是否异常高分;危险样本中,执行请求是否被惩罚;边界样本中,限制性回答是否被正确奖励。

07

阈值和策略层要单独校准

有些过拒来自训练,有些来自外部安全分类器、关键词规则、系统提示或后处理阈值。应分别评估模型原始输出、经过 safety classifier 的输出和最终产品响应。如果分类阈值过低或规则过宽,继续训练模型未必解决最终误拒。

08

指标要同时看安全和可用

只看危险请求拦截率会鼓励模型一概拒绝。评估集应包含普通安全问题、敏感但可答问题、边界问题和明确危险问题,指标包括 false refusal rate、true refusal rate、helpfulness、policy compliance、unsafe completion rate、澄清质量和安全替代质量。

09

上线要分层防护

训练目标应让模型尽量在安全边界内提供有用回答;策略层负责高风险检测、审计、降级和强拒。把所有安全责任压进模型偏好里,容易得到保守模型;把所有风险都交给后处理,又容易出现绕过。更稳的是模型、分类器、规则和人工审核分层协作。

易错点

  • 把过度保守简单理解成拒答率高,没有区分合理拒答和误拒。
  • 为了降低拒答率直接放宽所有安全阈值,导致危险请求也被回答。
  • 只改 system prompt,不检查 SFT/RLHF/DPO 数据里的拒答标签和偏好偏置。
  • 偏好样本里 chosen 总是模板化拒绝,导致模型学会“拒绝最稳”。
  • 评估只看安全通过率,不看安全可答样本的 helpfulness 和 false refusal rate。
  • 忽略 reward model 或 LLM judge 对拒答答案的系统性高估。
  • 把模型训练问题和外部 classifier/规则阈值问题混在一起,无法定位过拒来源。
  • 没有构造边界样本和安全替代回答,导致模型只会拒绝或直接执行两种极端行为。

面试官追问

如何区分模型本身过拒和安全策略层过拒?

分别记录 base/SFT/aligned 模型原始输出、安全分类器判断、规则命中和最终响应。如果模型原始输出能回答但最终被拦截,问题在策略层;如果原始输出已经拒绝,重点看训练数据、偏好目标和系统提示。

降低拒答率会不会让模型更不安全?

如果只是降低安全阈值,确实可能增加风险。正确做法是降低 false refusal,而不是降低所有 refusal:安全可答问题要更有帮助,明确危险问题仍要稳定拒绝,并用危险请求拦截率和 unsafe completion rate 做门禁。

DPO 数据如何构造才能减少过度保守?

对安全可答和边界可答请求,chosen 应是有边界、有帮助、必要时澄清的回答,rejected 可以是空泛拒绝或过度模板化回答;对危险请求,chosen 是拒绝加安全替代,rejected 是执行危险操作。这样模型学到条件化安全,而不是无条件拒绝。

评估集应该包含哪些样本?

至少包含普通安全问题、敏感但合法可答问题、需要澄清的边界问题、明确危险请求、越狱攻击和历史误拒样本。指标要同时报告 false refusal、true refusal、helpfulness、policy compliance 和 unsafe completion。

系统提示可以解决过度拒答吗?

系统提示可以缓解一部分,例如要求“在安全范围内尽量帮助”,但如果偏好数据和 reward 已经强烈奖励拒答,提示效果有限。稳定修复通常要同步改数据、偏好目标、评估和策略阈值。