🚀 葡萄牙语大词法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}
}