🚀 mBART-large-50:用于英语到葡萄牙语翻译的微调模型
mBART-large-50 是在 opus100 和 opusbook 数据集上进行微调的模型,专门用于英语到葡萄牙语的神经机器翻译(NMT)下游任务。它基于 mBART-50 架构,为多语言翻译提供了强大的支持。
✨ 主要特性
- 多语言支持:mBART-50 是一个多语言序列到序列模型,支持 50 种语言的机器翻译。
- 微调优化:在 opus100 和 opusbook 数据集上进行微调,针对英语到葡萄牙语的翻译任务进行了优化。
- 先进的预训练目标:采用多语言去噪预训练(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-en-pt-translation'
tokenizer = MBart50TokenizerFast.from_pretrained(ckpt)
model = MBartForConditionalGeneration.from_pretrained(ckpt).to("cuda")
tokenizer.src_lang = 'en_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['pt_XX'])
return tokenizer.decode(output[0], skip_special_tokens=True)
translate('here your English text to be translated to Portuguese...')
📚 详细文档
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
:源语言的 string
文本
tgt_tag
:源语言在目标语言中的翻译 string
- 数据分割:数据集分为训练集、开发集和测试集。数据的准备方式是为每个语言对随机采样最多 100 万个句子对用于训练,开发集和测试集各最多 2000 个。为确保训练集和开发/测试数据之间没有重叠(在单语句子级别),在采样期间应用了一个过滤器,排除已经被采样的句子。
测试集指标 🧾
我们在测试集上获得了 20.61 的 BLEU 分数。
🔧 技术细节
模型类型
多语言序列到序列模型
训练数据
- OPUS-100:以英语为中心的多语言平行语料库,涵盖 100 种语言。
- opusbook:具体信息可参考相关文档。
预训练目标
多语言去噪预训练,通过随机打乱句子顺序和填充文本片段的方式对源文档进行加噪,然后让模型重构原始文本。
🔗 相关链接
- 模型创建者:Narrativa
- 关于 Narrativa:自然语言生成(NLG) | Gabriele 是基于机器学习的平台,用于构建和部署自然语言解决方案。 #NLG #AI