模型概述
模型特點
模型能力
使用案例
🚀 馬拉地語RoBERTa基礎模型
本項目是一個基於掩碼語言建模(MLM)目標,在馬拉地語語料上預訓練的模型。RoBERTa模型最早在 這篇論文 中被提出,並首次在 這個倉庫 中發佈。我們在Huggingface舉辦的社區周活動中,使用JAX/Flax進行自然語言處理和計算機視覺任務,為馬拉地語訓練了RoBERTa模型。
✨ 主要特性
- 馬拉地語RoBERTa是一個基於自監督學習方式,在大規模馬拉地語語料上預訓練的Transformer模型。
- 可用於掩碼語言建模任務,也可針對下游任務進行微調。
🚀 快速開始
模型描述
馬拉地語RoBERTa是一個以自監督方式在大量馬拉地語數據語料庫上進行預訓練的Transformer模型。
預期用途和侷限性❗️
你可以直接使用該原始模型進行掩碼語言建模,但它主要用於在下游任務上進行微調。請注意,此模型主要旨在針對使用整個句子(可能是掩碼的)來做出決策的任務進行微調,例如序列分類、標記分類或問答任務。我們使用此模型在iNLTK和indicNLP新聞文本分類問題陳述的文本分類任務上進行了微調。由於馬拉地語mc4數據集是通過抓取馬拉地語報紙文本製作的,因此會存在一些偏差,這也會影響該模型的所有微調版本。
如何使用❓
你可以直接使用此模型搭配掩碼語言建模管道:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='flax-community/roberta-base-mr')
>>> unmasker("मोठी बातमी! उद्या दुपारी <mask> वाजता जाहीर होणार दहावीचा निकाल")
[{'score': 0.057209037244319916,'sequence': 'मोठी बातमी! उद्या दुपारी आठ वाजता जाहीर होणार दहावीचा निकाल',
'token': 2226,
'token_str': 'आठ'},
{'score': 0.02796074189245701,
'sequence': 'मोठी बातमी! उद्या दुपारी २० वाजता जाहीर होणार दहावीचा निकाल',
'token': 987,
'token_str': '२०'},
{'score': 0.017235398292541504,
'sequence': 'मोठी बातमी! उद्या दुपारी नऊ वाजता जाहीर होणार दहावीचा निकाल',
'token': 4080,
'token_str': 'नऊ'},
{'score': 0.01691395975649357,
'sequence': 'मोठी बातमी! उद्या दुपारी २१ वाजता जाहीर होणार दहावीचा निकाल',
'token': 1944,
'token_str': '२१'},
{'score': 0.016252165660262108,
'sequence': 'मोठी बातमी! उद्या दुपारी ३ वाजता जाहीर होणार दहावीचा निकाल',
'token': 549,
'token_str': ' ३'}]
📦 安裝指南
文檔未提及安裝相關內容。
💻 使用示例
基礎用法
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='flax-community/roberta-base-mr')
>>> unmasker("मोठी बातमी! उद्या दुपारी <mask> वाजता जाहीर होणार दहावीचा निकाल")
[{'score': 0.057209037244319916,'sequence': 'मोठी बातमी! उद्या दुपारी आठ वाजता जाहीर होणार दहावीचा निकाल',
'token': 2226,
'token_str': 'आठ'},
{'score': 0.02796074189245701,
'sequence': 'मोठी बातमी! उद्या दुपारी २० वाजता जाहीर होणार दहावीचा निकाल',
'token': 987,
'token_str': '२०'},
{'score': 0.017235398292541504,
'sequence': 'मोठी बातमी! उद्या दुपारी नऊ वाजता जाहीर होणार दहावीचा निकाल',
'token': 4080,
'token_str': 'नऊ'},
{'score': 0.01691395975649357,
'sequence': 'मोठी बातमी! उद्या दुपारी २१ वाजता जाहीर होणार दहावीचा निकाल',
'token': 1944,
'token_str': '२१'},
{'score': 0.016252165660262108,
'sequence': 'मोठी बातमी! उद्या दुपारी ३ वाजता जाहीर होणार दहावीचा निकाल',
'token': 549,
'token_str': ' ३'}]
📚 詳細文檔
訓練數據 🏋🏻♂️
馬拉地語RoBERTa模型在C4多語言數據集中的mr
數據集上進行預訓練。
C4(大規模清潔爬取語料庫) 由Raffel等人在 《探索統一文本到文本Transformer的遷移學習極限》 中提出。
該數據集可以從 allennlp 或Huggingface的數據集 mc4數據集 以預處理形式下載。馬拉地語(mr
)數據集包含140億個標記、780萬篇文檔,文本重量約為70GB。
數據清洗 🧹
儘管初始的mc4
馬拉地語語料庫大小約為70GB,但通過數據探索發現,其中包含來自不同語言(特別是泰語、中文等)的文檔。因此,在訓練分詞器和模型之前,我們必須對數據集進行清洗。令人驚訝的是,清洗馬拉地語mc4語料庫數據後的結果如下:
訓練集
在7774331篇文檔中,乾淨文檔數量為1581396篇。
整個馬拉地語訓練分割集中,實際為馬拉地語的文檔約佔 20.34%。
驗證集
在7928篇文檔中,乾淨文檔數量為1700篇。
整個馬拉地語驗證分割集中,實際為馬拉地語的文檔約佔 19.90%。
訓練過程 👨🏻💻
預處理
文本使用字節版本的字節對編碼(BPE)進行分詞,詞彙表大小為50265。模型的輸入採用連續的512個標記片段,這些片段可能跨越多個文檔。新文檔的開頭用 <s>
標記,結尾用 </s>
標記。
每個句子的掩碼過程細節如下:
- 15%的標記被掩碼。
- 在80%的情況下,被掩碼的標記被
<mask>
替換。 - 在10%的情況下,被掩碼的標記被隨機標記(與原標記不同)替換。
- 在剩下的10%情況下,被掩碼的標記保持不變。 與BERT不同的是,掩碼在預訓練期間是動態進行的(例如,每個epoch都會改變,而不是固定的)。
預訓練
該模型在Google Cloud Engine TPUv3 - 8機器(擁有335GB內存、1000GB硬盤、96個CPU核心)的 8個v3 TPU核心 上進行了42000步的訓練,批量大小為128,序列長度為128。使用的優化器是Adam,學習率為3e - 4,β1 = 0.9,β2 = 0.98,ε = 1e - 8,權重衰減為0.01,學習率在1000步內進行預熱,之後線性衰減。
我們在Weights and Biases平臺上跟蹤實驗和超參數調整。以下是主儀表盤的鏈接:
馬拉地語RoBERTa模型的Weights and Biases儀表盤鏈接
預訓練結果 📊
RoBERTa模型在約35000步時達到了 85.28% 的評估準確率,訓練損失為0.6507,評估損失為0.6219。
下游任務微調
我們在下游任務上進行了微調。我們使用以下數據集進行分類:
1. IndicNLP馬拉地語新聞分類
IndicNLP馬拉地語新聞數據集包含3個類別 - ['lifestyle', 'entertainment', 'sports']
- 各類別的文檔分佈如下:
訓練集 | 評估集 | 測試集 |
---|---|---|
9672 | 477 | 478 |
💯 我們的馬拉地語RoBERTa roberta-base-mr
模型 在 Arora, G. (2020). iNLTK 和 Kunchukuttan, Anoop et al. AI4Bharat - IndicNLP. 中提到的兩個分類器上都取得了更好的表現。
數據集 | FT - W | FT - WC | INLP | iNLTK | roberta - base - mr 🏆 |
---|---|---|---|---|---|
iNLTK 頭條新聞 | 83.06 | 81.65 | 89.92 | 92.4 | 97.48 |
🤗 Huggingface模型中心倉庫:
在iNLTK頭條新聞分類數據集上微調的roberta-base-mr
模型:
flax-community/mr-indicnlp-classifier
🧪 微調實驗的Weights and Biases儀表盤 鏈接
2. iNLTK馬拉地語新聞頭條分類
該數據集包含3個類別 - ['state', 'entertainment', 'sports']
- 各類別的文檔分佈如下:
訓練集 | 評估集 | 測試集 |
---|---|---|
9658 | 1210 | 1210 |
💯 同樣,roberta-base-mr
模型 也優於 iNLTK
馬拉地語新聞文本分類器。
數據集 | iNLTK ULMFiT | roberta - base - mr 🏆 |
---|---|---|
iNLTK 新聞數據集(Kaggle) | 92.4 | 94.21 |
🤗 Huggingface模型中心倉庫:
在iNLTK新聞分類數據集上微調的roberta-base-mr
模型:
flax-community/mr-inltk-classifier
微調實驗的Weights and Biases儀表盤 鏈接
想查看上述模型在真實世界馬拉地語數據上的泛化能力嗎?
前往 🤗 Huggingface的空間 🪐 來體驗這三個模型:
- 使用預訓練的馬拉地語RoBERTa模型進行掩碼語言建模:
flax-community/roberta-base-mr
- 馬拉地語頭條分類器:
flax-community/mr-indicnlp-classifier
- 馬拉地語新聞分類器:
flax-community/mr-inltk-classifier
Huggingface空間上預訓練的Roberta馬拉地語模型的Streamlit應用
團隊成員
- Nipun Sadvilkar @nipunsadvilkar
- Haswanth Aekula @hassiahk
致謝
非常感謝Huggingface 🤗 和Google Jax/Flax團隊舉辦瞭如此精彩的社區周活動,特別是提供瞭如此強大的計算資源。非常感謝 @patil - suraj 和 @patrickvonplaten 在整個活動期間的指導。



