🚀 多語言理解模型 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。