Download eval_with_timing.py from Ugas/routing-agent: direct link, hf CLI and curl.
- Browser
- Download file 1.53 kB
-
https://huggingface.co/Ugas/routing-agent/resolve/main/eval_with_timing.py
- Command line
-
hf download hf://Ugas/routing-agent/eval_with_timing.py
-
curl -L -o eval_with_timing.py https://huggingface.co/Ugas/routing-agent/resolve/main/eval_with_timing.py
1.53 kB
| import os | |
| import sys | |
| import time | |
| import traceback | |
| import pandas as pd | |
| # Ensure local package imports work | |
| ROOT = os.path.dirname(__file__) | |
| if ROOT not in sys.path: | |
| sys.path.insert(0, ROOT) | |
| import run_inference as ri | |
| def predict_and_time(input_csv: str, output_csv: str): | |
| df = pd.read_csv(input_csv) | |
| results = [] | |
| for idx, row in df.iterrows(): | |
| q = row.get('question') | |
| ground = row.get('action_label') | |
| try: | |
| start = time.perf_counter() | |
| # fast routing-only prediction using loaded embedder + model | |
| with ri.torch.no_grad(): | |
| emb = ri.embedder.encode(q, convert_to_tensor=True).to(ri.DEVICE) | |
| action, log_prob, _ = ri.model.get_action(emb) | |
| pred_idx = int(action.item()) | |
| end = time.perf_counter() | |
| elapsed = end - start | |
| except Exception: | |
| pred_idx = None | |
| elapsed = None | |
| traceback.print_exc() | |
| results.append({ | |
| 'question': q, | |
| 'ground_truth': ground, | |
| 'predicted_label': pred_idx, | |
| 'time_took': elapsed, | |
| }) | |
| out_df = pd.DataFrame(results) | |
| out_df.to_csv(output_csv, index=False) | |
| print(f"Wrote results to {output_csv} ({len(out_df)} rows)") | |
| if __name__ == '__main__': | |
| inp = os.path.join(ROOT, 'eval_queries.csv') | |
| out = os.path.join(ROOT, 'eval_with_timing_results.csv') | |
| print(f"Input: {inp}\nOutput: {out}\nDevice: {ri.DEVICE}") | |
| predict_and_time(inp, out) | |