# ACE Benchmarks Evaluate ACE performance with scientific rigor using our comprehensive benchmark suite. This evaluation framework tests Agentic Context Engineering (ACE) across multiple datasets with automatic metrics, train/test splits, and overfitting analysis to ensure honest performance measurements. ## Quick Start ```bash # List available benchmarks uv run python scripts/run_benchmark.py list # Run ACE evaluation with train/test split (default) uv run python scripts/run_benchmark.py finer_ord --limit 100 # Run baseline only (no ACE learning) uv run python scripts/run_benchmark.py simple_qa --limit 50 --skip-adaptation # Compare baseline vs ACE side-by-side uv run python scripts/run_benchmark.py hellaswag --limit 50 --compare ``` ## Available Benchmarks | Benchmark | Description | Domain | Default Limit | |-----------|-------------|---------|---------------| | **finer_ord** | Financial Named Entity Recognition | Finance | 100 | | **simple_qa** | Question Answering (SQuAD) | General | 200 | | **simple_math** | Math Word Problems (GSM8K) | Mathematics | 100 | | **mmlu** | Massive Multitask Language Understanding | General Knowledge | 500 | | **hellaswag** | Commonsense Reasoning | Common Sense | 200 | | **arc_easy** | AI2 Reasoning Challenge (Easy) | Reasoning | 200 | | **arc_challenge** | AI2 Reasoning Challenge (Hard) | Reasoning | 200 | ## Command Options ```bash uv run python scripts/run_benchmark.py [options] ``` **Key Options:** - `--limit` - Override sample limit (always overrides config) - `--model` - Model name (default: gpt-4o-mini) - `--skip-adaptation` - Skip ACE learning (faster baseline) - `--compare` - Run both baseline and ACE, then compare results - `--epochs` - ACE adaptation epochs (default: 1) - `--split-ratio` - Train/test split ratio (default: 0.8) - `--online-mode` - Use continuous learning instead of offline - `--prompt-version` - Use v1 or v2 prompts (default: v1) - `--save-detailed` - Save per-sample results - `--quiet` - Suppress progress output ## Examples ```bash # Quick test with 10 samples uv run python scripts/run_benchmark.py finer_ord --limit 10 --quiet # Compare baseline vs ACE uv run python scripts/run_benchmark.py simple_qa --limit 50 --compare # Full ACE evaluation with v2 prompts uv run python scripts/run_benchmark.py simple_qa --epochs 3 --prompt-version v2 --save-detailed # Online learning mode uv run python scripts/run_benchmark.py hellaswag --limit 100 --online-mode # Custom train/test split (90/10) uv run python scripts/run_benchmark.py mmlu --limit 100 --split-ratio 0.9 # Test all benchmarks quickly (baseline only) for benchmark in finer_ord simple_qa hellaswag arc_easy; do uv run python scripts/run_benchmark.py $benchmark --limit 5 --skip-adaptation --quiet done ``` ## Output Results saved to `benchmark_results/` with format: - **Summary**: `{benchmark}_{model}_{timestamp}_summary.json` - **Detailed**: `{benchmark}_{model}_{timestamp}_detailed.json` (if `--save-detailed`) ## Adding Custom Benchmarks Create `benchmarks/tasks/my_benchmark.yaml`: ```yaml task: my_benchmark version: "1.0" data: source: huggingface dataset_path: my/dataset split: test limit: 100 metrics: - name: exact_match weight: 1.0 metadata: description: "My custom benchmark" domain: "my_domain" ``` ## Evaluation Modes The benchmark script supports three evaluation modes: 1. **ACE Mode (default)**: Train/test split with learning ```bash uv run python scripts/run_benchmark.py simple_qa --limit 100 ``` 2. **Baseline Mode**: No learning, direct evaluation ```bash uv run python scripts/run_benchmark.py simple_qa --limit 100 --skip-adaptation ``` 3. **Comparison Mode**: Runs both baseline and ACE, shows improvement ```bash uv run python scripts/run_benchmark.py simple_qa --limit 100 --compare ``` ## Key Features - **Overfitting Prevention**: Automatic 80/20 train/test splits ensure true generalization metrics - **Scientific Rigor**: Comprehensive evaluation modes with honest performance analysis - **Multiple Domains**: Finance, general knowledge, reasoning, math, and common sense benchmarks - **Flexible Configuration**: Customizable limits, models, and evaluation parameters - **Performance Tracking**: Detailed results with per-sample analysis options ## Notes - **Default 80/20 train/test split** prevents overfitting and shows true generalization - The `--limit` parameter always overrides config file limits - ACE adaptation improves performance through iterative learning - Use `--compare` to see baseline vs ACE improvement side-by-side - Overfitting warnings help identify when ACE memorizes vs generalizes - Opik tracing warnings ("Failed to log adaptation metrics") are harmless