|
--- |
|
license: openrail |
|
datasets: |
|
- Skywork/SkyPile-150B |
|
- wangrui6/Zhihu-KOL |
|
- silk-road/alpaca-data-gpt4-chinese |
|
language: |
|
- zh |
|
base_model: openai-community/gpt2 |
|
pipeline_tag: text-classification |
|
tags: |
|
- text-classification |
|
--- |
|
|
|
# AI文本检测器 |
|
本模型是gpt2的微调模型,用于文本分类。 |
|
|
|
本模型支持三个类别:AI,zhihu,other. 它们分别表示AI生成的文本,知乎用户回答文本和其他文本。 |
|
|
|
# 使用方式 |
|
通过 `transformers.pipeline` 预设的文本分类管线即可轻松使用: |
|
```python |
|
from transformers import pipeline |
|
classifier = pipeline("text-classification",model="./checkpoints",device="cuda") |
|
text = "加密通信助长犯罪的说法并不成立,理由如下:隐私权的基本保障:加密技术保障了个人和组织的隐私权,这是基本人权的一部分。无论是个人的日常通信、商业机密,还是新闻记者的来源保护,加密通信都在确保合法和正当的隐私需求不被侵犯。" |
|
print(classifier(text)) |
|
``` |
|
输出结果为 |
|
``` |
|
[{'label': 'AI', 'score': 0.9951270818710327}] |
|
``` |
|
|
|
使用模型本身进行推理的方法: |
|
```python |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("hugfaceguy0001/AITextDetector") |
|
model = AutoModelForSequenceClassification.from_pretrained("hugfaceguy0001/AITextDetector").to("cuda") |
|
|
|
def detect_text(text): |
|
with torch.no_grad(): |
|
inputs = tokenizer(text, return_tensors="pt").to("cuda") |
|
logits = model(**inputs).logits |
|
predicted_class_id = logits.argmax().item() |
|
return model.config.id2label[predicted_class_id] |
|
|
|
text = "黑神话这个游戏,你喷它优化、喷它地图、喷它空气墙、喷它战斗、喷它剧情;这些东西不管我自己觉得有没有喷一下的必要,可也都或多或少的能理解它为什么被喷的原因。" |
|
print(detect_text(text)) |
|
``` |
|
输出结果为 |
|
``` |
|
zhihu |
|
``` |
|
|
|
## 训练数据 |
|
|
|
使用 `alpaca-data-gpt4-chinese` 中的约52000条回答文本作为AI生成文本,`Zhihu-KOL` 中随机选择的约52000条回答文本作为知乎用户回答文本,`SkyPile-150B` 中随机选择的约52000条文本作为其他文本。 |
|
|
|
共约15.6万条分类文本,组成数据集,其中80%用于训练,20%用于测试。 |
|
|
|
## 在测试集上的性能 |
|
|
|
分类准确率 `accuracy = 0.9802627363024672`. |
|
|
|
各样本真实标签和检测结果组成的混淆矩阵为 |
|
| | AI | zhihu | other | |
|
|:-----:|:-----:|:-----:|:-----:| |
|
| AI | 10325 | 326 | 18 | |
|
| zhihu | 143 | 9969 | 87 | |
|
| other | 0 | 42 | 10300 | |