Skip to content
Back to skills

Hotpotqa Eval

ASecurity

This benchmark evaluates a model's ability to perform multi-hop question answering by reasoning across multiple documents. It specifically probes explainability through supporting fact prediction and tests robustness against distractor paragraphs and large-scale retrieval contexts. Use when the user wants to benchmark on HotpotQA, or asks about evaluating this task. Reports F1.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 11, 2026
researchpythongoperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill hotpotqa-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hotpotqa Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hotpotqa Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-hotpotqa-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-hotpotqa-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hotpotqa-eval
description: This benchmark evaluates a model's ability to perform multi-hop question answering by reasoning across multiple documents. It specifically probes explainability through supporting fact prediction and tests robustness against distractor paragraphs and large-scale retrieval contexts. Use when the user wants to benchmark on HotpotQA, or asks about evaluating this task. Reports F1.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 1809.09600
  bibtex_key: [REDACTED]
  confidence: high
---

# hotpotqa-eval

> HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering — Zhilin Yang et al. (2018) (arXiv:1809.09600, 2018)

## What this evaluates

This benchmark evaluates a model's ability to perform multi-hop question answering by reasoning across multiple documents. It specifically probes explainability through supporting fact prediction and tests robustness against distractor paragraphs and large-scale retrieval contexts.

## Datasets

- **HotpotQA** — total ?; splits: train (-1), dev (-1), test (-1)

## Metrics

- `F1` **(primary)** — range: [0, 1]
  - Token-level F1 score between predicted and gold answer spans. Computed as 2 * (precision * recall) / (precision + recall).
- `exact match (EM)` — range: [0, 1]
  - Binary score: 1 if the predicted answer exactly matches the gold answer string, 0 otherwise.
- `Joint F1` — range: [0, 1]
  - Combines answer and supporting fact performance: P^(joint) = P^(ans) * P^(sup), R^(joint) = R^(ans) * R^(sup), Joint F1 = 2 * P^(joint) * R^(joint) / (P^(joint) + R^(joint)).
- `Joint EM` — range: [0, 1]
  - Binary score: 1 only if both the answer span and the set of supporting facts achieve exact match, otherwise 0.

## Input / output format

**Input**: A question paired with a set of context paragraphs. In the distractor setting, exactly 10 paragraphs (1 containing the answer, 9 distractors). In the full wiki setting, the top 10 paragraphs retrieved from a 5M+ paragraph corpus.

**Output**: A predicted answer span (or 'yes'/'no' for yes/no questions) and a set of predicted supporting fact sentences.

## Scoring recipe

```python
def evaluate(pred_ans, gold_ans, pred_sup, gold_sup):
    ans_em = 1.0 if pred_ans == gold_ans else 0.0
    ans_f1 = token_f1(pred_ans, gold_ans)
    sup_em = 1.0 if set(pred_sup) == set(gold_sup) else 0.0
    sup_f1 = token_f1(' '.join(pred_sup), ' '.join(gold_sup))
    p_joint = ans_f1 * sup_f1
    r_joint = ans_f1 * sup_f1
    joint_f1 = 2 * p_joint * r_joint / (p_joint + r_joint) if (p_joint + r_joint) > 0 else 0.0
    joint_em = 1.0 if (ans_em == 1.0 and sup_em == 1.0) else 0.0
    return {'EM': ans_em, 'F1': ans_f1, 'Joint F1': joint_f1, 'Joint EM': joint_em}
```

## Common pitfalls

- Confusing the 'distractor' setting (fixed 10 paragraphs) with the 'full wiki' setting (retrieval from 5M+ paragraphs), which drastically changes difficulty and retrieval metrics.
- Evaluating supporting facts at the paragraph level instead of the sentence level, as the dataset provides sentence-level annotations and the model predicts sentence-level probabilities.
- Misinterpreting Joint F1/EM as simple averages; they are multiplicative combinations that heavily penalize systems failing on either answer or supporting fact prediction.

## Evidence (verbatim from paper)

> Following previous work (Rajpurkar et al., 2016), we use exact match (EM) and F1 as two evaluation metrics. To assess the explainability of the models, we further introduce two sets of metrics involving the supporting facts. The first set focuses on evaluating the supporting facts directly, namely EM and F1 on the set of supporting fact sentences as compared to the gold set. The second set features joint metrics that combine the evaluation of answer spans and supporting facts as follows. For each example, given its precision and recall on the answer span (P^(ans), R^(ans)) and the supporting facts (P^(sup), R^(sup)), respectively, we calculate joint F1 as P^(joint) = P^(ans)P^(sup), R^(joint) = R^(ans)R^(sup), Joint F1 = 2P^(joint)R^(joint)/(P^(joint) + R^(joint)). Joint EM is 1 only if both tasks achieve an exact match and otherwise 0.

## Citation

```bibtex
@misc{yang2018hotpotqa,
  title={HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering},
  author={Zhilin Yang et al. (2018)},
  year={2018},
  note={arXiv:1809.09600}
}
```

- arXiv: 1809.09600

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.