🚀 尼泊爾語基礎蒸餾伯特模型(distilbert-base-nepali)
本模型是基於尼泊爾語文本數據集進行預訓練的,該數據集包含超過1300萬個尼泊爾語文本序列,採用了掩碼語言模型(MLM)目標。我們的方法類似於XLM - ROBERTa,訓練了一個句子片段模型(SPM)用於文本分詞,並訓練了蒸餾伯特模型進行語言建模。更多詳細信息請參考這篇論文。
🚀 快速開始
本模型可直接用於掩碼語言建模任務,以下是使用示例:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='Sakonii/distilbert-base-nepali')
>>> unmasker("मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, <mask>, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।")
[{'score': 0.04128897562623024,
'sequence': 'मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, मौसम, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।',
'token': 2605,
'token_str': 'मौसम'},
{'score': 0.04100276157259941,
'sequence': 'मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, प्रकृति, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।',
'token': 2792,
'token_str': 'प्रकृति'},
{'score': 0.026525357738137245,
'sequence': 'मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, पानी, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।',
'token': 387,
'token_str': 'पानी'},
{'score': 0.02340106852352619,
'sequence': 'मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, जल, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।',
'token': 1313,
'token_str': 'जल'},
{'score': 0.02055591531097889,
'sequence': 'मानविय गतिविधिले प्रातृतिक पर्यावरन प्रनालीलाई अपरिमेय क्षति पु्र्याएको छ। परिवर्तनशिल जलवायुले खाध, सुरक्षा, वातावरण, जमिन, मौसमलगायतलाई असंख्य तरिकाले प्रभावित छ।',
'token': 790,
'token_str': 'वातावरण'}]
也可以使用該模型獲取給定文本的特徵,以下是在PyTorch中的使用示例:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained('Sakonii/distilbert-base-nepali')
model = AutoModelForMaskedLM.from_pretrained('Sakonii/distilbert-base-nepali')
text = "चाहिएको text यता राख्नु होला।"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
✨ 主要特性
- 基於超過1300萬個尼泊爾語文本序列進行預訓練,能更好地處理尼泊爾語相關任務。
- 採用掩碼語言模型(MLM)目標進行訓練,提升了語言理解能力。
- 訓練了句子片段模型(SPM)進行文本分詞,與XLM - ROBERTa類似,提高了分詞效果。
📚 詳細文檔
模型描述
參考原始的distilbert-base-uncased。
預期用途和限制
此骨幹模型旨在針對尼泊爾語相關的下游任務進行微調,如序列分類、標記分類或問答任務。由於該語言模型是在文本塊大小為512的數據集上訓練的,它可以處理長達512個標記的文本序列,但對於較短的序列可能表現不佳。
訓練數據
本模型在尼泊爾語文本語言建模數據集上進行訓練,該數據集整合了OSCAR、cc100以及從維基百科上抓取的一組尼泊爾語文章。在訓練語言模型時,訓練集中的文本被分組為512個標記的塊。
分詞
在尼泊爾語文本數據集的一個子集上訓練了一個句子片段模型(SPM)用於文本分詞。訓練的分詞器詞彙量大小為24576,最小頻率為4,字母表限制為1000,模型最大長度為512。
訓練過程
模型的訓練配置與原始的distilbert-base-uncased相同:每個實例512個標記,每個批次28個實例,大約35.7K個訓練步驟。
訓練超參數
以下是最後一個epoch訓練時使用的超參數:[有關每個epoch不同超參數的詳細信息,請參考下面的“訓練結果”表]
- 學習率:5e - 05
- 訓練批次大小:28
- 評估批次大小:8
- 隨機種子:42
- 優化器:Adam,β=(0.9, 0.999),ε = 1e - 08
- 學習率調度器類型:線性
- 訓練輪數:1
- 混合精度訓練:原生自動混合精度(Native AMP)
訓練結果
模型進行了4個epoch的訓練,每個epoch使用不同的超參數:
訓練損失 |
輪數 |
MLM概率 |
訓練批次大小 |
步數 |
驗證損失 |
困惑度 |
3.4477 |
1.0 |
15 |
26 |
38864 |
3.3067 |
27.2949 |
2.9451 |
2.0 |
15 |
28 |
35715 |
2.8238 |
16.8407 |
2.866 |
3.0 |
20 |
28 |
35715 |
2.7431 |
15.5351 |
2.7287 |
4.0 |
20 |
28 |
35715 |
2.6053 |
13.5353 |
2.6412 |
5.0 |
20 |
28 |
35715 |
2.5161 |
12.3802 |
最終模型在MLM概率為15%的情況下進行評估:
訓練損失 |
輪數 |
MLM概率 |
訓練批次大小 |
步數 |
驗證損失 |
困惑度 |
- |
- |
15 |
- |
- |
2.3494 |
10.4791 |
框架版本
- Transformers 4.16.2
- Pytorch 1.9.1
- Datasets 1.18.3
- Tokenizers 0.10.3
🔧 技術細節
本模型在評估集上取得了以下結果:
MLM概率 |
評估損失 |
評估困惑度 |
15% |
2.349 |
10.479 |
20% |
2.605 |
13.351 |
📄 許可證
本項目採用Apache 2.0許可證。