🚀 孟加拉語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}
}