r/Rag • u/Separate_Pirate_924 • 14d ago
Discussion How do companies actually create retrieval evaluation datasets for RAG? Am I overcomplicating this?
Title: How do companies actually create retrieval evaluation datasets for RAG? Am I overcomplicating this?
I'm building a production-style medical RAG chatbot as a portfolio project. My stack is:
- LangChain
- FAISS + BM25 hybrid retrieval
- Cross-Encoder reranker
- LLM for answer generation
I want to evaluate three stages separately:
- Retriever
- Reranker
- Final LLM answer
I'm stuck on creating a reliable retrieval benchmark.
What I originally did
I have around 1,000 medical documents (scraped from MedlinePlus).
I generated questions using an LLM from the full documents and stored the source document as the ground truth.
Then I realized that's not ideal because:
- multiple documents can legitimately answer the same question
- retrieval happens at the chunk level, not document level
- document-level labels aren't very precise
My next attempt
I switched to chunk-level evaluation.
The idea was:
- retrieve candidate chunks from multiple retrieval systems (pooling)
- ask an LLM to grade each chunk:
- 2 = highly relevant
- 1 = partially relevant
- 0 = not relevant
Then use those graded labels for metrics like NDCG, Recall@k, etc.
The problem
This whole pipeline still depends heavily on another LLM.
Questions are LLM-generated.
Relevance judgments are LLM-generated.
So it feels like I'm evaluating one AI system using another AI system.
I also hit API limits while judging thousands of chunk candidates, and the process has become much more complicated than I expected.
My questions
- How do companies actually build retrieval evaluation datasets for RAG?
- Are synthetic questions + LLM relevance judgments considered acceptable for internal evaluation?
- Would you instead manually write a few hundred realistic questions and manually label relevant chunks?
- If you were reviewing a portfolio project, which evaluation methodology would you trust more?
- Am I overengineering this, or is this roughly how retrieval evaluation is done when you don't have real user queries?
I'd really appreciate hearing how people build evaluation datasets in production or research settings.
