DeBERTa v3 Large 零样本分类模型:0 标注数据,任意类别列表即开即用

📅 2026/8/24 22:49:46
DeBERTa v3 Large 零样本分类模型:0 标注数据,任意类别列表即开即用
DeBERTa v3 Large 零样本分类模型0 标注数据任意类别列表即开即用【免费下载链接】deberta-v3-large-zeroshot-v2.0项目地址: https://ai.gitcode.com/hf_mirrors/MoritzLaurer/deberta-v3-large-zeroshot-v2.0MoritzLaurer/deberta-v3-large-zeroshot-v2.0 是一个基于 DeBERTa v3 Large 底座的零样本分类zero-shot classification模型给它一段文本加一份候选类别列表不需要任何标注数据和微调它就能完成情感分析、主题归类、毒性检测等文本分类任务并输出每个类别的置信度。模型同时提供 PyTorch 权重与转换好的 ONNX 版本CPU 和 GPU 都能跑。类别三天一改零样本分类就是为这个场景准备的先说一个很普遍的痛点内容审核的违规标签每周都在加客服工单的类目上个月刚调整过新业务线又要求上线 20 个意图分类。传统路线是攒数据 → 标注 → 微调 → 部署类别一变整套流程重走一遍周期以周计。这套模型给出的做法完全不同类别只是函数入参。你换一份类别列表分类器立刻换任务全程不碰训练环节。项目速览一个底座只做判断题却覆盖所有分类任务一句话定位它是把任意文本分类改写成自然语言推断NLI判断题的通用分类器。关键信息一览维度关键信息定位通用零样本文本分类输入文本 类别列表即可无需标注数据底座microsoft/deberta-v3-largeDebertaV2ForSequenceClassification24 层 / hidden 1024 / 16 头注意力输出只有 2 个标签entailment蕴含与not_entailment不蕴含见config.json上下文窗口最长 512 tokenmax_position_embeddings权重格式model.safetensors 预转换的onnx/model.onnx硬件CPU、GPU 均可运行许可证模型卡标注 MIT非-c版训练数据含混合授权含非商业数据集3 步跑通第一次零样本分类装依赖、建 pipeline、传类别列表整个接入过程很短最短路径如下# 1) 安装依赖DeBERTa 分词器需要 sentencepiece #!pip install transformers[sentencepiece] from transformers import pipeline # 2) 初始化零样本分类器离线环境可把 model 指向模型本地目录 zeroshot_classifier pipeline( zero-shot-classification, modelMoritzLaurer/deberta-v3-large-zeroshot-v2.0, ) # 3) 传入文本和候选类别直接拿到带置信度的结果 text Angela Merkel is a politician in Germany and leader of the CDU output zeroshot_classifier( text, [politics, economy, entertainment, environment], hypothesis_templateThis text is about {}, multi_labelFalse, # False只选一个类别True允许多选 ) print(output) # 返回 {text: ..., labels: [...], scores: [...]}三个参数值得记住候选类别列表、hypothesis_template把类别填进句子里的模板、multi_label单选还是多选。其余都是 pipeline 的常规行为。原理拆解为什么一套权重能做所有分类任务核心机制一句话模型只学过一件事——判断某句话对给定文本是否成立。训练时它学的是 NLI 任务给定文本 T 和假设句 H判断 H 相对 T 是entailment成立还是not_entailment不成立。零样本分类只是把这段文本属于哪个类别改写成对每个候选类别逐一发问Is it true that: this text is about {politics}? —— 模型答成立的概率就是 politics 的得分。这也是为什么换任务只需要换hypothesis_template和类别词而不用换权重——pipeline 会在后台替你完成这道改写。类比一下它像一个只懂是/否的万能裁判你把任何分类问题翻译成判断题递给它就行。底座方面DeBERTa 系列使用相对位置注意力config.json中relative_attention: truepos_att_type为p2c/c2p即注意力同时考虑词本身和词间距离关系配合 large 规格24 层、hidden 1024在判别类任务上精度更稳。训练数据是这套 v2.0 系列的另一看点带-c后缀的变体只用完全商业友好的数据——用 Mixtral-8x7B-Instruct-v0.1 合成的几十万条样本源自与 Mistral-large 对话梳理出的 25 个职业、500 分类任务人工筛选 MNLI、FEVER-NLI 两个商业友好 NLI 数据集用于增强泛化。本模型非-c在上述之外还混入了 ANLI、WANLI、LingNLI 等更广的数据授权混合含非商业许可因此官方测得分数略高。效果实测28 个文本分类任务的 F1 对照表官方在 28 个分类任务上用f1_macro对各类别的 F1 取平均对类别不平衡更严格做了评估参照系是当时最常用的商业友好零样本分类器facebook/bart-large-mnli。挑几行关键数据数值取自 README 指标表任务类别数bart-large-mnlideberta-v3-large-zeroshot-v2.0-c本模型 零样本少样本28 任务平均0.4970.6760.6730.846金融情感 financialphrasebank3 类0.4650.6910.5820.913银行意图 banking7772 类0.3120.5130.5670.766威胁检测 wikitoxic_threat2 类0.2950.8270.8790.952身份仇恨 wikitoxic_identityhate2 类0.4730.7970.8060.948垃圾信息 spam2 类0.5050.7400.5970.983宣言分类 manifesto56 类0.0840.2580.2560.408两个口径说明零样本数字意味着这 28 个评测集没有进入训练数据括号内是官方少样本口径——从每个任务加最多 500 条样本/类后评测的结果。实测亮点毒性/威胁类提升最猛威胁检测从 0.295 拉到 0.879约基线的 3 倍身份仇恨 0.473 → 0.806。商业友好版不亏分-c版 28 任务平均 0.676与数据更多的非-c版0.673几乎持平对许可证敏感的项目可以放心选。细粒度任务要降预期56/72 类的任务零样本下绝对分都不高这类场景建议走少样本或把类别词改写得更有区分度。同系列怎么选先看许可证再看上下文长度作者系列里有多组变体选型逻辑比想象中简单你的情况建议变体理由商业发布、许可证要求严格deberta-v3-large-zeroshot-v2.0-c训练数据全部商业友好合成数据 MNLI FEVER-NLI追求精度、无许可证顾虑deberta-v3-large-zeroshot-v2.0本模型训练数据更多官方平均分略高高吞吐生产、用 TEI 容器roberta-*-zeroshot-v2.0系列兼容 HF 生产推理 TEI 容器与 flash attention精度换速度非英语 / 多语言bge-m3-zeroshot-v2.0-c或无后缀支持多语言、8192 token 上下文但精度低于英语专用模型文本经常超过 512 tokenbge-m3系列DeBERTa/Roberta 版只有 512 token且长文本会拖慢推理、拉低效果补充一句DeBERTa 比同系列 Robeta 版本明显更准但更慢所以精度优先选 DeBERTa、速度优先选 Robeta TEI是官方给出的原话式建议。生产部署用自带的 ONNX、守住 512 token 上限1. 直接用仓库自带的 ONNX 权重。onnx/目录已经放好转换好的模型model.onnx及同目录分词器文件不需要自己再跑一遍转换from optimum.onnxruntime import ORTModelForSequenceClassification from transformers import AutoTokenizer, pipeline # 仓库 onnx/ 目录自带转换好的模型指向该目录即可加载 onnx_model ORTModelForSequenceClassification.from_pretrained(onnx/) tokenizer AutoTokenizer.from_pretrained(onnx/) classifier pipeline( zero-shot-classification, modelonnx_model, tokenizertokenizer, )2. 守住 512 token 上限。tokenizer_config.json中model_max_length为 512。作者在 README 里提示如果你的文本普遍在 400 词/1 页以内DeBERTa 这类短上下文模型反而更快更准超长的文本要么截断/切段要么直接换bge-m3系列。3. 追高吞吐就上 Robeta TEI。官方明确推荐生产推理速度敏感时用roberta-*-zeroshot-v2.0配合 Hugging Face 的 TEI 推理容器这条路对 flash attention 也直接兼容。4. 别忘硬件选项。权重为 float16config.json中torch_dtype模型官方声明 CPU、GPU 均可运行小规模离线场景可以先用 CPU 验证。进阶技巧像调 prompt 一样调模板多选时加阈值过滤hypothesis_template 是提示工程值得 A/B 测试README 专门用 Flexible usage and prompting 一节说明模板和类别词的措辞直接影响效果就像给 LLM 调 prompt 一样同一任务换几种表述测一遍# 同一任务的两种写法挑效果更好的 # 写法一短类别词 简单句式 out_a zeroshot_classifier( text, [politics, economy, entertainment, environment], hypothesis_templateThis text is about {}, ) # 写法二更具体的类别描述 不同句式 out_b zeroshot_classifier( text, [political activities, economic policy, entertainment or music, environmental protection], hypothesis_templateThe topic of this text is {}, )建议保留一小撮固定校验文本把几种措辞的命中率记下来选定后就固定使用不要每次上线都换。multi_labelTrue 阈值过滤一段文本可能同时命中多个类别。multi_labelTrue后每个类别都会给出独立置信度你可以按业务阈值过滤output zeroshot_classifier( The new EV plant will create 3000 jobs but raises local environmental concerns, [jobs, environment, electric vehicles, politics], hypothesis_templateThis text is about {}, multi_labelTrue, ) # output[scores] 是各候选类别的置信度按你的业务阈值取舍即可多语言怎么接本模型按英语任务训练中文等非英语输入建议两条路之一——换bge-m3-zeroshot-v2.0系列或先用机器翻译如 EasyNMT 这类库翻成英文再走本模型。后者还有个附带好处团队不需要每个人都读得懂源语言也能做数据校验。遇到问题先查这张表现象优先尝试置信度整体偏低把hypothesis_template和类别词改得更具体参照 README Flexible usage 一节做措辞 A/B某个特定类别老被分错单独调整该类别的表述或合并语义重叠的类别推理速度不达标用onnx/自带的 ONNX 版本或换 Robeta 版走 TEI 容器中文/低资源语言效果差换bge-m3系列或先机器翻译成英文再分类文本超过 512 token截断/分段处理长文档场景直接用 8192 上下文的bge-m3数字对不上官方表格确认口径零样本与少样本每类最多 500 条是两组数字担心偏差README Limitations and bias偏差可能来自底座模型、NLI 训练数据与 Mixtral 合成数据三处落地清单接入零样本分类的 4 个行动项今天就跑通按3 步一节的代码用你自己的业务文本验证一次端到端输出。定许可证商业项目直接锁-c变体避免训练数据授权争议。调模板留一小撮固定校验文本对hypothesis_template和类别措辞做一轮 A/B选定后固化。上生产优先加载onnx/自带权重或评估 Robeta TEI 路线同时在系统里显式处理 512 token 上限。这套把分类改写成判断题的 NLI 通用分类器路线本质上是用一个小得多的模型换掉了每个类别一套微调模型的重资产模式——类别再多也只是一次函数调用的事。【免费下载链接】deberta-v3-large-zeroshot-v2.0项目地址: https://ai.gitcode.com/hf_mirrors/MoritzLaurer/deberta-v3-large-zeroshot-v2.0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考