项目介绍:Bangla-Bert-Base
Bangla-Bert-Base 是一个预训练的孟加拉语言模型,致力于提升孟加拉语言的自然语言处理能力。它基于 BERT(Bidirectional Encoder Representations from Transformers)模型进行开发,模型在 Hugging Face 的模型库中已可供使用。该项目由 Sagor Sarker 开发,并发布在 GitHub 上。
语料库详情
Bangla-Bert-Base 的训练语料来自于两个主要来源:
这些数据被下载后,经过预处理,形成符合 BERT 格式的输入,即每行一个句子,每个新文档之间有一个空行。
词汇表构建
项目使用了 BNLP 包来训练孟加拉语的 sentencepiece 模型,词汇表大小为 102025。这个词汇表经过处理后成为符合 BERT 格式的文件。这份词汇表可以在 GitHub 和 Hugging Face 模型库中找到。
训练详情
- Bangla-Bert 的训练代码来自于 Google BERT 的 GitHub 仓库。
- 目前发布的模型采用了 bert-base-uncased 的模型架构(12 层,768 隐藏层,12 个头,总共 1.1 亿参数)。
- 总训练步数为 100 万步。
- 模型在单个 Google Cloud GPU 上进行训练。
评估结果
语言模型评估结果
在 100 万步的训练后,模型取得了如下评估结果:
- 总损失:2.2406516
- 掩码语言模型准确率:0.60641736
- 掩码语言模型损失:2.201459
- 下一个句子准确率:0.98625
- 下一个句子损失:0.040997364
- 困惑度:约为 9.393
下游任务评估结果
- 孟加拉语分类基准数据集评估
该模型在情感分析、仇恨言论识别和新闻主题任务上表现出色,相较于其他模型如 mBERT 和 Bengali Electra,Bangla BERT Base 取得了最佳效果。
模型 | 情感分析 | 仇恨言论 | 新闻主题 | 平均值 |
---|---|---|---|---|
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 数据集评估
在 Wikiann 孟加拉语NER数据集的评估中,Bangla-BERT-Base 取得了第三名,表现仅次于 mBERT 和 XLM-R。
基础预训练模型 | F1 分数 | 准确率 |
---|---|---|
mBERT-uncased | 97.11 | 97.68 |
XLM-R | 96.22 | 97.03 |
Indic-BERT | 92.66 | 94.74 |
Bangla-BERT-Base | 95.57 | 97.49 |
使用方法
Bangla BERT Tokenizer
使用预训练的 Bangla BERT Tokenizer 进行文本标记化:
from transformers import AutoTokenizer
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)
作者
该项目由 Sagor Sarker 开发。
引用
如果您认为此模型对您的研究或项目有帮助,请引用:
@misc{Sagor_2020,
title = {BanglaBERT: Bengali Mask Language Model for Bengali Language Understanding},
author = {Sagor Sarker},
year = {2020},
url = {https://github.com/sagorbrur/bangla-bert}
}