import torchfrom transformers import AutoModelForSequenceClassification, AutoTokenizerfrom peft import PeftModel BASE = "openbmb/MiniCPM5-2B"ADAPTER = "dimajyg/homemade-jev"ID2LABEL = {0: "contradiction", 1: "entailment", 2: "neutral"} tok = AutoTokenizer.from_pretrained(ADAPTER, use_fast=True)if tok.pad_token is None: tok.pad_token = tok.eos_tokenmodel = AutoModelForSequenceClassification.from_pretrained( BASE, num_labels=3, id2label=ID2LABEL, label2id={v: k for k, v in ID2LABEL.items()}, torch_dtype=torch.float32,)model = PeftModel.from_pretrained(model, ADAPTER)model.eval() def nli(premise, hypothesis): text = f"Premise: {premise}\nHypothesis: {hypothesis}" batch = tok(text, return_tensors="pt", truncation=True, max_length=256, return_token_type_ids=False) with torch.no_grad(): p = torch.softmax(model(**batch).logits.float(), dim=-1)[0] return {ID2LABEL[i]: round(float(p[i]), 4) for i in range(3)}