模型简介
模型特点
模型能力
使用案例
🚀 基于西班牙国家图书馆(BNE)数据训练的RoBERTa基础模型
本模型基于西班牙国家图书馆的数据进行训练,是一个用于西班牙语的掩码语言模型,可用于填充掩码任务,也可在下游任务中进行微调。
🚀 快速开始
你可以使用以下代码示例来使用该模型进行填充掩码任务或获取文本特征:
填充掩码任务
>>> from transformers import pipeline
>>> from pprint import pprint
>>> unmasker = pipeline('fill-mask', model='PlanTL-GOB-ES/roberta-base-bne')
>>> pprint(unmasker("Gracias a los datos de la BNE se ha podido <mask> este modelo del lenguaje."))
[{'score': 0.08422081917524338,
'token': 3832,
'token_str': ' desarrollar',
'sequence': 'Gracias a los datos de la BNE se ha podido desarrollar este modelo del lenguaje.'},
{'score': 0.06348305940628052,
'token': 3078,
'token_str': ' crear',
'sequence': 'Gracias a los datos de la BNE se ha podido crear este modelo del lenguaje.'},
{'score': 0.06148449331521988,
'token': 2171,
'token_str': ' realizar',
'sequence': 'Gracias a los datos de la BNE se ha podido realizar este modelo del lenguaje.'},
{'score': 0.056218471378088,
'token': 10880,
'token_str': ' elaborar',
'sequence': 'Gracias a los datos de la BNE se ha podido elaborar este modelo del lenguaje.'},
{'score': 0.05133328214287758,
'token': 31915,
'token_str': ' validar',
'sequence': 'Gracias a los datos de la BNE se ha podido validar este modelo del lenguaje.'}]
获取文本特征
>>> from transformers import RobertaTokenizer, RobertaModel
>>> tokenizer = RobertaTokenizer.from_pretrained('PlanTL-GOB-ES/roberta-base-bne')
>>> model = RobertaModel.from_pretrained('PlanTL-GOB-ES/roberta-base-bne')
>>> text = "Gracias a los datos de la BNE se ha podido desarrollar este modelo del lenguaje."
>>> encoded_input = tokenizer(text, return_tensors='pt')
>>> output = model(**encoded_input)
>>> print(output.last_hidden_state.shape)
torch.Size([1, 19, 768])
✨ 主要特性
- 架构:roberta-base
- 语言:西班牙语
- 任务:填充掩码
- 数据:BNE
📚 详细文档
模型描述
roberta-base-bne 是一个基于Transformer的西班牙语掩码语言模型。它基于 RoBERTa 基础模型,并使用了迄今为止已知的最大西班牙语语料库进行预训练。该语料库是从2009年到2019年由 西班牙国家图书馆(Biblioteca Nacional de España) 进行的网络爬取数据编译而成,共处理了570GB的干净且去重的文本。
预期用途和限制
roberta-base-bne 模型仅可直接用于掩码语言建模以执行填充掩码任务(你可以尝试推理API或阅读下一节)。不过,它旨在在非生成性的下游任务(如问答、文本分类或命名实体识别)上进行微调。你可以使用原始模型进行填充掩码任务,也可以将其微调以应用于下游任务。
局限性和偏差
在提交时,尚未采取措施来估计模型中嵌入的偏差和毒性。然而,我们深知由于语料库是通过在多个网络源上进行爬取技术收集的,我们的模型可能存在偏差。我们打算在未来对这些领域进行研究,如果完成研究,此模型卡片将进行更新。以下是一个模型可能存在偏差预测的示例:
>>> from transformers import pipeline, set_seed
>>> from pprint import pprint
>>> unmasker = pipeline('fill-mask', model='PlanTL-GOB-ES/roberta-base-bne')
>>> set_seed(42)
>>> pprint(unmasker("Antonio está pensando en <mask>."))
[{'score': 0.07950365543365479,
'sequence': 'Antonio está pensando en ti.',
'token': 486,
'token_str': ' ti'},
{'score': 0.03375273942947388,
'sequence': 'Antonio está pensando en irse.',
'token': 13134,
'token_str': ' irse'},
{'score': 0.031026942655444145,
'sequence': 'Antonio está pensando en casarse.',
'token': 24852,
'token_str': ' casarse'},
{'score': 0.030703715980052948,
'sequence': 'Antonio está pensando en todo.',
'token': 665,
'token_str': ' todo'},
{'score': 0.02838558703660965,
'sequence': 'Antonio está pensando en ello.',
'token': 1577,
'token_str': ' ello'}]
>>> set_seed(42)
>>> pprint(unmasker("Mohammed está pensando en <mask>."))
[{'score': 0.05433618649840355,
'sequence': 'Mohammed está pensando en morir.',
'token': 9459,
'token_str': ' morir'},
{'score': 0.0400255024433136,
'sequence': 'Mohammed está pensando en irse.',
'token': 13134,
'token_str': ' irse'},
{'score': 0.03705748915672302,
'sequence': 'Mohammed está pensando en todo.',
'token': 665,
'token_str': ' todo'},
{'score': 0.03658654913306236,
'sequence': 'Mohammed está pensando en quedarse.',
'token': 9331,
'token_str': ' quedarse'},
{'score': 0.03329474478960037,
'sequence': 'Mohammed está pensando en ello.',
'token': 1577,
'token_str': ' ello'}]
训练
训练数据
西班牙国家图书馆(Biblioteca Nacional de España) 每年对所有 .es 域名进行一次爬取。训练语料库由2009年到2019年这些爬取的59TB的WARC文件组成。为了获得高质量的训练语料库,语料库经过了一系列操作的预处理,包括句子分割、语言检测、过滤格式错误的句子以及去重重复内容等。在处理过程中,保留了文档边界。最终得到了2TB的西班牙语干净语料库。进一步对语料库进行全局去重,得到了570GB的文本。语料库的一些统计信息如下:
语料库 | 文档数量 | 词元数量 | 大小(GB) |
---|---|---|---|
BNE | 201,080,084 | 135,733,450,668 | 570GB |
训练过程
训练语料库使用了原始 RoBERTa 模型中使用的字节版本的字节对编码(BPE)进行分词,词汇表大小为50,262个词元。roberta-base-bne 的预训练包括掩码语言模型训练,遵循了RoBERTa基础模型的方法。训练总共持续了48小时,使用了16个计算节点,每个节点配备4个16GB VRAM的NVIDIA V100 GPU。
评估
当在下游任务上进行微调时,该模型取得了以下结果:
数据集 | 指标 | RoBERTa-base |
---|---|---|
MLDoc | F1 | 0.9664 |
CoNLL-NERC | F1 | 0.8851 |
CAPITEL-NERC | F1 | 0.8960 |
PAWS-X | F1 | 0.9020 |
UD-POS | F1 | 0.9907 |
CAPITEL-POS | F1 | 0.9846 |
SQAC | F1 | 0.7923 |
STS | 综合指标 | 0.8533 |
XNLI | 准确率 | 0.8016 |
额外信息
作者
巴塞罗那超级计算中心的文本挖掘单元(TeMU)(bsc-temu@bsc.es)。
联系信息
如需更多信息,请发送电子邮件至 plantl-gob-es@bsc.es。
版权
版权归 西班牙数字化和人工智能秘书处(SEDIA) 所有。
许可信息
本作品采用 Apache许可证,版本2.0 进行许可。
资金支持
本工作由 西班牙数字化和人工智能秘书处(SEDIA) 在Plan-TL框架内提供资金支持。
引用信息
如果你使用此模型,请引用我们的 论文:
@article{,
title = {MarIA: Spanish Language Models},
author = {Asier Gutiérrez Fandiño and Jordi Armengol Estapé and Marc Pàmies and Joan Llop Palao and Joaquin Silveira Ocampo and Casimiro Pio Carrino and Carme Armentano Oller and Carlos Rodriguez Penagos and Aitor Gonzalez Agirre and Marta Villegas},
doi = {10.26342/2022-68-3},
issn = {1135-5948},
journal = {Procesamiento del Lenguaje Natural},
publisher = {Sociedad Española para el Procesamiento del Lenguaje Natural},
url = {https://upcommons.upc.edu/handle/2117/367156#.YyMTB4X9A-0.mendeley},
volume = {68},
year = {2022},
}
免责声明
本仓库中发布的模型旨在用于通用目的,并可供第三方使用。这些模型可能存在偏差和/或其他不良扭曲。当第三方使用这些模型(或使用基于这些模型的系统)部署或向其他方提供系统和/或服务,或成为模型的用户时,他们应注意,减轻使用这些模型所带来的风险并遵守适用法规(包括有关人工智能使用的法规)是他们的责任。在任何情况下,模型的所有者(SEDIA)和创建者(BSC)均不对第三方使用这些模型所产生的任何结果负责。



