La traduction est la tâche de convertir un texte dans une langue en texte dans une autre langue.
Un ensemble de données plus classique pour les tâches de traduction est l'ensemble de données WMT anglais vers allemand, qui prend l'anglais en entrée et correspond à l'allemand en sortie (il peut également être inversé lorsque vous l'utilisez vous-même).
utiliser le pipeline
Il peut être rapidement implémenté avec le code suivant :
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))
résultat de l'opération :
[{
'translation_text': 'Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.'}]
Étant donné que le pipeline de traduction PreTrainedModel.generate()
dépend de la méthode, nous pouvons max_length
remplacer la méthode par défaut comme ci-dessus.
Utiliser des modèles et des tokenizers de texte
Les étapes spécifiques sont les suivantes :
- Instanciez un tokenizer de texte et un modèle. Usage général
BERT
ouT5
modèle. - Définir un texte à traduire.
- Ajoutez
T5
le préfixe spécial pour la traductiontranslate English to German:
. - Utilisez
PreTrainedModel.generate()
la méthode pour traduire.
Exemple de code :
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]))
résultat de l'opération :
Hugging Face ist ein Technologieunternehmen mit Sitz in New York und Paris.
Conforme aux résultats du pipeline.