🚀 多语言理解模型 comprehend-it-multilang-base
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 = "one day I will see the world"
candidate_labels = ['travel', 'cooking', 'dancing']
classifier(sequence_to_classify, candidate_labels, multi_label=False)
{'sequence': 'one day I will see the world',
'labels': ['travel', 'cooking', 'dancing'],
'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]}
✨ 主要特性
- 多语言支持:支持近 100 种语言,包括但不限于英语、中文、法语、德语等。
- 零样本分类:无需在特定数据集上进行微调,即可对新的文本进行分类。
- 跨语言分类:可以处理不同语言的文本和标签之间的分类任务。
📦 安装指南
pip install liqfit sentencepiece
💻 使用示例
基础用法
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 = "one day I will see the world"
candidate_labels = ['travel', 'cooking', 'dancing']
result = classifier(sequence_to_classify, candidate_labels, multi_label=False)
print(result)
📚 详细文档
基准测试
以下是该模型在几个文本分类数据集上的 F1 分数。所有测试的模型都没有在这些数据集上进行微调,而是在零样本设置下进行测试。
未来阅读
查看我们的博客文章 - "零样本能力的新里程碑(不是生成式 AI)",我们在其中强调了该模型的可能用例,以及为什么下一个词预测不是实现出色零样本能力的唯一途径。虽然大多数 AI 行业都专注于生成式 AI 和基于解码器的模型,但我们致力于开发基于编码器的模型。我们的目标是使这类模型达到与基于解码器的模型相同的泛化水平。编码器具有一些出色的特性,例如双向注意力,并且在效率和可控性方面,它们是许多信息提取任务的最佳选择。
📄 许可证
本项目采用 Apache-2.0 许可证。
📋 模型信息
属性 |
详情 |
模型类型 |
基于 mT5-base 的编码器 - 解码器模型 |
训练数据集 |
multi_nli、xnli、dbpedia_14、SetFit/bbc-news、squad_v2、race、knowledgator/events_classification_biotech、facebook/anli、SetFit/qnli |
评估指标 |
准确率、F1 分数 |
任务类型 |
零样本分类 |
标签 |
分类、信息提取、零样本 |
💬 反馈与社区
反馈
我们非常重视你的意见!请分享你的反馈和建议,帮助我们改进模型。填写反馈表单。
加入 Discord 社区
在 Discord 上与我们的社区联系,获取有关我们模型的最新消息、支持和讨论。加入 Discord。