Sa-m's picture
Upload folder using huggingface_hub
0279c66 verified
Raw
History Blame Contribute Delete
2.16 kB
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)