语言:
- 英文
标签:
- 文本分类
- 零样本分类
管道标签: 零样本分类
库名称: transformers
许可证: mit
模型描述: deberta-v3-base-zeroshot-v1.1-all-33
该模型专为使用Hugging Face流水线进行零样本分类而设计。
模型能够执行一项通用分类任务:在给定文本的前提下,判断一个假设是"真实"还是"不真实"(蕴含
vs. 不蕴含
)。
此任务格式基于自然语言推理任务(NLI)。
该任务具有高度通用性,任何分类任务均可重新表述为此形式。
关于模型训练方式及使用方法的详细说明,请参阅这篇论文。
训练数据
模型在33个数据集和387个类别的混合数据上进行训练,这些数据已被重新格式化为此通用格式。
- 五个NLI数据集,约88.5万条文本:"mnli", "anli", "fever", "wanli", "ling"
- 28个分类任务重新格式化为通用NLI形式。为避免过拟合,使用了约5.1万条清洗后的文本:
'amazonpolarity', 'imdb', 'appreviews', 'yelpreviews', 'rottentomatoes',
'emotiondair', 'emocontext', 'empathetic',
'financialphrasebank', 'banking77', 'massive',
'wikitoxic_toxicaggregated', 'wikitoxic_obscene', 'wikitoxic_threat', 'wikitoxic_insult', 'wikitoxic_identityhate',
'hateoffensive', 'hatexplain', 'biasframes_offensive', 'biasframes_sex', 'biasframes_intent',
'agnews', 'yahootopics',
'trueteacher', 'spam', 'wellformedquery',
'manifesto', 'capsotu'.
各数据集详情参见:https://github.com/MoritzLaurer/zeroshot-classifier/blob/main/datasets_overview.csv
与其他NLI模型不同,本模型预测两个类别(蕴含
vs. 不蕴含
)
而非三个类别(蕴含/中立/矛盾)
模型仅使用英文数据训练。对于多语言场景,
建议使用EasyNMT等库将文本机器翻译为英文。
纯英文模型通常表现优于多语言模型,且若您不掌握语料库中所有语言,使用英文数据验证会更便捷。
如何使用模型
简单零样本分类流水线
from transformers import pipeline
text = "安格拉·默克尔是德国政治家,基民盟领导人"
hypothesis_template = "这个例子是关于{}的"
classes_verbalized = ["政治", "经济", "娱乐", "环境"]
zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33")
output = zeroshot_classifier(text, classes_verbalized, hypothesis_template=hypothesis_template, multi_label=False)
print(output)
数据与训练细节
数据准备及模型训练评估的完整开源代码见:https://github.com/MoritzLaurer/zeroshot-classifier/tree/main
超参数等详细信息可在Weights & Biases仓库查看:https://wandb.ai/moritzlaurer/deberta-v3-base-zeroshot-v1-1-all-33/table?workspace=user-
评估指标
报告所有数据集的平衡准确率。
deberta-v3-base-zeroshot-v1.1-all-33
在所有数据集上训练,每类最多使用500条文本以避免过拟合。
因此这些数据集上的指标并非严格零样本,因为模型在训练中已见过每个任务的少量数据。
deberta-v3-base-zeroshot-v1.1-heldout
表示在相应数据集上的零样本性能。
为计算这些零样本指标,流水线运行了28次,每次训练时保留一个数据集以模拟零样本场景。

(完整指标表格请参见原文)
局限性与偏差
该模型仅能执行文本分类任务。
关于潜在偏差,请参考原始DeBERTa论文及各数据集的论文。
许可
基础模型(DeBERTa-v3)采用MIT许可证发布。
模型微调所用数据集发布在多种许可下。
非NLI数据集的使用情况概览(包括许可、基础论文等信息):
https://github.com/MoritzLaurer/zeroshot-classifier/blob/main/datasets_overview.csv
引用
若学术使用本模型,请引用:
@misc{laurer_building_2023,
title = {Building {Efficient} {Universal} {Classifiers} with {Natural} {Language} {Inference}},
url = {http://arxiv.org/abs/2312.17543},
doi = {10.48550/arXiv.2312.17543},
abstract = {生成式大语言模型(LLMs)因其文本生成的普适性,已成为少样本和零样本学习的主流选择。然而许多用户仅需自动化分类任务时,并不需要生成式LLMs的广泛能力。较小的BERT类模型也能学习通用任务,使其无需微调即可执行任何文本分类任务(零样本分类),或仅需少量示例学习新任务(少样本),同时效率显著高于生成式LLMs。本文:(1)阐释如何将自然语言推理(NLI)作为遵循类似生成式LLMs指令微调原则的通用分类任务;(2)提供分步指南及可复用的Jupyter笔记本来构建通用分类器;(3)分享基于33个数据集389个多样类别训练的通用分类器。截至2023年12月,我们分享的部分代码已用于训练下载量超5500万次的旧版零样本分类器。新版分类器零样本性能提升9.4%。},
urldate = {2024-01-05},
publisher = {arXiv},
author = {Laurer, Moritz and van Atteveldt, Wouter and Casas, Andreu and Welbers, Kasper},
month = dec,
year = {2023},
note = {arXiv:2312.17543 [cs]},
keywords = {计算机科学-人工智能, 计算机科学-计算与语言},
}
合作意向或问题咨询?
如有疑问或合作想法,请联系:m{dot}laurer{at}vu{dot}nl 或 LinkedIn
调试与问题
注意DeBERTa-v3发布于2021年12月6日,旧版HF Transformers运行模型可能存在问题(如导致分词器错误)。使用Transformers>=4.13可能解决部分问题。
同时请确保安装sentencepiece以避免分词器错误。运行:pip install transformers[sentencepiece]
或 pip install sentencepiece
分类使用的假设
下方表格中的假设用于微调模型。
检查这些假设有助于用户了解模型训练所用的假设类型和任务。
您可通过修改零样本流水线的hypothesis_template
来构建自己的假设。例如:
from transformers import pipeline
text = "安格拉·默克尔是德国政治家,基民盟领导人"
hypothesis_template = "默克尔是该政党的领导人:{}"
classes_verbalized = ["基民盟", "社民党", "绿党"]
zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33")
output = zeroshot_classifier(text, classes_verbalised, hypothesis_template=hypothesis_template, multi_label=False)
print(output)
注意massive
和banking77
数据集中少数行包含nan
,因为某些类别过于模糊/不明确,故从数据中排除。
(完整假设表格请参见原文)