资讯动态

multilingual-MiniLMv2-L12-mnli-xnli的三种用法:Pipeline零样本分类与NLI推理代码详解

发布时间:2026/10/21 5:33:42 来源:尧图企业网站定制
【免费下载链接】multilingual-MiniLMv2-L12-mnli-xnli项目地址https://ai.gitcode.com/hf_mirrors/MoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli点击查看免费下载multilingual-MiniLMv2-L12-mnli-xnli 是一款多语言 NLI自然语言推理模型支持 100 种语言并内置零样本文本分类能力。本文面向新手带你掌握它的三种实用玩法用 Hugging Face Pipeline 几行代码完成零样本分类、编写完整的 NLI 推理代码、以及自定义标签分类帮你 10 分钟跑通多语言文本分类。模型速览multilingual-MiniLMv2-L12-mnli-xnli 是什么在动手之前先用一张表了解这个模型项目说明模型架构XLM-RoBERTa 序列分类12 层见 config.json基础模型由微软 multilingual-MiniLMv2-L12 蒸馏自 XLM-RoBERTa-large体积更小、推理更快训练数据XNLI15 种语言专业翻译 MNLI英文支持语言覆盖 100 种语言含中、英、德、法、西、日等常用语输出标签entailment蕴含/ neutral中立/ contradiction矛盾映射见 config.json最大长度512 个 token见 tokenizer_config.json许可证MIT它的核心价值在于**一鱼两吃**NLI 推理判断两句话是蕴含、中立还是矛盾零样本分类不需要任何标注数据只要给出候选标签就能给任意文本分类。 零样本分类的本质就是 NLI——每个候选标签都会和文本组成一对前提-假设模型输出的蕴含概率就是该标签的得分。理解了这一点两种用法就都通了。用法一Pipeline 零样本分类快速上手零样本分类zero-shot classification是这个模型最省心的用法不用训练、不用标注直接给标签列表即可。先安装依赖pip install transformers torch完整代码如下摘自 README.mdfrom transformers import pipeline classifier pipeline(zero-shot-classification, modelMoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli) sequence_to_classify Angela Merkel ist eine Politikerin in Deutschland und Vorsitzende der CDU candidate_labels [politics, economy, entertainment, environment] output classifier(sequence_to_classify, candidate_labels, multi_labelFalse) print(output)示例输出数值随文本变化{sequence: Angela Merkel ist eine Politikerin in Deutschland ..., labels: [politics, environment, economy, entertainment], scores: [0.98, 0.02, 0.0, 0.0]}输出字段说明sequence你输入的原始文本labels候选标签已按得分从高到低排序scores每个标签对应的得分即 NLI 中的蕴含概率第一个就是预测类别。两个实用参数参数作用multi_labelFalse单标签模式每个文本只归入一类multi_labelTrue多标签模式返回所有得分超过阈值的标签用法二NLI 推理代码详解当需要自己控制推理流程比如批量处理、接入 GPU、导出置信度时就用下面的原生写法摘自 README.mdfrom transformers import AutoTokenizer, AutoModelForSequenceClassification import torch # 自动选择 GPU 或 CPU device torch.device(cuda) if torch.cuda.is_available() else torch.device(cpu) model_name MoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModelForSequenceClassification.from_pretrained(model_name) premise Angela Merkel ist eine Politikerin in Deutschland und Vorsitzende der CDU hypothesis Emmanuel Macron is the President of France # 将 premise hypothesis 作为一对输入超过 512 token 自动截断 input tokenizer(premise, hypothesis, truncationTrue, return_tensorspt) output model(input[input_ids].to(device)) # 把 logits 归一化成概率并映射到标签名 prediction torch.softmax(output[logits][0], -1).tolist() label_names [entailment, neutral, contradiction] prediction {name: round(float(p) * 100, 1) for p, name in zip(prediction, label_names)} print(prediction)示例输出两段话互不相关neutral 概率接近 100%{entailment: 0.1, neutral: 99.8, contradiction: 0.1}逐行关键点拆解模型加载AutoModelForSequenceClassification会自动识别出 config.json 中声明的XLMRobertaForSequenceClassification架构配对输入tokenizer(premise, hypothesis, ...)把两句话拼成一个 NLI 输入对这是 NLI 任务的标准格式截断保护truncationTrue确保超长文本不会超过 512 token 上限tokenizer_config.jsonlogits → 概率模型原始输出是未归一化的分数logits必须过一层softmax才是概率标签顺序entailment / neutral / contradiction与 config.json 中id2label的 0/1/2 顺序严格一致写反了结果就错了。三类 NLI 标签的含义标签含义例子entailment 蕴含假设可从前提推断出来他喝了一杯拿铁 → 他喝了咖啡neutral 中立两者无关、无法推断梅克尔是德国政客 → 马克龙是法国总统contradiction 矛盾假设与前提冲突他喝了咖啡 → 他什么饮料都没喝用法三自定义标签分类与多标签模式Pipeline 的candidate_labels可以换成任意文本——包括中文标签、业务自定义标签跨语言也没问题中文文本 中文标签即可工作from transformers import pipeline classifier pipeline(zero-shot-classification, modelMoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli) text 这款手机续航很长拍照也很清晰 labels [好评, 差评, 物流问题, 价格问题] output classifier(text, labels, multi_labelFalse, threshold0.5) print(output)参数小贴士multi_labelTrue一条文本可同时命中多个标签例如同时属于好评和价格问题配合threshold设置得分门槛标签数量不宜过多每个标签都要和原文做一次 NLI 推理标签越多越慢建议控制在几十个以内标签写法越具体区分度越好物流延迟 优于 物流。实测性能多准、多快根据 README.md 的评测数据指标数值XNLI 15 语言平均准确率0.75原论文报告为 0.711MNLI-matched 准确率0.818MNLI-mismatched 准确率0.831推理速度A100 GPU约 45005300 条/秒其中中文zh单语言准确率为 0.751表现稳定。相比 12 层原始 XLM-RoBERTa 方案蒸馏后的 MiniLMv2 推理更快、显存占用更低适合对成本敏感的线上场景。模型文件清单本仓库共 8 个文件核心文件及作用如下文件说明README.md模型介绍、用法示例、训练与评测细节config.json模型配置层数、hidden_size、标签映射model.safetensors权重文件safetensors 格式加载更快更安全pytorch_model.bin权重文件bin 格式旧版本兼容用sentencepiece.bpe.modelSentencePiece 分词器模型tokenizer.jsonFast Tokenizer 分词文件tokenizer_config.json分词器配置最大长度 512、特殊符号等special_tokens_map.json特殊 token 定义s、/s、mask等离线使用如何下载模型在无法访问模型托管平台的环境可以先克隆仓库再本地加载git clone https://gitcode.com/hf_mirrors/MoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli然后把模型名换成本地目录即可tokenizer AutoTokenizer.from_pretrained(./multilingual-MiniLMv2-L12-mnli-xnli) model AutoModelForSequenceClassification.from_pretrained(./multilingual-MiniLMv2-L12-mnli-xnli)常见问题FAQQ1没有 GPU 能用吗可以。代码中torch.device(cuda) if torch.cuda.is_available() else torch.device(cpu)已做了自动降级CPU 上推理同样可用只是速度较慢。Q212 层版本和 6 层版本怎么选追求最高推理速度选 6 层L6版本追求更高准确率就用本文的 12 层版本。作者也建议对精度要求极高时可对比 mDeBERTa-v3-base 系列。Q3支持中文吗支持。模型在 15 种语言上微调含中文并且底层 XLM-RoBERTa 本身覆盖 100 语言——未参与微调的语言也能跨语言推理只是准确率通常略低于微调过的语言。Q4为什么训练时不用 XNLI 的机器翻译数据机器翻译质量不稳定只采用专业翻译的 XNLI 开发集 英文 MNLI 训练集可以避免过拟合 15 种语言、防止灾难性遗忘还显著降低训练成本。总结multilingual-MiniLMv2-L12-mnli-xnli 是一个小身材、大能力的多语言 NLI 模型Pipeline 零样本分类4 行代码给任意多语言文本分类无需标注数据NLI 推理控制 premise/hypothesis 输入对输出 entailment / neutral / contradiction 三类概率自定义标签分类中文标签、多标签、阈值过滤直接对接业务场景。如果你需要一个 MIT 协议、推理快、覆盖 100 语言的多语言分类基座这个模型值得放进你的技术工具箱。赞分享【免费下载链接】multilingual-MiniLMv2-L12-mnli-xnli项目地址https://ai.gitcode.com/hf_mirrors/MoritzLaurer/multilingual-MiniLMv2-L12-mnli-xnli点击查看免费下载相关推荐Reticulum 通信硬件实战指南用 RNode、WiFi 电台与任意介质组建无线网络Reticulum 通信硬件实战指南用 RNode、WiFi 电台与任意介质组建无线网络 本指南聚焦 Reticulum 网络栈在真实通信硬件上的落地路径系开源多语言NLI模型mDeBERTa-v3-base-xnli-multilingual-nli-2mil7性能碾压还是虚有其表开源多语言NLI模型mDeBERTa v3 base xnli multilingual nli 2mil7性能碾压还是虚有其表 引言 在最新的多语言自然语上一篇OpenLayers v3.11.1 补丁版解析ImageWMS 请求尺寸修复与回归项撤销下一篇Convex 自托管Self-hosted完整指南Docker 部署、SQL 数据库与 S3 存储实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