模型概述
模型特點
模型能力
使用案例
🚀 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 資助下支持。



