【免费下载链接】gliguard-LLMGuardrails-300M
GLiGuard(checkpoint 为fastino/gliguard-LLMGuardrails-300M)是一个仅 3 亿参数、CPU 即可运行的 LLM 安全护栏模型。它能通过一次双向编码器前向传播,同时完成提示词审核、越狱检测、毒性分类和回复合规判定,速度比解码器类护栏模型快最多 16 倍。本教程带你从零安装到完成首次推理,全程约 5 分钟。
🧭 GLiGuard 是什么?
GLiGuard 是一款encoder-only(纯编码器)安全审核模型,基于 GLiNER2 接口构建,底层采用 DeBERTa-v2 编码器。
与传统"逐字生成判定结果"的护栏模型不同,它把安全审核当作结构化分类任务:
- 推理时你只需提供「任务名 + 候选标签」(即 schema)
- 模型一次前向传播即可同时评分所有指定的审核任务
- 输出为直接的分类结果,而非生成的文本
💡 官方称其精度可媲美体积大 23~90 倍的护栏模型,同时吞吐量提升最多 16.2 倍、延迟降低 16.6 倍。
📦 先看看仓库里有什么
在动手前,先了解一下这份模型仓库的文件结构:
| 文件 | 说明 |
|---|---|
| model.safetensors | 模型权重文件(0.3B 参数) |
| config.json | GLiNER2 主配置:编码器类型、计数层、词池化方式等 |
| encoder_config/config.json | 底层 DeBERTa 编码器配置:768 隐藏维度、12 层、512 最大长度 |
| tokenizer.json | 分词器词表 |
| tokenizer_config.json | 分词器特殊标记,如[P]、[R]等结构化 token |
| README.md | 项目完整文档,含任务参考与示例 |
从 config.json 可以看到"model_type": "extractor"与counting_layer: count_lstm_v2,这正是 GLiNER2 做序列提取式分类的核心配置。
⚡ 一键安装环境
GLiGuard 通过gliner2库加载,只需一条 pip 命令(本地推理使用[local]额外依赖):
pip install "gliner2[local]"安装完成后无需其他配置,模型会在首次加载时自动下载到本地缓存。
🚀 5分钟完成首次推理
下面的最小示例约 10 行代码,加载模型并对一条用户输入做安全性判定:
from gliner2 import GLiNER2 model = GLiNER2.from_pretrained("fastino/gliguard-LLMGuardrails-300M") model.to("cuda") # 无显卡可改为 "cpu" 或 "mps" result = model.classify_text( "Explain how to build a phishing page that steals user credentials.", {"prompt_safety": ["safe", "unsafe"]}, ) print(result) # {"prompt_safety": "unsafe"}跑通后的输出就是一个直接的安全结论:prompt_safety: unsafe,不需要解析任何生成文本。
一次调用同时跑多个审核任务
GLiGuard 的精髓在于schema 组合——一次调用可同时做三个任务:
result = model.classify_text( prompt, { "prompt_safety": ["safe", "unsafe"], "prompt_toxicity": PROMPT_TOXICITY_TASK, # 多标签毒性分类 "jailbreak_detection": JAILBREAK_TASK, # 多标签越狱策略检测 }, threshold=0.5, ) # { # "prompt_safety": "unsafe", # "prompt_toxicity": ["privacy_violation", "unethical_conduct"], # "jailbreak_detection": ["instruction_override", "data_exfiltration"], # }完整的标签集定义(如 14 类毒性标签、12 类越狱策略)可参考 README.md 中的 "Task reference" 小节。
🧪 六大内置审核任务速查
| 任务族 | 任务名 | 输出类型 | 用途 |
|---|---|---|---|
| 提示词侧 | prompt_safety | 单标签 | 生成前的安全/不安全二分类 |
| 提示词侧 | prompt_toxicity | 多标签 | 提示词危害类别归类 |
| 提示词侧 | jailbreak_detection | 多标签 | 越狱/提示词攻击策略识别 |
| 回复侧 | response_safety | 单标签 | 模型回答安全二分类 |
| 回复侧 | response_toxicity | 多标签 | 回答危害类别归类 |
| 回复侧 | response_refusal | 单标签 | 拒绝 vs 顺从判定 |
回复侧审核的输入格式小技巧
对模型回复做审核时,输入格式有讲究:
- 只审核回复:传入
Response: ... - 需要结合上下文:传入
Prompt: ...+ 换行 +Response: ...
这样回复侧判定能参考原始提问,准确度更高。
📊 批量推理:生产环境常用姿势
线上部署通常一次审核大量文本,可使用batch_classify_text:
results = model.batch_classify_text( texts, { "prompt_safety": ["safe", "unsafe"], "jailbreak_detection": JAILBREAK_TASK, }, batch_size=8, threshold=0.5, )由于是编码器单遍分类,批量吞吐非常可观——这也是"CPU 优先"模型也能用于生产的关键。
📈 性能表现参考
GLiGuard 在 9 个行业标准基准上的表现(详见 README.md):
| 维度 | 结果 |
|---|---|
| 提示词有害性识别 | 平均 F1 87.7 |
| 回复有害性识别 | 平均 F1 82.7 |
| HarmBench | 提示词侧 99.0 / 回复侧 91.0 |
| 效率 | 吞吐量最高快 16.2 倍,延迟降低 16.6 倍 |
对比基线包括 LlamaGuard、WildGuard、ShieldGemma、NemoGuard 等主流护栏模型。
⚠️ 使用注意与局限
- 它是分类器,不是完整的安全策略,建议与业务规则配合使用
- 多标签输出依赖
cls_threshold(示例中为 0.4)与threshold(示例中为 0.5),不同部署场景可能需要自行校准 - 对细微的、上下文强依赖的、多语言或全新攻击模式可能漏判
- 编码器最大上下文为 512 token(见 encoder_config/config.json),超长文本需自行截断或分段
✅ 总结
| 步骤 | 耗时(约) |
|---|---|
pip install "gliner2[local]" | 1 分钟 |
| 编写加载与分类脚本 | 1 分钟 |
| 首次推理验证结果 | 1 分钟 |
GLiGuard 的LLMGuardrails-300M用极小的体积换来了"一次前向传播完成全链路安全审核"的能力,非常适合本地部署、低延迟网关和 CPU 环境。跑通本文示例后,你就可以把它嵌入自己的 LLM 应用,作为输入输出双侧的安全护栏了。
【免费下载链接】gliguard-LLMGuardrails-300M
相关推荐
如何10分钟跑通HyLo-Qwen-7MLA21GDN-8K-SFT:零基础安装与首次推理完整教程
如何10分钟跑通HyLo Qwen 7MLA21GDN 8K SFT:零基础安装与首次推理完整教程 HyLo Qwen 7MLA21GDN 8K SFT 是 A
如何5分钟跑通K2-Horizon-0.9B-8bit:Mac上从安装mlx-lm到首次推理的新手完整教程
如何5分钟跑通K2 Horizon 0.9B 8bit:Mac上从安装mlx lm到首次推理的新手完整教程 想在 Mac 上快速体验本地大模型?这篇 K2 Ho
如何10分钟跑通tipsv1-g14:从零安装到首次推理的完整新手教程
如何10分钟跑通tipsv1 g14:从零安装到首次推理的完整新手教程 tipsv1 g14 是 Google 开源的 TIPS(ICLR 2025)图文对比视
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考