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