模型:
sagorsarker/bangla-bert-base
一段艰难的旅程。这里是我们的Bangla-Bert!它现在可以在Huggingface模型库中使用。
Bangla-Bert-Base 是使用掩码语言建模描述的孟加拉语预训练语言模型,其GitHub地址为 repository 。
语料库来源于两个主要的来源:
在下载这些语料库后,我们将其预处理为Bert格式,即每行一句话,并为新文档添加额外的换行符。
sentence 1 sentence 2 sentence 1 sentence 2
我们使用 BNLP 包来训练孟加拉语的句子分词模型,词汇大小为102025。我们将输出的词汇文件预处理为Bert格式。我们最终的词汇文件可在 https://github.com/sagorbrur/bangla-bert 和 huggingface 模型库中获得。
在训练100万步后,以下是评估结果。
global_step = 1000000 loss = 2.2406516 masked_lm_accuracy = 0.60641736 masked_lm_loss = 2.201459 next_sentence_accuracy = 0.98625 next_sentence_loss = 0.040997364 perplexity = numpy.exp(2.2406516) = 9.393331287442784 Loss for final step: 2.426227
非常感谢 Nick Doiron 提供分类任务的评估结果。他在分类任务中使用了 Bengali Classification Benchmark 数据集。与Nick的 Bengali electra 和多语言BERT相比,Bangla BERT基础版取得了最先进的结果。这里是 evaluation script 。
Model | Sentiment Analysis | Hate Speech Task | News Topic Task | Average |
---|---|---|---|---|
mBERT | 68.15 | 52.32 | 72.27 | 64.25 |
Bengali Electra | 69.19 | 44.84 | 82.33 | 65.45 |
Bangla BERT Base | 70.37 | 71.83 | 89.19 | 77.13 |
我们使用 Wikiann 孟加拉NER数据集以及另外三个基准模型(mBERT,XLM-R,Indic-BERT)对Bangla BERT基础版进行了评估。在训练这些模型5个时期后,Bangla BERT基础版获得了第三名的成绩,mBERT获得第一名,XLM-R获得第二名。
Base Pre-trained Model | F1 Score | Accuracy |
---|---|---|
12320321 | 97.11 | 97.68 |
12321321 | 96.22 | 97.03 |
12322321 | 92.66 | 94.74 |
Bangla-BERT-Base | 95.57 | 97.49 |
所有四个模型都是使用 transformers-token-classification 笔记本进行训练。您可以在 here 上找到所有模型的评估结果。
此外,您还可以查看下面的论文列表。他们在自己的数据集上使用了这个模型。
注:如果您将此模型用于任何自然语言处理任务,请与我们分享评估结果。我们将在此处添加。
孟加拉BERT分词器
from transformers import AutoTokenizer, AutoModel bnbert_tokenizer = AutoTokenizer.from_pretrained("sagorsarker/bangla-bert-base") text = "আমি বাংলায় গান গাই।" bnbert_tokenizer.tokenize(text) # ['আমি', 'বাংলা', '##য', 'গান', 'গাই', '।']
掩码生成
您可以直接使用此模型进行掩码语言建模的管道。
from transformers import BertForMaskedLM, BertTokenizer, pipeline model = BertForMaskedLM.from_pretrained("sagorsarker/bangla-bert-base") tokenizer = BertTokenizer.from_pretrained("sagorsarker/bangla-bert-base") nlp = pipeline('fill-mask', model=model, tokenizer=tokenizer) for pred in nlp(f"আমি বাংলায় {nlp.tokenizer.mask_token} গাই।"): print(pred) # {'sequence': '[CLS] আমি বাংলায গান গাই । [SEP]', 'score': 0.13404667377471924, 'token': 2552, 'token_str': 'গান'}
如果您发现此模型有用,请引用。
@misc{Sagor_2020, title = {BanglaBERT: Bengali Mask Language Model for Bengali Language Understading}, author = {Sagor Sarker}, year = {2020}, url = {https://github.com/sagorbrur/bangla-bert} }