语言:
- 多语言
- 南非荷兰语
- 阿姆哈拉语
- 阿拉伯语
- 阿塞拜疆语
- 白俄罗斯语
- 保加利亚语
- 孟加拉语
- 加泰罗尼亚语
- 宿务语
- 科西嘉语
- 捷克语
- 威尔士语
- 丹麦语
- 德语
- 希腊语
- 英语
- 世界语
- 西班牙语
- 爱沙尼亚语
- 巴斯克语
- 波斯语
- 芬兰语
- 菲律宾语
- 法语
- 弗里斯兰语
- 爱尔兰语
- 苏格兰盖尔语
- 加利西亚语
- 古吉拉特语
- 豪萨语
- 夏威夷语
- 印地语
- 苗语
- 海地克里奥尔语
- 匈牙利语
- 亚美尼亚语
- 伊博语
- 冰岛语
- 意大利语
- 希伯来语
- 日语
- 爪哇语
- 格鲁吉亚语
- 哈萨克语
- 高棉语
- 卡纳达语
- 韩语
- 库尔德语
- 吉尔吉斯语
- 拉丁语
- 卢森堡语
- 老挝语
- 立陶宛语
- 拉脱维亚语
- 马尔加什语
- 毛利语
- 马其顿语
- 马拉雅拉姆语
- 蒙古语
- 马拉地语
- 马来语
- 马耳他语
- 缅甸语
- 尼泊尔语
- 荷兰语
- 挪威语
- 齐切瓦语
- 旁遮普语
- 波兰语
- 普什图语
- 葡萄牙语
- 罗马尼亚语
- 俄语
- 信德语
- 僧伽罗语
- 斯洛伐克语
- 斯洛文尼亚语
- 萨摩亚语
- 修纳语
- 索马里语
- 阿尔巴尼亚语
- 塞尔维亚语
- 南索托语
- 巽他语
- 瑞典语
- 斯瓦希里语
- 泰米尔语
- 泰卢固语
- 塔吉克语
- 泰语
- 土耳其语
- 乌克兰语
- 未指定语言
- 乌尔都语
- 乌兹别克语
- 越南语
- 科萨语
- 意第绪语
- 约鲁巴语
- 中文
- 祖鲁语
许可证: Apache-2.0
数据集:
- 多语言自然语言推理
- XNLI
- DBPedia 14
- SetFit/bbc-news
- SQuAD v2
- RACE
- knowledgator/events_classification_biotech
- facebook/anli
- SetFit/qnli
评估指标:
流水线标签: 零样本分类
标签:
comprehend-it-multilang-base
这是一个基于mT5-base的编码器-解码器模型,训练数据包括多语言自然语言推理数据集以及多个文本分类数据集。
该模型能够更好地理解文本和标签的上下文含义,因为输入分别由模型的不同部分(编码器和解码器)处理。
零样本分类器支持近100种语言,并且可以双向工作,这意味着标签和文本可以属于不同的语言。
使用前请安装必要的库
由于模型架构不同,我们无法使用transformers的"zero-shot-classification"流水线。为此,我们开发了一个名为LiqFit的特殊库。
如果尚未安装sentencepiece库,您也需要安装它以使用T5分词器。
pip install liqfit sentencepiece
使用LiqFit流水线
可以通过以下方式加载模型的zero-shot-classification
流水线:
from liqfit.pipeline import ZeroShotClassificationPipeline
from liqfit.models import T5ForZeroShotClassification
from transformers import T5Tokenizer
model = T5ForZeroShotClassification.from_pretrained('knowledgator/comprehend_it-multilingual-t5-base')
tokenizer = T5Tokenizer.from_pretrained('knowledgator/comprehend_it-multilingual-t5-base')
classifier = ZeroShotClassificationPipeline(model=model, tokenizer=tokenizer,
hypothesis_template = '{}', encoder_decoder = True)
然后,您可以使用此流水线将序列分类为您指定的任何类别名称。
sequence_to_classify = "总有一天我会去看看这个世界"
candidate_labels = ['旅行', '烹饪', '舞蹈']
classifier(sequence_to_classify, candidate_labels, multi_label=False)
{'sequence': '总有一天我会去看看这个世界',
'labels': ['旅行', '烹饪', '舞蹈'],
'scores': [0.7350383996963501, 0.1484801471233368, 0.1164814680814743]}
除了英语,您还可以将模型用于许多其他语言,例如乌克兰语:
sequence_to_classify = "Одного дня я побачу цей світ."
candidate_labels = ['подорож', 'кулінарія', 'танці']
classifier(sequence_to_classify, candidate_labels, multi_label=False)
{'sequence': 'Одного дня я побачу цей світ.',
'labels': ['подорож', 'кулінарія', 'танці'],
'scores': [0.6393420696258545, 0.2657214105129242, 0.09493650496006012]}
即使标签和文本属于不同语言,模型也能正常工作:
sequence_to_classify = "Одного дня я побачу цей світ"
candidate_labels = ['travel', 'cooking', 'dancing']
classifier(sequence_to_classify, candidate_labels, multi_label=False)
{'sequence': 'Одного дня я побачу цей світ',
'labels': ['travel', 'cooking', 'dancing'],
'scores': [0.7676175236701965, 0.15484870970249176, 0.07753374427556992]}
基准测试
下表展示了在多个文本分类数据集上的F1分数。所有测试模型均未在这些数据集上进行微调,并在零样本设置下进行测试。
延伸阅读
查看我们的博客文章——"零样本能力的新里程碑(并非生成式AI)",我们重点介绍了该模型的潜在用例,以及为什么下一个词预测并非实现出色零样本能力的唯一途径。
尽管大多数AI行业专注于生成式AI和解码器模型,但我们致力于开发基于编码器的模型。
我们的目标是为这类模型实现与解码器模型相同的泛化能力。编码器具有双向注意力等优秀特性,并且在效率和可控性方面是许多信息抽取任务的最佳选择。
反馈
我们重视您的意见!分享您的反馈和建议,帮助我们改进模型。
填写反馈表单
加入我们的Discord
通过Discord与我们的社区联系,获取新闻、支持以及关于我们模型的讨论。
加入Discord