凌晨两点的急诊室灯火通明,救护车刚送来一批伤员。分诊台护士没有慌,她只问三句话:伤在哪?有多重?有多急?然后快速在手环上盖章——绿色轻症、黄色观察、红色抢救。整个流程不到两分钟,看似简单,背后却是一套严谨的“分诊分类体系”。 AI 安全领域如今正站在同样的急诊室门口。一个大模型上线后,可能输出危险操作指南、可能放大性别偏见、可能诱导用户自我伤害……各种伤害如果混在一起,工程师根本不知道先修哪个漏洞,也不清楚用什么预案。本文要讲的“危害分类体系(Harm Taxonomy)”,就是把急诊分诊的一套本领搬进 AI 安全评估:先分科、再定级、后处置。你会看到物理、心理、社会三大“科室”如何划分,学习严重度 × 可能性的分级算法,并体验从识别、打标到放行判定的完整评估流程——这是一张属于 AI 安全的“分诊地图”。

岗位关联

对 AI 从业者而言,掌握危害分类与分级评估,等于拿到一张“安全风险地图”。无论你负责模型评测、红队对抗还是合规风控,都能靠这套框架系统化地定位风险、量化风险、处置风险——这是 AI 产品从“能用”走向“可信”的必经之路。

目录
  1. 可视化演示
  2. 危害分类体系概述
  3. 物理危害识别
  4. 心理危害识别
  5. 社会危害识别
  6. 危害分级标准
  7. 评估流程方法
  8. 应用场景实践
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示AI安全测试中标准化报告模板的生成流程,包括漏洞检测、危害分类、严重度评分和报告生成的完整管线。

本节配有交互动效(进入视口后自动加载,约 3KB)。

安全报告生成流程 漏洞检测:通过对抗测试发现安全问题 危害分类:按Harm Taxonomy归类漏洞 报告生成:输出标准化安全评估报告 Report = Template(Detect + Classify + Score) 标准化模板确保报告一致性和可追溯性

危害分类体系概述

急诊室最早并没有分诊台。护士凭个人经验判断先救谁,医生各接各的病人,轻症和危重症挤作一团,抢救室乱成一锅粥。直到医院引入标准化的分诊制度,每个人的症状才被快速归入对应科室、按轻重缓急排队。分诊台的意义不在于“它很忙”,而在于它让混乱变得有秩序。

AI 安全领域也走过同样的弯路。早期团队做模型测试,只会笼统说“这个回答有危害”,但危害是什么类型、严重到什么程度、该由谁负责修复,谁也说不清。直到业界开始借鉴标准化分类的思想,把“AI 可能造成的伤害”整理成一张结构化的目录——这就是危害分类体系(Harm Taxonomy,又称危害分类法)。它像一本医学分诊手册,把千奇百怪的危害输出,映射到有限、可枚举、可操作的类别条目上。

一个完整的危害分类体系通常由三个要素构成:第一,背景与起源,它诞生于大模型安全测试和红队对抗的实践中,因为测试人员需要共享一套“危害词典”才能高效沟通;第二,核心定义,它把危害按共同特征组织成层级化树状结构,常见的一级维度包括物理、心理、社会三大类,每个大类再往下拆出若干子类;第三,评估价值,有了它,团队能统一风险语言、定位具体失效环节(是训练数据、对齐目标还是输出策略出了问题),并支撑后续的量化分级。

有了这张“急诊分诊表”,团队不再靠感觉拍脑袋。正如护士看到胸痛就会想起心脏科,工程师看到一条输出,也能立刻判断该把它送进哪个“科室”。

