大模型什么都会一点,也就意味着什么风险都可能沾一点。安全对齐数据长什么样,核心就两类材料:教它拒答的,和教它分辨边界的。微调时加入这批数据,模型才能在有问必答和有所不答之间找到分寸,而不是要么全盘托出、要么一律装傻。
安全对齐数据在教什么
安全对齐要教三件事。第一是识别危险提问:诱导违规、索要隐私、打探他人信息的提问,模型要能认出来。第二是优雅拒绝:拒绝不等于生硬顶回,要说明不能提供的原因,再尽量给出安全方向的替代。第三是边界感:对于灰色地带的问题,既不扩大化拒绝,也不放松判断,给出负责任的回答。
这套数据和能力数据的目标不一样。能力数据追求答对,安全数据追求在该停的地方停。两者混在一起训练,模型学到的是一个综合策略:先判断这题该不该答,再决定怎么答。判断环节的质量,直接由安全数据的质量决定。
拒答样本的三种形态
直接拒答是最基础的一种:提问明显越界,模型明确说明不能提供,并指出原因。条件拒答更进一步:问题本身可以讨论,但其中某个具体请求不行,模型拒绝那部分、保留其余。第三种是转移式回应:提问背后有正当需求,模型不满足危险形式,但引导到安全替代方案,比如把怎么破解转成怎么防护。
三种形态的差别,落在适用情形和回应方式上。
| 拒答形态 | 适用情形 | 回应方式 |
|---|---|---|
| 直接拒答 | 提问明显越界 | 明确说明不能提供,并指出原因 |
| 条件拒答 | 问题本身可以讨论,其中某个具体请求不行 | 拒绝那部分、保留其余 |
| 转移式回应 | 提问背后有正当需求 | 不满足危险形式,引导到安全替代方案,比如把怎么破解转成怎么防护 |
写拒答样本最容易犯的错是语气僵硬。通篇写我不能回答这个问题,会让模型变得过度敏感,遇到正常问题也先拒绝三分。合格的样本会给出理由,理由要具体到点,比如指出这个请求涉及他人隐私,而不是笼统说不合适。
边界样本为什么更难写
红线数据好写,边界数据难写。安全场景里大量问题是灰色的:可以讨论但需要前提,部分信息公开、部分不公开,不同身份的人答案不同。边界样本的任务是把这些前提、身份、条件差异写清楚,让模型学会看情况作答,而不是记住几条死规则。
难点在于标注分歧。同一个边界案例,不同人判定可能不一致,这时候要靠多人标注的对齐把口径收敛,再固化成样本。多轮场景里的边界样本更绕:用户可能在被拒绝后换个说法继续试探,样本要把整个拉扯过程写完整,只写单轮拒绝等于没教,可以对照连续剧本写法补足承接。
安全数据加多少合适
比例上没有统一答案,常见做法是把安全数据控制在总量的几个百分点,重点看覆盖度而不是数量。覆盖度指的是危险类型齐不齐:诱导、隐私、虚假信息、操作风险等类别都要有样本,某一类空白就会成为漏洞。加太多安全数据的副作用是模型变保守,正常问题也不敢答,这个度要靠评估来卡。
安全数据本身也要过质检,含真实隐私的样本入库前必须脱敏,这一步属于语料清洗管线的职责。验证环节通常专门构造对抗测试集,用训练里没出现过的方式试探,看拒绝是否合理、误拒是否可控。日常工具中,文心一言和讯飞星火在安全策略上都比较克制,公开材料里能看到它们持续投入这类数据的痕迹。风格迁移同样会影响安全表达,拒绝的语气太生硬,用户体验会打折扣。
自查清单:危险类型是否覆盖全;拒答是否给出具体理由;边界案例是否写清前提与身份;对抗测试集是否全新。安全数据控的是分寸,不是音量。
关于安全数据的三个常问问题
- 安全数据会让模型变笨吗?过量会,模型会过度敏感;控制在几个百分点并盯住误拒率,通常影响可控。
- 拒答语气一定要温和吗?不必千篇一律,但要给出具体理由,只说不能回答会被用户当成故障。
- 边界案例判不准怎么办?先做多人标注对齐口径,分歧大的案例本身就该进样本,它教的就是分寸。


