import torch from transformers import AutoModelForSeq2SeqLM, AutoTokenizer from functions.utils import DEVICE, TORCH_DTYPE MODEL_NAME = "code-li/nllb-moore" tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) model = AutoModelForSeq2SeqLM.from_pretrained( MODEL_NAME, torch_dtype=TORCH_DTYPE, ).to(DEVICE) model.eval() def translateFRMOS(text: str, sourceLang: str, targetLang: str): tokenizer.src_lang = sourceLang TGT_LANG_ID = tokenizer.convert_tokens_to_ids(targetLang) inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128).to(DEVICE) with torch.no_grad(): tokens = model.generate( **inputs, forced_bos_token_id=TGT_LANG_ID, max_length=128, num_beams=4, ) return tokenizer.decode(tokens[0], skip_special_tokens=True)