Qwen3-4B-Reuters-MultiLabel
本模型是在经典的 Reuters-21578 数据集(ModApte分割)上基于 Qwen/Qwen3-4B 进行指令微调(Instruction Fine-tuning)的多标签文本分类模型,专注于新闻文章的主题自动标注任务。
模型描述(Model Description)
本项目旨在评估中等规模语言模型(约4B参数)在传统NLP任务——多标签文本分类场景中的能力。通过指令微调方法,模型具备了识别新闻内容语义并自动从预定义的标签集中选取合适主题标签的能力。
- 基础模型: Qwen/Qwen3-4B
- 数据集: Reuters-21578 (ModApte Split)
- 任务: 多标签文本分类(Multi-Label Text Classification)
使用方式(Usage)
可使用以下代码快速加载本模型,进行新闻文章的多标签预测。模型采用标准的 ### 文章 和 ### 标签 指令格式。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "robertlyon/QWEN3-4B-reuters21578" # 请替换为实际模型名称
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.bfloat16 # 推荐bfloat16,以提高效率与性能
)
model.eval()
def predict_topics(article: str, max_new_tokens: int = 32) -> list[str]:
"""
使用微调后的Qwen3模型进行多标签分类。
"""
prompt = f"### 文章\n{article.strip()}\n\n### 标签\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
gen_ids = model.generate(
**inputs,
max_new_tokens=max_new_tokens,
temperature=0.1,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
full_text = tokenizer.decode(gen_ids[0], skip_special_tokens=True)
if "### 标签\n" in full_text:
labels_text = full_text.split("### 标签\n")[-1]
else:
return []
labels = [label.strip() for label in labels_text.split(",") if label.strip()]
return list(dict.fromkeys(labels)) # 去重
# 示例使用
demo_text = (
"The U.S. Agriculture Department reported that export sales of U.S. soybeans "
"in the week ended Feb. 19 totaled 29.6 million bushels, compared with "
"47.9 million a week earlier and 19.8 million a year ago."
)
predicted_labels = predict_topics(demo_text)
print(f"Article: '{demo_text[:70]}...'")
print(f"Predicted Labels: {predicted_labels}")
# 示例输出: ['soybean', 'grain', 'trade']
性能评估(Performance Evaluation)
本模型在 Reuters-21578 数据集(ModApte测试集)进行了详细的性能评估,提供多种标准多标签分类指标以客观反映模型表现。
关键指标(Metrics Summary)
| 指标 (Metric) | 分数 (Score) | 描述 (Description) |
|---|---|---|
| Weighted-F1 | 0.4271 | 考虑类别频率分布的F1,强调高频类别的性能表现。 |
| Micro-F1 | 0.2093 | 整体衡量的F1,受到高频标签的显著影响。 |
| Macro-F1 | 0.1835 | 不考虑标签频率的F1,强调模型在低频类别上的表现。 |
| Subset Accuracy | 0.1676 | 预测标签集合完全匹配的严格准确率。 |
| Hamming Loss | 0.0389 | 单标签误分类比例,越低越好。 |
性能分析(Analysis)
- 优势: 模型在高频标签(如
earn、acq)上的表现相对稳健,这体现在较高的 Weighted-F1 和较低的 Hamming Loss。 - 挑战: 在低频长尾标签上的表现有限,体现在较低的 Macro-F1。此外,Micro Precision(0.134)明显低于 Micro Recall(0.477),意味着模型倾向于更高的标签召回率,以牺牲精确率为代价。
主要类别混淆矩阵(Confusion Matrices for Top Labels)
以下展示了模型在数据集中出现频率最高的几个类别上的详细混淆矩阵,包括真阳性(True Positives)、假阳性(False Positives)、假阴性(False Negatives)及真阴性(True Negatives)的统计,以直观分析类别预测偏差。
局限性与偏见(Limitations and Bias)
本节针对模型可能存在的偏见、数据集中固有的局限性及其对模型预测的潜在影响进行了深入探讨,以帮助用户在实际使用过程中更好地评估和规避风险。
- Downloads last month
- -
