我想使用HuggingFace的transformers将中文翻译成英文,使用的是预先训练好的"xlm-mlm-xnli15-1024"模型。This tutorial展示了如何从英语到德语进行转换。
我尝试按照教程操作,但它没有详细说明如何手动更改语言或解码结果。我不知从何说起。很抱歉,这个问题不能更具体了。
这是我尝试过的:
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 ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™'发布于 2020-07-14 18:05:59
您提到的模型是xlm-mlm-xnli15-1024可以用于翻译,但不是以您提供的链接中显示的方式。
该链接特定于T5型号。使用XLM模型,您只需提供源句,但需要添加语言嵌入。tutorial for multilingual models中对此进行了说明。另请注意,此XLM模型主要用于为下游任务提供跨语言表示,因此您不能期望非常好的翻译质量。
发布于 2021-04-25 08:14:04
这可能会有所帮助。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]https://stackoverflow.com/questions/62728985
复制相似问题