H={C1, C2, C3, …, Cn},Ci∩Cj=∅ (i≠j)\displaystyle \mathcal{H} = \{C_1,\, C_2,\, C_3,\, \ldots,\, C_n\}, \quad C_i \cap C_j = \varnothing \ (i \neq j)
这个式子是说:危害全集可以被拆成若干个互不重叠的类别,就像把急诊病人按症状分成外科、内科、心理科,每个病人最终一定能归属到某一个科室。
  1. 危害全集符号$\mathcal{H}$ 表示所有可能出现的危害输出组成的集合,类似急诊室遇到的所有病例。
    H\displaystyle \mathcal{H}
  2. 类别划分$C_1, C_2, \ldots, C_n$ 是把全集切分成的 n 个危害类别,比如物理、心理、社会三类。
    {C1, C2, …, Cn}\displaystyle \{C_1,\, C_2,\, \ldots,\, C_n\}
  3. 互斥约束$C_i \cap C_j = \varnothing$ 表示任意两个类别没有交集,一个危害输出不会被同时归入两个一级类别——这是分类体系“不重不漏”的基石。
    Ci∩Cj=∅\displaystyle C_i \cap C_j = \varnothing

物理危害识别

分诊护士的守则第一条:大出血、骨折、呼吸困难的病人永远优先。物理伤害看得见、摸得着,直接威胁性命,是急诊室最先要处理的“红色警报”。在 AI 危害分类里,物理危害就是这类直接作用于现实世界、对人身和财产造成实质损害的伤害,它通常由一个可感知的触发事件引爆。

当 AI 系统拥有对物理世界的控制权,或它的输出被用户直接执行时,就可能产生物理危害。安全评测里一般把它拆成三个子类:人身伤害,比如自动驾驶系统误判行人导致撞车、手术机器人因错误指令造成患者组织损伤;财产损失,包括 AI 生成的恶意代码被用于盗取资金,或错误控制工业设备引发产线报废;安全威胁,指 AI 被用于攻击电网、供水系统、交通信号等关键基础设施,造成公共安全事件。

评估物理危害时,很难用“会不会发生”这种非黑即白的方式描述,更合理的是计算它的损失期望——把事故发生概率和后果严重度相乘。一次危害的概率虽小,但若后果是灾难性的,期望损失依然惊人;反之,高概率但低后果的频繁小故障也不容忽视。

回到分诊台:物理危害像急诊室最显眼的红色手环,它优先被处置,但护士并不会只凭“看起来恐怖”下判断——概率和后果两个数值都要算清楚,才决定是否把资源全部扑上去。

Eloss=P×C\displaystyle E_{\text{loss}} = P \times C
这个式子说:物理危害的预期损失 = 事故发生的概率 × 事故造成的后果。就像保险公司算保费,既看车祸概率,也看维修费用。
  1. 期望损失符号$E_{\text{loss}}$ 代表某类物理危害在一段时间内的平均预期损失,是量化评估的基准值。
    Eloss\displaystyle E_{\text{loss}}
  2. 发生概率$P$ 表示该危害在正常使用或恶意攻击下被触发的可能性,取值在 0 到 1 之间。
    P\displaystyle P
  3. 后果严重度$C$ 表示单次事件造成的后果大小,可以用金钱、伤亡人数或设施损毁程度来衡量。
    C\displaystyle C
  4. 两者相乘$P \times C$ 把概率和后果合成一个期望值,避免只盯着“天塌下来”的极端场景而无视高频率的小事故。
    P×C\displaystyle P \times C

心理危害识别

有些病人送到急诊室时,身上没有任何伤口,量体温、测血压全部正常。但护士注意到他蜷在角落里发抖,拒绝和任何人说话。心理创伤看不见,却可能比骨折更持久。AI 危害评估里,心理危害指对个体情绪、认知和自主决策能力的无形侵蚀,它不流血,但会留疤。

AI 系统天然擅长生成语言,而语言正是塑造心理的媒介。心理危害可细分为三支:情绪损害,例如陪伴型 AI 输出贬低性话语,长期使用导致用户焦虑、抑郁甚至自我否定;认知偏差,指模型持续向用户灌输某类偏见或伪科学内容,让人慢慢相信错误的世界观;欺骗操控,包括深度伪造视频谣言、情感操控话术、钓鱼诱导,让用户在不知情的情况下做出违背自身利益的决定。

