语言:
- 英语
- 葡萄牙语
数据集:
- opus100
- opusbook
标签:
- 翻译
评估指标:
基于opus100和opusbook微调的mBART-large-50英语到葡萄牙语翻译模型
mBART-50大型模型在opus100数据集上针对**神经机器翻译(NMT)**下游任务进行了微调。
mBART-50模型详情 🧠
mBART-50是通过"多语言去噪预训练"目标预训练的多语言序列到序列模型,由论文《可扩展多语言预训练与微调的多语言翻译》提出。
该模型旨在证明通过多语言微调可以创建多语言翻译模型。不同于单方向微调,预训练模型会同时在多个方向进行微调。mBART-50基于原始mBART模型扩展支持50种语言的多语言机器翻译,新增了25种语言。其预训练目标如下:
多语言去噪预训练:通过拼接N种语言的数据构建训练集D = {D1, ..., DN}
,其中每个Di是语言i
的单语文档集合。源文档采用两种噪声处理方案:随机打乱原句顺序,以及创新的文本填充方案(用单个掩码标记替换文本片段)。模型需要重建原始文本,每个实例35%的单词通过泊松分布(λ=3.5)
随机采样进行掩码。解码器输入是起始位置偏移一位的原始文本,语言ID符号LID
作为预测句子的起始标记。
下游任务(NMT)详情 - 数据集 📚
数据集概述
OPUS-100是以英语为中心的双语语料库,所有训练对都包含英语作为源语言或目标语言。该语料库涵盖100种语言(包括英语),语言选择基于OPUS中可用的平行数据量。
语言支持
包含约5500万句对。在99个语言对中:44个拥有100万句对训练数据,73个至少10万句对,95个至少1万句对。
数据集结构
数据字段
src_tag
: 字符串
类型的源语言文本
tgt_tag
: 字符串
类型的目标语言翻译文本
数据划分
数据集分为训练集、开发集和测试集。每种语言对随机采样最多100万句对用于训练,开发集和测试集各2000句。为确保训练集与开发/测试集在单语句子层面无重叠,采样时应用了跨语言过滤机制——例如葡萄牙语-英语训练集中的英语句子不会出现在印地语-英语测试集。
测试集指标 🧾
获得BLEU分数20.61
模型实践 🚀
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('输入需要翻译成葡萄牙语的英文文本...')
开发团队: Narrativa
关于Narrativa:自然语言生成(NLG)专家 | Gabriele是我们基于机器学习的平台,致力于构建和部署自然语言解决方案。#NLG #AI