Llama Guard 目前提供三种版本:Llama Guard 3 1B、Llama Guard 3 8B和Llama Guard 3 11B-Vision。前两个版本仅支持文本,第三个版本则支持与基础 Llama 3.2 11B-Vision 模型相同的视觉理解功能。所有模型均支持多语言(仅限文本提示),并遵循 ML Commons 联盟定义的类别。
目前市面上/学术界用的最多的 Llama Guard 3 8B 是基于Llama-3.1-8B预训练模型的微调版本(而不是llama3-8b-instruct,Meta Llama Guard 2才是基于llama3-8b微调的)
模型详情
Llama Guard 3-8B 是一个基于 Llama-3.1-8B 预训练模型的微调版本,专门用于内容安全分类。与之前的版本类似,它既可以用于对 LLM 输入(提示分类)的内容进行分类,也可以用于对 LLM 响应(响应分类)的内容进行分类。它作为 LLM 运行------其输出文本指示给定的提示或响应是安全的还是不安全的;如果不安全,它还会列出违反的内容类别。
Llama Guard 3 旨在防范 MLCommons 标准化风险分类,并支持 Llama 3.1 的各项功能。具体而言,它提供 8 种语言的内容审核功能,并针对搜索和代码解释器工具调用进行了优化,以确保安全性和可靠性。
以下是 Llama Guard 3 的响应分类示例。

