---
name: skill-llm-evaluation
description: Decision framework for choosing the right LLM evaluation strategy based on task type, budget, and requirements
version: 1.0.0
phase: 10
lesson: 10
tags: [evaluation, evals, benchmarks, llm-as-judge, elo, metrics]
---

# LLM Evaluation Strategy

When evaluating an LLM system, apply this decision framework to choose the right approach.

## When to use each eval type

**Benchmarks (MMLU, HumanEval, SWE-bench):** You are doing initial model selection. You need to narrow 10 candidate models to 3. Benchmarks give rough ranking at zero cost. Do not use benchmarks as your final evaluation.

**Custom evals:** You are building for production. You have a specific task with specific failure modes. Custom evals are the only evaluation that predicts real-world performance. Minimum 50 test cases for prototype, 200+ for production.

**LLM-as-judge:** Your task is open-ended (summarization, writing, conversation). Exact match and token overlap metrics are too rigid. LLM-as-judge costs ~$0.01 per judgment and agrees with humans ~80% of the time. Always use a rubric, not a vague prompt.

**Human evals:** The stakes are high and automated metrics disagree. Human eval is the ground truth but costs $0.10-$2.00 per judgment. Reserve for ambiguous cases and periodic calibration of automated metrics.

**ELO from pairwise comparisons:** You are comparing multiple models on the same task. Pairwise is more reliable than absolute scoring because humans (and LLM judges) are better at relative judgments.

## Scoring function selection

- **Exact match**: classification, entity extraction, structured outputs with known answers
- **Token F1**: extraction tasks where partial credit matters
- **ROUGE-L**: summarization, translation
- **BLEU**: machine translation
- **LLM-as-judge**: open-ended generation, conversational quality, helpfulness
- **Execution-based**: code generation (run the code, check if tests pass)
- **Schema compliance**: structured outputs (does the JSON match the schema?)

## Red flags in eval design

- Eval set smaller than 50 cases: results are statistically meaningless
- No edge cases: you are measuring happy-path performance, which is always higher than real-world
- Single metric: different metrics tell different stories, use at least two
- No versioning: you cannot track improvement without versioned eval sets
- Eval set contamination: never include eval examples in fine-tuning data or few-shot prompts
- Testing only one model: you need a baseline (even a simple heuristic) for comparison

## Eval pipeline checklist

1. Define the task precisely (not "answer questions" but "classify support tickets into 5 categories")
2. Create test cases across happy path, edge cases, and known regressions
3. Select 2-3 scoring functions appropriate for the task type
4. Set pass/fail thresholds based on production requirements
5. Automate execution: one command runs the full suite
6. Version everything: test cases, scoring functions, prompts, model versions
7. Run on every change: prompt updates, model swaps, code deployments
8. Track trends: a single score is noise, a trendline is signal
9. Calibrate against human judgment quarterly
10. Add regression cases whenever a production failure is discovered
