DeBERTa-v3-Base-Zeroshot-v2.0 项目介绍
项目背景
DeBERTa-v3-base-zeroshot-v2.0 是一个强大的文本分类模型,属于 zeroshot-v2.0 系列。此系列模型旨在实现高效的零样本分类,即无需任何训练数据即可进行分类。这些模型可以在 GPU 和 CPU 上运行,非常灵活,并且主要通过 Hugging Face 的 pipeline 技术进行实现。
模型特点
zeroshot-v2.0 系列的一个重大更新是,它们使用完全商业友好的数据进行训练,非常适合对许可证要求严格的用户。
这些模型能够完成一个通用的分类任务:给定一段文本,判断假设是否为“真”或“不真”(即“蕴涵”或“非蕴涵”)。这种任务格式基于自然语言推理(NLI)任务,非常普遍。因此,通过 Hugging Face 的 pipeline,可以将任何分类任务重新表述为此类任务。
训练数据
带有“-c”后缀的模型是基于两类完全商业友好的数据进行训练的:
- 使用 Mixtral-8x7B-Instruct-v0.1 所生成的合成数据。起初,让 Mistral-large 生成了 500 多个专业对话分类任务,再利用这些种子数据生成了几十万条文本,用于合成数据集。
- 商业友好的 NLI 数据集,如 MNLI 和 FEVER-NLI。这些数据集有助于提升模型的泛化能力。
- 没有“-c”后缀的模型还加入了更多样的训练数据和许可协议,进一步丰富了训练集。
使用方法
模型的使用非常简单,只需几行代码即可:
from transformers import pipeline
text = "Angela Merkel is a politician in Germany and leader of the CDU"
hypothesis_template = "This text is about {}"
classes_verbalized = ["politics", "economy", "entertainment", "environment"]
zeroshot_classifier = pipeline("zero-shot-classification", model="MoritzLaurer/deberta-v3-large-zeroshot-v2.0")
output = zeroshot_classifier(text, classes_verbalized, hypothesis_template=hypothesis_template, multi_label=False)
print(output)
multi_label
参数控制模型选择单个还是多个类别。
性能评估
模型的性能通过 28 种不同的文本分类任务进行评估,使用 f1_macro 作为衡量指标。与当时使用最广泛的零样本分类器(facebook/bart-large-mnli)相比,模型显示出较优的性能。
模型选择
- 准确性更高的选择:deberta-v3 系列与 roberta 系列相比,表现更优但稍慢。
- 商业应用:有“
-c
”后缀的模型完全基于商业友好数据训练,适合有法律许可要求的用户。 - 多语言支持:支持非英语文本的用户可选择使用 bge-m3-zeroshot 系列模型,可以通过机器翻译提高处理准确度。
- 上下文处理:bge-m3 模型支持 8192 个标记处理,其他模型最多支持 512 个。
复现与局限性
项目提供了完整的复现代码示例,并注重说明模型的局限性与潜在偏差,例如人类 NLI 训练数据和合成数据所带来的偏差。
许可证与引用
模型遵循 MIT 许可证,并附带完整的学术引用指南,欢迎在学术研究中引用该模型。
合作与联系
对于合作或者问题,可以通过 moritz{at}huggingface{dot}co 联系创建者。
灵活使用与提示工程
用户可以通过改变 hypothesis_template
修改假设以提高模型性能,类似于 LLMs 的提示工程。
通过这些细致入微的特性,DeBERTa-v3-base-zeroshot-v2.0 模型无疑为文本分类任务提供了一个可靠且高效的解决方案。