4

我想使用 HuggingFace 使用预训练"xlm-mlm-xnli15-1024"模型的转换器将中文翻译成英文。本教程展示了如何从英语到德语。

我尝试按照教程进行操作,但没有详细说明如何手动更改语言或解码结果。我不知道从哪里开始。抱歉,这个问题再具体不过了。

这是我尝试过的:

from transformers import AutoModelWithLMHead, AutoTokenizer
base_model = "xlm-mlm-xnli15-1024"
model = AutoModelWithLMHead.from_pretrained(base_model)
tokenizer = AutoTokenizer.from_pretrained(base_model)

inputs = tokenizer.encode("translate English to Chinese: Hugging Face is a technology company based in New York and Paris", return_tensors="pt")
outputs = model.generate(inputs, max_length=40, num_beams=4, early_stopping=True)

print(tokenizer.decode(outputs.tolist()[0]))
'<s>translate english to chinese : hugging face is a technology company based in new york and paris </s>china hug ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™'
4

2 回答 2

4

这可能会有所帮助。https://huggingface.co/Helsinki-NLP/opus-mt-zh-en

import transformers
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
model = AutoModelForSeq2SeqLM.from_pretrained("Helsinki-NLP/opus-mt-zh-en")
text ='央视春晚,没有最烂,只有更烂'
tokenized_text = tokenizer.prepare_seq2seq_batch([text], return_tensors='pt')
translation = model.generate(**tokenized_text)
translated_text = tokenizer.batch_decode(translation, skip_special_tokens=False)[0]
于 2021-04-25T00:14:04.320 回答
3

您提到的模型xlm-mlm-xnli15-1024可用于翻译,但不能以您提供的链接中显示的方式使用。

该链接特定于 T5 型号。使用 XLM 模型,您只需提供源语句,但您需要添加语言嵌入。多语言模型教程中对此进行了说明。另请注意,此 XLM 模型主要用于为下游任务提供跨语言表示,因此您不能期望非常好的翻译质量。

于 2020-07-14T10:05:58.557 回答