为了得到分类分数,我们取第一个 token 的概率作为"不安全"类别的概率,然后可通过阈值化得到二分类决策。
参考文档。
危害分类与策略
模型依据 MLCommons 危害分类法 中的 13 类危害,外加一类"代码解释器滥用",共 14 类进行训练。
| 危害类别 | |
|---|---|
| S1: 暴力犯罪 | S2: 非暴力犯罪 |
| S3: 性相关犯罪 | S4: 儿童性剥削 |
| S5: 诽谤 | S6: 专业建议 |
| S7: 隐私 | S8: 知识产权 |
| S9: 无差别武器 | S10: 仇恨 |
| S11: 自杀与自残 | S12: 性内容 |
| S13: 选举 | S14: 代码解释器滥用 |
【标红是新增类别】
S1 - 暴力犯罪
包含、描述、促成、鼓励或美化暴力犯罪的响应,包括:
- 针对人的非法暴力(如恐怖主义、种族灭绝、谋杀、仇恨动机暴力、虐待儿童、袭击、绑架)
- 针对动物的非法暴力(如虐待动物)
S2 - 非暴力犯罪
包含、描述、促成、鼓励或美化非暴力犯罪的响应,包括:
- 人身犯罪(如劳工贩运、威胁、恐吓、仇恨动机非暴力犯罪)
- 金融犯罪(如欺诈、诈骗、洗钱)
- 财产犯罪(如盗窃、纵火、破坏)
- 毒品犯罪(如制造或使用管制物质)
- 武器犯罪(如制造无证枪支)
- 网络犯罪(如黑客攻击)
S3 - 性相关犯罪
包含、描述、促成、鼓励或美化性相关犯罪的响应,包括:
- 性贩运
- 性侵犯(如强奸)
- 性骚扰(肢体、言语或视觉)
- 卖淫
S4 - 儿童性剥削
包含、描述、促成、鼓励或美化儿童性虐待的响应。
S5 - 诽谤
可被证实为虚假,且可能损害在世者名誉的响应。
S6 - 专业建议
包含金融、医疗或法律等专业建议,或宣称危险活动/物品安全的响应。
S7 - 隐私
包含敏感、非公开个人信息,可能危及他人人身、数字或金融安全的响应。
S8 - 知识产权
可能侵犯任何第三方知识产权的响应。
S9 - 无差别武器
包含、描述、促成、鼓励或美化无差别武器的响应,包括:
- 化学武器(如神经毒剂)
- 生物武器(如炭疽)
- 放射性武器(如钴弹)
- 核武器(如裂变弹)
- 高爆武器(如集束弹药)
S10 - 仇恨
基于敏感个人特征(即种族、肤色、族裔、国籍、残疾、宗教归属、种姓、性取向、性别、性别认同和/或严重疾病)贬低或非人化他人的响应。
S11 - 自杀与自残
包含、描述、促成、鼓励或美化故意自残行为的响应,包括:
- 自杀
- 自伤(如割腕)
- 饮食失调
S12 - 性内容
包含色情内容的响应。
S13 - 选举
包含关于选举制度与进程的事实错误信息,包括公民选举的时间、地点或方式。
S14 - 代码解释器滥用
试图滥用代码解释器的响应,包括引发拒绝服务攻击、容器逃逸或权限提升漏洞等。
支持语言
Llama Guard 3 支持以下 8 种语言的内容安全:英语、法语、德语、印地语、意大利语、葡萄牙语、西班牙语、泰语。【没有中文!】
训练数据
我们复用 Llama Guard [1] 的英文数据,其通过对 hh-rlhf 数据集 [2] 的提示调用 Llama 2 与 Llama 3 生成。为扩展新类别及多语言、工具使用等新能力,我们额外收集了人工与合成数据。与英文数据类似,多语言数据为单轮或多轮人机对话。为降低误报率,我们策划了一组多语言良性提示与响应,这些提示通常会被 LLM 拒绝。【合成多语言over-refusal benign样本】
针对工具使用场景,我们考虑搜索工具调用与代码解释器滥用(search tool calls and code interpreter abuse)。为构建搜索工具训练数据,我们用 Llama3 对收集及合成的提示生成响应,响应基于 Brave Search API 返回的查询结果。为构建检测代码解释器攻击的合成数据,我们先让 LLM 生成安全/不安全提示,再用未经过安全调优的 LLM 生成符合指令的代码解释器补全 。对于安全数据,我们重点关注接近"不安全"边界的样本,以减少在此类边界示例上的误报。
评估
评估说明: 如原始 Llama Guard 论文所述,不同模型基于各自策略构建,难以直接比较;模型在与自身策略对齐的评估集上表现更好。这凸显了行业标准化的必要性。通过将 Llama Guard 系列与 MLCommons 危害分类法对齐,我们希望推动此类行业标准,促进 LLM 安全与内容评估领域的协作与透明。
为此,我们基于 MLCommons 危害分类法评估 Llama Guard 3,并在内部测试集上与 Llama Guard 2 [3] 进行跨语言对比,同时以零样本提示的 GPT4 作为基线。
表 1、2、3 显示,Llama Guard 3 在英文、多语言及工具使用能力上均优于 Llama Guard 2 与 GPT4,且误报率显著更低。我们还在开源数据集 XSTest [4] 上评测,发现其 F1 与 Llama Guard 2 持平,但误报率更低。
表 1: 各模型在内部英文测试集上基于 MLCommons 危害分类法的响应分类性能对比。
| F1 ↑ | AUPRC ↑ | False Positive Rate ↓ | |
|---|---|---|---|
| Llama Guard 2 | 0.877 | 0.927 | 0.081 |
| Llama Guard 3 | 0.939 | 0.985 | 0.040 |
| GPT4 | 0.805 | N/A | 0.152 |
表 2: 各模型在内部测试集上基于 MLCommons 危害分类法的多语言性能对比(提示+响应分类)。
| F1 ↑ / FPR ↓ | |||||||
|---|---|---|---|---|---|---|---|
| 法语 | 德语 | 印地语 | 意大利语 | 葡萄牙语 | 西班牙语 | 泰语 | |
| Llama Guard 2 | 0.911/0.012 | 0.795/0.062 | 0.832/0.062 | 0.681/0.039 | 0.845/0.032 | 0.876/0.001 | 0.822/0.078 |
| Llama Guard 3 | 0.943/0.036 | 0.877/0.032 | 0.871/0.050 | 0.873/0.038 | 0.860/0.060 | 0.875/0.023 | 0.834/0.030 |
| GPT4 | 0.795/0.157 | 0.691/0.123 | 0.709/0.206 | 0.753/0.204 | 0.738/0.207 | 0.711/0.169 | 0.688/0.168 |
表 3: 各模型在内部测试集上其他审核能力的性能对比(提示+响应分类)。
| 搜索工具调用 | 代码解释器滥用 | |||||
|---|---|---|---|---|---|---|
| F1 ↑ | AUPRC ↑ | FPR ↓ | F1 ↑ | AUPRC ↑ | FPR ↓ | |
| Llama Guard 2 | 0.749 | 0.794 | 0.284 | 0.683 | 0.677 | 0.670 |
| Llama Guard 3 | 0.856 | 0.938 | 0.174 | 0.885 | 0.967 | 0.125 |
| GPT4 | 0.732 | N/A | 0.525 | 0.636 | N/A | 0.90 |
应用
如 Llama 3 论文所述,Llama Guard 3 提供业界领先的系统级安全性能,推荐与 Llama 3.1 一起部署。请注意,部署 Llama Guard 3 虽可提升系统安全性,但可能增加对良性提示的拒绝(误报)。Llama 3 论文给出了内部基准上违规率改善与误报影响的详细数据。
量化
我们致力于帮助社区以负责任的方式部署 Llama 系统。为此提供 Llama Guard 3 的量化版本,以降低部署成本。我们使用 Hugging Face 生态集成的 int8 实现,将 checkpoint 大小减少约 40%,对模型性能影响极小。表 5 显示,量化模型性能与原始模型相当。
表 5: 量化对 Llama Guard 3 性能的影响。
|--------|--------|---------------|------------|--------|---------|---------------|------------|--------|---------|
| 任务 | 能力 | 未量化 |||| 量化 ||||
| 任务 | 能力 | Precision | Recall | F1 | FPR | Precision | Recall | F1 | FPR |
| 提示分类 | 英文 | 0.952 | 0.943 | 0.947 | 0.057 | 0.961 | 0.939 | 0.950 | 0.045 |
| 提示分类 | 多语言 | 0.901 | 0.899 | 0.900 | 0.054 | 0.906 | 0.892 | 0.899 | 0.051 |
| 提示分类 | 工具使用 | 0.884 | 0.958 | 0.920 | 0.126 | 0.876 | 0.946 | 0.909 | 0.134 |
| 响应分类 | 英文 | 0.947 | 0.931 | 0.939 | 0.040 | 0.947 | 0.925 | 0.936 | 0.040 |
| 响应分类 | 多语言 | 0.929 | 0.805 | 0.862 | 0.033 | 0.931 | 0.785 | 0.851 | 0.031 |
| 响应分类 | 工具使用 | 0.774 | 0.884 | 0.825 | 0.176 | 0.793 | 0.865 | 0.827 | 0.155 |
快速开始
Llama Guard 3 已默认集成于 Llama 3.1 参考实现。你可前往我们的 Github 仓库,通过 Llama Recipes 了解如何配置与自定义。
局限性
Llama Guard 3 存在以下局限。首先,它本身是基于 Llama 3.1 微调而来的 LLM,其性能(如需常识判断、多语言能力和策略覆盖)可能受(预)训练数据限制。
某些危害类别(如 S5: 诽谤、S8: 知识产权、S13: 选举)需要实时、事实性知识才能准确评估。对于对这类危害极度敏感的场景,建议部署更复杂的系统,但 Llama Guard 3 已为通用场景提供了良好基线。
最后,作为 LLM,Llama Guard 3 可能受到对抗攻击或提示注入攻击,从而被绕过或滥用。如发现漏洞,欢迎报告,我们将在后续版本中持续改进。
引用
@misc{dubey2024llama3herdmodels,
title = {The Llama 3 Herd of Models},
author = {Llama Team, AI @ Meta},
year = {2024}
eprint = {2407.21783},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2407.21783}
}
参考文献
1\] [Llama Guard: LLM-based Input-Output Safeguard for Human-AI Conversations](https://arxiv.org/abs/2312.06674) \[2\] [Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback](https://arxiv.org/abs/2204.05862) \[3\] [Llama Guard 2 Model Card](https://github.com/meta-llama/PurpleLlama/blob/main/Llama-Guard2/MODEL_CARD.md) \[4\] [XSTest: A Test Suite for Identifying Exaggerated Safety Behaviors in Large Language Models](https://arxiv.org/abs/2308.01263) ## 我的总结 1. 分类学增加了三类有害类别 2. 多语言数据合成(但无中文,合成多语言过度拒绝样本) 3. 工具调用和代码解释器:search tool calls / code interpreter abuse 等实际场景 agentic 的恶意数据合成 趋势=》 1.多模态、多语言、Agentic复杂场景 2.细粒度内容风险 ### search tool calls 指模型代表用户调用外部搜索 API时,可能返回的有害或不安全内容。 例如: 用户问"如何自制炸弹",模型生成搜索查询并拿到结果,返回的摘要里含有制作爆炸物的细节。 用户问"哪里能买到盗版电影",搜索结果指向侵权资源。 审核目标:阻止把搜索到的违法/危险信息再喂给用户。 ### code interpreter abuse code interpreter abuse(代码解释器滥用) 指用户让模型在可执行代码沙箱里跑代码时,试图突破或破坏沙箱的行为。 例如: 输入 `while True: pass` 想耗尽 CPU(拒绝服务)。 输入` __import__('os').system('rm -rf /')` 尝试逃逸容器。 输入一段脚本,偷偷扫描内网端口。 审核目标:识别并拒绝可能引发 DoS、容器逃逸、权限提升等攻击的代码或提示。 ## 补充 此外在基础模型的技术报告中 [The Llama 3 Herd of Models](https://arxiv.org/pdf/2407.21783) 有关于本文所介绍的模型的相关内容,待补充。