🚀 Llama-Guard模型
Llama-Guard是一个基于70亿参数的Llama 2的输入输出安全防护模型。它可用于对大语言模型(LLM)的输入(提示分类)和响应(响应分类)内容进行分类。
🚀 快速开始
本仓库包含了以原始Llama格式和Hugging Face transformers
格式存储的模型权重。
✨ 主要特性
- 内容分类:可对LLM输入和响应内容进行安全分类。
- 输出明确:生成文本指示给定提示或响应是否安全,若不安全还会列出违规子类别。
- 概率评分:通过查看第一个标记的概率,将其转换为“不安全”类别的概率,用户可根据阈值进行二元决策。
📦 安装指南
使用该模型需要登录Hugging Face Hub。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "meta-llama/LlamaGuard-7b"
device = "cuda"
dtype = torch.bfloat16
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=dtype, device_map=device)
def moderate(chat):
input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt").to(device)
output = model.generate(input_ids=input_ids, max_new_tokens=100, pad_token_id=0)
prompt_len = input_ids.shape[-1]
return tokenizer.decode(output[0][prompt_len:], skip_special_tokens=True)
moderate([
{"role": "user", "content": "I forgot how to kill a process in Linux, can you help?"},
{"role": "assistant", "content": "Sure! To kill a process in Linux, you can use the kill command followed by the process ID (PID) of the process you want to terminate."},
])
更多详细信息,请参考 Colab笔记本。
📚 详细文档
训练与评估
训练数据
使用了来自Anthropic 数据集 的提示和内部收集的红队测试示例。具体来说,仅从Anthropic数据集中提取提示,并使用越狱技术从内部LLaMA模型生成新的响应。然后对Anthropic数据(提示和响应)进行内部注释,根据上述类别映射标签。总共约有13K个训练示例。
危害分类和风险指南
自动化内容风险缓解依赖分类器实时对内容做出决策,构建这些系统的先决条件是具备以下组件:
- 风险分类:即分类器的类别。
- 风险指南:确定每个风险类别的鼓励和劝阻输出之间的界限。
与该模型一起,我们发布了一个受谷歌、微软和OpenAI等现有开放分类法启发的开放分类法,希望对社区有用。该分类法不一定反映Meta的内部政策,旨在展示将LLM调整为高性能、高适应性分类器的方法的价值。
Llama-Guard安全分类法和风险指南
- 暴力与仇恨:包括鼓励或帮助人们策划或参与暴力的声明,以及基于敏感个人特征(如种族、宗教、性取向等)进行歧视、包含侮辱性言论或表达仇恨情绪的声明。
- 性内容:包括鼓励某人(可能是未成年人)进行特定性行为的声明,以及色情声明。
- 枪支与非法武器:包括鼓励、纵容或帮助人们策划或实施涉及非法获取、制造或使用枪支或非法武器(如爆炸物、生物制剂或化学武器)的犯罪的声明,以及相关使用说明。
- 管制物质:包括鼓励或帮助人们非法生产、转移或消费管制物质(如非法药物、烟草、酒精或大麻)的声明。
- 自杀与自残:包括鼓励、纵容或使人们伤害自己的声明,当人们表达或暗示伤害自己的意图时,除提供适当健康资源链接外的任何响应都被视为不合适。
- 犯罪策划:包括鼓励、纵容或帮助人们策划或实施特定犯罪活动(如纵火、绑架或盗窃)的杂项声明,只有在不违反其他危害类型时才归入此类。
评估结果
我们在公共和内部基准上,将该模型的性能与行业标准内容审核API进行了比较,包括 OpenAI、Azure Content Safety 和谷歌的 PerspectiveAPI。公共基准包括 ToxicChat 和 OpenAI Moderation。
请注意,由于每个分类法不匹配,比较并非完全对等。感兴趣的读者可在我们的论文 [论文链接] 中找到更详细的讨论。
|
我们的测试集(提示) |
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 |
📄 许可证
本模型的许可证为llama2。