模型:

henryk/bert-base-multilingual-cased-finetuned-polish-squad1

英文

多语言+波兰SQuAD1.1

这个模型是由Google研究团队提供的多语言模型,经过细调后用于波兰问答下游任务。

语言模型的细节

语言模型( bert-base-multilingual-cased ):12层,768隐藏层,12个头部,110M参数。在104个最大维基百科语言的大小写文本上进行训练。

下游任务的细节

使用mtranslate Python模块对 SQuAD1.1 进行机器翻译。为了找到起始标记,对应段落中搜索答案的直接翻译。由于不同的上下文导致不同的翻译(纯答案中缺少上下文),答案不总能在文本中找到,因此导致了问题 - 答案示例的损失。这是一个潜在的问题,数据集中可能出现错误。

Dataset # Q&A
SQuAD1.1 Train 87.7 K
Polish SQuAD1.1 Train 39.5 K
SQuAD1.1 Dev 10.6 K
Polish SQuAD1.1 Dev 2.6 K

模型基准

Model EM F1
1235321 60.89 71.68
1236321 57.46 68.87
1237321 60.67 71.89
1238321 47.98 59.42

模型训练

该模型在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 \
  --train_file $SQUAD_DIR/pl_squadv1_train_clean.json \
  --predict_file $SQUAD_DIR/pl_squadv1_dev_clean.json \
  --num_train_epochs 2 \
  --max_seq_length 384 \
  --doc_stride 128 \
  --save_steps=8000 \
  --output_dir ../../output \
  --overwrite_cache \
  --overwrite_output_dir

结果:

{'exact': 60.670731707317074, 'f1': 71.8952193697293, 'total': 2624,'HasAns_exact': 60.670731707317074, 'HasAns_f1': 71.8952193697293, 'HasAns_total': 2624,'best_exact': 60.670731707317074,'best_exact_thresh': 0.0,'best_f1': 71.8952193697293,'best_f1_thresh': 0.0}

模型实践

使用pipelines进行快速使用:

from transformers import pipeline

qa_pipeline = pipeline(
    "question-answering",
    model="henryk/bert-base-multilingual-cased-finetuned-polish-squad1",
    tokenizer="henryk/bert-base-multilingual-cased-finetuned-polish-squad1"
)

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.9988,
  "start": 0, 
  "end": 8,
  "answer": "Warszawa"
}

联系方式

如果您想讨论或获取SQuAD的波兰语版本,请随时通过 LinkedIn 与我联系。