ranjithraj's picture
Upload folder using huggingface_hub
5d0cc75 verified
|
Raw
History Blame Contribute Delete
2.91 kB
# Oncology RAG Benchmark
An oncology-specific, CC-BY-4.0 retrieval-augmented-generation (RAG) benchmark
built from the Cancer Knowledge Base. Answer keys are **provable from the KB's own
structured data** β€” every question carries golden docs, an evidence level, and a
citation.
## Files
| File | Contents |
|------|----------|
| `retrieval_pool.parquet` | ~1,100 chunked retrieval units (sections with heading weighting, markdown tables, and domain tables: codes / drugs / staging / prognosis / subtypes / biomarkers) |
| `mcq_benchmark.parquet` | 112 multiple-choice questions with `options`, `answer`, `answer_index`, `difficulty`, `evidence_level`, `citation`, `golden_docs`, `sources` |
| `mcq_robustness.parquet` | 336 MedRGB-style variants β€” `sufficiency` (golden docs), `noise` (golden + 5 irrelevant), `robustness` (golden + a counterfactually edited doc) |
| `leaderboard.json` | recorded results from `eval_mcq.py --write-leaderboard` |
| `mirage_format.jsonl` | 112 questions in MIRAGE-family interchange format (context = golden docs) |
| `medrgb_format.jsonl` | 336 robustness variants in MedRGB interchange format (incl. `counterfactual_doc`) |
See [`MIRAGE_INTEGRATION.md`](MIRAGE_INTEGRATION.md) for how this maps onto the
MIRAGE/MedRGB evaluation ecosystem and how to submit a system there.
## Scenarios
* **sufficiency** β€” answer from the golden docs only (upper-bound signal).
* **noise** β€” answer from golden + irrelevant docs (measures retrieval robustness).
* **robustness** β€” golden + one adversarially-edited doc that contradicts the answer (measures hallucination resistance).
## Evaluate your system
Install the repo scripts (needs `pyarrow`):
```sh
# score your own predictions (JSONL: {"question_id": 1, "answer_index": 2})
python3 scripts/eval_mcq.py --benchmark hf_dataset/benchmark --predictions preds.jsonl
# baseline with real BM25 retrieval (no deps)
python3 scripts/eval_mcq.py --benchmark hf_dataset/benchmark --retriever bm25 --topk 3
# record your result on the leaderboard
python3 scripts/eval_mcq.py --retriever bm25 --topk 3 --write-leaderboard \
--system-name "my-system"
# compare leaderboard entries
python3 scripts/eval_mcq.py --compare my-system retriever:bm25@top3
```
Prediction JSONL format:
```json
{"question_id": 1, "answer_index": 2}
{"question_id": 2, "answer_index": 0}
```
## Submission
1. Run `eval_mcq.py` with `--write-leaderboard --system-name "<your system>"`.
2. Open a PR / issue against this dataset repo describing the system (LLM,
retriever, top-k) and attach your `preds.jsonl` for reproducibility.
## Baseline
Current `retriever:bm25@top3` baseline (dependency-free BM25):
* sufficiency accuracy: **33.0%**
* retrieval@3 (golden doc in top-3): **49.1%**
Random guessing is 25% (4-option questions), so the baseline beats chance and
shows real headroom for better retrievers (embeddings) and generators.