SuperAPI AI 工具集

llamaguard

安全与审计

查看项目

更新于 10-21 16:18

技能介绍

用途

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)

资料给出的常见工作流包括:

  1. 输入过滤(提示词审核):在送入 LLM 前检查用户提示词,若结果以 unsafe 开头则解析类别并拦截。
  2. 输出过滤(回复审核):将用户消息与助手回复组成对话后审核,不安全时返回通用回复。
  3. vLLM 部署:使用 vLLM 的 LLM 与 SamplingParams(temperature=0.0,max_tokens=100)进行快速推理与批量审核。
  4. API 端点:用 FastAPI 封装 /moderate 接口,返回 safe、category 与 full_output 字段,通过 uvicorn 启动。
  5. 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)。