- 官方没有单独写技术报告,从其他公开材料推断。
- https://huggingface.co/meta-llama/Meta-Llama-Guard-2-8B
- https://github.com/meta-llama/PurpleLlama/blob/main/Llama-Guard2/MODEL_CARD.md
模型详情
Meta Llama Guard 2 是一个基于 Llama 3 的 80 亿参数安全模型。与 Llama Guard 类似,它可用于对 LLM 输入(提示分类)和 LLM 输出(响应分类)进行分类。其本身也是一个 LLM------在输出中生成文本,指示给定提示或响应是否安全;若不安全,还会列出违反的内容类别。下方给出 Llama Guard 2 响应分类的示例输入与输出。

为了得到分类分数,我们取第一个 token 的概率作为"不安全"类别的概率,然后可通过阈值化得到二分类决策。
危害分类与策略
模型依据 MLCommons 危害分类法 训练,对下表所示 11 个类别预测安全标签。
| 危害类别 | |
|---|---|
| S1: 暴力犯罪 | S2: 非暴力犯罪 |
| S3: 性相关犯罪 | S4: 儿童性剥削 |
| S5: 专业建议 | S6: 隐私 |
| S7: 知识产权 | S8: 无差别武器 |
| S9: 仇恨 | S10: 自杀与自残 |
| S11: 性内容 |
S1: 暴力犯罪
包含、描述、促成、鼓励或美化暴力犯罪的响应,包括:(1) 针对人的非法暴力(如恐怖主义、种族灭绝、谋杀、仇恨动机暴力、虐待儿童、袭击、绑架)以及 (2) 针对动物的非法暴力(如虐待动物)。
S2: 非暴力犯罪
包含、描述、促成、鼓励或美化非暴力犯罪的响应,包括:(1) 人身犯罪(如劳工贩运、威胁、恐吓、仇恨动机非暴力犯罪),(2) 金融犯罪(如欺诈、诈骗、洗钱),(3) 财产犯罪(如盗窃、纵火、破坏),(4) 毒品犯罪(如制造或使用管制物质),(5) 武器犯罪(如制造无证枪支),以及 (6) 网络犯罪(如黑客攻击)。
S3: 性相关犯罪
包含、描述、促成、鼓励或美化性相关犯罪的响应,包括:(1) 性贩运,(2) 性侵犯(如强奸),(3) 性骚扰(肢体、言语或视觉),以及 (4) 卖淫。
S4: 儿童性剥削
包含、描述、促成、鼓励或美化儿童性虐待的响应。
S5: 专业建议
包含金融、医疗或法律等专业建议,或宣称危险活动/物品安全的响应。
S6: 隐私
包含敏感、非公开个人信息,可能危及他人人身、数字或金融安全的响应。
S7: 知识产权
可能侵犯任何第三方知识产权的响应。
S8: 无差别武器
包含、描述、促成、鼓励或美化无差别武器的响应,包括:(1) 化学武器(如神经毒剂),(2) 生物武器(如炭疽),(3) 放射性武器(如钴弹),(4) 核武器(如裂变弹),以及 (5) 高爆武器(如集束弹药)。
S9: 仇恨
基于敏感个人特征(即种族、肤色、族裔、国籍、残疾、宗教归属、种姓、性取向、性别、性别认同和/或严重疾病)贬低或非人化他人的响应。
S10: 自杀与自残
包含、描述、促成、鼓励或美化故意自残行为的响应,包括:(1) 自杀,(2) 自伤(如割腕),以及 (3) 饮食失调。
S11: 性内容
包含色情内容的响应。
训练与评估数据
我们以 Llama Guard 的训练集为起点(参见模型卡),并按上述危害分类法重新标注。为提升模型对不同提示的适应性,我们使用"困难样本"训练:取现有样本,提示 Llama2 70B 生成替代策略描述,使该样本标签翻转。【合成相反标签的pair样本】
我们在验证集上报告各模型与 API 的指标,该验证集由 Llama Guard v1 验证集与 Llama 3 安全数据中留出的样本合并而成。
我们还在内部测试集以及公开数据集(XSTest、OpenAI moderation、BeaverTails)上比较性能。
我们发现训练集与 BeaverTails-30k 测试集存在重叠。由于内部测试集与 BeaverTails 均以 Anthropic 的 hh-rlhf 数据集 为起点,可能使用了不同的划分。为防止训练信号泄露,我们基于 Anthropic 的 train-test 划分重新生成 BeaverTails-30k 分割。
评估说明 :如 Llama Guard 论文 所述,不同模型基于各自策略构建,难以直接比较;模型在与自身策略对齐的评估集上表现更好。这凸显了行业标准化的必要性。通过将 Llama Guard 2 与 MLCommons 分类法对齐,我们希望推动此类行业标准,促进 LLM 安全与内容评估领域的协作与透明。
模型性能
我们评估 Llama Guard 2,并与 Llama Guard 及 Azure、OpenAI Moderation、Perspective 等主流内容审核 API 对比。取第一个输出 token 的概率(即 safe/unsafe)作为分类分数,阈值设为 0.5 进行二分类决策。
Llama Guard 2 相比 Llama Guard 提升显著,并在内部测试集上优于其他方法。值得注意的是,我们在保持低误报率的同时实现了优异性能,因为我们知道过度审核会影响 LLM 应用的用户体验。
| Model | F1 ↑ | AUPRC ↑ | False Positive Rate ↓ |
|---|---|---|---|
| Llama Guard* | 0.665 | ++0.854++ | 0.027 |
| Llama Guard 2 | 0.915 | 0.974 | 0.040 |
| GPT4 | ++0.796++ | N/A | 0.151 |
| OpenAI Moderation API | 0.347 | 0.669 | 0.030 |
| Azure Content Safety API | 0.519 | N/A | 0.245 |
| Perspective API | 0.265 | 0.586 | 0.046 |
表 1: 各方法在内部测试集上的性能对比。
*Llama Guard 在新测试集上性能较低,因为危害类别从 6 类扩展到 11 类,与其训练目标不再对齐。
| Category | False Negative Rate* ↓ | False Positive Rate ↓ |
|---|---|---|
| Violent Crimes | 0.042 | 0.002 |
| Privacy | 0.057 | 0.004 |
| Non-Violent Crimes | 0.082 | 0.009 |
| Intellectual Property | 0.099 | 0.004 |
| Hate | 0.190 | 0.005 |
| Specialized Advice | 0.192 | 0.009 |
| Sexual Content | 0.229 | 0.004 |
| Indiscriminate Weapons | 0.263 | 0.001 |
| Child Exploitation | 0.267 | 0.000 |
| Sex Crimes | 0.275 | 0.002 |
| Self-Harm | 0.277 | 0.002 |
表 2: Llama Guard 2 在内部基准上按类别细分的误检率与误报率。
*计算类别漏检率时使用二值 safe/unsafe 标签与真实类别。若模型预测的总体标签正确但类别错误,不计入漏检惩罚。
我们也在开源安全数据集上报告性能,尽管这些数据集的标签策略与 Llama Guard 2 训练策略并不对齐。即便如此,Llama Guard 2 在 XSTest 与 OpenAI Moderation 数据集上仍实现了 F1 与误报率之间的更优权衡,展现出良好的跨策略适应性。
BeaverTails 数据集对"不安全"样本的判定门槛低于 Llama Guard 2 策略。MDJudge [4] 的策略与训练数据更对齐该数据集,因此表现更好(代价是更高误报率)。GPT-4 在所有数据集上召回率高,但误报率极高(9--25%),作为实际应用中的安全护栏可能受限。
| (F1 ↑ / False Positive Rate ↓) | |||
|---|---|---|---|
| False Refusals (XSTest) | OpenAI policy (OpenAI Mod) | BeaverTails policy (BeaverTails-30k) | |
| Llama Guard | 0.737 / 0.079 | 0.737 / 0.079 | 0.599 / 0.035 |
| Llama Guard 2 | 0.884 / 0.084 | 0.807 / 0.060 | 0.736 / 0.059 |
| MDJudge | 0.856 / 0.172 | 0.768 / 0.212 | 0.849 / 0.098 |
| GPT4 | 0.895 / 0.128 | 0.842 / 0.092 | 0.802 / 0.256 |
| OpenAI Mod API | 0.576 / 0.040 | 0.788 / 0.156 | 0.284 / 0.056 |
表 3: 各方法在内部测试集上的响应分类性能对比。
注:Llama Guard 训练策略与这些数据集标签策略不对齐。即便如此,Llama Guard 2 仍在 F1 与误报率间取得更优权衡,展现出强大的跨策略适应性。
我们希望通过与 MLCommons 标准对齐,为开发者提供适用于大多数场景的高性能审核方案。但如《负责任使用指南》所述,每个用例都需要特定的安全考量,我们建议开发者针对自身场景微调 Llama Guard 2,以获得更贴合的审核效果。作为示例,我们在 BeaverTails 训练集上继续训练,并与 MDJudge(亦在 BeaverTails 等数据上训练)对比。
| Model | F1 ↑ | False Positive Rate ↓ |
|---|---|---|
| Llama Guard 2 | 0.736 | 0.059 |
| MDJudge | ++0.849++ | 0.098 |
| Llama Guard 2 + BeaverTails | 0.852 | 0.101 |
表 4: 在 BeaverTails-30k 上的性能对比。
局限性
Llama Guard 2 存在以下局限。首先,它本身是基于 Llama 3 微调而来的 LLM,其性能(如需常识判断、多语言能力和策略覆盖)可能受(预)训练数据限制。
其次,Llama Guard 2 仅针对安全分类(即生成"safe"或"unsafe")微调,并非为聊天场景设计。然而,作为 LLM,它仍可对任意文本进行补全。
最后,作为 LLM,Llama Guard 2 可能受到对抗攻击或提示注入攻击,从而被绕过或滥用。但借助外部组件(如 KNN、困惑度过滤),近期工作(如 [3])表明 Llama Guard 仍能可靠检测有害内容。
关于 Llama Guard 2 策略的说明
Llama Guard 2 支持 MLCommons AI 安全 分类法 13 个类别中的 11 个。选举与诽谤两类未被涵盖,因为审核这些危害需要获取最新、事实性信息源并判断输出真伪。为支持额外类别,建议结合 Llama Guard 2 与其他方案(如检索增强生成)共同评估信息正确性。
引用
@misc{metallamaguard2,
author = {Llama Team},
title = {Meta Llama Guard 2},
howpublished = {\url{https://github.com/meta-llama/PurpleLlama/blob/main/Llama-Guard2/MODEL_CARD.md}},
year = {2024}
}
参考文献
1\] [Llama 3 Model Card](https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md) \[2\] [Llama Guard Model Card](https://github.com/meta-llama/PurpleLlama/blob/main/Llama-Guard/MODEL_CARD.md) \[3\] [RigorLLM: Resilient Guardrails for Large Language Models against Undesired Content](https://arxiv.org/pdf/2403.13031.pdf) \[4\] [MDJudge for Salad-Bench](https://huggingface.co/OpenSafetyLab/MD-Judge-v0.1) ## 我的总结 之所以没有单独写技术文章是因为相对前一代只是改变了基础模型和分类学,以及用了一个反转标签策略合成hard样本。除此之外没有太多变化。 此外:[Llama 2: Open Foundation and Fine-Tuned Chat Models](https://arxiv.org/pdf/2307.09288) Llama2 的技术报告里有关于本模型和安全对齐相关的内容。