模型概述
模型特點
模型能力
使用案例
🚀 基於西班牙國家圖書館(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)均不對第三方使用這些模型所產生的任何結果負責。



