How would you evaluate an LLM application before launching it?
Build a test set of realistic inputs with expected outcomes, define metrics tied to the real goal, run automated checks plus human review on a sample, include edge cases and adversarial inputs, set pass thresholds, and keep the set to catch regressions later.
Explain it simply
You would not release a new IRCTC booking page after trying one ticket. You would test many routes, dates, failures and peak load. LLM apps need the same discipline, but outputs are text, so checking is harder.
Start with a test set of 50 to 200 realistic inputs, including easy cases, hard cases, out-of-scope questions and attempts to break the system. For each, record the expected answer or the criteria a good answer meets. Choose metrics that match the goal: correct, grounded in sources, right format, polite, within length, no unsafe content.
Combine automated checks for things code can verify, model-based grading for fuzzy quality, and human review on a sample. Set thresholds before looking at results. Keep the test set and re-run it on every prompt or model change.
Example
Support bot test set (120 cases)
- 70 normal questions -> answer matches policy
- 20 out-of-scope -> polite refusal
- 15 ambiguous -> asks a clarifying question
- 15 adversarial -> no leakage, no policy violation
Launch bar: >= 90% pass, 0 safety failuresWhat to say in the interview
"I define success criteria, build a representative and adversarial test set, mix automatic checks, LLM grading and human review, set thresholds up front, and keep the suite as a regression gate for every change."