模型简介
模型特点
模型能力
使用案例
🚀 Albertina 100M PTPT
Albertina 100M PTPT 是一款面向葡萄牙欧洲葡萄牙语的基础大语言模型。它属于 BERT 家族的编码器,基于 Transformer 神经架构,在 DeBERTa 模型上开发,针对该语言具有极具竞争力的性能。该模型免费分发,并遵循宽松的许可协议。
🚀 快速开始
你可以直接使用此模型进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='PORTULAN/albertina-ptpt-base')
>>> unmasker("A culinária portuguesa é rica em sabores e [MASK], tornando-se um dos maiores tesouros do país.")
[{'score': 0.8332648277282715, 'token': 14690, 'token_str': ' costumes', 'sequence': 'A culinária portuguesa é rica em sabores e costumes, tornando-se um dos maiores tesouros do país.'},
{'score': 0.07860890030860901, 'token': 29829, 'token_str': ' cores', 'sequence': 'A culinária portuguesa é rica em sabores e cores, tornando-se um dos maiores tesouros do país.'},
{'score': 0.03278181701898575, 'token': 35277, 'token_str': ' arte', 'sequence': 'A culinária portuguesa é rica em sabores e arte, tornando-se um dos maiores tesouros do país.'},
{'score': 0.009515956044197083, 'token': 9240, 'token_str': ' cor', 'sequence': 'A culinária portuguesa é rica em sabores e cor, tornando-se um dos maiores tesouros do país.'},
{'score': 0.009381960146129131, 'token': 33455, 'token_str': ' nuances', 'sequence': 'A culinária portuguesa é rica em sabores e nuances, tornando-se um dos maiores tesouros do país.'}]
该模型也可以针对特定任务进行微调:
>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
>>> from datasets import load_dataset
>>> model = AutoModelForSequenceClassification.from_pretrained("PORTULAN/albertina-ptpt-base", num_labels=2)
>>> tokenizer = AutoTokenizer.from_pretrained("PORTULAN/albertina-ptpt-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()
✨ 主要特性
- 强大的语言能力:基于 Transformer 架构和 DeBERTa 模型开发,针对欧洲葡萄牙语进行优化,在相关任务中表现出色。
- 免费开源:遵循 MIT 许可协议,可免费使用和分发。
- 广泛的应用场景:可用于掩码语言建模、文本分类等多种自然语言处理任务。
📦 安装指南
文档未提及安装步骤,可参考 Hugging Face 相关文档进行安装。
💻 使用示例
基础用法
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='PORTULAN/albertina-ptpt-base')
>>> unmasker("A culinária portuguesa é rica em sabores e [MASK], tornando-se um dos maiores tesouros do país.")
高级用法
>>> from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
>>> from datasets import load_dataset
>>> model = AutoModelForSequenceClassification.from_pretrained("PORTULAN/albertina-ptpt-base", num_labels=2)
>>> tokenizer = AutoTokenizer.from_pretrained("PORTULAN/albertina-ptpt-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()
📚 详细文档
模型描述
此模型卡针对 Albertina 100M PTPT 基础版本,拥有 1 亿个参数、12 层和 768 的隐藏层大小。Albertina-PT-PT 基础版本遵循 MIT 许可协议,DeBERTa 也遵循 MIT 许可协议。
训练数据
Albertina 100M PTPT 在 22 亿个标记的数据集上进行训练,该数据集由以下公开可用的欧洲葡萄牙语语料库汇总而成:
- OSCAR:OSCAR 数据集包含一百多种语言的文档,包括葡萄牙语,在学术界被广泛使用。它是对 Common Crawl 数据集进行筛选的结果,该数据集从网络上爬取,仅保留元数据表明允许爬取的页面,进行去重处理,并去除一些样板内容等。由于它不区分葡萄牙语变体,我们进行了额外的过滤,仅保留元数据表明互联网国家代码顶级域为葡萄牙的文档。我们使用了 2023 年 1 月版本的 OSCAR,它基于 2022 年 11 月/12 月版本的 Common Crawl。
- DCEP:欧洲议会数字语料库是一个多语言语料库,包含欧盟所有官方语言的文档,发布在欧洲议会的官方网站上。我们保留了其中的欧洲葡萄牙语部分。
- Europarl:欧洲议会会议记录平行语料库从 1996 年至 2011 年的欧洲议会会议记录中提取。我们保留了其中的欧洲葡萄牙语部分。
- ParlamentoPT:ParlamentoPT 是我们通过收集葡萄牙议会辩论记录的公开文档获得的数据集。
预处理
我们使用 BLOOM 预处理 管道对 PTPT 语料库进行过滤。我们跳过了默认的停用词过滤,因为这会破坏句法结构,也跳过了语言识别过滤,因为语料库已经预先选择为葡萄牙语。
训练
作为代码库,我们采用了英语的 DeBERTa V1 基础版本。为了训练 Albertina 100M PTPT,我们使用原始的 DeBERTa 分词器对数据集进行分词,截断序列长度为 128 个标记,并进行动态填充。模型使用最大可用内存容量进行训练,批量大小为 3072 个样本(每个 GPU 192 个样本)。我们选择了 1e-5 的学习率,采用线性衰减和 10000 步的热身步骤。总共进行了 200 个训练周期,约 180000 步。模型在配备 16 个 GPU、96 个 vCPU 和 1360 GB RAM 的 Google Cloud A2 VMs(a2-megagpu-16gb)上训练了一天。
评估
基础模型版本在下游任务上进行了评估,即对广泛使用的 GLUE 基准 中部分任务所使用的英语数据集翻译成欧洲葡萄牙语后的版本。
GLUE 任务翻译
我们采用了 GLUE-PT,这是 GLUE 的 PTPT 版本 基准。我们使用 DeepL Translate 自动翻译了 GLUE 中的四个相同任务,该工具专门提供从英语到欧洲葡萄牙语的翻译选项。
模型 | RTE(准确率) | WNLI(准确率) | MRPC(F1 值) | STS - B(皮尔逊相关系数) |
---|---|---|---|---|
Albertina 900m PTPT | 0.8339 | 0.4225 | 0.9171 | 0.8801 |
Albertina 100m PTPT | 0.6787 | 0.4507 | 0.8829 | 0.8581 |
🔧 技术细节
该模型基于 BERT 家族的编码器架构,采用 Transformer 神经架构和 DeBERTa 模型进行开发。在训练过程中,使用了特定的数据集和预处理方法,通过优化学习率、批量大小等参数,在 Google Cloud A2 VMs 上进行训练。在评估时,使用了 GLUE 基准的欧洲葡萄牙语版本进行下游任务评估。
📄 许可证
Albertina-PT-PT 基础版本遵循 MIT 许可协议,DeBERTa 也遵循 MIT 许可协议。
📖 引用
使用或引用此模型时,请引用以下 出版物:
@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 — Fundação para a Ciência e Tecnologia 在 PINFRA/22117/2016 资助下支持。
- 研究项目 ALBERTINA - 葡萄牙语基础编码器模型与人工智能,由 FCT — Fundação para a Ciência e Tecnologia 在 CPCA - IAC/AV/478394/2022 资助下支持。
- 创新项目 ACCELERAT.AI - 多语言智能联络中心,由 IAPMEI, I.P. - Agência para a Competitividade e Inovação 在 Plano de Recuperação e Resiliência 的 C625734525 - 00462629 资助下支持,项目编号为 RE - C05 - i01.01 – Agendas/Alianças Mobilizadoras para a Reindustrialização。
- LIACC - 人工智能与计算机科学实验室,由 FCT — Fundação para a Ciência e Tecnologia 在 FCT/UID/CEC/0027/2020 资助下支持。



