🚀 マルチリンガル-e5-large-instruct-xnli
このモデルは、XNLIデータセットで微調整された intfloat/multilingual-e5-large-instruct のバージョンです。XNLIデータセットを用いて、多言語に対応したゼロショット分類タスクに適した性能を持ちます。
✨ 主な機能
- 多言語に対応したゼロショット分類が可能です。
- NLI(自然言語推論)タスクにも適用できます。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
ゼロショット分類パイプラインを使用する場合
from transformers import pipeline
classifier = pipeline("zero-shot-classification",
model="mjwong/multilingual-e5-large-instruct-xnli")
以下のように、指定したクラス名にシーケンスを分類できます。
sequence_to_classify = "Angela Merkel ist eine Politikerin in Deutschland und Vorsitzende der CDU"
candidate_labels = ["politics", "economy", "entertainment", "environment"]
classifier(sequence_to_classify, candidate_labels)
複数の候補ラベルが正しい場合、multi_class=True
を渡して各クラスを独立して計算できます。
candidate_labels = ["politics", "economy", "entertainment", "environment"]
classifier(sequence_to_classify, candidate_labels, multi_label=True)
手動でPyTorchを使用する場合
このモデルは、NLIタスクにも適用できます。
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model_name = "mjwong/multilingual-e5-large-instruct-xnli"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
premise = "But I thought you'd sworn off coffee."
hypothesis = "I thought that you vowed to drink more coffee."
input = tokenizer(premise, hypothesis, truncation=True, return_tensors="pt")
output = model(input["input_ids"].to(device))
prediction = torch.softmax(output["logits"][0], -1).tolist()
label_names = ["entailment", "neutral", "contradiction"]
prediction = {name: round(float(pred) * 100, 2) for pred, name in zip(prediction, label_names)}
print(prediction)
高度な使用法
高度なシナリオでは、ハイパーパラメータを調整したり、異なるデータセットで微調整することができます。
📚 ドキュメント
評価結果
このモデルは、XNLIのテストセットを用いて15の言語で評価されました。評価指標は正解率です。
また、MultiNLIの開発セットとANLIのテストセットを用いても評価されました。評価指標は正解率です。
学習ハイパーパラメータ
学習時に使用されたハイパーパラメータは以下の通りです。
属性 |
詳情 |
学習率 (learning_rate) |
2e-05 |
学習バッチサイズ (train_batch_size) |
16 |
評価バッチサイズ (eval_batch_size) |
16 |
シード (seed) |
42 |
オプティマイザ (optimizer) |
Adam (betas=(0.9, 0.999), epsilon=1e-08) |
学習率スケジューラの種類 (lr_scheduler_type) |
linear |
学習率スケジューラのウォームアップ率 (lr_scheduler_warmup_ratio) |
0.1 |
エポック数 (num_epochs) |
1 |
フレームワークバージョン
- Transformers 4.28.1
- Pytorch 1.12.1+cu116
- Datasets 2.19.2
- Tokenizers 0.12.1
🔧 技術詳細
このモデルは、Text Embeddings by Weakly-Supervised Contrastive Pre-training の手法に基づいています。
著者: Liang Wang, Nan Yang, Xiaolong Huang, Binxing Jiao, Linjun Yang, Daxin Jiang, Rangan Majumder, Furu Wei
発行: arXiv 2022
📄 ライセンス
このモデルはMITライセンスの下で提供されています。