🚀 孟加拉语BERT基础模型
孟加拉语BERT基础模型 是一个预训练的孟加拉语语言模型,它基于 BERT 中描述的掩码语言建模技术。该模型现已在Hugging Face模型中心上线,为孟加拉语的自然语言处理任务提供了强大的支持。
🚀 快速开始
本项目的 孟加拉语BERT基础模型 是使用掩码语言建模技术预训练的孟加拉语语言模型,其原理可参考 BERT 及其 GitHub仓库。
✨ 主要特性
- 预训练模型:基于BERT架构,为孟加拉语自然语言处理任务提供了强大的基础。
- 多数据源训练:使用来自多个数据源的语料进行训练,包括孟加拉语的Common Crawl语料和维基百科数据集,提高了模型的泛化能力。
- 高性能表现:在多个下游任务中取得了优异的成绩,如情感分析、仇恨言论检测和新闻主题分类等。
📦 安装指南
文档未提及具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
孟加拉语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)
📚 详细文档
预训练语料详情
语料主要从两个来源下载:
下载这些语料后,我们将其预处理为BERT格式,即每行一个句子,新文档之间用额外的空行分隔。
sentence 1
sentence 2
sentence 1
sentence 2
构建词汇表
我们使用 BNLP 包训练了词汇量为102025的孟加拉语SentencePiece模型,并将输出的词汇文件预处理为BERT格式。最终的词汇文件可在 https://github.com/sagorbrur/bangla-bert 和 Hugging Face 模型中心获取。
训练详情
- 训练代码:使用Google BERT的GitHub仓库(https://github.com/google-research/bert)中提供的代码进行训练。
- 模型架构:当前发布的模型遵循bert-base-uncased模型架构(12层,768隐藏层,12头,1.1亿参数)。
- 总训练步数:100万步。
- 训练环境:在单个Google Cloud GPU上进行训练。
评估结果
语言模型评估结果
训练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 提供的分类任务评估结果。他使用 孟加拉语分类基准 数据集进行分类任务。与Nick的 孟加拉语Electra 和多语言BERT相比,孟加拉语BERT基础模型取得了最先进的结果。评估脚本 如下:
| 模型 | 情感分析 | 仇恨言论任务 | 新闻主题任务 | 平均 |
| ----- | -------------------| ---------------- | --------------- | ------- |
| mBERT | 68.15 | 52.32 | 72.27 | 64.25 |
| 孟加拉语Electra | 69.19 | 44.84 | 82.33 | 65.45 |
| 孟加拉语BERT基础模型 | 70.37 | 71.83 | 89.19 | 77.13 |
-
Wikiann 数据集评估:我们使用 Wikiann 孟加拉语命名实体识别(NER)数据集对 孟加拉语BERT基础模型
进行了评估,并与另外三个基准模型(mBERT、XLM - R、Indic - BERT)进行了比较。在训练这些模型5个周期后,孟加拉语BERT基础模型
获得了第三名,其中 mBERT
获得第一名,XLM - R
获得第二名。
| 基础预训练模型 | F1分数 | 准确率 |
| ----- | -------------------| ---------------- |
| mBERT-uncased | 97.11 | 97.68 |
| XLM-R | 96.22 | 97.03 |
| Indic-BERT| 92.66 | 94.74 |
| 孟加拉语BERT基础模型 | 95.57 | 97.49 |
所有四个模型均使用 transformers-token-classification 笔记本进行训练。你可以在 这里 找到所有模型的评估结果。
此外,你还可以查看以下论文列表,它们在各自的数据集中使用了该模型:
注意:如果你在任何自然语言处理任务中使用此模型,请与我们分享评估结果,我们将在此处添加。
局限性和偏差
文档未提供相关内容,故跳过此章节。
🔧 技术细节
文档未提供超过50字的具体技术说明,故跳过此章节。
📄 许可证
本项目采用MIT许可证。
👨💻 作者
Sagor Sarker
📚 参考资料
- https://github.com/google-research/bert
📝 引用信息
如果你发现此模型有帮助,请进行引用:
@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}
}