HemanM commited on
Commit
b50967b
·
verified ·
1 Parent(s): 7e8800a

Update inference.py

Browse files
Files changed (1) hide show
  1. inference.py +30 -0
inference.py CHANGED
@@ -129,3 +129,33 @@ def get_system_stats():
129
  "gpu_memory_used_gb": round(torch.cuda.memory_allocated() / (1024 ** 3), 2) if gpu_info else "N/A",
130
  "platform": platform.platform()
131
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  "gpu_memory_used_gb": round(torch.cuda.memory_allocated() / (1024 ** 3), 2) if gpu_info else "N/A",
130
  "platform": platform.platform()
131
  }
132
+
133
+ # 🧪 Fine-tune Evo from feedback data (CSV or in-memory list)
134
+ def retrain_from_feedback(feedback_data):
135
+ if not feedback_data:
136
+ return "⚠️ No feedback data to retrain from."
137
+
138
+ model = load_model()
139
+ if model is None:
140
+ return "❌ Evo model not available."
141
+
142
+ model.train()
143
+ optimizer = torch.optim.Adam(model.parameters(), lr=1e-4)
144
+
145
+ for row in feedback_data:
146
+ question, opt1, opt2, answer, *_ = row
147
+ label = torch.tensor([1.0 if answer.strip() == opt2.strip() else 0.0]) # opt2 is class 1
148
+
149
+ # Build input pair
150
+ input_text = f"{question} [SEP] {opt2 if label.item() == 1 else opt1}"
151
+ encoded = tokenizer(input_text, return_tensors="pt", padding="max_length", truncation=True, max_length=128)
152
+
153
+ logits = model(encoded["input_ids"])
154
+ loss = F.binary_cross_entropy_with_logits(logits.squeeze(), label)
155
+ loss.backward()
156
+ optimizer.step()
157
+ optimizer.zero_grad()
158
+
159
+ torch.save(model.state_dict(), MODEL_PATH)
160
+ return "✅ Evo retrained from feedback."
161
+