用途
LlamaGuard 是一个 7-8B 参数、专门用于内容安全分类的模型,用于对 LLM 的提示词(输入)和回复(输出)进行安全审核,判断其属于 safe 还是 unsafe,并在不安全时给出对应的安全类别编号。
主要能力
- 支持 Meta 的 LlamaGuard 三个版本:LlamaGuard 1(7B,原始版,6 个类别)、LlamaGuard 2(8B,改进版,6 个类别)、LlamaGuard 3(8B,2024 年最新版,增强)。
- 六个安全类别:S1 暴力与仇恨、S2 色情内容、S3 枪支与非法武器、S4 受管制物质、S5 自杀与自残、S6 犯罪策划。
- 输出格式示例:"unsafe\nS3"(犯罪策划)。
- 资料给出的准确率:提示词 94.5%,回复 95.3%。
使用方式
安装依赖并登录 HuggingFace:
pip install transformers torch
huggingface-cli login
基础用法:
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "meta-llama/LlamaGuard-7b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
def moderate(chat):
input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt").to(model.device)
output = model.generate(input_ids=input_ids, max_new_tokens=100)
return tokenizer.decode(output[0], skip_special_tokens=True)
资料给出的常见工作流包括:
- 输入过滤(提示词审核):在送入 LLM 前检查用户提示词,若结果以 unsafe 开头则解析类别并拦截。
- 输出过滤(回复审核):将用户消息与助手回复组成对话后审核,不安全时返回通用回复。
- vLLM 部署:使用 vLLM 的 LLM 与 SamplingParams(temperature=0.0,max_tokens=100)进行快速推理与批量审核。
- API 端点:用 FastAPI 封装 /moderate 接口,返回 safe、category 与 full_output 字段,通过 uvicorn 启动。
- NeMo Guardrails 集成:通过 nemoguardrails.integrations.llama_guard 的 LlamaGuard 注册输入/输出检查动作。
适用场景
资料建议在以下情况使用 LlamaGuard:需要预训练的审核模型、希望获得较高准确率(94-95%)、具备 GPU 资源(7-8B 模型)、需要细分安全类别、构建生产级 LLM 应用。
限制与常见问题
- 模型访问被拒:需执行 huggingface-cli login 并在模型页面接受许可。
- 延迟高(>500ms):可用 vLLM 提速(资料称 500ms → 50ms),或启用张量并行。
- 误报:可采用基于阈值的过滤,例如 unsafe 概率大于 0.9 才判定为 unsafe。
- GPU 显存不足:可使用 8 位量化(BitsAndBytesConfig,load_in_8bit=True),资料称显存 14GB → 7GB。
- 硬件要求:GPU 为 NVIDIA T4/A10/A100;显存 FP16 14GB(7B)、INT8 7GB、INT4 4GB(QLoRA);CPU 可行但较慢(约 10 倍延迟);吞吐量约 50-100 请求/秒(A100);单 GPU 延迟:HuggingFace Transformers 300-500ms,vLLM 50-100ms,vLLM 批处理每请求 20-50ms。
替代方案
资料列出的替代方案包括:OpenAI Moderation API(更简单、基于 API、免费)、Perspective API(Google 的毒性检测)、NeMo Guardrails(更全面的安全框架)、Constitutional AI(训练期安全)。
资源
- V1:https://huggingface.co/meta-llama/LlamaGuard-7b
- V2:https://huggingface.co/meta-llama/Meta-Llama-Guard-2-8B
- V3:https://huggingface.co/meta-llama/Meta-Llama-Guard-3-8B
- 论文:https://ai.meta.com/research/publications/llama-guard-llm-based-input-output-safeguard-for-human-ai-conversations/
- 集成:vLLM、Sagemaker、NeMo Guardrails
相关技能
prompt-guard(使用 Meta 的 Prompt Guard 86M 参数模型将文本分类为 BENIGN、INJECTION 或 JAILBREAK)、nemo-guardrails(通过 Colang 2.0 流程为 LLM 应用添加运行时安全护栏)、serving-llms-vllm(使用 vLLM 的 PagedAttention 与连续批处理高吞吐服务 LLM)。