Spaces:
Sleeping
Sleeping
| import logging | |
| import json | |
| from param_mem.memory.parametric import ParametricMemory | |
| from param_mem.agent.agent_loop import ParamAgent | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| def run_evaluation(model_name: str = "TinyLlama/TinyLlama-1.1B-Chat-v1.0", lora_path: str = None, domain: str = "humaneval"): | |
| """ | |
| Evaluates the ParamMem agent dynamically on a given benchmark domain. | |
| Domains supported (mock implementation): humaneval, gsm8k, hotpotqa | |
| """ | |
| logger.info(f"Starting Evaluation on {domain.upper()} domain...") | |
| memory = ParametricMemory(base_model_name=model_name, lora_path=lora_path) | |
| agent = ParamAgent(memory_module=memory) | |
| # Mock dataset for demonstration | |
| mock_datasets = { | |
| "humaneval": ["def add(a, b):", "def is_prime(n):"], | |
| "gsm8k": ["John has 5 apples, gives 2 to Mary. How many?", "A train travels 60mph for 2 hours."], | |
| "hotpotqa": ["Who was the director of the movie starring Tom Hanks in 1994?"] | |
| } | |
| dataset = mock_datasets.get(domain, []) | |
| results = [] | |
| for problem in dataset: | |
| logger.info(f"Evaluating Problem: {problem}") | |
| result = agent.solve_task(problem, max_iterations=3) | |
| results.append({ | |
| "problem": problem, | |
| "success": result["success"], | |
| "iterations": result["iterations"] | |
| }) | |
| success_rate = sum([1 for r in results if r["success"]]) / len(results) if results else 0 | |
| logger.info(f"Evaluation Complete. Success Rate: {success_rate * 100:.2f}%") | |
| with open(f"./data/eval_results_{domain}.json", "w") as f: | |
| json.dump(results, f, indent=4) | |
| return success_rate | |
| if __name__ == "__main__": | |
| import argparse | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--model", type=str, default="meta-llama/Meta-Llama-3-8B-Instruct") | |
| parser.add_argument("--lora", type=str, default=None) | |
| parser.add_argument("--domain", type=str, choices=["humaneval", "gsm8k", "hotpotqa"], default="humaneval") | |
| args = parser.parse_args() | |
| run_evaluation(args.model, args.lora, args.domain) | |