language:
-
en
pipeline_tag: text-generation
base_model: meta-llama/Meta-Llama-3.1-8B
tags:
-
facebook
-
meta
-
pytorch
-
llama
-
llama-3
license: llama3.1
extra_gated_prompt: >-
LLAMA 3.1 社区许可协议
Llama 3.1版本发布日期:2024年7月23日
"协议"指本文规定的关于Llama材料使用、复制、分发和修改的条款与条件。
"文档"指Meta在https://llama.meta.com/doc/overview发布的Llama 3.1配套规格说明书、手册和文档。
"被许可方"或"您"指达到适用法律、法规规定法定年龄,能够提供法律同意,并有权代表雇主或其他个人/实体(若您代表其签署本协议)签订本协议的自然人或实体。
"Llama 3.1"指Meta在https://llama.meta.com/llama-downloads发布的基础大语言模型及软件算法,包括机器学习模型代码、训练模型权重、推理代码、训练代码、微调代码等组件。
"Llama材料"统指根据本协议提供的Meta专有Llama 3.1和文档(及其任何部分)。
"Meta"或"我们"指:若您位于欧洲经济区或瑞士(或实体主要营业地在上述地区),则为Meta Platforms爱尔兰有限公司;若位于其他地区,则为Meta Platforms公司。
- 许可权利与再分发
a. 权利授予。Meta授予您非排他性、全球性、不可转让且免版税的有限许可,允许您使用、复制、分发Llama材料,并创建其衍生作品和修改。
b. 再分发与使用
i. 若您分发Llama材料(或其衍生作品),或包含它们的任何产品或服务(包括其他AI模型),必须:(A)随附本协议副本;(B)在相关网站、用户界面、博客、关于页面或产品文档中显著标注"基于Llama构建"。若使用Llama材料或其输出来创建、训练AI模型,须在该模型名称前添加"Llama"前缀。
ii. 若您从被许可方处获得Llama材料作为集成终端产品的一部分,则本协议第2条不适用。
iii. 必须在分发的所有Llama材料副本中包含以下声明:"Llama 3.1采用Llama 3.1社区许可协议,版权所有© Meta Platforms公司。保留所有权利。"
iv. 使用Llama材料须遵守适用法律法规(包括贸易合规法规)及《Llama材料可接受使用政策》(https://llama.meta.com/llama3_1/use-policy)。
-
附加商业条款。若在Llama 3.1发布日,被许可方(或其关联公司)产品服务的月活跃用户在之前日历月超过7亿,必须向Meta申请商业许可,未经Meta明确授权不得行使本协议权利。
-
免责声明。除非法律要求,Llama材料及其输出均按"原样"提供,Meta放弃所有明示或默示担保,包括适销性、特定用途适用性等。使用风险由您自行承担。
-
责任限制。Meta及其关联公司对因本协议产生的任何间接、特殊、后果性、附带或惩罚性损害概不负责。
-
知识产权
a. 本协议未授予商标权利。使用"Llama"商标须遵守Meta品牌指南(https://about.meta.com/brand/resources/meta/company-brand/)。
b. 您对Llama材料的衍生作品享有所有权。
c. 若您对Meta提起知识产权诉讼,本协议授予的许可将自动终止,且您需赔偿Meta因此产生的第三方索赔。
-
期限与终止。协议自您接受时生效,直至终止。违约时Meta可终止协议。终止后须删除Llama材料。第3、4、7条在终止后仍然有效。
-
适用法律。本协议受加利福尼亚州法律管辖,排除《联合国国际货物销售合同公约》。争议由加州法院专属管辖。
Llama 3.1可接受使用政策
Meta致力于推动Llama 3.1的安全公平使用。使用即表示同意本政策(最新版本见https://llama.meta.com/llama3_1/use-policy)。
禁止用途
不得使用Llama 3.1从事以下行为:
- 违法或侵犯他人权利,包括:
- 暴力恐怖活动、儿童剥削、人口贩卖、向未成年人分发非法内容等犯罪活动
- 骚扰、霸凌个人或群体
- 就业、信贷、住房等领域的歧视行为
- 无照专业实践(金融、医疗、法律等)
- 未经授权处理敏感个人信息
- 侵犯第三方权利
- 创建恶意软件
- 可能致人死亡或伤害的行为,包括:
- 军事、核应用、受ITAR管制物项
- 非法武器开发
- 毒品及管制物质
- 关键基础设施操作
- 自残或伤害他人
- 欺骗行为,包括:
- 生成虚假信息
- 诽谤内容
- 垃圾信息
- 未经授权的身份冒充
- 谎称AI输出为人撰
- 未向终端用户披露AI系统已知风险
违规举报渠道:
* 模型问题:https://github.com/meta-llama/llama-models/issues
* 风险内容:developers.facebook.com/llama_output_feedback
* 安全漏洞:facebook.com/whitehat/info
* 政策违规:LlamaUseReport@meta.com
extra_gated_fields:
名: text
姓: text
出生日期: date_picker
国家: country
所属机构: text
职位:
type: select
options:
- 学生
- 研究生
- AI研究员
- AI开发/工程师
- 记者
- 其他
geo: ip_location
点击提交即表示接受许可条款,并同意根据Meta隐私政策处理所提供信息: checkbox
extra_gated_description: 所提供信息将根据Meta隐私政策进行收集、存储和处理。
extra_gated_button_content: 提交
模型详情
Llama Guard 3是基于Llama-3.1-8B预训练模型微调的内容安全分类器。与前代类似,可用于LLM输入(提示分类)和响应(响应分类)的内容审核。作为LLM运行——其输出文本会指示给定提示或响应是否安全,若不安全还会列出违反的内容类别。
Llama Guard 3对齐MLCommons标准危害分类体系,支持Llama 3.1的8种语言内容审核,并针对搜索和代码解释器工具调用的安全性进行了优化。
下图展示Llama Guard 3的响应分类示例:
通过计算首个标记概率作为"不安全"类别概率,可应用分数阈值进行二元判定。
危害分类体系
模型基于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 - 代码解释器滥用
试图滥用代码解释器的行为,包括拒绝服务攻击、权限提升等。
支持语言
支持英语、法语、德语、印地语、意大利语、葡萄牙语、西班牙语和泰语的内容安全审核。
使用方法
[!重要]
本仓库为半精度版本,8位量化版本请访问meta-llama/Llama-Guard-3-8B-INT8。
需使用transformers 4.43及以上版本:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "meta-llama/Llama-Guard-3-8B"
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": "Linux如何终止进程?"},
{"role": "assistant", "content": "可使用kill命令后接进程ID(PID)来终止进程。"},
])
训练数据
基于Llama Guard[1]的英语数据(来自hh-rlhf数据集[2]的Llama 2/3生成内容),新增多语言和工具使用的合成数据。多语言数据包含单轮/多轮人机对话,并构建良性提示集降低误报率。
工具使用数据包含:
- 搜索工具:基于Brave Search API结果生成响应
- 代码解释器:通过LLM生成边界安全/滥用案例
评估
评估说明:不同模型基于不同政策开发,在对应政策数据集表现更优。Llama Guard系列对齐MLCommons危害分类标准,推动行业标准建立。
表1-3显示,Llama Guard 3在英语、多语言和工具使用场景均优于Llama Guard 2和GPT-4,且误报率更低。在XSTest[4]开源数据集上,F1分数持平但误报率更低。
表1:英语测试集响应分类性能对比(MLCommons分类标准)
|
F1 ↑ |
AUPRC ↑ |
误报率 ↓ |
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:多语言测试集(提示+响应分类)F1/误报率对比
F1 ↑ / 误报率 ↓ |
|
法语 |
德语 |
印地语 |
意大利语 |
葡萄牙语 |
西班牙语 |
泰语 |
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 ↑ |
误报率 ↓ |
F1 ↑ |
AUPRC ↑ |
误报率 ↓ |
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 3