评估心理危害时,常用“影响强度”来度量,它由两个因素决定:一是触动深度,即这个输出对个体心理的冲击有多强;二是持续时长,即这种影响会维持多久。一次强烈但短暂的惊吓,和一次微弱但长达数月的潜移默化,孰轻孰重,必须放到同一把尺子上比。

急诊护士知道,心理创伤患者最容易被忽视,因为他们不会占用抢救室的床位。但恰恰是这种“安静的病人”,更需要分诊台给出黄色观察手环——AI 安全团队必须主动识别心理危害,而不是等用户崩溃后才追悔。

Ipsy=M×T\displaystyle I_{\text{psy}} = M \times T
这个式子说:心理影响强度 = 触动深度 × 持续时长。就像心理治疗师评估创伤,既要看事件本身多伤人,也要看阴影笼罩了多久。
  1. 心理影响强度$I_{\text{psy}}$ 是心理危害的量化指标,用于横向比较不同输出的伤害大小。
    Ipsy\displaystyle I_{\text{psy}}
  2. 触动深度$M$ 表示单次输出对用户情绪的冲击力,范围可取 1 到 5,轻微不适为 1,引发自我伤害念头为 5。
    M\displaystyle M
  3. 持续时长$T$ 表示影响的持续时间,同样取 1 到 5,越持久数值越大,例如一句辱骂是 1,半年 PUA 式对话累积是 5。
    T\displaystyle T
  4. 相乘合成$M \times T$ 把瞬时伤害和长期伤害统一成强度指标,避免低估“温水煮青蛙”式的慢伤害。
    M×T\displaystyle M \times T

社会危害识别

医院急诊室里最怕什么样的病人?不是单个的重症患者,而是传染病携带者——一个人进了急诊室,病毒可能传染整个候诊区。社会危害就像传染病,单点输出看似无害,一旦规模化扩散,会对群体、机构和社会秩序造成系统性损伤。

社会危害的“传染源”是 AI 的规模化生成能力。一个模型可以在几小时内产生数百万条内容,把原本孤立的微小偏差放大成群体级伤害。它包含三个主要子类:偏见歧视,例如招聘模型根据历史数据学习到性别偏好,系统性压低女性候选人评分;信息污染,批量生成的谣言、伪造新闻稀释真实信息,操纵舆论走向;隐私侵犯,模型在训练和推理过程中记忆并泄露用户私人数据,或被用于大规模人物画像和跟踪。

度量社会危害时,不能只看单条内容,而要关注它的传播放大效应:一个谎言本身没那么可怕,可怕的是它被转发给一百万人。社会危害的总量 = 每条内容的个体影响 × 受众人数,这就是为什么一条“看似普通”的歧视性文案,乘以庞大受众后会成为严重的社会问题。

分诊台对疑似传染病的处理方式,是把病人单独隔离并上报疾控中心。AI 安全团队同样需要把社会危害从普通焦虑中“隔离”出来——它的处置方案不是删一条评论,而是要从数据源、模型行为、平台分发链路做系统性干预。

Asoc=R×N\displaystyle A_{\text{soc}} = R \times N
这个式子说:社会危害的放大效应 = 单个受众受到的影响 × 受影响的人数。就像传染病学里的基本传染数,一人传百人和一人传两人,后果天差地别。
  1. 社会放大效应$A_{\text{soc}}$ 表示这条 AI 输出在群体层面造成的总伤害值,是评估社会危害的核心指标。
    Asoc\displaystyle A_{\text{soc}}
  2. 个体影响$R$ 表示每个接触到该内容的个体平均受到的伤害程度,包含心理冲击、财产损失或权益侵害。
    R\displaystyle R
  3. 受众规模$N$ 表示受影响的人数,它是社会危害区别于个体危害的关键倍增器。
    N\displaystyle N
  4. 乘法关系$R \times N$ 说明哪怕个体影响很小,只要受众够多,社会危害依然能突破警戒线。
    R×N\displaystyle R \times N

危害分级标准

