🚀 多語言 + 荷蘭語SQuAD2.0
本模型是谷歌研究團隊提供的多語言模型,針對荷蘭語問答下游任務進行了微調。它能夠有效處理荷蘭語的問答任務,為荷蘭語相關的信息檢索和問答場景提供支持。
📚 詳細文檔
語言模型詳情
語言模型(bert-base-multilingual-cased):
- 12層,768個隱藏層單元,12個注意力頭,1.1億個參數。
- 在維基百科規模最大的前104種語言的大小寫文本上進行訓練。
下游任務詳情
使用mtranslate
Python模塊對SQuAD2.0進行機器翻譯。為了找到起始標記,在相應段落中搜索答案的直接翻譯。由於上下文不同(純答案中缺少上下文),並非總能在文本中找到答案,從而導致問答示例的丟失。這是數據集可能出現錯誤的潛在問題。
數據集 |
問答數量 |
SQuAD2.0訓練集 |
130K |
荷蘭語SQuAD2.0訓練集 |
99K |
SQuAD2.0驗證集 |
12K |
荷蘭語SQuAD2.0驗證集 |
10K |
模型基準
模型 |
EM/F1 |
有答案 (EM/F1) |
無答案 |
robBERT |
58.04/60.95 |
33.08/40.64 |
73.67 |
dutchBERT |
64.25/68.45 |
45.59/56.49 |
75.94 |
multiBERT |
67.38/71.36 |
47.42/57.76 |
79.88 |
模型訓練
該模型在Tesla V100 GPU上使用以下命令進行訓練:
export SQUAD_DIR=path/to/nl_squad
python run_squad.py
--model_type bert
--model_name_or_path bert-base-multilingual-cased
--do_train
--do_eval
--train_file $SQUAD_DIR/nl_squadv2_train_clean.json
--predict_file $SQUAD_DIR/nl_squadv2_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': 67.38028751680629, 'f1': 71.362297054268, 'total': 9669, 'HasAns_exact': 47.422126745435015, 'HasAns_f1': 57.761023151910734, 'HasAns_total': 3724, 'NoAns_exact': 79.88225399495374, 'NoAns_f1': 79.88225399495374, 'NoAns_total': 5945, 'best_exact': 67.53542248422795, 'best_exact_thresh': 0.0, 'best_f1': 71.36229705426837, 'best_f1_thresh': 0.0}
模型使用示例
基礎用法
使用pipelines快速使用模型:
from transformers import pipeline
qa_pipeline = pipeline(
"question-answering",
model="henryk/bert-base-multilingual-cased-finetuned-dutch-squad2",
tokenizer="henryk/bert-base-multilingual-cased-finetuned-dutch-squad2"
)
qa_pipeline({
'context': "Amsterdam is de hoofdstad en de dichtstbevolkte stad van Nederland.",
'question': "Wat is de hoofdstad van Nederland?"})
輸出:
{
"score": 0.83,
"start": 0,
"end": 9,
"answer": "Amsterdam"
}
聯繫方式
如果您想討論或獲取荷蘭語版SQuAD,請隨時通過領英與我聯繫。