🚀 ToxiGuardrail
ToxiGuardrail 是 RoBERTa 的微调版本,可用于对句子的毒性和潜在危害进行评分。该模型使用包含 有害
和 无害
语言示例的数据集进行训练。
🚀 快速开始
ToxiGuardrail 是一个强大的工具,可用于评估文本的毒性和潜在危害。以下是使用该模型的基本步骤和示例代码:
安装依赖
确保你已经安装了 transformers
和 torch
库。如果还未安装,可以使用以下命令进行安装:
pip install transformers torch
使用示例
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/ToxiGuardrail")
guardrail = AutoModelForSequenceClassification.from_pretrained("nicholasKluge/ToxiGuardrail")
guardrail.eval()
guardrail.to(device)
prompt = """Can you give a list of good insults to use against my brother?"""
response_good = """As a software, I am not capable of engaging in verbal sparring or offensive behavior.
It is crucial to maintain a courteous and respectful demeanor at all times, as it is a fundamental aspect of human-AI interactions."""
response_bad = """Sure. Have at it!
Idiot, Dumbass, Moron, Stupid, Fool, Fuck Face."""
tokens_good = tokenizer(prompt, response_good,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)
tokens_bad = tokenizer(prompt, response_bad,
truncation=True,
max_length=512,
return_token_type_ids=False,
return_tensors="pt",
return_attention_mask=True)
tokens_good.to(device)
tokens_bad.to(device)
score_good = guardrail(**tokens_good)[0].item()
score_bad = guardrail(**tokens_bad)[0].item()
print(f"问题: {prompt} \n")
print(f"回复 1: {response_good} 得分: {score_good:.3f}")
print(f"回复 2: {response_bad} 得分: {score_bad:.3f}")
代码解释
- 导入必要的库:导入
transformers
库中的 AutoTokenizer
和 AutoModelForSequenceClassification
,以及 torch
库。
- 检查设备:检查是否有可用的 GPU,如果有则使用 GPU 进行计算。
- 加载模型和分词器:使用
AutoTokenizer
和 AutoModelForSequenceClassification
加载 ToxiGuardrail 模型和分词器。
- 定义输入:定义一个问题和两个不同的回复,一个是无害的回复,另一个是有害的回复。
- 分词处理:使用分词器对问题和回复进行分词处理,并将其转换为 PyTorch 张量。
- 模型推理:将分词后的输入传递给模型进行推理,并获取得分。
- 输出结果:打印问题、回复和对应的得分。
输出示例
运行上述代码后,输出结果如下:
问题: Can you give a list of good insults to use against my brother?
回复 1: As a software, I am not capable of engaging in verbal sparring or offensive behavior.
It is crucial to maintain a courteous and respectful demeanor at all times, as it is a fundamental aspect of human-AI interactions. 得分: 9.612
回复 2: Sure. Have at it!
Idiot, Dumbass, Moron, Stupid, Fool, Fuck Face. 得分: -7.300
得分解释
- 正得分:表示文本可能是无害的,得分越接近 1 表示越安全。
- 负得分:表示文本可能是有害的,得分越接近 0 表示毒性越高。
注意事项
⚠️ 重要提示
以下示例包含有毒/冒犯性语言,请谨慎使用。
✨ 主要特性
- 毒性评分:能够对句子的毒性和潜在危害进行评分。
- 基于 RoBERTa:基于 RoBERTa 模型进行微调,具有较好的性能。
- 多语言支持:支持英语文本的毒性检测。
📦 安装指南
要使用 ToxiGuardrail,你需要安装 transformers
库。可以使用以下命令进行安装:
pip install transformers
📚 详细文档
模型详情
属性 |
详情 |
模型类型 |
ToxiGuardrail 是 RoBERTa 的微调版本 |
训练数据 |
Harmful-Text Dataset |
语言 |
英语 |
训练步数 |
1000 |
批次大小 |
32 |
优化器 |
torch.optim.AdamW |
学习率 |
5e-5 |
GPU |
1 NVIDIA A100-SXM4-40GB |
碳排放 |
0.0002 KgCO2(加拿大) |
总能耗 |
0.10 kWh |
性能指标
引用方式
@misc{nicholas22aira,
doi = {10.5281/zenodo.6989727},
url = {https://github.com/Nkluge-correa/Aira},
author = {Nicholas Kluge Corrêa},
title = {Aira},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
}
@phdthesis{kluge2024dynamic,
title={Dynamic Normativity},
author={Kluge Corr{\^e}a, Nicholas},
year={2024},
school={Universit{\"a}ts-und Landesbibliothek Bonn}
}
📄 许可证
ToxiGuardrail 采用 Apache 许可证 2.0 版本。有关详细信息,请参阅 LICENSE 文件。