Agent Assurance for your AI Deployment
Test how your agents actually behave across workflows, tools, and actions. Catch failures and vulnerabilities before they ship.
npm install -g @testmuai/rook
- TestMu AI (Formerly LambdaTest)
- /
- Learning Hub
- /
- Datasets for Training and Evaluating RAG Models Compared
Datasets for Training and Evaluating RAG Models Compared
Compare 19 public datasets for training and evaluating RAG models by license, splits and size, then check their hidden test labels, imbalance and contamination.
Published on:
OVERVIEW
A script run on 2026-10-20 opened the test split of the HotpotQA dataset on the Hugging Face Hub and found all 7,405 answers empty. The v2.1 test split of the MS MARCO dataset had the same gap across 101,092 queries, so a RAG score computed on either split measures nothing.
Hidden test labels are one trap among several in public datasets for training and evaluating RAG models. Split names that do not match a set's purpose, unbalanced question types, contamination and non-commercial licenses distort results without raising any error.
The comparison below covers 19 sets: that script read license, split and size figures for 17 of them from the Hub and the licenses of the other 2 from GitHub. It then shows how to check each trap before you report a number.
Overview
Train RAG retrievers and readers on public sets with real train splits, such as MS MARCO and HotpotQA. Evaluate on held-out sets built for one skill, such as FRAMES for multi-hop questions or MultiHop-RAG for questions a corpus cannot answer. Of 17 Hugging Face sets read on 2026-10-20, 13 had a split named train.
Which RAG Dataset Fits Which Job?
- Training a retriever or reranker: MS MARCO fits non-commercial work, because its v2.1 config on the Hugging Face Hub holds about 809,000 training queries listed with candidate passages flagged as selected or not, though all 101,092 v2.1 test rows have empty answers.
- Multi-hop evaluation: FRAMES is an evaluation-only set with no train split, and the FRAMES dataset card describes "824 challenging multi-hop questions requiring information from 2-15 Wikipedia articles".
- Refusal testing on a news corpus: MultiHop-RAG pairs 2,556 queries with news published from September 26, 2023, to December 26, 2023, and 301 of those queries, 11.8%, are null queries whose answer is not in the corpus.
- Hallucination detection: The test split of RAGTruth's processed copy on Hugging Face holds 2,700 responses from 6 models, and a span count found a hallucination in 64.3% of data-to-text responses but only 17.8% of question-answering responses.
- Fast-changing facts: CRAG is an evaluation-only set of 4,409 question-answer pairs across five domains, distributed through GitHub rather than as a Hub dataset. Its authors report advanced LLMs at 34% accuracy or less on their own, rising only to 44% with straightforward RAG.
- Is CRAG licensed for commercial use?: No. CRAG is a non-commercial set, so a team building a commercial RAG product needs another source for fast-changing facts.
- TestMu AI Agent Assurance for agents that act on retrieved documents: TestMu AI's Agent Assurance, whose Rook CLI is pre-alpha software anyone can install, puts those agents through generated scenarios against a staging deployment or inside CI and settles each criterion as Pass, Fail or Unable to Verify from evidence.
Checks Before You Trust a RAG Score
- Does the HotpotQA fullwiki test split include answers?: No, all 7,405 HotpotQA fullwiki test rows on the Hugging Face Hub have empty answers, so score HotpotQA on its validation split instead.
- Is MS MARCO licensed for commercial use?: No, Microsoft's MS MARCO page says the datasets are intended for non-commercial research purposes only, and the Hugging Face copy of MS MARCO carries no license tag.
- Are public RAG evaluation datasets balanced?: No, IBM Research's Know Your RAG paper labeled 53.4% of sampled HotpotQA questions as unanswerable from their single positive context and only 0.2% as summary questions.
- How many of the 17 Hub datasets have a train split?: 13 of the 17 datasets read from the Hugging Face Hub on 2026-10-20 have a split named train, though MultiHop-RAG and TechQA-RAG-Eval keep evaluation sets in it.
- Which Hub datasets carry no license tag?: ms_marco, PopQA and RAGTruth carry no license tag on the Hugging Face Hub, so check each source site before any commercial use.
What Makes a Dataset Useful for Training or Evaluating a RAG Model?
A RAG dataset is useful when it lets you score the retriever and the generator separately. That needs a corpus to search, questions, labels that say which passages answer each question, and reference answers, and most public datasets for training and evaluating RAG models ship only some of these parts.
- Corpus - the documents the retriever searches. MultiHop-RAG ships its news articles as a separate corpus config, while nq_open ships questions and answers only, so you supply the Wikipedia passages.
- Questions - written by crowdworkers, drawn from search logs, built from templates (PopQA turns each Wikidata fact into a question) or generated by a model.
- Relevance labels - the passages that answer each question, which make retrieval recall and precision computable. MS MARCO flags each of a query's candidate passages as selected or not.
- Reference answers - the expected output, plus an explicit label when no answer exists, as in SQuAD 2.0.
Relevance labels also give you a baseline to beat. The BEIR benchmark paper collected 18 publicly available retrieval datasets and reports that "BM25 is a robust baseline", so run BM25 on the same questions before you trust a dense retriever's number.
Which parts you need depends on the score. The formulas on the RAG evaluation metrics hub show which scores need a reference answer and which need only the retrieved context.
Which RAG Datasets Have Training Splits and Which Are Evaluation Only?
Training data teaches a retriever, a reranker or a generator; evaluation data is held out to measure it. In Dense Passage Retrieval, Karpukhin and co-authors trained a retriever whose "embeddings are learned from a small number of questions and passages" and beat a Lucene BM25 system by 9% to 19% absolute on top-20 passage retrieval accuracy.
Generators can be trained for retrieval too. RAFT trains a model with distractor documents in its context and reports gains "across PubMed, HotpotQA, and Gorilla datasets", so one public set can train a model in one project and evaluate a different model in another, but it should never do both for the same model.
Split names on the Hub do not always say which job a set was built for:
- Evaluation sets published as train - in the script's output, MultiHop-RAG's 2,556 queries and TechQA-RAG-Eval's 910 rows sit in a split named train, although both cards describe evaluation sets.
- One split, three sources - PubMedQA has "1k expert-annotated, 61.2k unlabeled and 211.3k artificially generated QA instances", and on the Hub each of its three configs keeps all of its rows in a split named train; only the 1,000 expert rows carry human labels.
- Test splits with no answers - HotpotQA fullwiki, MS MARCO v2.1 and TriviaQA rc publish test questions without answers, so score them on validation and carve your own holdout from train.
- Two configs, same questions - HotpotQA's distractor and fullwiki configs each hold 90,447 training rows in the dataset viewer's size data the script read, the same questions with different contexts, so adding both counts every question twice.
Never fine-tune on a split you report a score on, and treat a set that has only one split as evaluation data unless its card says otherwise.
How Do Public RAG Datasets Compare on License, Size and Splits?
A Node.js script, run on 2026-10-20, read each set's card from the Hugging Face Hub API and its rows per config and split from the Hugging Face dataset viewer API, caching every response. Its core loop:
const hub = 'https://huggingface.co/api/datasets/';
const dsv = 'https://datasets-server.huggingface.co';
for (const [name, id, config] of sets) {
const card = await getJson(hub + id);
const size = await getJson(dsv + '/size?dataset='
+ encodeURIComponent(id));
// license: card.cardData.license
// gated, lastModified: card.gated, card.lastModified
// rows: size.size.splits for one config, or summed
// over every config for the sets marked +
}The output below is the script's own. The license column is the card's license tag, and rows come from one config per set, except KILT, RAGBench, ChatRAG-Bench and PubMedQA (marked +), whose configs are separate tasks or sources and are added together. FEVER's rows come from its card because the dataset viewer returned no size for it, and its paper_dev and paper_test splits are left out of the other column because they re-split its labelled_dev rows:
Hugging Face Hub, read 2026-10-20
name license cfg train other updated
ms_marco none 2 809k 202k 2024-01
nq_open BY-SA 3.0 1 88k 3.6k 2024-03
trivia_qa unknown 8 138k 35k 2024-01
squad_v2 BY-SA 4.0 1 130k 12k 2024-03
PopQA none 1 - 14k 2022-12
BEIR scifact BY-SA 4.0 2 - 1.1k 2026-04
KILT mit 11 3.1M 102k 2024-01+
hotpot_qa BY-SA 4.0 2 90k 15k 2025-08
FRAMES Apache 1 - 824 2024-10
MultiHopRAG ODC-BY 2 2.6k - 2024-01
ASQA Apache 1 4.4k 948 2022-09
FEVER BY-SA 3.0/GPL3 3 311k 78k 2024-01*
RAGTruth none 1 15k 2.7k 2024-11
RAGBench BY 4.0 12 73k 22k 2024-06+
ChatRAG-Bench other 11 - 35k 2024-05+
TechQA-RAG Apache 1 910 - 2025-05
PubMedQA mit 3 274k - 2024-03+
other = validation, dev, test and named eval splits
rows: one config; + = all configs added up
* rows from the dataset card (datasets-server had none)
Train split: 13 of 17; gated: 0; no license tag: 3
No license tag: ms_marco, PopQA, RAGTruth
Test splits checked for answers
hotpot_qa test 0 of 7405 have one (all rows)
ms_marco test 0 of 101092 have one (all rows)
trivia_qa test 0 of 500 have one (sampled rows)
GitHub-only sets (license from the GitHub API)
MTRAG Apache-2.0 pushed 2026-10-07
CRAG NOASSERTION pushed 2025-06-14Thirteen of the 17 Hub sets have a split named train, none is gated, and three carry no license tag. MTRAG and CRAG are distributed through GitHub rather than as Hub datasets, so the script read their licenses from the GitHub API. RAGBench now lives at galileo-ai/ragbench; the older rungalileo/ragbench id redirects there.
BEIR SciFact shows no train split only because the script read its corpus and query lists. Its train and test relevance labels sit in a separate Hub dataset, BeIR/scifact-qrels.
| Dataset | Family | What it tests | Use it for |
|---|---|---|---|
| MS MARCO | Retrieval | Passage ranking for web queries | Retriever and reranker training, non-commercial only |
| Natural Questions (nq_open) | Open-domain QA | Short answers to search queries | Retriever training and evaluation |
| TriviaQA | Open-domain QA | Trivia questions with evidence documents | Training; evaluate on validation |
| SQuAD 2.0 | Reading comprehension | Answer from one paragraph or abstain | Reader training and refusal checks |
| PopQA | Long-tail QA | Entity questions with page-view popularity | Memory versus retrieval checks |
| BEIR (SciFact) | Retrieval | Zero-shot retrieval outside the training domain | Retriever evaluation |
| KILT | Knowledge-intensive tasks | Outputs with provenance passages across 11 datasets and five task types | Training and evaluation |
| HotpotQA | Multi-hop | Questions that need two paragraphs | Training; evaluate on validation |
| FRAMES | Multi-hop | Several Wikipedia articles with reasoning labels | Evaluation only |
| MultiHop-RAG | Multi-hop | News corpus with null queries | Evaluation only |
| ASQA | Long-form QA | Ambiguous factoid questions with long answers | Training and evaluation |
| FEVER | Fact verification | Claims checked against Wikipedia | Training and evaluation |
| RAGTruth | Grounding | Word-level hallucination labels on RAG outputs | Hallucination detector training and evaluation |
| RAGBench | Grounding | RAG examples from industry-domain sources | Training and evaluation |
| ChatRAG-Bench | Multi-turn | Conversational QA over documents and tables | Evaluation only |
| MTRAG | Multi-turn | Human-written conversations with later-turn questions | Evaluation only |
| CRAG | Dynamic facts | Popular to long-tail entities, fast-changing facts | Evaluation only, non-commercial |
| TechQA-RAG-Eval | Domain | Technical support questions | Evaluation only |
| PubMedQA | Domain | Biomedical yes, no or maybe answers | Training on generated rows, evaluation on expert rows |
Which RAG Datasets Test Retrieval, Multi-Hop Reasoning, Grounding and Conversation?
Pick by the failure you need to catch, because no single family covers every RAG failure. The FRAMES dataset card describes "824 challenging multi-hop questions requiring information from 2-15 Wikipedia articles", while a retrieval set such as MS MARCO scores each query against its marked passages.
- Retrieval - MS MARCO, Natural Questions and BEIR score whether the right passage reaches the top results. Use them for retriever and reranker work, not to judge long-form or grounded answers.
- Multi-hop reasoning - HotpotQA, FRAMES and MultiHop-RAG, whose card puts the evidence for its 2,556 queries across 2 to 4 documents, although the null queries among them have no answer in the corpus. They catch a retriever that finds one fact and misses the second.
- Grounding and hallucination - RAGTruth labels hallucinated spans in model outputs, FEVER labels claims as supported, refuted or lacking enough information, and RAGBench packs 12 source-dataset configs into one Hub dataset in the script's output.
- Multi-turn conversation - the MTRAG paper says it "contains 110 conversations averaging 7.7 turns each across four domains for a total of 842 tasks" and calls for systems that can handle "unanswerable questions". ChatRAG-Bench is built from 10 existing conversational QA sets and tests unanswerable cases drawn from QuAC and DoQA.
- Dynamic and domain facts - CRAG has 4,409 question-answer pairs across five domains and eight question categories, and its authors report advanced LLMs at 34% accuracy or less on their own, rising only to 44% with straightforward RAG. TechQA-RAG-Eval and PubMedQA cover technical support and biomedicine.
A practical starting pair is one retrieval set for the retriever plus one multi-hop or grounding set for the full pipeline, chosen from the license table further down.
Why Are Public RAG Evaluation Datasets Unbalanced Across Question Types?
Each public set was built for its own research question, so its mix of question types follows that research question. IBM Research's Know Your RAG paper labels each question by what its context supports and states that "popular public Q&A datasets can be heavily unbalanced with respect to these labels". Its Table 3 gives the share of each label among 4,972 to 6,910 labeled questions per set:
| Dataset | Single fact | Reasoning | Summary | Unanswerable |
|---|---|---|---|---|
| HotpotQA | 42.9% | 3.4% | 0.2% | 53.4% |
| MS MARCO | 41.8% | 8.8% | 27.9% | 21.5% |
| Natural Questions | 68.9% | 5.6% | 9.9% | 15.6% |
| NewsQA | 83.0% | 1.8% | 3.6% | 11.7% |
| PubMedQA | 15.8% | 53.9% | 9.9% | 20.3% |
| SQuAD 2.0 | 68.2% | 2.2% | 2.4% | 27.1% |
The shares come from the authors' LLM labeler run on samples they preprocessed: each HotpotQA question kept a single positive context, which most of them cannot be answered from; PubMedQA rows came from its unlabeled subset and SQuAD 2.0 rows from its training set.
The same check on three evaluation sets came from a second script, also run on 2026-10-20, which read label counts from the dataset viewer and counted hallucination spans row by row in the test split of RAGTruth-processed, a processed copy of the RAGTruth corpus that the wandb organization publishes on Hugging Face. Its output, unedited:
FRAMES test: 824 questions
reasoning type (a question can have several)
Multiple constraints 549 66.6%
Numerical reasoning 293 35.6%
Temporal reasoning 278 33.7%
Tabular reasoning 236 28.6%
Post processing 107 13.0%
more than one type 403 48.9%
Wikipedia articles per question: median 3, max 23
questions needing 4 or more 225 27.3%
questions needing 16 or more 4 0.5%
MultiHopRAG: 2556 queries (split "train")
comparison_query 856 33.5%
inference_query 816 31.9%
temporal_query 583 22.8%
null_query 301 11.8%
RAGTruth test: 2700 responses, 6 models
task responses with a hallucination span
Summary 900 204 22.7%
Data2txt 900 579 64.3%
QA 900 160 17.8%
all 2700 943 34.9%- FRAMES - in the script's output, 48.9% of questions carry more than one reasoning label and only 13.0% need post-processing, so one accuracy number blends very different tasks. The script also found four questions that link more than 15 Wikipedia articles, above the 2 to 15 range the card gives.
- MultiHop-RAG - refusal behavior rests on the 301 null queries the script counted, so a small change in refusals moves the overall score.
- RAGTruth - in the script's span counts, a hallucination detector meets hallucinations in 17.8% of question-answering responses and 64.3% of data-to-text ones, so its score over the whole split depends on the task mix.
Report a score per label next to the overall number, and reweight the labels to the mix your own users send before comparing two pipelines.
How Does Contamination Inflate Scores on Public RAG Datasets?
Contamination means the model saw the questions or their source documents during pretraining, so it can answer without retrieving anything and the RAG score credits the retriever for the model's memory. The general case, with figures for model benchmarks, is covered in LLM benchmarks; for RAG sets the damage is that retrieval quality disappears from the number.
The FRAMES paper names "the potential for pretraining data contamination" as a limitation, since its questions come from Wikipedia. Its baseline reached 0.408 accuracy without retrieval and 0.66 with the authors' multi-step retrieval pipeline, so retrieval added the difference of 0.252, and the 0.66 on its own overstates what retrieval adds.
Popularity matters as well. The PopQA paper found that "unassisted LMs remain competitive in questions about high-popularity entities" across its 14k questions, while models "struggle with less popular factual knowledge".
Date windows help only for a while. The MultiHop-RAG paper picked news published from September 26, 2023, to December 26, 2023, because "This timeframe extends beyond the knowledge cutoff of some widely-used LLMs, including ChatGPT and LLaMA, as of the time of writing". A model trained after 2023 may have read those articles.
- Closed-book run - ask every question with retrieval off and report the RAG score next to it; a small gap means the set measures memory.
- Date check - compare the newest document in the set with the model's training cutoff, and prefer sets built after it.
- Popularity slices - split long-tail entities from popular ones, as PopQA's page-view field allows, and read retrieval gains on the long tail.
- Private slice - hold back questions written from your own corpus that never appear in prompts or fine-tuning data.
Which RAG Datasets Allow Commercial Use?
The license tag on a Hub card is metadata someone typed, and for several sets it disagrees with the card text or the source site, as read on 2026-10-20. A Creative Commons CC BY-SA 4.0 license, the tag on HotpotQA, SQuAD 2.0 and BEIR SciFact, allows use "for any purpose, even commercially", but "If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original".
| Dataset | License tag | What the source says | Commercial reading |
|---|---|---|---|
| MS MARCO | None | MS MARCO site: "intended for non-commercial research purposes only" | No |
| CRAG | NOASSERTION (GitHub API) | CRAG repository: CC BY-NC 4.0 | No |
| ChatRAG-Bench | other | ChatRAG-Bench card: "We refer users to the original licenses accompanying each dataset." | Check each source set |
| TriviaQA | unknown | TriviaQA card: "The University of Washington does not own the copyright of the questions and documents included in TriviaQA." | Unclear |
| RAGTruth (processed copy) | None | Card text: "This dataset is released under the MIT License." | Permissive per the text; tag missing |
| TechQA-RAG-Eval | apache-2.0 | TechQA-RAG-Eval card: "This dataset is ready for commercial/non-commercial use." | Yes |
| FEVER | cc-by-sa-3.0 and gpl-3.0 | Card text: annotations follow the Wikipedia article terms or "the Creative Commons Attribution-ShareAlike License (version 3.0)"; the gpl-3.0 tag is not explained | Check which applies to what |
Treat this table as a reading of the cards, not legal advice. Before a public set touches a commercial model or product, send the license from the dataset's source page to whoever approves licenses in your company, and record the version you used.
When Should You Build Your Own RAG Evaluation Dataset?
Build your own when your corpus is private, when your users ask a different mix than the public sets, when no license fits, or when the system acts on what it retrieves. Public sets stay useful as a second opinion; the decision gate should run on your questions and your documents.
Building, sizing and versioning a reviewed set is covered in the golden dataset hub. The additions below are specific to retrieval:
- Unanswerable questions - include questions your corpus cannot answer. SQuAD 2.0 added "over 50,000 unanswerable questions written adversarially by crowdworkers to look similar to answerable ones", and a strong system fell from 86% F1 on SQuAD 1.1 to 66% on SQuAD 2.0.
- A quota per question type - generate or collect questions per IBM label rather than with one prompt; the Know Your RAG authors found that questions from a simple prompt strategy were almost all single-fact.
- Reviewed synthetic questions - the FRAMES authors found a high proportion of hallucinated questions and answers when an LLM wrote them, and switched to human annotation.
- Gold passages tied to a corpus snapshot - store the document version each label points to, so a re-index does not break retrieval scores silently.
- Labels your metrics need - decide which Ragas metrics or other scores you will run before labeling, because some need a reference answer and some need only the retrieved context.
What Do RAG Datasets Miss When Agents Act on Retrieved Documents?
Every set in the comparison stops at text: an answer string, a passage id or a hallucination span. A support agent that reads a returns policy from its knowledge base and then cancels an order is judged by the order record, and none of these datasets holds one. Agents built this way are what TestMu AI's Agent Assurance is for: it puts them through generated scenarios before release.
Rook CLI, the terminal client for Agent Assurance, is pre-alpha software that anyone can install from npm with Node.js 20 or later:
npm install -g @testmuai/rookPackages are published for macOS and Linux, and 64-bit Windows through npm or WSL. The two Unix-like systems can skip npm with Homebrew or a shell installer that verifies checksums, as the Rook CLI installation docs explain.
Point it at the agent's codebase, its spec or the folder of documents it retrieves from. Agent Assurance turns those into scenarios, each with acceptance criteria, then invokes the agent itself against a staging deployment or inside CI and settles each criterion from evidence:
- Tool calls - the tools the run actually invoked, set against the agent's declared toolset and any tool a criterion forbids.
- Records - a read-only lookup, through an MCP tool you supply and approve, shows whether the order really changed.
- Written output - files the run created or changed inside the paths named in its profile.
- Model judges - a model judge scores some criteria, yet an action the agent merely reports is never treated as proof.
- Hallucination scenarios - hallucination is one of the adversarial categories, which are generated by default next to the functional ones.
Verdicts come per criterion in three values, Pass, Fail and Unable to Verify, and only scenarios that reached a decided verdict enter the scenario pass rate. Use staging data for every run, since the writes an agent makes during a test are real and nothing undoes them.
Most eval and observability products score the text an agent returns plus its logged trace, whereas Agent Assurance looks at what changed in files, calls and records and lists every criterion it could not settle. The public sets above keep their job, because Agent Assurance is neither a model benchmark nor a retriever leaderboard, and production monitoring is outside its scope.
How Do You Pick a RAG Training Set, Evaluation Set and Baseline?
Pick one retrieval set with a real train split and one evaluation-only set whose license fits your use, score training sets on their validation splits and evaluation-only sets on the split they ship, and put the closed-book score next to every RAG score. Break the result down by question type before you compare two pipelines. Those habits turn public datasets for training and evaluating RAG models into numbers you can defend.
If your system acts on what it retrieves, write the end state into each criterion; the Agent Assurance scenarios docs show how criteria and verdicts are laid out.
Author
Samyak Goyal is a Senior Member of Technical Staff at TestMu AI engineering Kane CLI, the command-line tool that runs browser automation from the terminal, where a flow described in natural language executes in a real Chrome browser and returns pass or fail with shareable proof. He is a backend engineer with 4+ years of experience, previously an SDE at Innovaccer, where he built APIs, introduced Kafka, and cut deployment from weeks to hours. Samyak also builds multi-agent systems, skill-orchestration frameworks, and a personal copilot that indexes 200+ microservice repositories.
Reviewer
Sirajuddin Khan is Vice President of Product Management at TestMu AI, where he drives the company's agentic AI product strategy, building a suite of autonomous agents that includes Agentic Browsers and Agentic Visual Testing and shifting the unit of work from test execution to autonomous outcomes. One of the company's earliest product leaders, he has owned the roadmap for the high-performance execution cloud and grew the cross-browser testing products from early adoption to market leadership. He brings over a decade of experience across SaaS, B2B, and eCommerce, with earlier product roles at Wydr and ShopClues, where his catalog and search work cut delivery SLAs and lifted seller activity. Sirajuddin holds an MBA in Information Technology from Sikkim Manipal University and a B.Tech in Computer Science Engineering from Maharshi Dayanand University.
RAG Datasets FAQs
Did you find this page helpful?
More Related Learning Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance
- Advanced access controls
- Advanced data retention rules
- Advanced Local Testing
- Premium Support options
- Early access to beta features
- Private Slack Channel
- Unlimited Manual Accessibility DevTools Tests





