语言:
- 葡萄牙语
- 英语
数据集:
- 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分数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('此处输入待翻译的葡萄牙语文本...')
创建者: Narrativa
关于Narrativa:基于机器学习平台Gabriele,我们构建并部署自然语言生成解决方案。#自然语言生成 #人工智能