🚀 RuPERTa:西班牙版RoBERTa 🎃
RuPERTa是基于西班牙语语料库训练的语言模型,它基于RoBERTa架构,在训练过程中对BERT的预训练程序进行了迭代优化,能为西班牙语相关的自然语言处理任务提供强大支持。
🚀 快速开始
RuPERTa-base(无大小写区分)是一个RoBERTa模型,它在一个无大小写区分版本的大型西班牙语语料库上进行训练。RoBERTa在BERT的预训练程序基础上进行了改进,包括更长时间的训练、更大的批次、更多的数据、移除下一句预测目标、更长序列的训练以及动态改变应用于训练数据的掩码模式。其架构与roberta-base
相同:
roberta.base:
RoBERTa 使用 BERT-base架构 1.25亿 参数
🧾 基准测试
正在进行中(我仍在努力) 🚧
💻 使用示例
🔍 基础用法:POS和NER标签预测
import torch
from transformers import AutoModelForTokenClassification, AutoTokenizer
id2label = {
"0": "B-LOC",
"1": "B-MISC",
"2": "B-ORG",
"3": "B-PER",
"4": "I-LOC",
"5": "I-MISC",
"6": "I-ORG",
"7": "I-PER",
"8": "O"
}
tokenizer = AutoTokenizer.from_pretrained('mrm8488/RuPERTa-base-finetuned-ner')
model = AutoModelForTokenClassification.from_pretrained('mrm8488/RuPERTa-base-finetuned-ner')
text ="Julien, CEO de HF, nació en Francia."
input_ids = torch.tensor(tokenizer.encode(text)).unsqueeze(0)
outputs = model(input_ids)
last_hidden_states = outputs[0]
for m in last_hidden_states:
for index, n in enumerate(m):
if(index > 0 and index <= len(text.split(" "))):
print(text.split(" ")[index-1] + ": " + id2label[str(torch.argmax(n).item())])
'''
Julien,: I-PER
CEO: O
de: O
HF,: B-ORG
nació: I-PER
en: I-PER
Francia.: I-LOC
'''
对于 POS 任务,只需更改 id2label
字典和模型路径为 mrm8488/RuPERTa-base-finetuned-pos
🔬 高级用法:使用 pipelines
进行语言模型快速预测
from transformers import AutoModelWithLMHead, AutoTokenizer
model = AutoModelWithLMHead.from_pretrained('mrm8488/RuPERTa-base')
tokenizer = AutoTokenizer.from_pretrained("mrm8488/RuPERTa-base", do_lower_case=True)
from transformers import pipeline
pipeline_fill_mask = pipeline("fill-mask", model=model, tokenizer=tokenizer)
pipeline_fill_mask("España es un país muy <mask> en la UE")
[
{
"score": 0.1814306527376175,
"sequence": "<s> españa es un país muy importante en la ue</s>",
"token": 1560
},
{
"score": 0.024842597544193268,
"sequence": "<s> españa es un país muy fuerte en la ue</s>",
"token": 2854
},
{
"score": 0.02473250962793827,
"sequence": "<s> españa es un país muy pequeño en la ue</s>",
"token": 2948
},
{
"score": 0.023991240188479424,
"sequence": "<s> españa es un país muy antiguo en la ue</s>",
"token": 5240
},
{
"score": 0.0215945765376091,
"sequence": "<s> españa es un país muy popular en la ue</s>",
"token": 5782
}
]
🙏 致谢
感谢 🤗/transformers团队 解答我的疑问,以及谷歌通过 TensorFlow Research Cloud 项目给予的帮助。
由 Manuel Romero/@mrm8488 创建
于西班牙用心打造 ♥