Evaluates retrieval-augmented language models on open-domain, multi-hop, and conversational question answering by testing their ability to dynamically search for evidence, bootstrap in-context demonstrations, and generate accurate answers without fine-tuning. Use when the user wants to benchmark on Open-SQuAD, HotPotQA, QReCC, or asks about evaluating this task. Reports EM.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill dsp-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dsp Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-dsp-eval)More formats (shields.io, HTML) on the badges page.
---
name: dsp-eval
description: Evaluates retrieval-augmented language models on open-domain, multi-hop, and conversational question answering by testing their ability to dynamically search for evidence, bootstrap in-context demonstrations, and generate accurate answers without fine-tuning. Use when the user wants to benchmark on Open-SQuAD, HotPotQA, QReCC, or asks about evaluating this task. Reports EM.
metadata:
skill_kind: dataset_eval
source_arxiv: 2212.14024
bibtex_key: khattab2022demonstratesearchpredict
confidence: high
---
# dsp-eval
> Demonstrate-Search-Predict: Composing retrieval and language models for knowledge-intensive NLP — Khattab et al. (2022) (arXiv:2212.14024, 2022)
## What this evaluates
Evaluates retrieval-augmented language models on open-domain, multi-hop, and conversational question answering by testing their ability to dynamically search for evidence, bootstrap in-context demonstrations, and generate accurate answers without fine-tuning.
## Datasets
- **Open-SQuAD** — total ?; splits: dev (1000), test (-1)
- **HotPotQA** — total ?; splits: val (1000), train (-1)
- **QReCC** — total ?; splits: val (400), train (-1)
## Metrics
- `EM` **(primary)** — range: [0, 1]
- Exact match accuracy: 1 if the predicted answer string exactly matches the gold answer string, 0 otherwise.
- `F1` — range: [0, 1]
- Token-level F1 score computed as the harmonic mean of precision and recall between the predicted and gold answer tokens.
- `nF1` — range: [0, 1]
- Novel F1 score: token-level F1 overlap between system response and ground truth, discounting common stopwords and terms present in the question or earlier conversation turns.
## Input / output format
**Input**: A question string (for open-domain and multi-hop QA) or a sequence of conversation turns (for conversational QA), provided alongside up to 16 randomly sampled training examples and retrieved Wikipedia passages.
**Output**: A single predicted answer string (or conversational response), generated via greedy decoding or selected via self-consistency voting over 20 sampled reasoning chains.
## Scoring recipe
```python
def compute_metrics(predictions, golds, task='qa'):
em_scores = [1.0 if p.strip() == g.strip() else 0.0 for p, g in zip(predictions, golds)]
f1_scores = [token_f1(p, g) for p, g in zip(predictions, golds)]
if task == 'convqa':
nf1_scores = [novel_f1(p, g, question) for p, g, question in zip(predictions, golds, questions)]
return {'EM': sum(em_scores)/len(em_scores), 'F1': sum(f1_scores)/len(f1_scores), 'nF1': sum(nf1_scores)/len(nf1_scores)}
return {'EM': sum(em_scores)/len(em_scores), 'F1': sum(f1_scores)/len(f1_scores)}
```
## Common pitfalls
- Validation and test sets are subsampled to 1000 questions (or 400 conversations) rather than using the full official splits.
- Results are averaged over 5 random seeds, each using a different 16-shot training subset, introducing sampling variance not always reported.
- nF1 specifically discounts stopwords and question terms, differing from standard conversational F1 metrics.
## Evidence (verbatim from paper)
> We subsample the validation and test sets to 1000 questions (or 400 conversations, where applicable) and report average quality across five seeds where each seed fixes a single k-shot training set of examples. Table 1 reports the answer EM and F1. We report the novel-F1 metric (nF1; Paranjape et al. 2022), which computes the F1 overlap between the system response and the ground truth while discounting common stopwords and terms present in the question (or earlier questions).
## Citation
```bibtex
@misc{khattab2022demonstratesearchpredict,
title={Demonstrate-Search-Predict: Composing retrieval and language models for knowledge-intensive NLP},
author={Khattab et al. (2022)},
year={2022},
note={arXiv:2212.14024}
}
```
- arXiv: 2212.14024
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!