from transformers import AutoTokenizer, AutoModelForCausalLMfrom peft import PeftModelimport torch BASE = "unsloth/gemma-3-4b-it"LORA = "hiteshluke/zyot-decider-v3-verbalizer-4b" tok = AutoTokenizer.from_pretrained(BASE)model = AutoModelForCausalLM.from_pretrained(BASE, dtype=torch.bfloat16, device_map="auto")model = PeftModel.from_pretrained(model, LORA).eval() T_ID = tok("T", add_special_tokens=False).input_ids[0]F_ID = tok("F", add_special_tokens=False).input_ids[0] def decide(passage: str, question: str) -> str: prompt = ( f"State: {passage}\n\n" f"Question: {question}\n\n" f"Options:\nT. Yes / True\nF. No / False\n\n" f"Answer:" ) ids = tok(prompt, return_tensors="pt", truncation=True, max_length=1024).input_ids.to(model.device) with torch.no_grad(): logits = model(ids).logits[0, -1] return "T" if logits[T_ID] > logits[F_ID] else "F" print(decide( "The Eiffel Tower is located in Paris, France.", "Is the Eiffel Tower in France?")) # -> T