import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer repo = "burkimbia/BIA-MISTRAL-7B-SACHI_4bit"tok = AutoTokenizer.from_pretrained(repo)tok.padding_side, tok.pad_token = "left", tok.eos_tokenmodel = AutoModelForCausalLM.from_pretrained(repo, device_map="auto") # quantization is in config.json PROMPT = """<s> You are an expert Moore translator. Translate the provided {src} text to {tgt}.The Moore alphabet is: a, ã, b, d, e, ẽ, ɛ, f, g, h, i, ĩ, ɩ, k, l, m, n, o, õ, p, r, s, t, u, ũ, ʋ, v, w, y, z.Based on source language ({src}), provide the {tgt} text.[INST]### {src}:{text}[/INST] ### {tgt}:""" def translate(texts, src="French", tgt="Moore", max_new_tokens=256): if isinstance(texts, str): texts = [texts] prompts = [PROMPT.format(src=src, tgt=tgt, text=t) for t in texts] inputs = tok(prompts, padding=True, truncation=True, max_length=1024, return_tensors="pt").to(model.device) with torch.no_grad(): out = model.generate(**inputs, max_new_tokens=max_new_tokens, do_sample=False) gen = out[:, inputs.input_ids.shape[1]:] return [t.strip() for t in tok.batch_decode(gen, skip_special_tokens=True)] print(translate("Le marché est fermé aujourd'hui."))