英文

这是Albertina PT-BR No-brWaC的模型卡。您可能对 Albertina (encoders) and Gervásio (decoders) families 中的其他模型感兴趣。

Albertina PT-BR No-brWaC

Albertina PT-BR No-brWaC是用于葡萄牙语的大型语言模型。

它是基于神经架构Transformer开发的BERT系列编码器,并基于DeBERTa模型进行了进一步开发,对于这种语言具有最具竞争力的性能。它有不同的版本,针对不同的葡萄牙语变体进行了训练,即葡萄牙的欧洲变体(PT-PT)和巴西的美式变体(PT-BR),并且可以免费分发并根据最可接受的许可证发行。

Albertina PT-BR No-brWaC是为巴西的美式葡萄牙语版本而开发的,使用的是与brWaC不同的数据集进行训练,并且具有最可接受的许可证。

您可能还对 Albertina PT-BR 感兴趣,它是在brWaC上进行训练的。据我们所知,这些是专门针对这种语言和变种的编码器,为其设定了一个新的技术水平,并且可以公开获取和分发以供重用。

Albertina PT-BR No-brWaC由葡萄牙里斯本大学和波尔图大学的联合团队开发。有关详细信息,请查看相应的 publication

@misc{albertina-pt,
      title={Advancing Neural Encoding of Portuguese
             with Transformer Albertina PT-*}, 
      author={João Rodrigues and Luís Gomes and João Silva and
              António Branco and Rodrigo Santos and
              Henrique Lopes Cardoso and Tomás Osório},
      year={2023},
      eprint={2305.06721},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

在使用或引用此模型时,请使用上述的规范参考。

模型描述

此模型卡适用于Albertina PT-BR No-brWaC,具有900M参数,24层,隐藏大小为1536。

Albertina PT-BR No-brWaC根据 MIT license 以及用于它的许可证进行分发。

DeBERTa根据 MIT license 进行分发。

训练数据

Albertina PT-BR No-brWaC是在从 OSCAR 数据集中选择的37亿个标记的文档上进行训练的。OSCAR数据集包含100多种语言的文档,包括葡萄牙语,被广泛用于文献中。它是根据从Web抓取的 Common Crawl 数据集进行的选择,仅保留其元数据表示允许被抓取的页面,执行去重复操作,并删除了部分模板文件等过滤器。鉴于它不区分葡萄牙语的变体,我们通过保留仅其元数据指示巴西的Internet国家代码顶级域的文档来进行了额外的过滤。我们使用的是OSCAR的2023年1月版本,它基于Common Crawl的2022年11月/12月版本。

预处理

我们使用 BLOOM pre-processing 工作流程对PT-BR语料进行了过滤。由于默认的停用词过滤会破坏句法结构,我们跳过了停用词的默认过滤。由于该语料库预先选择为葡萄牙语,因此也跳过了用于语言识别的过滤。

训练

作为代码库,我们使用了英语的 DeBERTa V2 XLarge

为了训练 Albertina PT-PT No-brWac ,使用了原始的DeBERTa分词器进行了128个标记的序列截断和动态填充。模型使用最大可用内存容量进行训练,结果批大小为896个样本(每个GPU 56个样本)。我们选择了学习率为1e-5,线性衰减和10k热身步骤。总共进行了大约20万个训练步骤,跨越50个周期进行了训练。该模型在拥有16个GPU、96个vCPU和1360 GB RAM的a2-megagpu-16gb Google Cloud A2 VM上进行了1天13小时的训练。

评估

这两个模型版本在下游任务上进行了评估,这些任务分为两组。

在一组数据集中,有来自 ASSIN 2 benchmark 的两个数据集,即STS和RTE,用于评估先前的最先进模型 BERTimbau Large 。另一组数据集中,我们有GLUE的英文数据集PT-BR翻译的任务,GLUE是一个广泛使用的基准数据集,允许我们在更广泛的下游任务中测试Albertina-PT-*变体的性能。

ASSIN 2

ASSIN 2 是包含大约10,000个句子对的PT-BR数据集,分为6,500个用于训练,500个用于验证和2,448个用于测试,注释有语义相关性得分(1到5范围)和二进制蕴含判断。该数据集支持语义文本相似性(STS)任务,即确定两个句子的语义相关性得分;以及文本蕴含识别(RTE)任务,给定一对句子,确定第一个句子是否蕴含第二个句子。

Model RTE (Accuracy) STS (Pearson)
Albertina-PT-BR 0.9130 0.8676
Albertina-PT-BR No-brWaC 0.8950 0.8547

翻译的GLUE任务

我们使用了 PLUE (Portuguese Language Understanding Evaluation)数据集,该数据集是通过将GLUE自动翻译成PT-BR获得的。我们从PLUE中选择了四项任务,包括:

  • 两个相似性任务:MRPC,用于检测两个句子是否是彼此的释义,以及STS-B,用于语义文本相似性;
  • 两个推理任务:RTE,用于文本蕴含识别,以及WNLI,用于共指和自然语言推理。
Model RTE (Accuracy) WNLI (Accuracy) MRPC (F1) STS-B (Pearson)
Albertina-PT-BR No-brWaC 0.7798 0.5070 0.9167 0.8743
Albertina-PT-BR 0.7545 0.4601 0.9071 0.8910

如何使用

您可以直接使用该模型进行遮掩语言建模的流程。

>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='PORTULAN/albertina-ptbr-nobrwac')
>>> unmasker("A culinária brasileira é rica em sabores e [MASK], tornando-se um dos maiores patrimônios do país.")

