🚀 mT5-baseをTyDiQAでファインチューニングした多言語QAモデル 🗺📖❓
このモデルは、GoogleのmT5-baseをTyDi QA(セカンダリタスク)でファインチューニングし、多言語Q&Aのダウンストリームタスクに対応させたものです。
📚 mT5の詳細
GoogleのmT5
mT5は、mC4コーパスで事前学習されており、101の言語をカバーしています。
アフリカーンス語、アルバニア語、アムハラ語、アラビア語、アルメニア語、アゼルバイジャン語、バスク語、ベラルーシ語、ベンガル語、ブルガリア語、ビルマ語、カタルーニャ語、セブアノ語、チェワ語、中国語、コルシカ語、チェコ語、デンマーク語、オランダ語、英語、エスペラント語、エストニア語、フィリピン語、フィンランド語、フランス語、ガリシア語、グルジア語、ドイツ語、ギリシャ語、グジャラート語、ハイチ語、ハウサ語、ハワイ語、ヘブライ語、ヒンディー語、モン語、ハンガリー語、アイスランド語、イボ語、インドネシア語、アイルランド語、イタリア語、日本語、ジャワ語、カンナダ語、カザフ語、クメール語、韓国語、クルド語、キルギス語、ラオス語、ラテン語、ラトビア語、リトアニア語、ルクセンブルク語、マケドニア語、マダガスカル語、マレー語、マラヤーラム語、マルタ語、マオリ語、マラーティー語、モンゴル語、ネパール語、ノルウェー語、パシュトー語、ペルシャ語、ポーランド語、ポルトガル語、パンジャブ語、ルーマニア語、ロシア語、サモア語、スコットランド・ゲール語、セルビア語、ショナ語、シンディ語、シンハラ語、スロバキア語、スロベニア語、ソマリ語、ソト語、スペイン語、スンダ語、スワヒリ語、スウェーデン語、タジク語、タミル語、テルグ語、タイ語、トルコ語、ウクライナ語、ウルドゥー語、ウズベク語、ベトナム語、ウェールズ語、西フリジア語、コサ語、イディッシュ語、ヨルバ語、ズールー語。
注意: mT5は、教師あり学習を含まないmC4でのみ事前学習されています。したがって、このモデルはダウンストリームタスクで使用する前にファインチューニングする必要があります。
事前学習データセット: mC4
他のコミュニティチェックポイント: こちら
論文: mT5: A massively multilingual pre-trained text-to-text transformer
著者: Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al - Rfou, Aditya Siddhant, Aditya Barua, Colin Raffel
📚 データセットの詳細
TyDi QAは、11の類型的に多様な言語をカバーする質問応答データセットで、204,000の質問と回答のペアが含まれています。TyDi QAの言語は、それぞれの言語が表現する言語的特徴のセットである類型論的に多様であり、このセットで良好な性能を発揮するモデルは、世界の多数の言語に対して汎化できると期待されます。このデータセットには、英語のみのコーパスでは見られない言語現象が含まれています。現実的な情報検索タスクを提供し、プライミング効果を避けるために、質問は答えを知りたいがまだ知らない人によって書かれており(SQuADやその派生データセットとは異なり)、データは翻訳を使用せずに各言語で直接収集されています(MLQAやXQuADとは異なり)。
データセット |
タスク |
分割 |
サンプル数 |
TyDi QA |
GoldP |
トレーニング |
49881 |
TyDi QA |
GoldP |
検証 |
5077 |
📝 検証データセットでの結果
🚀 モデルの動作例
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
tokenizer = AutoTokenizer.from_pretrained("Narrativa/mT5-base-finetuned-tydiQA-xqa")
model = AutoModelForCausalLM.from_pretrained("Narrativa/mT5-base-finetuned-tydiQA-xqa").to(device)
def get_response(question, context, max_length=32):
input_text = 'question: %s context: %s' % (question, context)
features = tokenizer([input_text], return_tensors='pt')
output = model.generate(input_ids=features['input_ids'].to(device),
attention_mask=features['attention_mask'].to(device),
max_length=max_length)
return tokenizer.decode(output[0])
context = 'HuggingFace won the best Demo paper at EMNLP2020.'
question = 'What won HuggingFace?'
get_response(question, context)
context = 'HuggingFace ganó la mejor demostración con su paper en la EMNLP2020.'
question = 'Qué ganó HuggingFace?'
get_response(question, context)
context = 'HuggingFace выиграл лучшую демонстрационную работу на EMNLP2020.'
question = 'Что победило в HuggingFace?'
get_response(question, context)
作成者: Narrativa
Narrativaについて: 自然言語生成 (NLG) | 当社の機械学習ベースのプラットフォームであるGabrieleは、自然言語ソリューションを構築および展開します。 #NLG #AI