Generating Synthetic Evaluation Data for RAG
LLM-generated test questions, the bias they carry, and the checks that make them usable.
Synthetic evaluation data for RAG is a machine-generated set of question–context–answer triples built from your corpus so you can score retrieval and generation without waiting on a fully human-labelled set. It is silver until a human verifies it — not a replacement for a golden test set. This page covers how generators build those triples, which question types they produce, the bias they carry, and the checks that make them usable.
Why generate synthetic RAG test questions?
Synthetic RAG test questions exist because labelled domain triples are slow and expensive — especially on private or regulated corpora — while knowledge bases drift faster than humans can relabel (Red Hat Developer, Synthetic data for RAG evaluation, Feb 2026; FutureAGI, Synthetic RAG Datasets, 2026). Without known ground-truth context, a failure is hard to assign to retrieval versus generation.
Three jobs dominate what teams use the data for:
- CI regression breadth — the same gated set on every deploy, so a chunking or embedding change that drops recall fails the build before traffic sees it (FutureAGI 2026; see regression testing).
- Offline experimentation — A/B chunkers, embeddings, retrievers, and rerankers against a stable labelled file (FutureAGI 2026; TheDataGuy, Generating Test Data with Ragas, 2025).
- Drift priming — pair synthetic breadth with sampled production queries so the eval set tracks real language, not only generator style (FutureAGI 2026; route production mining to online evaluation).
Ragas’s own documentation claims synthetic generation can reduce developer time in the data-aggregation process by 90% (Ragas docs, Synthetic Test Data generation, v0.1 concepts) — treat that as a vendor figure, not an independent benchmark.
How is synthetic RAG test data generated?
Synthetic RAG test data is generated by grounding an LLM in your documents, drafting extractive question–answer pairs from chunks, then evolving those questions into harder forms while keeping the source passages as retrieval ground truth. The libraries differ in API shape; the stage sequence is shared.
The common pipeline looks like this:
- Load and chunk the corpus. Documents become nodes or passages (Ragas default transforms use a sentence chunker and embeddings — TheDataGuy 2025).
- Build a retrieval-ready structure. Ragas builds a knowledge graph with summaries, headlines, themes, and similarity links between nodes (TheDataGuy 2025; Ragas stable getstarted, KnowledgeGraph Creation). Red Hat’s SDG Hub RAG evaluation flow starts with topic extraction from a document outline (Red Hat Developer, Feb 2026).
- Draft base QA. An LLM writes questions whose answers are present in a cited chunk — the chunk citation is the retrieval label (FutureAGI document-grounded QA; Ragas QAGenerator).
- Evolve or synthesise harder queries. Simple questions are rewritten for reasoning, conditioning, multi-context, or multi-hop needs (Ragas evolution paradigm; Red Hat “question evolution”).
- Filter for groundedness. Drop pairs whose answers are not supported by the cited context (Red Hat groundedness filtering; ARES-style round-trip consistency is noted in van Elburg et al., 2025, related work).
Libraries that ship this pattern include Ragas’s TestsetGenerator, DeepEval’s synthesizer, LlamaIndex dataset generators, and Red Hat’s SDG Hub flow. Which tool to buy or pin is on evaluation tools compared; Ragas’s assumptions live on Ragas explained.
What question types do synthetic generators produce?
Synthetic generators produce a mix of easy extractive questions and harder multi-hop, reasoning, conditional, and adversarial forms — a set of only surface questions inflates scores and hides production failures (FutureAGI 2026 pitfalls; Pixion, RAG in practice — Test Set Generation, 2024).
Ragas’s evolution / synthesizer families (documented in Ragas v0.1 concepts and used in Pixion’s 2024 run) name four recurring types:
- Simple — direct, fact-based questions whose answer sits in one chunk.
- Reasoning — rewrites that require inference beyond a single span.
- Multi-context — questions that need information from more than one related section.
- Conditional — questions that introduce an if/then constraint.
FutureAGI’s 2026 method list adds the production-shaped variants most Ragas tutorials under-specify: multi-hop synthesis across linked chunks, adversarial cases (negation, ambiguity, contradictory evidence, out-of-corpus refuses), persona-based simulation through a live stack, and distillation of ground-truth answers onto real production queries. FutureAGI’s guidance for a serious set is to include adversarial coverage on the order of 10–20% of cases (FutureAGI 2026) — verify that mix against your own failure modes rather than treating it as a universal quota.
What bias does synthetic RAG evaluation data carry?
Synthetic RAG evaluation data systematically underestimates task difficulty and can favour the style of the generator model — so it can rank retriever configurations usefully while misleading comparisons of generator architectures (van Elburg, van der Putten & Marx, Can we Evaluate RAGs with Synthetic Data?, arXiv:2508.11758, 2025).
On four datasets (SQuAD, ASQA, and two proprietary corpora), the authors compared rankings from human benchmarks to rankings from naive synthetic QA (GPT-4o, temperature 0.7, no round-trip filter). Experiment A varied retrieval settings with a fixed generator; Experiment B varied generator models with fixed retrieval. Published mean Kendall’s τ (perfect agreement = 1.0, inversion = −1.0):
| Setting | What moved | Published signal |
|---|---|---|
| Experiment A (retrieval) | Top-k / similarity threshold | Dataset mean τ: ASQA 0.75, Launchpad 0.66, Sales 0.56, SQuAD 0.44. BLEU mean across datasets 0.84; Context Precision mean only 0.08. |
| Experiment B (generators) | GPT-3.5 / GPT-4o / Llama-7B-instruct / Claude-3-Haiku vs baseline | Dataset mean τ: SQuAD 0.29, ASQA 0.05, Launchpad −0.07, Sales −0.33. BLEU mean −0.35. |
The paper’s explanation matches what practitioners see in the wild: synthetic questions are often more specific and technical than real user questions (task mismatch), surface overlap with source chunks is higher (so retrieval looks easier), and because GPT-4o wrote the synthetic set there is a risk of stylistic self-preference when GPT-4o is also a candidate generator (van Elburg et al. 2025 §6.1). FutureAGI’s pitfall list names the same failure modes in engineering language: wording leakage (the question copies the chunk), all-easy sets, single-generator bias, skipping the human spot-check, and evaluating on synthetic data only (FutureAGI 2026). Judge-side biases when an LLM scores answers are a separate node — LLM-as-a-judge. Public leaderboard transfer problems sit on RAG benchmarks.
How do you validate synthetic RAG test questions?
Ungated synthetic triples miscalibrate evaluation scores — every production-bound set needs faithfulness, diversity, difficulty balance, and a human spot-check before you trust the numbers (FutureAGI 2026). Automated filters catch many bad pairs; they do not replace the spot-check.
FutureAGI’s four gates, with their published targets (guidance from that vendor, not universal laws):
- Faithfulness — every synthetic answer must be supported by its cited context; reject triples that invent facts. FutureAGI’s stated target is faithfulness above 0.9 on the generated set (FutureAGI 2026). How the meter is computed is on generation metrics.
- Diversity — cluster question embeddings; FutureAGI’s target is that no cluster holds more than 15% of questions (FutureAGI 2026).
- Difficulty — tag easy / medium / hard and rebalance; FutureAGI’s target is at least 30% medium and 20% hard (FutureAGI 2026). Ragas evolution heuristics exist specifically to push difficulty beyond the extractive default (Ragas docs).
- Human spot-check — review a sample; FutureAGI’s guidance is 5–10% of triples with acceptance above 95% before locking the set (FutureAGI 2026). Promoted survivors become gold on building a golden test set.
Groundedness filters are not optional
Red Hat’s SDG Hub flow drops low-groundedness pairs before export (Red Hat Developer, Feb 2026). ARES’s related-work pattern keeps only questions that round-trip to their source chunk via semantic search (cited in van Elburg et al. 2025). Skipping that filter is exactly the “naive synthetic” baseline the reliability paper measured.
When is synthetic data enough for RAG evaluation?
Synthetic data is enough for broad CI retrieval regressions when the set is gated and task-aligned with real queries; it is not enough alone to crown a generator model or to replace human calibration and production sampling (van Elburg et al. 2025; FutureAGI 2026).
The workable pattern as of the 2026-07-27 teardown:
- Use gated synthetic for breadth and CI — especially when comparing retrievers, chunkers, and embedding choices (van Elburg Experiment A; FutureAGI CI gating; wire asserts on regression testing).
- Keep human gold for calibration anchors — FutureAGI’s FAQ is explicit that synthetic cannot fully replace human-labelled data; their stated pattern pairs synthetic breadth with human calibration on the order of 100–300 traces (FutureAGI 2026 FAQ — verify against your slices). Schema and honesty ops live on golden test sets.
- Sample production for drift — synthetic alone misses query-distribution shift (FutureAGI pitfall 5; Red Hat closed-loop workflow) — see online evaluation.
If a decision hinges on which generator architecture wins, run the comparison on human-labelled or heavily spot-checked data — that is exactly where van Elburg et al. (2025) found synthetic rankings unreliable.
What is synthetic evaluation data for RAG?
Synthetic evaluation data for RAG is a machine-generated set of question–context–answer triples built from your documents so you can score retrieval and generation without a fully human-labelled set. The cited context is the retrieval ground truth; the reference answer is the generation ground truth. Until a human verifies the triples, treat them as silver, not gold.
Can synthetic data replace human-labelled RAG tests?
No. Synthetic data is faster and easier to balance across topics and difficulty, but human-labelled cases remain the calibration anchor — and production samples catch query drift that generators miss. The workable pattern is gated synthetic for CI breadth, human gold for calibration, and sampled production for drift. FutureAGI’s 2026 FAQ states the same limit explicitly.
How does Ragas generate a test set?
Ragas loads documents, builds a knowledge graph (chunks, embeddings, filters, base QA), then runs query synthesizers — simple, reasoning, multi-context, conditional, and related variants — to evolve harder questions while keeping reference contexts. The library entry point is TestsetGenerator; distribution knobs control how many of each type you get. Package assumptions and metrics are covered on the Ragas profile page.
What quality checks should synthetic RAG questions pass?
Four gates recur in production guidance: faithfulness (answer supported by cited context), diversity (questions not clustered on one topic), difficulty balance (not only easy extractive items), and a human spot-check of a sample before you lock the set. Groundedness or round-trip filters should drop ungrounded pairs before export. Scoring the live system against the set is a separate step on the metrics pages.
When do synthetic benchmarks mislead?
Synthetic benchmarks mislead when you use them to crown generator architectures, when questions copy chunk wording (retrieval looks artificially strong), when the set is all easy, when one generator’s style dominates, or when you never sample production. van Elburg et al. (2025) found synthetic rankings aligned with human rankings for retrieval tuning but broke for generator comparisons — task mismatch and stylistic bias are the usual causes.