EvoPlatform / inference.py
HemanM's picture
Update inference.py
e7d2e38 verified
raw
history blame
1.71 kB
import torch
from evo_model import EvoTransformer
from transformers import AutoTokenizer
# Load tokenizer and model
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
device = "cuda" if torch.cuda.is_available() else "cpu"
def load_model(model_path="evo_hellaswag.pt"):
model = EvoTransformer()
model.load_state_dict(torch.load(model_path, map_location=device))
model.to(device)
model.eval()
return model
evo_model = load_model()
def get_evo_response(prompt, option1, option2):
inputs = [f"{prompt} {option1}", f"{prompt} {option2}"]
encoded = tokenizer(inputs, padding=True, truncation=True, return_tensors="pt").to(device)
with torch.no_grad():
logits = evo_model(encoded["input_ids"]).squeeze(-1)
probs = torch.softmax(logits, dim=0)
best = torch.argmax(probs).item()
explanations = [
f"🅰️ Option 1: {option1}\nConfidence: {probs[0]:.2f}",
f"🅱️ Option 2: {option2}\nConfidence: {probs[1]:.2f}"
]
final = f"Evo suggests: Option {best + 1}\n\n{explanations[best]}"
return final
def get_gpt_response(prompt, option1, option2):
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
full_prompt = (
f"Question: {prompt}\n"
f"Option 1: {option1}\n"
f"Option 2: {option2}\n"
"Which option makes more sense and why?"
)
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": full_prompt}
]
)
return response.choices[0].message["content"].strip()
except Exception as e:
return f"GPT Error: {e}"