模型:
Narrativa/mbart-large-50-finetuned-opus-pt-en-translation
任务:
翻译mBART-50 大型模型在 opus100 数据集上进行了 fine-tune,用于 NMT 的下游任务。
mBART-50 是一个多语言序列到序列模型,它使用了 "多语言去噪预训练" 目标进行了预训练。它在 Multilingual Translation with Extensible Multilingual Pretraining and Finetuning 论文中首次提出。
mBART-50 是一个多语言序列到序列模型。它的创建旨在展示通过多语言 fine-tuning 可以创建多语言翻译模型。与单向 fine-tuning 不同,预训练模型同时进行多个方向的 fine-tuning。mBART-50 是使用原始的 mBART 模型创建的,并扩展了额外的 25 种语言,以支持包含 50 种语言的多语言机器翻译模型。预训练目标如下所述。多语言去噪预训练:模型通过连接数据 D = {D1, ..., DN } 来融合 N 种语言,其中每个 Di 是语言 i 中的一组单语文档。源文档使用两种方案进行加噪,首先随机洗牌原始句子的顺序,其次通过一个新颖的插入方案,将文本段替换为单个掩码令牌。然后,模型被要求重构原始文本。每个实例的单词中有35%被掩码,通过随机采样一个长度符合泊松分布 (λ = 3.5) 的文本段。解码器输入是具有一个位置偏移的原始文本。使用语言 ID 符号 LID 作为初始令牌来预测句子。
OPUS-100 以英文为中心,即所有训练对都包括英语,涵盖了100种语言(包括英语)。选择语言的依据是 OPUS 中可用的平行数据量。
OPUS-100 包含约5500万个句对。在99种语言对中,有44种语言对有100万个句对的训练数据,73种语言对至少有10万个句对,95种语言对至少有1万个句对。
将数据集拆分为训练、开发和测试部分。通过随机抽样每种语言对最多100万个句对用于训练,每种语言对最多2000个句对用于开发和测试。为确保训练和开发/测试数据之间没有重叠(在单语句级别),在抽样过程中应用了一个过滤器来排除已经被抽样的句子。请注意,这是跨语言进行的,因此在葡萄牙语-英语训练数据中的英语句子不会出现在印地语-英语测试集中。
我们得到了 BLEU 分数为 26.12
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...')
创建者: Narrativa
关于 Narrativa:自然语言生成(NLG)| 我们的基于机器学习的平台 Gabriele 构建和部署自然语言解决方案。#NLG #AI