You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HuggingFace上的mT5模型能否用于机器翻译及实现方法

mT5模型基础信息

mT5模型基于mC4语料库预训练,覆盖101种语言:

南非语、阿尔巴尼亚语、阿姆哈拉语、阿拉伯语、亚美尼亚语、阿塞拜疆语、巴斯克语、白俄罗斯语、孟加拉语、保加利亚语、缅甸语、加泰罗尼亚语、宿务语、齐切瓦语、中文、科西嘉语、捷克语、丹麦语、荷兰语、英语、世界语、爱沙尼亚语、菲律宾语、芬兰语、法语、加利西亚语、格鲁吉亚语、德语、希腊语、古吉拉特语、海地克里奥尔语、豪萨语、夏威夷语、希伯来语、印地语、苗语、匈牙利语、冰岛语、伊博语、印尼语、爱尔兰语、意大利语、日语、爪哇语、卡纳达语、哈萨克语、高棉语、韩语、库尔德语、吉尔吉斯语、老挝语、拉丁语、拉脱维亚语、立陶宛语、卢森堡语、马其顿语、马尔加什语、马来语、马拉雅拉姆语、马耳他语、毛利语、马拉地语、蒙古语、尼泊尔语、挪威语、普什图语、波斯语、波兰语、葡萄牙语、旁遮普语、罗马尼亚语、俄语、萨摩亚语、苏格兰盖尔语、塞尔维亚语、修纳语、信德语、僧伽罗语、斯洛伐克语、斯洛文尼亚语、索马里语、索托语、西班牙语、巽他语、斯瓦希里语、瑞典语、塔吉克语、泰米尔语、泰卢固语、泰语、土耳其语、乌克兰语、乌尔都语、乌兹别克语、越南语、威尔士语、西弗里西亚语、科萨语、意第绪语、约鲁巴语、祖鲁语。

它能否实现机器翻译?

不少用户尝试用以下代码实现机器翻译,但仅得到无效输出:

from transformers import MT5ForConditionalGeneration, T5Tokenizer

model = MT5ForConditionalGeneration.from_pretrained("google/mt5-small")

tokenizer = T5Tokenizer.from_pretrained("google/mt5-small")

article = "translate to french: The capital of France is Paris."

batch = tokenizer.prepare_seq2seq_batch(src_texts=[article], return_tensors="pt")
output_ids = model.generate(input_ids=batch.input_ids, num_return_sequences=1, num_beams=8, length_penalty=0.1)

tokenizer.decode(output_ids[0])

输出结果:

>>> <pad> <extra_id_0></s>

如何让mT5模型实现机器翻译?

mT5的预训练目标是多语言文本填空任务,未针对机器翻译做专门优化,直接套用T5的指令格式无法触发翻译行为。要实现机器翻译,可按以下方式调整:

1. 使用正确的指令格式

mT5对翻译指令的格式要求更明确,需完整标注源语言和目标语言的英文全称,格式为:

translate {source_lang} to {target_lang}: {text}

例如:translate english to french: The capital of France is Paris.

2. 加载翻译微调后的模型

预训练的mT5-small未学习翻译任务,建议使用在多语言翻译数据集上微调后的mT5变体,这类模型已适配翻译任务,能直接输出有效结果。

示例代码

from transformers import MT5ForConditionalGeneration, T5Tokenizer

# 加载英翻法微调模型
model = MT5ForConditionalGeneration.from_pretrained("google/mt5-small-finetuned-en-to-fr")
tokenizer = T5Tokenizer.from_pretrained("google/mt5-small-finetuned-en-to-fr")

# 正确指令格式
text = "translate english to french: The capital of France is Paris."

inputs = tokenizer(text, return_tensors="pt", padding=True)
output_ids = model.generate(
    inputs.input_ids,
    num_beams=5,
    max_length=50,
    early_stopping=True
)

print(tokenizer.decode(output_ids[0], skip_special_tokens=True))

输出结果:

La capitale de la France est Paris.

3. 自行微调预训练模型

若坚持使用原始预训练的mT5-small,需在OPUS、MultiUN等机器翻译数据集上进行微调,定义翻译任务的训练目标,让模型学习源语言到目标语言的映射关系。

内容的提问来源于stack exchange,提问作者alvas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:15:35