🚀 葡萄牙語大詞法BERT問答模型(基於SQUAD v1.1微調)
該模型基於SQUAD v1.1葡萄牙語數據集微調,可用於問答任務,在相關任務上表現出色。
🚀 快速開始
此模型在來自Deep Learning Brasil小組的葡萄牙語SQUAD v1.1數據集上進行訓練。所使用的語言模型是來自Neuralmind.ai的BERTimbau Large (又名 "bert-large-portuguese-cased")。BERTimbau是一個針對巴西葡萄牙語的預訓練BERT模型,在命名實體識別、句子文本相似度和識別文本蘊含這三個下游NLP任務中達到了最先進的性能。它有基礎版和大詞法版兩種規格。

✨ 主要特性
- 訓練數據優質:使用葡萄牙語SQUAD v1.1數據集進行訓練。
- 模型性能出色:在問答任務上取得了較好的成績,如F1值和精確匹配率都優於基礎模型。
📦 安裝指南
可以通過以下方式獲取模型:
git lfs install
git clone https://huggingface.co/pierreguillou/bert-large-cased-squad-v1.1-portuguese
GIT_LFS_SKIP_SMUDGE=1
💻 使用示例
基礎用法
使用pipeline
進行問答:
import transformers
from transformers import pipeline
context = r"""
A pandemia de COVID-19, também conhecida como pandemia de coronavírus, é uma pandemia em curso de COVID-19,
uma doença respiratória causada pelo coronavírus da síndrome respiratória aguda grave 2 (SARS-CoV-2).
O vírus tem origem zoonótica e o primeiro caso conhecido da doença remonta a dezembro de 2019 em Wuhan, na China.
Em 20 de janeiro de 2020, a Organização Mundial da Saúde (OMS) classificou o surto
como Emergência de Saúde Pública de Âmbito Internacional e, em 11 de março de 2020, como pandemia.
Em 18 de junho de 2021, 177 349 274 casos foram confirmados em 192 países e territórios,
com 3 840 181 mortes atribuídas à doença, tornando-se uma das pandemias mais mortais da história.
Os sintomas de COVID-19 são altamente variáveis, variando de nenhum a doenças com risco de morte.
O vírus se espalha principalmente pelo ar quando as pessoas estão perto umas das outras.
Ele deixa uma pessoa infectada quando ela respira, tosse, espirra ou fala e entra em outra pessoa pela boca, nariz ou olhos.
Ele também pode se espalhar através de superfícies contaminadas.
As pessoas permanecem contagiosas por até duas semanas e podem espalhar o vírus mesmo se forem assintomáticas.
"""
model_name = 'pierreguillou/bert-large-cased-squad-v1.1-portuguese'
nlp = pipeline("question-answering", model=model_name)
question = "Quando começou a pandemia de Covid-19 no mundo?"
result = nlp(question=question, context=context)
print(f"Answer: '{result['answer']}', score: {round(result['score'], 4)}, start: {result['start']}, end: {result['end']}")
高級用法
使用Auto
類加載模型和分詞器:
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
tokenizer = AutoTokenizer.from_pretrained("pierreguillou/bert-large-cased-squad-v1.1-portuguese")
model = AutoModelForQuestionAnswering.from_pretrained("pierreguillou/bert-large-cased-squad-v1.1-portuguese")
📚 詳細文檔
有關使用方法的所有信息都在博客文章中:NLP | 如何基於BERT large訓練任何語言的問答模型,通過使用BERT基礎模型提高模型性能?(葡萄牙語案例研究)
GitHub上的筆記本:question_answering_BERT_large_cased_squad_v11_pt.ipynb (nbviewer版本)
🔧 技術細節
該模型取得的結果如下:
f1 = 84.43(基礎模型為82.50)
exact match = 72.68(基礎模型為70.49)
⚠️ 注意事項
本模型使用的訓練數據來自葡萄牙語SQUAD,可能包含大量未經過濾的內容,這些內容遠非中立,可能存在偏差。
📄 許可證
本項目採用MIT許可證。
👨💻 作者
葡萄牙語大詞法BERT問答模型(基於SQUAD v1.1微調)由Pierre GUILLOU訓練和評估,這得益於許多組織的開源代碼、平臺和建議(列表鏈接)。特別是:Hugging Face、Neuralmind.ai、Deep Learning Brasil小組和AI Lab。
📖 引用
如果您使用了我們的工作,請引用:
@inproceedings{pierreguillou2021bertlargecasedsquadv11portuguese,
title={Portuguese BERT large cased QA (Question Answering), finetuned on SQUAD v1.1},
author={Pierre Guillou},
year={2021}
}