当前位置:   article > 正文

Transformers预训练模型使用:翻译 Translation

Transformers预训练模型使用:翻译 Translation

翻译是将一个语言的文本转化为另一个语言文本的任务。

翻译任务的一个比较经典的数据集是WMT English to German dataset,将英语作为输入,对应德语作为输出(自己用的时候也可以反过来)。

使用pipeline

可以使用如下代码快速实现:

from transformers import pipeline

translator = pipeline("translation_en_to_de")
print(translator("Hugging Face is a technology company based in New York and Paris", max_length=40))
  • 1
  • 2
  • 3
  • 4

运行结果:

[{'translation_text': 'Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.'}]
  • 1

由于翻译的pipeline依赖于PreTrainedModel.generate()方法,因此我们可以像上面的max_length一样覆盖默认的方法。

使用模型和文本标记器

具体步骤如下:

  1. 实例化文本标记器和模型。一般使用BERTT5模型。
  2. 定义一个需要翻译的文本。
  3. 加上T5翻译的特殊前缀translate English to German:
  4. 使用PreTrainedModel.generate()方法进行翻译。

示例代码:

cache_dir="./transformersModels/summarization"
"""
,cache_dir = cache_dir
"""
from transformers import AutoModelWithLMHead, AutoTokenizer

model = AutoModelWithLMHead.from_pretrained("t5-base",cache_dir = cache_dir, return_dict=True)
tokenizer = AutoTokenizer.from_pretrained("t5-base",cache_dir = cache_dir)

inputs = tokenizer.encode("translate English to German: 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[0]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果:

Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.
  • 1

与pipeline结果一致。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/348483
推荐阅读
相关标签
  

闽ICP备14008679号