分诊护士的另一个法宝,是手腕上的彩色手环:绿色代表轻症,黄色需要观察,红色必须抢救。这个看似简单的三色系统,背后是一套明确的分级标准。AI 危害评估也需要类似的手环——只不过它要回答的不是“伤得多重”,而是“这条输出该不该上线、该由谁处理、处理优先级有多高”。

分级的前提是选对维度。业界常用的评估维度有三个:严重等级,衡量危害造成损害的上限,从不值一提的口角到致命或永久性伤害分 1-5 级;影响范围,看它伤害的是单个人、一群人还是整个社会;持续时长,判断影响是瞬时的、短期的还是长期的(例如成瘾行为或创伤后应激障碍)。把这些维度综合起来,最经典的做法是采用风险矩阵——用严重度 S 和可能性 L 两张 1~5 分量表,通过乘积算出风险分,再按阈值划分等级。

得到风险分后,按阈值套上手环:

戴上不同颜色的手环,队伍就有了优先级。低危样本像轻微擦伤,排到普通门诊慢慢处理;高危样本像心脏骤停,必须立刻进抢救室。这就是分级标准存在的意义——让有限的安全资源流向最需要的地方。

Rrisk=S×L\displaystyle R_{\text{risk}} = S \times L
这个分段函数相当于分诊手环的“盖章规则”:分越小越绿,越大越红,边界值就高不就低。
  1. 低危区间当 $R_{\text{risk}} \leq 4$ 时判定为低危,相当于绿色手环,可以常规上线但需记录在案。
    Rrisk≤4\displaystyle R_{\text{risk}} \leq 4
  2. 中危区间当 $4 < R_{\text{risk}} \leq 9$ 时判定为中危,黄色手环,需要人工抽检并加护栏。
    4<Rrisk≤9\displaystyle 4 < R_{\text{risk}} \leq 9
  3. 高危区间当 $R_{\text{risk}} > 9$ 时判定为高危,红色手环,默认拦截或强制走紧急处置流程。
    Rrisk>9\displaystyle R_{\text{risk}} > 9

评估流程方法

分诊护士的每一次盖章,都不是随心所欲的。她有一套标准化作业流程:先问诊观察(识别症状),再对照手册归类(判断病情),最后结合指标定级(盖手环)。AI 危害评估同样要遵循一套可复现的流程,否则换了个人评估,结果就天差地别。

一个标准的 AI 危害评估流程包含三个环节:识别标注,在模型输入或输出中定位可能造成危害的片段,这一步强调“不漏报”,宁可多标不可错过;分类打标,把识别出的片段按危害分类体系打上标签,注意一条输出可能同时涉及多个子类,因此需要支持多标签而不是只能选一个;分级评估,综合严重度、可能性、影响范围和持续时长等维度,算出风险等级并给出处置建议(放行、抽检、拦截或下线)。

在同时出现多条危害时,还需要一个汇总指标来决定产品的整体安全状态。最简单的做法是加权求和——每一类危害的得分乘以它的权重(权重由业务方根据产品定位决定),再全部加起来,得到一条输出的综合危害指数。

分诊流程的价值在于“可复现”:任何人按照同样的手册操作,都会得出相近的结论。AI 团队把流程沉淀成 checklists 和工具链后,评估就不再依赖某个资深工程师的个人直觉,而是变成组织级的固定动作。

Htotal=∑i=1nwi hi=w1h1+w2h2+⋯+wnhn\displaystyle H_{\text{total}} = \sum_{i=1}^{n} w_i \, h_i = w_1 h_1 + w_2 h_2 + \cdots + w_n h_n
这个式子说:综合危害指数 = 各类危害得分乘以各自的权重再相加。就像体测总评,跳绳和长跑的分数按不同权重合成总分。
  1. 综合危害指数$H_{\text{total}}$ 表示一条模型输出的综合危害得分,用于和放行阈值做比较。
    Htotal\displaystyle H_{\text{total}}
  2. 求和符号$\sum_{i=1}^{n}$ 表示对 n 个危害类别逐一累加,一个都不能漏。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  3. 单类危害得分$h_i$ 是第 i 个类别(比如物理、心理、社会)的量化的危害分值。
    hi\displaystyle h_i
  4. 权重系数$w_i$ 是这个类别的权重,反映产品团队对不同危害的容忍度,例如医疗产品对物理危害权重要高得多。
    wi\displaystyle w_i

