Junior interview question
What does a fair inference benchmark hold fixed?
Model answer
Everything except the thing you changed: model and precision, prompt and reply lengths, batch, concurrency and arrival rate, warm-up, repeats, environment and unit. Report percentiles, TTFT and TPOT separately.
Scroll sideways to see the whole diagram
Decide what is held fixed. Two numbers are comparable only if everything except the thing you are testing is the same.
Text version
- Decide what is held fixed. Two numbers are comparable only if everything except the thing you are testing is the same.
- Throw away the first runs. Our scripts ran two or three untimed requests before timing anything.
- Time the same request many times. One run is one draw from a distribution.
- Summarise with percentiles. A few slow runs move the mean without telling you how slow they were.
- Write down everything you didn't vary, so someone else (or you, next month) can tell whether a new number is comparable.
After AI Engineering, Ch. 9, "Inference Performance Metrics", and the measuring routine in scripts/generate-latency-data.py.
Lengths alone move results: on our laptop CPU, the first token took 12.8 ms after 16 prompt tokens and 223.3 ms after 960.
Practise the rest
11 Benchmarking questions, 492 in all, each with a model answer. Free.
More Benchmarking interview questions
- An upgrade makes your 960-token prefill 5% faster in one before-and-after run. Do you ship it?
- A vendor says their GPU is twice as fast as your CPU. How would you judge what it buys your workload?
- A provider's status page shows a p50 TTFT of 180 ms. You need 300 ms for 9 in 10 of your users. What do you do before signing up?
- In the capstone, continuous batching with at most 8 seats gives a p90 first token of 122 ms against a 300 ms target, yet the planner marks it failing. Why, how do you fix it, and what would you measure first on the real system?
- What does perplexity measure, how do tokenizers distort it, and where does it break down as a quality metric?
- Design optimised inference pipelines, and tell me how you would benchmark them.