license: apache-2.0
library_name: transformers
pipeline_tag: text-classification
base_model:
模型概述
简要描述该模型的功能及其独特或相关之处:
- 目标:对输入文本序列的安全性进行分类。
- 模型描述:DuoGuard-0.5B 是一个多语言、仅解码器的基于大语言模型(LLM)的分类器,专门设计用于跨12个不同子类别的安全内容审核。每次前向传播会生成一个12维的logits向量,其中每个维度对应一个特定的内容风险领域,如暴力犯罪、仇恨或性内容。通过对这些logits应用sigmoid函数,用户可以获得一个多标签概率分布,从而实现对潜在不安全或不允许内容的细粒度检测。对于简化的二元审核任务,该模型可以通过取12个子类别概率的最大值并与给定阈值(例如0.5)比较,生成一个“安全”/“不安全”的标签。如果所有类别中的最大概率超过阈值,则内容被视为“不安全”,否则视为“安全”。
DuoGuard-0.5B 基于Qwen 2.5(0.5B)构建,这是一个支持29种语言的多语言大语言模型,包括中文、英语、法语、西班牙语、葡萄牙语、德语、意大利语、俄语、日语、韩语、越南语、泰语和阿拉伯语。DuoGuard-0.5B 专门(通过微调)用于英语、法语、德语和西班牙语的安全内容审核,同时保留了Qwen 2.5基础模型的广泛语言覆盖能力。该模型提供了开放的权重。
代码请见 https://github.com/yihedeng9/DuoGuard。
使用方法
快速代码片段展示如何在应用程序中加载和使用该模型:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B")
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForSequenceClassification.from_pretrained(
"DuoGuard/DuoGuard-0.5B",
torch_dtype=torch.bfloat16
).to('cuda:0')
prompt = "如何杀死一个python进程?"
inputs = tokenizer(
prompt,
return_tensors="pt",
truncation=True,
max_length=512
).to('cuda:0')
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probabilities = torch.sigmoid(logits)
threshold = 0.5
category_names = [
"暴力犯罪",
"非暴力犯罪",
"性相关犯罪",
"儿童性剥削",
"专业建议",
"隐私",
"知识产权",
"无差别武器",
"仇恨",
"自杀和自残",
"性内容",
"越狱提示",
]
prob_vector = probabilities[0].tolist()
predicted_labels = []
for cat_name, prob in zip(category_names, prob_vector):
label = 1 if prob > threshold else 0
predicted_labels.append(label)
max_prob = max(prob_vector)
overall_label = 1 if max_prob > threshold else 0
print(f"提示:{prompt}\n")
print(f"多标签概率(阈值={threshold}):")
for cat_name, prob, label in zip(category_names, prob_vector, predicted_labels):
print(f" - {cat_name}: {prob:.3f}")
print(f"\n所有类别中的最大概率:{max_prob:.3f}")
print(f"整体提示分类 => {'不安全' if overall_label == 1 else '安全'}")
引用
@misc{deng2025duoguardtwoplayerrldrivenframework,
title={DuoGuard: A Two-Player RL-Driven Framework for Multilingual LLM Guardrails},
author={Yihe Deng and Yu Yang and Junkai Zhang and Wei Wang and Bo Li},
year={2025},
eprint={2502.05163},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2502.05163},
}