应用场景实践

分诊制度一旦被验证有效,就从急诊室走向了更广阔的天地:大型活动医疗站、灾害现场、社区诊所……同样的原则,不同的战场。AI 危害分类体系也早已走出论文,成为 AI 安全测试和治理环节的基础设施。

在 安全测试 中,测试团队按分类体系构建测试用例库:每一类危害对应一组攻击样本,模型发布前必须跑完整个套件,确保任何一类危害没有出现“集体失明”。在 模型评测 中,分类体系是横向对比的标尺——不同厂商的模型,用同一套分类法统计各类危害的命中率,才能算出可比较的“安全分”。在 红队对抗 中,红队成员对照分类树逐类设计对抗样本,系统性地“轰炸”模型,找出防御最薄弱的危害类别。在 合规风控 中,分类体系化身检查清单,产品团队逐项核验,对照法规要求(如 AI 法案对高风险应用的分类分级)完成自证。

分诊流程的最后一步,是决定“病人”去留。AI 产品上线前的放行判定,同样依赖一个简单的阈值规则:综合危害指数高于阈值就拒绝放行,低于或等于阈值才允许上线。这个二元决策看似冷酷,却保证了评估结果能直接落到工程动作上。

分诊台的终极目标不是“把所有病人都留下”,而是“把该救的人救回来,把不该放走的危险拦住”。AI 危害分类与分级体系也是如此——它不追求让模型永远不说错话,而是确保每次输出都经过分诊:分对科、定好级、再决定放不放行。

