LLM Evaluation & Quality Engineering
Turn "it seems better" into a number. I build evaluation harnesses, labelled test sets and CI gates so you can change an LLM system without breaking it.
- Typical duration
- 4–8 weeks
- Investment
- from €38,000
- Team
- One senior engineer plus an evaluation specialist
Short answer
Rubra builds LLM evaluation systems: labelled test sets drawn from real usage, task-specific metrics for retrieval and generation quality, LLM-as-judge pipelines calibrated against human raters, and regression gates in CI. The result is that every prompt, model or retrieval change ships with evidence rather than a hunch.
Last reviewed
Teams ship LLM changes the way they shipped code in 2004: someone tries a few prompts, it looks better, it goes out. Then a user finds the case where it now confidently states the opposite of the policy document, and nobody can say when that broke or which change caused it.
Evaluation is what turns an LLM feature into an engineering artefact.
The three layers
Retrieval evaluation
Deterministic, fast and cheap. Given a question and the passage that answers it, does the retriever return that passage in the top k results? This one measurement catches the majority of what teams misdiagnose as “hallucination”. If the right passage never reaches the model, no amount of prompt engineering will fix the answer.
Generation evaluation
Given the retrieved context, is the answer supported by it? Are the citations real and do they point at the passage that actually contains the claim? Did the system complete the task the user asked for, or answer a nearby question? These need a mix of deterministic checks and judgement.
Online evaluation
Offline sets go stale. Real users ask things nobody anticipated, and the distribution of questions drifts as the product changes. I wire in feedback capture, sample production traffic for review, and monitor for the drift that tells you the offline set needs refreshing.
Calibrating the judge
Using a language model to grade another language model is practical and, done carefully, reliable. Done carelessly it produces confident numbers that mean nothing.
I calibrate: human raters score a stratified sample, the judge scores the same sample, and I report the agreement. Where agreement is strong, the judge runs unsupervised in CI. Where it is weak, I say so and keep humans in the loop rather than reporting a metric I do not trust. The agreement rate itself is a deliverable, because it tells you how much weight the gate deserves.
What this unlocks
Once evaluation exists, several things become possible that were not before. You can switch models on evidence rather than vendor marketing. You can let more engineers touch the prompts, because the gate catches mistakes. You can answer an auditor asking how you know the system performs as claimed. And you can tell the difference between a change that helped and a change that felt like it helped.
For clients under the EU AI Act, this layer also does double duty: the accuracy and robustness testing that Article 15 expects is largely the same evidence a good evaluation harness produces anyway.
What you get
- Labelled evaluation set built from real user queries
- Retrieval metrics: recall@k, MRR, nDCG against known-correct passages
- Generation metrics: groundedness, citation accuracy, task completion
- LLM-as-judge pipeline calibrated against human raters
- CI integration with pass/fail gates and trend dashboards
- Online evaluation: user feedback capture and drift monitoring
Outcomes
- Every change measured before it reaches users
- Regression caught in CI, not in production
- A defensible quality record for auditors and regulators
Frequently asked questions
How do you evaluate an LLM system objectively?
By splitting the problem. Retrieval is evaluated against known-correct passages using recall@k, mean reciprocal rank and nDCG, all of which are deterministic and cheap to run. Generation is evaluated on groundedness, citation accuracy and task completion, using a mix of deterministic checks and an LLM judge calibrated against human ratings on a sample. The calibration step is what makes the judge trustworthy. Without it you have a second opinion with no error bars.
How many test cases do we need?
Fewer than most teams assume. A well-chosen set of 150 to 300 cases, stratified across question types and difficulty, detects meaningful regressions reliably. Thousands of cases scraped without curation are worse than a few hundred chosen deliberately, because they cluster on easy queries and hide failures in the tail that actually matter.
Is LLM-as-judge reliable enough for production gates?
It is once you calibrate it. I measure agreement between the judge and human raters on a held-out sample, report the agreement rate honestly, and only use the judge for the metrics where agreement is high enough to act on. Where agreement is poor, which is usually on subjective quality rather than factual grounding, a human stays in the loop and I say so rather than pretending the number means something.
Can you evaluate a system you did not build?
Yes. Roughly half of my evaluation work is on systems built in-house or by another supplier. I often start with an audit: run a fresh evaluation set against the current system and report where it actually stands, which is frequently the first honest measurement the team has had.
Get a straight answer on your AI roadmap
A 30-minute call with the engineer who would do the work, not a salesperson. You will get an honest read on what is worth building, what is not, and roughly what it costs.
No NDA needed to talk. EU and UK hours in full, with afternoons overlapping US Eastern and Central.