模型:
henryk/bert-base-multilingual-cased-finetuned-polish-squad2
这个模型是由Google研究团队提供的多语言模型,进行了波兰语问答下游任务的微调。
语言模型( bert-base-multilingual-cased ):12层,768隐藏层,12个注意力头,110M参数。使用最大维基百科的前104种语言的大小写文本进行训练。
使用mtranslate Python模块对 SQuAD2.0 进行了机器翻译。为了找到起始标记,搜索了相应段落中答案的直接翻译。由于不同的上下文翻译(纯粹答案中缺少上下文),答案并不总是能在文本中找到,从而导致了问题-答案示例的丢失。这是一个潜在的问题,可能导致数据集中出现错误。
Dataset | # Q&A |
---|---|
SQuAD2.0 Train | 130 K |
Polish SQuAD2.0 Train | 83.1 K |
SQuAD2.0 Dev | 12 K |
Polish SQuAD2.0 Dev | 8.5 K |
Model | EM/F1 | HasAns (EM/F1) | NoAns |
---|---|---|---|
1235321 | 69.35/71.51 | 47.02/54.09 | 79.20 |
1236321 | 67.33/69.80 | 45.73/53.80 | 76.87 |
1237321 | 70.76 / 72.92 | 45.00/52.04 | 82.13 |
使用Tesla V100 GPU进行了以下命令的训练:
export SQUAD_DIR=path/to/pl_squad python run_squad.py --model_type bert \ --model_name_or_path bert-base-multilingual-cased \ --do_train \ --do_eval \ --version_2_with_negative \ --train_file $SQUAD_DIR/pl_squadv2_train.json \ --predict_file $SQUAD_DIR/pl_squadv2_dev.json \ --num_train_epochs 2 \ --max_seq_length 384 \ --doc_stride 128 \ --save_steps=8000 \ --output_dir ../../output \ --overwrite_cache \ --overwrite_output_dir
结果:
{'exact': 70.76671723655035, 'f1': 72.92156947155917, 'total': 8569, 'HasAns_exact': 45.00762195121951, 'HasAns_f1': 52.04456128116991, 'HasAns_total': 2624, 'NoAns_exact': 82.13624894869638, 'NoAns_f1': 82.13624894869638, 'NoAns_total': 5945, 'best_exact': 71.72365503559342, 'best_exact_thresh': 0.0, 'best_f1': 73.62662512059369, 'best_f1_thresh': 0.0}
使用pipelines进行快速使用:
from transformers import pipeline qa_pipeline = pipeline( "question-answering", model="henryk/bert-base-multilingual-cased-finetuned-polish-squad2", tokenizer="henryk/bert-base-multilingual-cased-finetuned-polish-squad2" ) qa_pipeline({ 'context': "Warszawa jest największym miastem w Polsce pod względem liczby ludności i powierzchni", 'question': "Jakie jest największe miasto w Polsce?"})
{ "score": 0.9986, "start": 0, "end": 8, "answer": "Warszawa" }
如果您想讨论或获取波兰语版本的SQuAD,请随时通过 LinkedIn 与我联系。