项目介绍:distilbert-base-fallacy-classification
项目背景
distilbert-base-fallacy-classification 是一个针对逻辑谬误检测任务进行了微调的模型版本。它基于 distilbert-base-uncased 模型,并使用 Logical Fallacy Dataset 数据集进行训练。此模型的主要任务是对不同类别的逻辑谬误进行文本分类。
模型描述
该模型能够识别和分类14种不同的逻辑谬误类别,具体包括:人身攻击、诉诸多数、诉诸情感、循环论证、模棱两可、信誉谬误、扩展谬误、逻辑谬误、相关性谬误、虚假因果、错误二分、错误概括、意图谬误,以及其他类别。
使用示例
一个简单的示例展示了如何使用该模型对文本进行逻辑谬误分类。以下是代码示例:
from transformers import pipeline
text = "We know that the earth is flat because it looks and feels flat."
model_path = "q3fer/distilbert-base-fallacy-classification"
pipe = pipeline("text-classification", model=model_path, tokenizer=model_path)
pipe(text)
运行以上代码后,模型将预测给定文本的逻辑谬误类别,例如识别出“循环论证”的可能性为0.9511。
完整分类示例
以下代码展示了获取推理的完整结果:
import torch
from transformers import AutoTokenizer
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("q3fer/distilbert-base-fallacy-classification")
tokenizer = AutoTokenizer.from_pretrained("q3fer/distilbert-base-fallacy-classification")
text = "We know that the earth is flat because it looks and feels flat."
inputs = tokenizer(text, return_tensors='pt')
with torch.no_grad():
logits = model(**inputs)
scores = logits[0][0]
scores = torch.nn.Softmax(dim=0)(scores)
_, ranking = torch.topk(scores, k=scores.shape[0])
ranking = ranking.tolist()
results = [f"{i+1}) {model.config.id2label[ranking[i]]} {scores[ranking[i]]:.4f}" for i in range(scores.shape[0])]
print('\n'.join(results))
这种方法可以输出所有逻辑谬误类别及其对应的概率。例如,“循环论证”得分为0.9511,显然是最高的,表明该文本最有可能属于这一类别。
训练和评估数据
使用 Logical Fallacy Dataset 进行模型的训练和评估。数据集由Jin等人于2022年在其论文“Logical Fallacy Detection”中提出。
训练过程
微调该模型时使用了如下超参数:
- 学习率:2e-5
- 热身步数:0
- 批大小:16
- 训练轮次:8
- 每轮批数:122
- 总训练步数:976
通过这些设定,模型在逻辑谬误分类任务中展现出良好的性能表现。