Start from a decision, not a metric
Good evaluation begins with a question you must answer: should we ship this model, pick A over B, or roll back yesterday's change? Name the decision first, and the metrics fall out of it. A coding tool cares about test-pass rate and latency; a medical assistant cares about factuality and refusal of unsafe advice. There is no universal eval — only the right eval for this decision.
Capability and safety are two different questions
Hold the capability-versus-safety split firmly. Capability evals ask 'can it do the job?' and reward more ability. Safety evals ask 'does it stay in bounds?' and reward appropriate refusal. You cannot collapse them into one score, because they pull in opposite directions — a model that refuses everything aces safety and fails capability.
Safety evaluation also needs adversaries. Red-teaming actively hunts for prompts that break the model's guardrails, and dangerous-capability evaluations probe specifically for skills that would be harmful if misused. A static safety benchmark that only tries polite inputs will badly overstate how safe your model really is.
Diagram: human preference comparisons train a reward model that tunes the policy.
Holistic, not a single number
Mirror the holistic evaluation idea at your own scale. Report a small dashboard, not one figure: a capability score, a safety score, a cost-and-latency number, and a robustness check. Showing the trade-offs lets a human make the call deliberately, instead of a single average quietly choosing for them — and it surfaces the case where a model wins on quality but loses on cost.
If your product uses retrieval, fold in RAG evaluation too: measure not just the final answer but whether the right documents were retrieved and whether the answer is actually grounded in them. A pipeline can give a great answer for the wrong reason — and that is exactly the failure that bites later.
Pipeline: a query retrieves documents that are fed with the prompt into the model to generate an answer.
Evaluation-driven development
For products, treat evaluation like a test suite. Evaluation-driven development means writing eval cases before you tweak a prompt or swap a model, then running them on every change to catch regressions. Build the suite from real, messy production traffic — not just tidy textbook inputs — and grow it every time a user finds a failure you missed. This is the heart of practical LLM product evaluation.
Lifecycle loop: data, train, deploy, monitor for drift, retrain.
A checklist for evaluations you can trust
- Name the decision the evaluation will inform, and the metrics that map to it.
- Cover both capability and safety; run red-team and dangerous-capability probes, not just polite inputs.
- Use held-out or freshly built data to avoid contamination, and keep headroom so the test is not saturated.
- Pin the protocol — prompt, decoding, parser, harness version — so results are reproducible.
- If you use an LLM judge, validate it against human labels and control for position and length bias.
- Report a small holistic dashboard, and grow the suite from every real production failure.