File size: 879 Bytes
7e3c986 12a7668 7e3c986 12a7668 7e3c986 12a7668 7e3c986 12a7668 7e3c986 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch
MODEL_NAME = "facebook/nllb-200-distilled-600M" # facebook/nllb-200-3.3B
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME).to(device)
model.eval()
def translateText(text: str, sourceLang: str, targetLang: str) -> str:
tokenizer.src_lang = sourceLang
inputs = tokenizer(text, return_tensors="pt").to(device)
with torch.no_grad():
tokens = model.generate(
**inputs,
forced_bos_token_id=tokenizer.convert_tokens_to_ids(targetLang),
max_new_tokens=512,
num_beams=4,
early_stopping=True,
)
translatedText = tokenizer.batch_decode(tokens, skip_special_tokens=True)[0]
return translatedText
|