language:
- pt
tags:
- albertina-pt*
- albertina-ptpt
- albertina-ptbr
- albertina-ptpt-base
- albertina-ptbr-base
- fill-mask
- bert
- deberta
- portuguese
- encoder
- foundation model
license: mit
datasets:
- dlb/plue
- oscar-corpus/OSCAR-2301
- PORTULAN/glue-ptpt
widget:
- text: >-
巴西美食以丰富的风味和[MASK]闻名,成为该国最宝贵的文化遗产之一。
这是Albertina 100M PTBR模型的介绍页。您可能对Albertina(编码器)和Gervásio(解码器)系列中的其他模型感兴趣。
Albertina 100M PTBR
Albertina 100M PTBR 是一个面向巴西葡萄牙语的基础大语言模型。
它属于BERT家族的编码器,基于Transformer神经网络架构,并在DeBERTa模型基础上开发,针对该语言具有最具竞争力的性能。该模型免费分发,采用最宽松的许可证。
Albertina 100M PTBR基础版由葡萄牙里斯本大学和波尔图大学的联合团队开发。更多详情,请参阅相关论文:
@misc{albertina-pt-fostering,
title={Fostering the Ecosystem of Open Neural Encoders
for Portuguese with Albertina PT-* family},
author={Rodrigo Santos and João Rodrigues and Luís Gomes
and João Silva and António Branco
and Henrique Lopes Cardoso and Tomás Freitas Osório
and Bernardo Leite},
year={2024},
eprint={2403.01897},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
使用或引用该模型时,请使用上述规范引用。
模型描述
本模型卡针对Albertina 100M PTBR,包含1亿参数,12层,隐藏层大小为768。
Albertina-PT-BR基础版采用MIT许可证分发。
DeBERTa采用MIT许可证分发。
训练数据
Albertina P100M PTBR基于OSCAR数据集中精选的37亿词符文档进行训练。OSCAR数据集包含包括葡萄牙语在内的上百种语言文档,广泛用于文献中。它是对Common Crawl数据集进行筛选的结果,仅保留元数据表明允许爬取的页面,并进行去重和去除部分样板内容等过滤操作。由于未区分葡萄牙语变体,我们额外筛选仅保留元数据表明属于巴西顶级域名的文档。我们使用了OSCAR 2023年1月版本,基于2022年11月/12月的Common Crawl版本。
预处理
我们使用BLOOM预处理流程过滤了PT-BR语料库。跳过了默认的停用词过滤以避免破坏句法结构,也跳过了语言识别过滤,因为语料库已预选为葡萄牙语。
训练
我们采用了DeBERTa V1基础版作为代码库,该模型针对英语。
训练Albertina 100M PTBR时,数据集使用原始DeBERTa分词器进行分词,序列截断长度为128词符,并采用动态填充。模型训练使用了最大可用内存容量,批大小为3072样本(每GPU 192样本)。我们选择了1e-5的学习率,线性衰减,1万步预热。模型共训练150个周期,约18万步。训练在Google Cloud A2 VMs的a2-megagpu-16gb实例上进行,配备16个GPU、96个vCPU和1.360 GB内存,耗时一天。
评估
基础模型版本在下游任务上进行了评估,特别是对广泛使用的GLUE基准中部分任务的英语数据集翻译成PTBR后的表现。
翻译的GLUE任务
我们使用了PLUE(葡萄牙语理解评估数据集),该数据集通过自动翻译GLUE为PT-BR获得。我们处理了PLUE中的四个任务:
- 两个相似性任务:MRPC(检测两句话是否为彼此释义)和STS-B(语义文本相似性);
- 两个推理任务:RTE(识别文本蕴含)和WNLI(共指和自然语言推理)。
模型 |
RTE (准确率) |
WNLI (准确率) |
MRPC (F1) |
STS-B (皮尔逊系数) |
Albertina 900M PTBR No-brWaC |
0.7798 |
0.5070 |
0.9167 |
0.8743 |
Albertina 900M PTBR |
0.7545 |
0.4601 |
0.9071 |
0.8910 |
Albertina 100M PTBR |
0.6462 |
0.5493 |
0.8779 |
0.8501 |
使用方法
您可以直接使用该模型进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='PORTULAN/albertina-ptbr-base')
>>> unmasker("巴西美食以丰富的风味和[MASK]闻名,成为该国最宝贵的文化遗产之一。")
[{'score': 0.9391396045684814, 'token': 14690, 'token_str': ' costumes', 'sequence': '巴西美食以丰富的风味和习俗闻名,成为该国最宝贵的文化遗产之一。'},
{'score': 0.04568921774625778, 'token': 29829, 'token_str': ' cores', 'sequence': '巴西美食以丰富的风味和色彩闻名,成为该国最宝贵的文化遗产之一。'},
{'score': 0.004134135786443949, 'token': 6696, 'token_str': ' drinks', 'sequence': '巴西美食以丰富的风味和饮品闻名,成为该国最宝贵的文化遗产之一。'},
{'score': 0.0009097770671360195, 'token': 33455, 'token_str': ' nuances', 'sequence': '巴西美食以丰富的风味和细微差别闻名,成为该国最宝贵的文化遗产之一。'},
{'score': 0.0008549498743377626, 'token': 606, 'token_str': ' comes', 'sequence': '巴西美食以丰富的风味和食物闻名,成为该国最宝贵的文化遗产之一。'}]
该模型可通过微调用于特定任务:
>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
>>> from datasets import load_dataset
>>> model = AutoModelForSequenceClassification.from_pretrained("PORTULAN/albertina-ptbr-base", num_labels=2)
>>> tokenizer = AutoTokenizer.from_pretrained("PORTULAN/albertina-ptbr-base")
>>> dataset = load_dataset("PORTULAN/glue-ptpt", "rte")
>>> def tokenize_function(examples):
... return tokenizer(examples["sentence1"], examples["sentence2"], padding="max_length", truncation=True)
>>> tokenized_datasets = dataset.map(tokenize_function, batched=True)
>>> training_args = TrainingArguments(output_dir="albertina-ptpt-rte", evaluation_strategy="epoch")
>>> trainer = Trainer(
... model=model,
... args=training_args,
... train_dataset=tokenized_datasets["train"],
... eval_dataset=tokenized_datasets["validation"],
... )
>>> trainer.train()
引用
使用或引用该模型时,请引用以下论文:
@misc{albertina-pt-fostering,
title={Fostering the Ecosystem of Open Neural Encoders
for Portuguese with Albertina PT-* family},
author={Rodrigo Santos and João Rodrigues and Luís Gomes
and João Silva and António Branco
and Henrique Lopes Cardoso and Tomás Freitas Osório
and Bernardo Leite},
year={2024},
eprint={2403.01897},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
致谢
本研究部分得到以下支持:PORTULAN CLARIN——语言科学与技术研究基础设施,由Lisboa 2020、Alentejo 2020和FCT——葡萄牙科学技术基金会资助,项目编号PINFRA/22117/2016;研究项目ALBERTINA - 葡萄牙语基础编码器模型与人工智能,由FCT——葡萄牙科学技术基金会资助,项目编号CPCA-IAC/AV/478394/2022;创新项目ACCELERAT.AI - 多语言智能联络中心,由IAPMEI, I.P. - 竞争力与创新局资助,项目编号C625734525-00462629,属于复苏与韧性计划,招标RE-C05-i01.01——再工业化动员议程/联盟;以及LIACC - 人工智能与计算机科学实验室,由FCT——葡萄牙科学技术基金会资助,项目编号FCT/UID/CEC/0027/2020。