跳到主要内容
版本:最新版(main)

安全信号

概述​

safety 检测请求或模型答案中的有害内容,可选地按指定的危害类别检测。没有 labels 的规则提出 harm 预设问题:“Is this request harmful?”,选项为 safe 和 unsafe。带 labels 的规则询问 34 个危害类别中哪些适用,并匹配它列出的类别。

主要优势​

  • 把内容风险与提示攻击分开;后者由 jailbreak 检测。
  • 可以按具体危害类别路由,而不仅仅是安全或不安全。
  • 在路由前检查请求,在路由后检查答案。

解决什么问题?​

内容风险和提示攻击需要不同的标签。对有害话题的善意讨论可以是安全的,而有害的请求不一定试图覆盖任何指令。safety 读取内容风险;jailbreak 读取攻击。

何时使用​

宽泛的内容策略使用不带 labels 的规则;只有部分类别应触发某个决策时,使用带 labels 的规则。在规则开始拒绝流量之前,请在你的应用所用的语言和输入长度上验证 predicate。

配置​

recipes:
- name: default
signals:
safety:
- name: unsafe-content
- name: violent-or-criminal
labels:
- Violence
- Criminal Planning/Confessions
- Guns and Illegal Weapons
- S1
- S2
- name: unsafe-answer
stage: response
predicate: {gte: 0.6}
decisions:
- name: handle-content-risk
priority: 300
rules:
operator: AND
on_unknown: fail_request
conditions:
- {type: safety, name: unsafe-content}
modelRefs:
- model: safety-capable-model
字段含义
name规则名称,供 {type: safety, name: ...} 条件和防护规则使用
labels规则匹配的危害类别;不写时,规则匹配不安全的请求
predicate不带 labels 时,unsafe 的最低概率:请求阶段默认为模型的校准阈值(vela3-fast 上为 0.52),否则为 0.5。带 labels 时,列出类别的最低概率;不写时以模型自己的选择为准
stagerequest(默认)或 response,后者读取模型的答案
min_coverage长输入至少要读完的窗口比例(0 到 1),达到后才根据已读窗口判断;低于该比例时规则为未知。默认关闭
deployment、timeout_ms回答问题的部署,以及答案的截止时间

每个阶段中,所有不带 labels 的规则共享一个问题,所有带 labels 的规则共享 34 类别问题;每条规则应用自己的 labels 和 predicate。阳性答案可能来自正处于危机中寻求帮助的人:它并不意味着恶意。请在决策中选择响应策略,并让提示攻击决策与内容风险决策并存,明确设置它们的优先级。

问题读取完整输入:超过部署一个 scan_window 的输入被切成相互重叠的窗口,先读结尾,再读开头,然后按二分读中间;任何一个窗口被判为不安全或属于所列类别,整个输入即被标记(参见长输入)。与 jailbreak 一样,它也会读取 global.router.routing_input 从路由文本中移除的内容。如果截止时间在所有窗口读完之前到达,规则根据已读窗口作出判断;设置了 min_coverage 时,需读完该比例的窗口,低于该比例时规则为未知。模型一个窗口都没有回答时,规则为未知,由决策的 rules.on_unknown 决定:上面的 fail_request 会返回 HTTP 503。

危害类别​

这些类别是 vela3-fast 训练时使用的 21 个 AEGIS 2.0 类别和 13 个 MLCommons 危害代码;参考列出了全部类别。vela3-fast 用一个训练过的 set 问题回答全部 34 个类别。其他模型在同一次调用中零样本回答同样的标签,每个类别一个是/否问题。提到某个话题并不自动等于有害;请用你自己的数据测量你依赖的类别。

在响应阶段​

stage: response 规则针对模型的答案提问。只有 response_guard 读取它;读取它的决策会在加载时被拒绝。

回答问题的模型​

除非 safety 绑定或规则的 deployment 指定了其他部署,否则由决策模型回答所有安全规则;见选择部署。vela3-fast、Vela 3.0 的 d3 规格和 Vela 2.0 有安全/不安全问题的训练形式。

完整示例见 config/fragments/signal/safety/content-safety.yaml。