[{'score': 0.3866911828517914, 'token': 23395, 'token_str': 'aromas', 'sequence': 'A culinária brasileira é rica em sabores e aromas, tornando-se um dos maiores patrimônios do país.'},
{'score': 0.2926434874534607, 'token': 10392, 'token_str': 'costumes', 'sequence': 'A culinária brasileira é rica em sabores e costumes, tornando-se um dos maiores patrimônios do país.'},
{'score': 0.1913347691297531, 'token': 21925, 'token_str': 'cores', 'sequence': 'A culinária brasileira é rica em sabores e cores, tornando-se um dos maiores patrimônios do país.'},
{'score': 0.06453365087509155, 'token': 117371, 'token_str': 'cultura', 'sequence': 'A culinária brasileira é rica em sabores e cultura, tornando-se um dos maiores patrimônios do país.'},
{'score': 0.019388679414987564, 'token': 22647, 'token_str': 'nuances', 'sequence': 'A culinária brasileira é rica em sabores e nuances, tornando-se um dos maiores patrimônios do país.'}]

该模型可以通过针对特定任务进行微调来使用。

>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
>>> from datasets import load_dataset

>>> model = AutoModelForSequenceClassification.from_pretrained("PORTULAN/albertina-ptbr-nobrwac", num_labels=2)
>>> tokenizer = AutoTokenizer.from_pretrained("PORTULAN/albertina-ptbr-nobrwac")
>>> 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-ptbr-rte", evaluation_strategy="epoch")
>>> trainer = Trainer(
...     model=model,
...     args=training_args,
...     train_dataset=tokenized_datasets["train"],
...     eval_dataset=tokenized_datasets["validation"],
... )

>>> trainer.train()

引用

在使用或引用此模型时,请引用以下 publication :

@misc{albertina-pt,
      title={Advancing Neural Encoding of Portuguese
             with Transformer Albertina PT-*}, 
      author={João Rodrigues and Luís Gomes and João Silva and
              António Branco and Rodrigo Santos and
              Henrique Lopes Cardoso and Tomás Osório},
      year={2023},
      eprint={2305.06721},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

致谢

这里报告的研究部分得到了以下资助:PORTULAN CLARIN - 语言科学和技术研究基础设施,由Lisboa 2020,Alentejo 2020和FCT -科学和技术基金会在PINFRA/22117/2016资助的授权下资助;研究项目ALBERTINA-葡萄牙和AI的基础编码器模型,由FCT -科学和技术基金会在CPCA-IAC/AV/478394/2022授权下资助;创新项目ACCELERAT.AI - 多语言智能联系中心,由IAPMEI,I.P. -竞争力和创新署根据Plano de Recuperação e Resiliência的C625734525-00462629号拨款,拨打RE-C05-i01.01 - 为重新工业化而动员的议程/联盟;以及LIACC - 人工智能和计算机科学实验室,由FCT-科学和技术基金会在FCT/UID/CEC/0027/2020授权下资助。