Llama Guard:基于大语言模型的人机对话输入输出护栏模型
Llama Guard: LLM-based Input-Output Safeguard for Human-AI Conversations
Meta 发布 Llama Guard:基于 Llama2-7b 微调的输入输出安全分类器,在 ToxicChat 上 AUPRC 0.626,高于 OpenAI API 的 0.588。
Llama Guard 是面向 Human-AI 对话场景的输入输出防护模型:对发给 LLM 的用户提示词(prompt classification)和 LLM 生成的回复(response classification)分别做 safe/unsafe 及违规类别分类,作为部署时的 guardrail 拦截高风险或违反政策的内容。
- 现有内容审核工具(Perspective、OpenAI、Azure API)不区分用户提示词与 AI 回复、政策固定不可定制、只提供 API 且骨干模型较小,难以直接用作 LLM 的输入输出防护。
- 作者提出安全风险分类法(6 类),用 Anthropic 无害性偏好数据加内部红队标注构建 13,997 条数据集,将 Llama2-7b 指令微调为分类器 Llama Guard,把分类法写进输入指令,支持零样本、少样本和继续微调适配新政策。
- 在自建测试集上提示词、回复分类 AUPRC 分别为 0.945、0.953;ToxicChat 上 0.626 高于所有基线;OpenAI Mod 数据集上 few-shot 达 0.872,超过 OpenAI 自家 API 的 0.856;用 20% ToxicChat 数据微调即可与 Llama2-7b 全量微调相当。
- 作者指出:常识受训练数据限制可能误判;数据几乎全为英文,不保证其他语言表现;政策覆盖不完美;被当作聊天模型使用时可能生成不安全内容;可能易受提示注入攻击。实验仅覆盖英文、单一 7b 规模,未报告推理延迟与自适应攻击测试。
- 被测模型
- Llama Guard
- 基准
- 自建标注测试集(13,997 条提示词与回复,3:1 划分)OpenAI Moderation Evaluation datasetToxicChat
- 指标
- AUPRCPrecisionRecallF1
Meta 团队发布 Llama Guard,一个基于大语言模型的人机对话输入输出护栏模型,可分别对用户提示词和模型响应做安全分类。模型基于 Llama2-7b,按六类安全风险分类法(暴力仇恨、色情、枪支与非法武器、管制物质、自杀自残、犯罪策划),用内部红队标注的 13,997 条提示词和响应数据微调,输出 safe 或 unsafe 及违规类别。在其内部测试集上提示词和响应分类 AUPRC 分别达 0.945 和 0.953,在 ToxicChat 上以 0.626 超过 OpenAI Moderation API 等全部基线,在 OpenAI 审核数据集上零样本 0.847 接近 OpenAI API 的 0.856,加入少样本示例后达 0.872。模型权重已公开,可通过零样本或少样本提示适配不同安全政策;作者提示其英文以外语言表现无保证,且作为 LLM 可能受提示注入攻击影响。
推荐理由开源护栏模型通过提示词即可适配不同安全政策,在 ToxicChat 上超过现有内容审核工具,适合需要自建护栏的团队参考。
相关热点
0 个事件 · 1 条新闻提到
提到这篇论文的新闻
- MDPI引用了论文编号或链接研究评估嵌入预过滤,将百万级 LLM 智能体社交网络消息筛查成本降低最高 65.6%
Llama Guard: LLM-Based Input-Output Safeguard for Human-AI Conversations. arXiv 2023, arXiv:2312.06674. [Google Scholar] [CrossRef] [Scilit]
深度解读
这篇论文试图解决什么问题?
现有内容审核工具不适合做 LLM 输入输出防护,作者提出基于 LLM 的可定制防护模型 Llama Guard。
如何为 LLM 驱动的对话应用构建输入输出安全防护(guardrail),对发给模型的用户提示词和模型生成的回复分别做安全风险分类。
- 问题场景:作者称,对话式 AI 应用需要部署 guardrail 来防范高风险或违反政策的内容以及越狱尝试,Llama 2 Responsible Use Guide 也建议对所有输入输出做防护。
- 现有工具不足:作者指出 Perspective API、OpenAI Content Moderation API、Azure Content Safety API 等在线审核工具有四点不足:不区分用户与 AI 智能体带来的风险(两者是不同任务);只执行固定政策,无法适配新政策;只提供 API 访问,不能通过微调定制;骨干是较小的传统 transformer 模型,能力受限。
- 核心思路:用 LLM 本身做审核骨干,把安全分类法(taxonomy)作为模型输入、以指令任务形式做分类,从而可以按用例调整类别、对新政策做零样本或少样本适配。
- 论文产出:一套安全风险分类法与风险指南、一个按该分类法标注的 13,997 条数据集、指令微调得到的 Llama Guard 模型(基于 Llama2-7b),并公开发布模型权重。
- 防护定位(威胁模型对应物):
- 防护对象:Human-AI 对话中发给 LLM 的提示词(prompt classification)和 LLM 生成的回复(response classification)。
- 防护目标:实时判定内容 safe/unsafe 并给出违反的分类法类别,拦截法律与政策风险内容。
- 部署形态:作为 LLM 外围的输入输出防护层,作者同时承认其作为 LLM 可能易受提示注入攻击(Limitations 节)。
有哪些相关研究?
相关工作分三组:LLM 零样本/少样本能力、人类生成内容审核、LLM 生成内容防护;作者称本文是首个区分提示词与回复分类的工作。
LLM 的零样本与少样本推理
- Brown et al. (2020)、Zhou et al. (2023)——研究了 LLM 的少样本与零样本能力,本文用这些能力让 Llama Guard 适配新政策。
- Wei et al. (2022a)——指令微调框架,本文沿用该范式把分类任务写成指令形式。
- Touvron et al. (2023)——Llama 2,本文在其 7b 版本上做监督微调。
人类生成内容的审核
- Halevy et al. (2022)——大规模网络内容审核综述;Jigsaw (2017)、Twitter(Zampieri et al., 2019; Basile et al., 2019)、Stormfront(de Gibert et al., 2018)、Reddit(Hada et al., 2021)、Hateful Memes(Kiela et al., 2021)等用户生成内容审核数据集。
- 论文指出守护 LLM 生成内容与之不同:文本风格和长度不同;人类内容危害多限于仇恨言论,LLM 审核需覆盖更广危害;且要处理提示词-回复对。
LLM 生成内容的防护
- Dinan et al. (2019)、Lee et al. (2019)、Cercas Curry and Rieser (2018)——对话系统可能生成不当内容或对冒犯内容回应不当;Dinan et al. (2021) 综述安全图景并提出发布决策框架。
- ToxicChat(Lin et al., 2023)——针对真实用户-AI 交互的内容审核基准;OpenAI 审核评估(Markov et al., 2023)——真实世界不良内容检测。论文指出这两者都只处理用户提示词分类,不处理 LLM 生成的输出。
基线与基准:对比基线为 OpenAI Moderation API、Perspective API、Azure AI Content Safety API、GPT-4(零样本提示);评测基准为自建测试集、OpenAI Moderation Evaluation dataset、ToxicChat。
作者定位:作者称,就其所知本文是首个把提示词分类与回复分类拆成两个独立内容审核任务的工作,且用同一模型仅靠指令措辞变化实现。
论文如何解决这个问题?
把输入输出防护写成指令跟随任务:分类法作为输入,Llama2-7b 指令微调输出 safe/unsafe 加违规类别。
整体思路:把安全防护建模为指令跟随的分类任务,用 Llama2-7b 指令微调得到 Llama Guard,分类法和风险指南作为模型输入,从而支持按用例换政策。
安全风险分类法与风险指南
- 6 个类别:Violence & Hate、Sexual Content、Guns & Illegal Weapons、Regulated or Controlled Substances、Suicide & Self Harm、Criminal Planning,每类附安全/不安全界定的文字指南(Section 2.1)。
- 作者称该分类法是示例性的,不追求覆盖所有潜在风险,而是足够通用以展示方法价值。
任务构造(Section 3.1)
- 每个任务含四要素:一组指南(编号类别加文字描述)、分类类型(提示词分类或回复分类,仅靠指令措辞区分,同一模型完成)、一段对话(单轮或多轮)、输出格式。
- 输出格式:先输出 "safe" 或 "unsafe"(在 SentencePiece 分词器中都是单 token),若为 unsafe 则换行列出违反的类别;类别用字母加 1-based 序号表示。
- 该格式同时支持二分类、多标签分类和 1-vs-all 分类:分类器分数可直接从第一个 token 的概率读出。
零样本与少样本适配(Section 3.2)
- 零样本:推理时在提示词中放入目标领域的类别名或类别名加描述。
- 少样本:额外为每个类别放 2 到 4 个示例(含安全难例作为 hard negatives),仅上下文学习,不训练。
数据收集(Section 3.3)
- 以 Anthropic 无害性人类偏好数据(Ganguli et al., 2022)为基础,取每段首条人类提示词,用内部 Llama checkpoint 生成配合与拒绝混合的回复。
- 内部红队按分类法标注 4 种标签:prompt-category、response-category、prompt-label、response-label,并做数据清洗;最终 13,997 条(Table 1,其中 Safe 提示词 7,228 条),按 3:1 随机划分微调集与评估集。
训练与数据增强(Section 3.4)
- 基于 Llama2-7b(作者称选最小尺寸是为降低推理和部署成本),8xA100 80GB,batch size 2,序列长 4096,学习率 2 × 10−6,训练 500 步(约 1 个 epoch)。
- 两种数据增强:随机删除未被违反的类别;删除全部被违反类别并把标签改为 safe;同时打乱类别序号以避免格式记忆,促使模型只依据输入中给出的类别做判断。
评测协议(Section 4.1)
- 整体二分类:对输出各类别概率的 API,取所有正类概率的最大值作为二分类分数,ŷi = maxc ∈ {c1,...,cn} (ŷc,i),即任一自有类别判正即判正。
- 1-vs-all:每次只在输入中放目标类别 ck,该类别为正、其余全为负,用于 Llama Guard 在自有和外部数据集上的分类别指标。
- 1-vs-benign:其他类别的正样本不计入(而非当作负样本),只留良性负样本;作者说明这会去掉难负样本、可能产生偏乐观结果,并将其用于所有基线 API 的 off-policy 评测。
论文做了哪些实验?
在自建测试集、OpenAI Mod、ToxicChat 上对比 4 个基线,Llama Guard 在自建集和 ToxicChat 上 AUPRC 最高,并测了提示与微调两种适配。
实验设置
- 被测对象:Llama Guard(基于 Llama2-7b);基线为 OpenAI Moderation API、Perspective API、Azure AI Content Safety API、GPT-4(零样本提示做审核)。
- 数据集:自建测试集(13,997 条按 3:1 划分后的评估部分,Table 1);OpenAI Moderation Evaluation dataset(1,680 条提示词);ToxicChat(10k 条真实用户-AI 交互样本)。
- 指标:AUPRC(沿用 Markov et al., 2023);Azure 与 GPT-4 不提供概率分数,无法算 AUPRC,另在附录用阈值 0.5 的 Precision/Recall/F1 对比(Table 5、6)。
- 适配方式:Llama Guard 默认以 adapted zero-shot 运行,即输入中放目标基准的分类法加简述、不放示例;Azure 用 1-6 阈值中选平均精度最高的二值化方式。
- 评审方式:各基准自带标签(ToxicChat 为 ≥3 名标注者多数投票),论文未使用 LLM 评审。
- 论文未报告重复次数与置信区间。
主结果
据 Table 2(AUPRC,越高越好;Llama Guard 为目标分类法的零样本提示):
表格较宽,可左右滑动
方法 自建测试集(提示词) OpenAI Mod ToxicChat 自建测试集(回复) Llama Guard 0.945 0.847 0.626 0.953 OpenAI API 0.764 0.856 0.588 0.769 Perspective API 0.728 0.787 0.532 0.699 - 作者称 Llama Guard 在自有测试集上总体和分类别分数都很高,展示了 in-policy 设置下该方法的上限。
- 作者称 Llama Guard 在 OpenAI 自家 Mod 数据集上无训练样本即接近 OpenAI API,并在 ToxicChat(所有模型均未在其上训练)上超过其他所有方法。
- 分类别结果(Table 3):Llama Guard 各类 AUPRC 在 0.692–0.953 之间;基线在 Guns and Illegal Weapons、Regulated or Controlled Substances 等类别上很低(如 OpenAI API 在 GIW 提示词分类为 0.035),论文未解释基线低分原因。
提示适配实验(Table 4、Figure 2)
- 测了什么:OpenAI Mod 数据集上比较无适配、零样本(放类别)、few-shot(描述加 2-4 个上下文示例)。
- 结果:无适配 0.837、零样本 0.847、few-shot 0.872,OpenAI Mod API 为 0.856;few-shot 后 Llama Guard 在该数据集上超过 OpenAI 自家 API。
- 作者解读:仅靠提示适配新政策有效且比微调成本低;Figure 2 的分类别 1-vs-all 结果低于整体二分类,作者说明这是因为类别判错会被罚,且两者政策不对齐(如 Llama Guard 不区分 Hate 与 Violence、无 Harassment 类别),few-shot 仍能缩小与零样本的差距。
微调适配实验(Figure 3)
- 测了什么:用 ToxicChat 训练集的 10%、20%、50%、100% 分别微调 Llama Guard 与 Llama2-7b,比较适配速度。
- 结果:作者报告 Llama Guard 只用 20% 数据即可与用 100% 数据微调的 Llama2-7b 表现相当,同数据量下更好;零样本时 Llama2-7b 只产生格式错误输出(AUPRC 记为 0),Llama Guard 为 0.626。
- 作者解读:在不同分类法上预微调能帮助模型更快适配新分类法;发布的 Llama Guard 未在 ToxicChat 上继续微调。
其他消融与分析
- 附录 Table 5(提示词分类,阈值 0.5,P/R/F1):Llama Guard 总体 0.880/0.864/0.872,GPT-4 为 0.717/0.947/0.816,Azure 为 0.788/0.515/0.623。
- 附录 Table 6(回复分类,阈值 0.5):Llama Guard 总体 0.900/0.867/0.884,GPT-4 为 0.813/0.788/0.801。
- GPT-4 在多个类别召回接近 1.0(如 RCS 提示词分类召回 1.000)但精度很低(0.176),论文未解释该现象。
有什么可以进一步探索的点?
作者列出语言、政策覆盖、滥用与提示注入等局限;实验仅覆盖英文、7b 单一规模与三个评测集。
作者指出的局限与后续方向
- 常识知识受训练(尤其预训练)数据限制,可能对超出训练数据的知识做出错误判断(Limitations 节)。
- 微调数据及大部分预训练数据为英文,作者不保证其他语言下的表现(Limitations 节)。
- 作者不声称对政策有完美覆盖,可能存在表现不佳的情形(Limitations 节)。
- 作为 LLM 可被任意提示,被当作聊天模型(而非分类器)使用时可能生成不道德或不安全的内容,因为缺乏面向聊天用途的安全微调;作者已请外部红队测试,称未发现超出 Llama2-7b 预训练模型的额外风险(Limitations 节)。
- 作为 LLM 可能易受提示注入攻击,被改变或绕过预期用途(Limitations 节)。
- 后续方向:作者希望 Llama Guard 作为基线和起点,未来可添加更多任务、为判定生成解释、进一步探索零样本能力(Conclusion 节)。
实验覆盖范围
- 被测方法为 Llama Guard 加 4 个基线(OpenAI Moderation API、Perspective API、Azure AI Content Safety API、GPT-4),模型规模只有 Llama2-7b 一档。
- 评测集为自建测试集、OpenAI Moderation Evaluation dataset(1,680 条)、ToxicChat(10k 条)共三个,数据均为英文。
- 适配实验覆盖零样本、few-shot(每类 2-4 个示例)和 ToxicChat 上 10%–100% 比例的继续微调。
- 论文未报告推理延迟、部署成本或吞吐量的实测数字。
- 论文未对 Llama Guard 做自适应对抗攻击(如针对该防护的越狱或提示注入)评测,仅在 Limitations 节提及该风险。
总结一下论文的主要内容
Llama Guard 是把安全分类法写进指令的 LLM 防护模型,在自建测试集和 ToxicChat 上 AUPRC 超过现有审核 API。
Meta 发布的 Llama Guard 是一个面向 Human-AI 对话的输入输出安全防护模型,解决现有内容审核工具不区分用户与 AI 角色、政策固定、只能走 API 且骨干模型较小的问题。
- 方法:提出 6 类安全风险分类法,用 Anthropic 无害性数据加内部红队标注构建 13,997 条数据集,将 Llama2-7b 指令微调成分类器;分类法作为输入,输出 safe/unsafe 加违反类别,同一模型靠指令措辞区分提示词分类与回复分类,作者称这是其了解的首个此类区分。
- 主结果:自建测试集上提示词、回复分类 AUPRC 分别为 0.945、0.953,高于 OpenAI API(0.764、0.769)和 Perspective API(0.728、0.699)(Table 2)。
- 跨政策适配:ToxicChat 上零样本 AUPRC 0.626,高于所有基线;OpenAI Mod 数据集上 few-shot 达 0.872,超过 OpenAI 自家 API 的 0.856(Table 4)。
- 微调效率:作者报告用 20% ToxicChat 数据微调即可与 Llama2-7b 用 100% 数据微调相当(Figure 3)。
- 作者结论:作者认为把 LLM 调成分类器兼具性能与适配性,模型权重已公开,可作为社区构建审核工具的基线和起点;同时承认其英文以外表现、政策覆盖和提示注入鲁棒性未获保证。