🚀 bart-lage-mnli-yahoo-answers
このモデルは、facebook/bart-large-mnliをベースに、Yahoo! Answersのトピック分類タスクで微調整されています。これは、与えられたシーケンスに特定のトピックラベルを割り当てることができるかどうかを予測するために使用でき、そのラベルが見たことのないものであっても対応できます。
このモデルのゼロショット技術のインタラクティブなデモはこちらで体験でき、微調整されていないfacebook/bart-large-mnliも同時に体験できます。
🚀 クイックスタート
このモデルはトピック分類タスクで微調整されており、ゼロショットトピック分類タスクで最適な性能を発揮します。hypothesis_template="This text is about {}."
を使用してください。これは微調整時に使用されたテンプレートです。
トピック分類以外の設定では、MNLIで事前学習された任意のモデル、例えばfacebook/bart-large-mnliやroberta-large-mnliを使用できます。コード例は以下の通りです。
💻 使用例
基本的な使用法
zero-shot-classification
パイプラインを使用してモデルを呼び出します。
from transformers import pipeline
nlp = pipeline("zero-shot-classification", model="joeddav/bart-large-mnli-yahoo-answers")
sequence_to_classify = "Who are you voting for in 2020?"
candidate_labels = ["Europe", "public health", "politics", "elections"]
hypothesis_template = "This text is about {}."
nlp(sequence_to_classify, candidate_labels, multi_class=True, hypothesis_template=hypothesis_template)
高度な使用法
PyTorchを使用して手動でモデルを呼び出します。
from transformers import BartForSequenceClassification, BartTokenizer
nli_model = BartForSequenceClassification.from_pretrained('joeddav/bart-large-mnli-yahoo-answers')
tokenizer = BartTokenizer.from_pretrained('joeddav/bart-large-mnli-yahoo-answers')
premise = sequence
hypothesis = f'This text is about {label}.'
x = tokenizer.encode(premise, hypothesis, return_tensors='pt',
max_length=tokenizer.max_len,
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]
🔧 技術詳細
このモデルは事前学習されたMNLI分類器で、Yinら2019年およびこのブログ記事で最初に説明された方法に従って、Yahoo! Answersのトピック分類タスクでさらに微調整されています。つまり、各シーケンスを前提として事前学習されたNLIモデルに入力し、各候補ラベルを仮説として、以下の形式で入力します:This text is about {class name}.
トレーニングセットの各サンプルについて、1つの真のラベル仮説とランダムに選択された誤ったラベル仮説をモデルに入力し、モデルはどのラベルが有効でどのラベルが誤っているかを予測する必要があります。
この方法は、異なるラベルのセットで学習した後の未知のラベルの分類能力を研究しているため、このモデルはYahoo! Answersの10個のラベルのうち5個のみでトレーニングされています。これらのラベルは「社会と文化」、「健康」、「コンピュータとインターネット」、「ビジネスと金融」、および「家族と人間関係」です。
📚 ドキュメント
評価結果
このモデルは、_既知_および_未知_のラベルのラベル加重F1値を使用して評価されます。つまり、各サンプルについて、モデルは10個のコーパスラベルから予測する必要があります。トレーニング中の既知のラベルと未知のラベルのF1値が報告されています。未知のラベルと既知のラベルのF1スコアはそれぞれ0.68と0.72であることがわかりました。分布内と分布外のラベルを調整するために、Yinら2019年および私たちのブログ記事で説明されているように、_既知_のラベルの正規化された確率から固定の30%を差し引いています。
📄 ライセンス
このプロジェクトはApache-2.0ライセンスの下で提供されています。
📦 モデル情報
属性 |
詳細 |
モデルタイプ |
facebook/bart-large-mnliをベースに微調整されたゼロショット分類モデル |
トレーニングデータ |
Yahoo! Answersデータセット |
適用タスク |
ゼロショットトピック分類 |