Spaces:
Sleeping
Sleeping
import torch | |
from evo_model import EvoTransformer | |
# Load EvoTransformer model | |
def load_model(model_path="evo_hellaswag.pt", device=None): | |
if device is None: | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
model = EvoTransformer() | |
model.load_state_dict(torch.load(model_path, map_location=device)) | |
model.to(device) | |
model.eval() | |
return model, device | |
# Predict the best option (0 or 1) | |
def predict(model, tokenizer, prompt, option1, option2, device): | |
inputs = [ | |
f"{prompt} {option1}", | |
f"{prompt} {option2}", | |
] | |
encoded = tokenizer(inputs, padding=True, truncation=True, return_tensors="pt").to(device) | |
with torch.no_grad(): | |
outputs = model(encoded["input_ids"]) # already includes classifier | |
logits = outputs.squeeze(-1) # shape: [2] | |
probs = torch.softmax(logits, dim=0) | |
best = torch.argmax(probs).item() | |
return { | |
"choice": best, | |
"confidence": probs[best].item(), | |
"scores": probs.tolist(), | |
} | |