模型简介
模型特点
模型能力
使用案例
🚀 马拉地语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 在整个活动期间的指导。



