🚀 XLM - roBERTa - large - it - mnli
このモデルは、XNLIタスクでXNLIコーパスの自動翻訳バージョンから取得したNLIデータのサブセットで[xlm - roberta - large](https://huggingface.co/xlm - roberta - large)をファインチューニングしたものです。Hugging FaceのZeroShotClassificationPipelineなどを使ったゼロショットテキスト分類に使用することを目的としています。
🚀 クイックスタート
このモデルは、イタリア語のテキストのゼロショットテキスト分類に使用することを目的としています。ベースモデルは100種類の言語で事前学習されているため、上記以外の言語でも一定の有効性を示しています。XLM Roberata論文の付録Aに事前学習言語の全リストがあります。英語のみの分類には、[bart - large - mnli](https://huggingface.co/facebook/bart - large - mnli)または[蒸留されたbart MNLIモデル](https://huggingface.co/models?filter=pipeline_tag%3Azero - shot - classification&search=valhalla)の使用をおすすめします。
ゼロショット分類パイプラインを使用する場合
from transformers import pipeline
classifier = pipeline("zero-shot-classification",
model="Jiva/xlm-roberta-large-it-mnli", device=0, use_fast=True, multi_label=True)
これで、上記の言語で分類を行うことができます。また、ラベルをある言語で渡し、分類するシーケンスを別の言語で渡すこともできます。
sequence_to_classify = "La Sardegna è una regione italiana a statuto speciale di 1 592 730 abitanti con capoluogo Cagliari, la cui denominazione bilingue utilizzata nella comunicazione ufficiale è Regione Autonoma della Sardegna / Regione Autònoma de Sardigna."
candidate_labels = ["geografia", "politica", "macchine", "cibo", "moda"]
classifier(sequence_to_classify, candidate_labels)
デフォルトの仮説テンプレートは英語の This text is {}
です。このモデルでは、翻訳されたテンプレートを指定すると、より良い結果が得られます。
sequence_to_classify = "La Sardegna è una regione italiana a statuto speciale di 1 592 730 abitanti con capoluogo Cagliari, la cui denominazione bilingue utilizzata nella comunicazione ufficiale è Regione Autonoma della Sardegna / Regione Autònoma de Sardigna."
candidate_labels = ["geografia", "politica", "macchine", "cibo", "moda"]
hypothesis_template = "si parla di {}"
手動でPyTorchを使用する場合
from transformers import AutoModelForSequenceClassification, AutoTokenizer
nli_model = AutoModelForSequenceClassification.from_pretrained('Jiva/xlm-roberta-large-it-mnli')
tokenizer = AutoTokenizer.from_pretrained('Jiva/xlm-roberta-large-it-mnli')
premise = sequence
hypothesis = f'si parla di {}.'
x = tokenizer.encode(premise, hypothesis, return_tensors='pt',
truncation_strategy='only_first')
logits = nli_model(x.to(device))[0]
entail_contradiction_logits = logits[:,[0,2]]
probs = entail_contradiction_logits.softmax(dim=1)
prob_label_is_true = probs[:,1]
✨ 主な機能
- イタリア語のテキストに対するゼロショットテキスト分類が可能。
- ベースモデルが100種類の言語で事前学習されているため、他の言語にも一定の有効性を示す。
📚 ドキュメント
バージョン0.1
|
一致イタリア語の精度 |
不一致イタリア語の精度 |
XLM - roBERTa - large - it - mnli |
84.75 |
85.39 |
モデルの説明
このモデルは、[xlm - roberta - large](https://huggingface.co/xlm - roberta - large)をXNLIコーパスの自動翻訳バージョンから取得したNLIデータのサブセットでファインチューニングしたものです。Hugging FaceのZeroShotClassificationPipelineなどを使ったゼロショットテキスト分類に使用することを目的としています。
意図された使用法
このモデルは、イタリア語のテキストのゼロショットテキスト分類に使用することを目的としています。ベースモデルは100種類の言語で事前学習されているため、上記以外の言語でも一定の有効性を示しています。XLM Roberata論文の付録Aに事前学習言語の全リストがあります。英語のみの分類には、[bart - large - mnli](https://huggingface.co/facebook/bart - large - mnli)または[蒸留されたbart MNLIモデル](https://huggingface.co/models?filter=pipeline_tag%3Azero - shot - classification&search=valhalla)の使用をおすすめします。
学習
バージョン0.1
このモデルは現在、完全な学習セットで再学習されています。約1000の文ペアは、翻訳モデルによる翻訳が不適切であったため、セットから削除されました。
メトリック |
値 |
学習率 |
4e - 6 |
オプティマイザ |
AdamW |
バッチサイズ |
80 |
mcc |
0.77 |
学習損失 |
0.34 |
評価損失 |
0.40 |
停止ステップ |
9754 |
バージョン0.0
このモデルは、元の論文に記載されているように、100種類の言語のセットで事前学習されています。その後、MNLIデータセットのイタリア語翻訳版のNLIタスクでファインチューニングされました(現時点では学習セットの85%のみ)。テキストの翻訳に使用されたモデルはHelsinki - NLP/opus - mt - en - itで、最大出力シーケンス長は120です。このモデルは学習率4e - 6、バッチサイズ80で1エポック学習され、現在、残りの15%の学習セットで82の精度を記録しています。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。