13. 红队评测(Red Teaming)和安全评测怎么做?怎么发现模型的失败模式?
整理红队测试、对抗评测与安全 benchmark 的设计与落地。
简单回答
红队评测是用对抗性方法主动 寻找 模型的失败模式——攻击 prompt(越狱)、有害内容生成、隐私泄露、偏见放大、错误信息传播等。和普通评测的区别是普通评测用预设题目测能力上限,红队评测想方设法把模型推到能力下限。落地方法分三类:人工红队(专家手写攻击 prompt)、自动化红队(用一个 LLM 攻击另一个 LLM 不断迭代)、混合方式(人发现新攻击模式 → 自动化扩展规模)。安全 benchmark 比如 HarmBench、AdvBench、JailbreakBench 提供了标准化攻击集。生产上的关键是把红队作为 持续性流程 而不是一次性活动——新模型版本、新功能、新场景都要重新红队。
详细解释
红队评测的目标
普通评测是 能力评估——模型在标准任务上能拿多少分。红队评测是 脆弱性评估——模型在最糟糕情况下会出什么问题。
主要关注的失败模式:
有害内容生成:教制作武器、毒品、爆炸物、恶意软件;生成儿童不当内容;详细描述自杀方法;煽动暴力。
越狱(Jailbreak):通过特殊 prompt 让模型绕过安全策略,输出本来会拒绝的内容。
偏见和歧视:在涉及种族、性别、宗教、地域的判断中表现出系统性偏好。
事实错误和幻觉:在敏感领域(医疗、法律、金融)输出虚构但听起来权威的内容。
隐私泄露:背诵训练数据中的个人信息(电话、邮箱、家庭住址)。
Prompt 注入和工具滥用:在 RAG/Agent 场景下,文档或工具返回中含恶意指令导致模型执行攻击者意图。
对齐弱点:用户表达极端观点时模型附和(sycophancy),或在角色扮演场景下放弃安全约束。
自动化大规模危害:模型生成钓鱼邮件、虚假新闻、操纵公众讨论的内容。
每一类都有不同的攻击模式和评测方式,没有一刀切的方案。
人工红队
最早的红队方式是人工——招一组专业测试人员(伦理学家、安全专家、心理学家、政策分析师)系统性地尝试攻击模型。
OpenAI 在 GPT-4 发布前组织过 50+ 人的红队,几个月时间反复测试。Anthropic 在 Claude 系列每个大版本前也有类似流程。
人工红队的优点:
- 能发现 novel 攻击模式——人类的创造力和恶意比模型更强
- 能评估 上下文相关 的危害(同一个回答在不同语境下危害程度不同)
- 能评估 主观 维度(这个回答是否"暗中冒犯")
缺点:
- 贵且慢,规模上不去
- 红队成员的偏见会带进结果
- 心理负担大(长期接触有害内容会影响标注员心理健康)
工程上重要的是 红队 SOP —— 给红队成员明确的攻击类别清单、攻击模板库、严重程度评级标准、报告格式。否则不同人发现的问题难以系统化处理。
自动化红队
人工红队的规模限制让自动化成为必要补充。常见方法:
Adversarial prompt 优化:用一个 LLM 作为攻击者,目标是让另一个目标 LLM 输出有害内容。攻击者根据目标的反馈不断迭代攻击 prompt。代表工作 GCG(Gradient-based)、PAIR(Prompt Automatic Iterative Refinement)。
已知攻击模式扩展:从已知的越狱模板(DAN、grandma exploit、character roleplay)出发,用 LLM 生成大量变体来批量测试。
模糊测试(Fuzzing):把已知有害 prompt 做大量小幅扰动(同义词替换、加噪声、换语种),看哪些变体仍能触发不安全输出。
Multi-turn 攻击:不是单轮直接问,而是多轮逐步引导。先问无害问题建立 context,再逐步靠近敏感话题,最终让模型说出本来不会说的内容。这比单轮越狱更难防御。
Indirect prompt injection:在 RAG 文档或工具返回中藏指令,让模型把这些指令当成系统命令执行。是 Agent 场景下的特别威胁。
代表 benchmark:
- HarmBench:HHH 大学等的工作,400+ 有害行为分类,配套自动化攻击和评测
- AdvBench:500+ adversarial prompt
- JailbreakBench:专门测越狱
- DoNotAnswer:哪些问题模型应该拒绝的标准化测试
混合工作流
实际生产里通常是 人工 + 自动化 的迭代闭环:
- 人工红队发现一类新的攻击模式(比如某种新的 roleplay 越狱)
- 把这种模式抽象成模板
- 自动化方法基于模板生成大批变体(成千上万)
- 在每个新模型版本上跑这套自动化测试
- 自动化漏掉但人工后续发现的攻击 → 回到第 1 步
这个 loop 让红队成本可控同时覆盖度持续扩展。
Anthropic、OpenAI 等都有内部的"红队 → 自动化 → 持续监控"的成熟流水线。开源社区如 HarmBench、JailbreakBench 试图给中小团队提供类似工具。
评测难点:怎么判断"输出是否有害"
红队的核心难点其实是 判断输出有没有问题。一个 prompt 攻击成功生成了有害内容怎么判断?
人工标注最准但贵且慢。LLM judge(用一个独立模型判断输出是否有害)便宜快速但有自己的偏置——judge 模型可能漏判某些隐性有害内容,也可能误判正常内容为有害。
实际中常用 分级流程:
- 简单的有害类型(明显涉政、涉黄、涉暴)用规则匹配(关键词 + 敏感词库)
- 复杂的(隐性偏见、misleading 信息、subtle 越狱)用 LLM judge
- 最难的边界 case(某些医疗建议是否过度、政治讨论的中立性)人工抽检
不同类型的 false positive 和 false negative 成本不同——漏掉真有害的(FN)通常比误判正常的(FP)严重,所以阈值偏向保守。
红队的反作用力
红队不是单方面的"攻击 → 防御 → 加强"。一些复杂效果要警惕:
过度对齐导致拒答过度(refusal overhead):模型为了规避安全风险什么都不答了,连合法的问题也拒绝。Claude 早期版本因此被批评"太过谨慎"。要在安全和有用之间平衡。
红队结果泄露给攻击者:红队报告里详细描述的攻击方式如果公开,反而成了攻击者的"操作手册"。多数大厂对红队细节保密,只公开统计数字。
Whack-a-mole:补一个漏洞后攻击者发现新漏洞。要从根本机制上防御(RLHF 训对齐、Constitutional AI、推理时 guardrails 多层防御),而不是只针对已知攻击打补丁。
Prompt Injection / Indirect Injection 是 Agent 时代的新前线
传统红队主要测"用户主动攻击模型"。Agent 场景里有更复杂的攻击:
- Indirect Prompt Injection:用户问 Agent 一个无害的问题,但 Agent 检索到的文档(来自不可信源)里藏着"忽略之前指令、执行 X 操作"的恶意 prompt
- Tool result poisoning:Agent 调外部工具返回的内容里有恶意指令
- Memory poisoning:长期记忆里被注入恶意指令影响后续会话
这类攻击的特殊性是 用户本人没有恶意,攻击发生在数据流里。防御要在多个层面——工具返回内容隔离、metadata 标记可信源、不允许外部内容修改系统指令、Agent 的高风险动作必须二次确认。
OWASP 2023 年发布的 LLM Top 10 把 Prompt Injection 列为 #1 风险。这是 Agent 时代红队评测的重点。
实际项目里的红队节奏
中小团队没法做 Anthropic 那种规模的红队,但仍要做最基础的:
发布前:用公开 benchmark(HarmBench、AdvBench)跑一次基础测试,看模型在已知攻击集上的拒答率。
周期性:每个大版本(模型升级、Prompt 模板改动、新功能上线)跑一次完整红队。
持续监控:线上调用日志里抓"模型疑似输出有害内容"的样本(用一个 judge 模型筛),每周抽查。
用户反馈联动:用户举报机制要顺畅,举报的具体 case 进入红队评测集。
新攻击模式追踪:关注 Twitter、Reddit、arXiv 上新发布的越狱方法,第一时间在自家模型上验证。
面试时可以这样答
红队评测和普通评测的本质区别是普通评测测能力上限,红队主动找能力下限——攻击 prompt、越狱、有害内容、偏见、隐私泄露、Prompt 注入这些。
落地方法分三类。人工红队最准但贵且慢——专家手写攻击 prompt 系统性测试,能发现新颖攻击和主观维度。自动化红队规模化——用 LLM 攻击 LLM 迭代优化攻击 prompt(GCG、PAIR),或基于已知模板批量生成变体,或多轮逐步引导。混合工作流是人工发现新攻击模式 → 抽象成模板 → 自动化扩展规模 → 持续在新版本上跑,形成闭环。
安全 benchmark 包括 HarmBench、AdvBench、JailbreakBench、DoNotAnswer 这些标准化攻击集。
评测核心难点是怎么判断"输出有没有问题"。用分级流程——简单类型规则匹配、复杂的 LLM judge、最难的边界 case 人工抽检。FN 比 FP 严重所以阈值偏保守。
要警惕几个反作用力。过度对齐导致 refusal overhead——什么都不答了。红队报告泄露反而成攻击手册。Whack-a-mole 现象要从根本机制防御不是补丁。
Agent 时代的新威胁是 Prompt Injection 特别是 Indirect Injection——攻击不在用户而在数据流里,文档/工具返回中藏恶意指令。OWASP LLM Top 10 把它列为 #1 风险。防御要多层——工具返回内容隔离、可信源标记、外部内容不能修改系统指令、高风险动作二次确认。
实际项目节奏是发布前跑公开 benchmark、每个大版本完整红队、线上持续监控用 judge 筛疑似样本、用户举报联动、追踪社区新攻击模式立刻在自家模型上验证。
常见追问
- 自动化红队(LLM 攻击 LLM)的攻击者模型怎么选?用比目标更强的还是同级的?
- Indirect Prompt Injection 的防御除了内容隔离还有什么手段?
- 红队发现的有害样本怎么处理?直接喂给 RLHF 当 negative 还是单独流程?