--- 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 |