🚀 multilingual-e5-base-xnli
このモデルは、XNLIデータセットでintfloat/multilingual-e5-base
をファインチューニングしたバージョンです。多言語のゼロショット分類タスクに使用でき、XNLIデータセットを用いて評価されています。
🚀 クイックスタート
このモデルは、XNLIデータセットで事前学習された多言語モデルで、ゼロショット分類やNLIタスクに使用できます。以下に使い方を説明します。
✨ 主な機能
- 多言語対応: 英語、アラビア語、ブルガリア語など15言語に対応しています。
- ゼロショット分類: 事前に学習していないクラスに対しても分類が可能です。
- NLIタスク対応: 自然言語推論タスクにも適用できます。
💻 使用例
基本的な使用法
zero-shot-classification
パイプラインを使用してモデルをロードすることができます。
from transformers import pipeline
classifier = pipeline("zero-shot-classification",
model="mjwong/multilingual-e5-base-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-base-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.11.0
- Tokenizers 0.12.1
📄 ライセンス
このモデルはMITライセンスの下で提供されています。