La traducción es la tarea de convertir el texto en un idioma en texto en otro idioma.
Un conjunto de datos más clásico para tareas de traducción es el conjunto de datos WMT de inglés a alemán, que toma el inglés como entrada y corresponde al alemán como salida (también se puede invertir cuando lo usa usted mismo).
usar canalización
Se puede implementar rápidamente con el siguiente código:
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))
resultado de la operación:
[{
'translation_text': 'Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.'}]
Dado que la tubería de traducción PreTrainedModel.generate()
depende del método, podemos max_length
anular el método predeterminado como se indicó anteriormente.
Uso de modelos y tokenizadores de texto
Los pasos específicos son los siguientes:
- Cree una instancia de un tokenizador de texto y un modelo. Uso general
BERT
oT5
modelo. - Definir un texto a traducir.
- Agregue
T5
el prefijo especial para la traduccióntranslate English to German:
. - Usa
PreTrainedModel.generate()
el método para traducir.
Código de muestra:
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]))
resultado de la operación:
Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.
De acuerdo con los resultados de la canalización.