🚀 mBART-large-50 - 用於葡萄牙語到英語翻譯的微調模型
mBART-large-50 是在 opus100 和 opusbook 數據集上進行微調的模型,可用於葡萄牙語到英語的神經機器翻譯(NMT)下游任務。該模型基於 mBART-50 架構,在多語言翻譯領域展現出強大的能力。
✨ 主要特性
- 多語言支持:mBART-50 是一個多語言的序列到序列(Sequence-to-Sequence)模型,支持 50 種語言的機器翻譯。
- 多語言預訓練:採用“多語言去噪預訓練”(Multilingual Denoising Pretraining)目標進行預訓練,能夠有效處理多種語言的文本。
- 微調能力:可在特定的下游任務數據集上進行微調,以適應不同的翻譯需求。
📦 安裝指南
git clone https://github.com/huggingface/transformers.git
pip install -q ./transformers
💻 使用示例
基礎用法
from transformers import MBart50TokenizerFast, MBartForConditionalGeneration
ckpt = 'Narrativa/mbart-large-50-finetuned-opus-pt-en-translation'
tokenizer = MBart50TokenizerFast.from_pretrained(ckpt)
model = MBartForConditionalGeneration.from_pretrained(ckpt).to("cuda")
tokenizer.src_lang = 'pt_XX'
def translate(text):
inputs = tokenizer(text, return_tensors='pt')
input_ids = inputs.input_ids.to('cuda')
attention_mask = inputs.attention_mask.to('cuda')
output = model.generate(input_ids, attention_mask=attention_mask, forced_bos_token_id=tokenizer.lang_code_to_id['en_XX'])
return tokenizer.decode(output[0], skip_special_tokens=True)
translate('here your Portuguese text to be translated to English...')
📚 詳細文檔
mBART-50 技術細節 🧠
mBART-50 是一個多語言的序列到序列模型,它的設計旨在展示通過多語言微調可以創建多語言翻譯模型。與在單一方向上進行微調不同,預訓練模型可以同時在多個方向上進行微調。mBART-50 基於原始的 mBART 模型創建,並擴展支持了額外的 25 種語言,以實現 50 種語言的多語言機器翻譯。
多語言去噪預訓練:該模型通過連接數據來整合 N 種語言:D = {D1, ..., DN }
,其中每個 Di 是語言 i
的單語文檔集合。源文檔使用兩種方案進行加噪處理,一是隨機打亂原始句子的順序,二是一種新穎的填充方案,即將文本片段替換為單個掩碼標記。然後,模型的任務是重構原始文本。每個實例的 35% 的單詞通過根據泊松分佈 (λ = 3.5)
隨機採樣片段長度進行掩碼。解碼器輸入是原始文本,偏移一個位置。語言 ID 符號 LID
用作預測句子的初始標記。
下游任務(NMT)數據集詳情 📚
數據集概述
OPUS-100 是以英語為中心的數據集,這意味著所有訓練對的源語言或目標語言中都包含英語。該語料庫涵蓋 100 種語言(包括英語),語言的選擇基於 OPUS 中可用的平行數據量。
語言情況
OPUS-100 包含約 5500 萬個句子對。在 99 種語言對中,44 種有 100 萬個句子對的訓練數據,73 種至少有 10 萬個,95 種至少有 1 萬個。
數據集結構
- 數據字段:
src_tag
:源語言的文本字符串。
tgt_tag
:源語言在目標語言中的翻譯文本字符串。
- 數據劃分:數據集分為訓練集、開發集和測試集。數據的準備方式是為每種語言對隨機採樣最多 100 萬個句子對用於訓練,開發集和測試集各最多 2000 個。為確保訓練數據和開發/測試數據之間沒有重疊(在單語句子級別),在採樣期間應用了一個過濾器,以排除已經採樣過的句子。
測試集指標 🧾
該模型在測試集上獲得了 26.12 的 BLEU 分數。
📄 許可證
文檔未提及相關許可證信息。
Created by: Narrativa
About Narrativa: Natural Language Generation (NLG) | Gabriele, our machine learning-based platform, builds and deploys natural language solutions. #NLG #AI