🚀 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