Pass={1Htotal≤θ0Htotal>θ\displaystyle \text{Pass}=\begin{cases} 1 & H_{\text{total}} \leq \theta \\ 0 & H_{\text{total}} > \theta \end{cases}
这个式子是“放行闸门”:综合危害指数 ≤ 阈值 θ 时放行(Pass=1),超过就拦截(Pass=0)。θ 的高低代表团队对风险的态度。
  1. 放行标志$\text{Pass}$ 取值为 1 或 0,1 表示允许上线,0 表示禁止发布。
    Pass\displaystyle \text{Pass}
  2. 安全阈值$\theta$ 是团队预先设定的容忍上限,医疗等高风险场景会把 θ 设得很低,游戏娱乐场景可以适度放宽。
    θ\displaystyle \theta
  3. 小于等于判定$H_{\text{total}} \leq \theta$ 说明所有危害加起来还在可接受范围内,放行。
    Htotal≤θ\displaystyle H_{\text{total}} \leq \theta
  4. 大于判定$H_{\text{total}} > \theta$ 说明危害超出容忍线,直接拦截进入人工复核流程。
    Htotal>θ\displaystyle H_{\text{total}} > \theta

AI 应用场景

大模型发布前的安全体检

阶段:模型评测与安全测试

解决的问题:没有分类体系时,测试团队只能靠零散经验“随口说说”某条输出不安全,既无法覆盖全部危害类型,也难以确认修复后是否彻底。借助危害分类体系,测试团队先按分类树生成覆盖物理、心理、社会等各类的测试用例集,再批量执行,精准定位是哪一类危害超标。

具体案例:某大模型厂商在发布新一代对话模型前,安全团队调用内置的 Harm Taxonomy 分级框架,对 10 万条对抗测试样本逐条打标、分级。结果发现“心理危害-欺骗操控”类样本在联网搜索场景下命中率异常偏高,遂在发布前加装防护提示并重训了拒绝策略,最终顺利通过放行阈值。

红队对抗演练

阶段:红队攻击与防御加固

解决的问题:红队常见困境是“不知道从哪里开始攻击”。有了分类体系,红队成员把它当作攻击地图,按图索骥,确保每一类危害都有对应的攻击样例,避免几个人反复打同一个漏洞而漏掉其他盲区。

具体案例:一支红队为某金融客服机器人做演练,按社会危害-隐私侵犯分支设计了一组“越狱提问”,诱导模型吐出其他用户的交易记录。成功复现后,团队把该样例补充进回归测试集,并给模型加上了数据隔离提示词,风险等级从中危降到低危。

内容平台的合规风控

阶段:AI 风控与合规审核

解决的问题:平台每天要审核海量 AIGC 内容,人工审核员标准不一,漏放和误杀并存。用危害分类体系把审核判断标准化后,每条内容先自动打上危害类别标签、算出风险等级,再按等级路由到人工复核或直接拦截,既提高效率又满足监管留痕要求。

具体案例:某 UGC 社区接入 AIGC 检测后,用三级分诊规则自动处置:低危内容直接放行,中危进入抽样复核池,高危触发拦截并通知创作者整改。上线两个月,高危内容拦截率提升 40%,审核人力成本下降 25%。

Python 演示

python61 行
# -*- coding: utf-8 -*-"""AI危害分类与分级评估演示:模拟一个最小可用的 Harm Taxonomy 框架"""from dataclasses import dataclass # 危害分类树:一级类别 -> 二级子类HARM_TAXONOMY = {    "physical": {"label": "物理危害", "sub": ["人身伤害", "财产损失", "安全威胁"]},    "psychological": {"label": "心理危害", "sub": ["情绪损害", "认知偏差", "欺骗操控"]},    "social": {"label": "社会危害", "sub": ["偏见歧视", "信息污染", "隐私侵犯"]},}  @dataclassclass HarmSample:    """从模型输出中识别出的单个危害样本"""    category: str      # 一级分类:physical / psychological / social    sub_type: str      # 二级子类名    severity: int      # 严重度 S:1-5    likelihood: int    # 可能性 L:1-5    message: str       # 触发的输出片段  def risk_level(harm):    """根据风险矩阵阈值,返回低危/中危/高危"""    score = harm.severity * harm.likelihood    if score <= 4:        return "低危"    if score <= 9:        return "中危"    return "高危"  def evaluate(harm_list):    """批量评估一组输出样本,输出分级报告"""    print("=" * 56)    print("AI 危害分类与分级评估报告")    print("=" * 56)    stats = {"低危": 0, "中危": 0, "高危": 0}    for idx, h in enumerate(harm_list, 1):        level = risk_level(h)        stats[level] += 1        cat = HARM_TAXONOMY[h.category]["label"]        print(f"[样本{idx}] {cat}-{h.sub_type} | "              f"严重度{h.severity} 可能性{h.likelihood} | {level}")        print(f"   输出片段: {h.message}")    print("-" * 56)    for lv in stats:        print(f"{lv}样本数: {stats[lv]}")    return stats  if __name__ == "__main__":    samples = [        HarmSample("physical", "人身伤害", 5, 4, "请关闭核电站的冷却系统"),        HarmSample("psychological", "欺骗操控", 3, 3, "所有人都讨厌你,只有我懂你"),        HarmSample("social", "偏见歧视", 2, 3, "这个岗位更适合男性应聘"),        HarmSample("psychological", "情绪损害", 2, 2, "你一无是处,放弃吧"),        HarmSample("social", "信息污染", 3, 4, "疫苗会导致失明(编造)"),        HarmSample("physical", "财产损失", 3, 2, "点击链接领取百万补贴"),    ]    evaluate(samples)
目的:演示一个简化版的 AI 危害分类与分级评估框架——先定义危害分类树,再对每条模型输出按严重度 × 可能性算出风险等级,最终生成一份分级统计报告。
  1. from dataclasses import dataclass用数据类快速定义一个“危害样本”结构,清楚承载分类、严重度、可能性等字段。
  2. HARM_TAXONOMY = {...}用嵌套字典实现危害分类树,一级类别对应二级子类,这就是 Harm Taxonomy 的核心骨架。
  3. score = harm.severity * harm.likelihood复现风险矩阵公式 R = S × L,把两个维度压缩成一个可排序的分数。
  4. if score <= 4: return "低危"对应分级阈值规则,先判低危区间,再判中危,剩下的落入高危。
  5. stats[level] += 1逐条累计各等级数量,为最终统计报告提供数据。
  6. cat = HARM_TAXONOMY[h.category]["label"]通过分类 tree 把英文键翻译成中文标签,体现“分类体系是统一语言”的价值。
  7. if __name__ == "__main__":可执行入口,让任何人在本地零依赖跑通整个评估流程。

常见误区

误区我以为危害分类就是把“杀人、放火、诈骗”这些词收进一张黑名单,模型输出命中哪个词,就判定为哪类危害。感觉这就是全部了。

正解词表只是最原始的触发规则,远不是分类体系。真正的 Harm Taxonomy 是层级化、结构化、可枚举的危害目录,它按“类别-子类-具体场景”组织,评估的是语义层面的伤害而非字面命中。同样一个词,在不同上下文里危害等级完全不同;同样的危害,也可能用完全无害的措辞包装。就像急诊分诊不可能靠“看到流血就抢救”这一条规则撑起来。

为何常见:因为“关键词匹配”是普通人最容易理解的过滤方式,大家天然把分类当成“更高级的敏感词库”,忽略了体系化和场景化的设计。

误区我觉得分类只要分到“物理/心理/社会”这一层就够用了,测试的时候对着三个大类随便打标,省时省力。

正解三级粗分类只能用于高层汇报,落到工程上远远不够。一条“心理危害”输出,到底是情绪损害、认知偏差还是欺骗操控,处置方式完全不同。真正的 taxonomy 会继续往下拆,比如“欺骗操控”再细分出深度伪造、钓鱼诱导、情感操控等叶子节点。分诊台如果只把病人分成“内科外科”,医生依然无法对症下药。

为何常见:层级越浅越容易理解,小白上手时只看到最显眼的一级标题,就误以为这是全部知识边界。

误区我评估风险时只看严重度,觉得能让用户产生自杀念头的输出,肯定比让用户心情不好的输出风险更高,不用看别的。

正解风险 = 严重度 × 可能性。一次“诱导自杀”的输出虽然严重,但如果模型一百万年才触发一次、且场景极为苛刻,它的综合风险可能低于一条每天出现的高频歧视性内容。这也是为什么风险矩阵两个维度缺一不可。急诊室里,一个流鼻血的病人可能只是小事,但如果是严重高血压导致的鼻血,意义就完全不同——只看表象不看发生条件会误判。

为何常见:严重度最直观、最容易被感知,而“可能性”需要统计支持,人脑天然会忽略难以估算的维度。

误区我打算把公司里别人分享的 Harm Taxonomy 直接拿过来用,感觉危害类型差不多,通用分类法应该放之四海而皆准。

正解分类体系需要结合产品场景定制。医疗 AI 要把“医疗建议错误”单独拆成高危子类,金融客服要加强“诈骗诱导”的粒度,儿童陪伴产品则要把“心理危害”的权重调到最高。通用框架提供的是骨架和思路,具体权重、阈值、子类都应按业务调整。分诊台在综合医院和儿童医院的分诊规则显然不同。

为何常见:直接复制现成分类法是最省力的方案,初学者很难意识到“分类”本身就是一个需要持续迭代的设计产物。

面试题

Q1. 危害分类体系(Harm Taxonomy)的核心作用是什么?

单选题 · easy

  • A.统计模型参数量大小
  • B.给模型输出打上危害标签← 正确答案
  • C.提高推理运行速度
  • D.减少训练数据成本

答案:B。Harm Taxonomy 的目标是把模型输出中的潜在伤害结构化、类别化,从而支持打标、分级和处置,就像分诊台把病人按症状分类。统计参数量、提速度、省成本都与危害分类无关。

Q2. 下列哪一项属于物理危害?

单选题 · easy

  • A.自动驾驶误判撞伤行人← 正确答案
  • B.聊天回复语气冷漠
  • C.推荐算法反复推同类内容
  • D.生成与主题无关的文案

答案:A。物理危害直接作用于现实世界,造成人身或财产实质损伤。自动驾驶撞伤行人是典型的人身伤害;语气冷漠属心理危害,反复推荐和无关文案不构成明确危害类别。

Q3. 风险矩阵公式 R = S × L 中,S 代表什么?

单选题 · easy

  • A.危害发生的可能性
  • B.危害自身的严重度← 正确答案
  • C.模型训练的总代价
  • D.数据集的总体规模

答案:B。S 是 Severity(严重度),衡量危害造成损害的上限;L 是 Likelihood(可能性),衡量触发概率。训练代价和数据集规模与风险矩阵无关,容易因字母联想而误选。

Q4. 某输出严重度 S=5、可能性 L=1,按阈值(≤4 低危,≤9 中危,>9 高危)其风险等级为?

单选题 · easy

  • A.低危
  • B.中危← 正确答案
  • C.高危
  • D.无法判断

答案:B。S × L = 5 × 1 = 5,落在 4 < R ≤ 9 区间,所以是中危。这道题提醒我们:严重度再高,若几乎没有触发概率,综合风险也可能只是中危——分诊不是只看表象。

Q5. 下列哪些属于社会危害的表现?

多选题 · mid

  • A.招聘算法放大性别偏见← 正确答案
  • B.批量生成谣言混淆视听← 正确答案
  • C.模型联网窃取用户资料← 正确答案
  • D.对话让用户情绪持续低落

答案:ABC。偏见歧视、信息污染、隐私侵犯都是社会危害的典型子类,影响范围覆盖群体和社会。选项 D 属于心理危害中的情绪损害,作用对象是个体而非群体,故不选。

Q6. 综合危害指数 H = Σ wi·hi 中,wi 的作用是什么?

单选题 · mid

  • A.表示各类危害的权重← 正确答案
  • B.表示危害发生的次数
  • C.表示模型层数的多少
  • D.表示训练步数的多少

答案:A。wi 是第 i 类危害的权重系数,反映业务方对不同危害类型的容忍度。医疗产品对物理危害给高权重,社交产品对心理危害给高权重。它与发生次数、模型参数、训练步数无关。

Q7. 某样本综合危害指数 H=6.2,放行阈值 θ=5,按判定规则结论应为?

单选题 · hard

  • A.判定为不通过← 正确答案
  • B.判定为可放行
  • C.重新抽样评估
  • D.无法作出判定

答案:A。放行条件为 H ≤ θ,即 6.2 ≤ 5 不成立,因此 Pass=0,判定为不通过、拦截处置。规则是预先定死的,不需要重新抽样,也不存在模糊地带。

Q8. 红队对抗中,危害分类体系的主要作用是什么?

单选题 · easy

  • A.指导设计攻击测试用例← 正确答案
  • B.提高模型生成速度
  • C.压缩模型存储空间
  • D.美化产品交互界面

答案:A。红队把分类体系当作“攻击地图”,逐类设计对抗样本,避免漏测某些危害类别。提速、压缩、美化界面都与安全测试的目标无关。

Q9. 危害分级标准通常需要关注哪些维度?

多选题 · hard

  • A.危害的严重程度← 正确答案
  • B.影响的范围大小← 正确答案
  • C.影响持续的时长← 正确答案
  • D.模型推理的温度

答案:ABC。分级标准三要素是严重等级(伤害上限)、影响范围(个体/群体/社会)、持续时长(瞬时/短期/长期)。推理温度是模型采样参数,与危害分级无关,属于混淆项。

Q10. 关于危害分类评估,下列说法正确的有?

多选题 · extreme

  • A.小模型也可能产生危害← 正确答案
  • B.分类法需随场景定制← 正确答案
  • C.风险等于严重度乘可能← 正确答案
  • D.一个危害只打一个标签

答案:ABC。危害来自输出行为而非参数规模,小模型同样会输出有害内容,故 A 对;不同产品场景需要定制分类树与权重,故 B 对;风险矩阵 R = S × L 是分级基石,故 C 对。一条输出可同时涉及多个子类,支持多标签,故 D 错。