# Adversarial Rc Eval

> This evaluation probes a model's ability to answer reading comprehension questions under adversarial conditions, specifically testing generalization across datasets constructed by progressively stronger language models. It measures how well models trained on challenging, model-in-the-loop generated questions can handle both adversarial and standard benchmarks. Use when the user wants to benchmark on SQuAD, BiDAF-adversarial, BERT-adversarial, RoBERTa-adversarial, DROP, Natural Questions, or asks about evaluating this task. Reports F1.

- Skill: `qhjqhj00/adversarial-rc-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/adversarial-rc-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/adversarial-rc-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/adversarial-rc-eval

---


# adversarial-rc-eval

> Beat the AI: Investigating Adversarial Human Annotation for Reading Comprehension — Bartolo et al. (2020) (arXiv:2002.00293, 2020)

## What this evaluates

This evaluation probes a model's ability to answer reading comprehension questions under adversarial conditions, specifically testing generalization across datasets constructed by progressively stronger language models. It measures how well models trained on challenging, model-in-the-loop generated questions can handle both adversarial and standard benchmarks.

## Datasets

- **SQuAD** — total ?; splits: train (-1), test (-1)
- **BiDAF-adversarial** — total ?; splits: train (-1), test (-1)
- **BERT-adversarial** — total ?; splits: train (-1), test (-1)
- **RoBERTa-adversarial** — total ?; splits: train (-1), test (-1)
- **DROP** — total ?; splits: test (-1)
- **Natural Questions** — total ?; splits: test (-1)

## Metrics

- `F1` **(primary)** — range: [0, 100] (percent)
  - Token-level F1 score between the predicted answer string and the gold answer string, calculated as the harmonic mean of precision and recall over word tokens.
- `EM` — range: [0, 100] (percent)
  - Exact match accuracy; returns 1 if the predicted answer string exactly matches the gold answer string, else 0.

## Input / output format

**Input**: A context passage (paragraph) and a natural language question requiring an answer extracted from or inferred from the passage.

**Output**: A text span or string representing the predicted answer.

## Scoring recipe

```python
def score(predictions, golds):
    em = sum(1 for p, g in zip(predictions, golds) if p == g) / len(predictions)
    f1s = []
    for p, g in zip(predictions, golds):
        p_tok, g_tok = set(p.lower().split()), set(g.lower().split())
        if not p_tok or not g_tok: f1s.append(0.0)
        else:
            common = p_tok & g_tok
            prec, rec = len(common)/len(p_tok), len(common)/len(g_tok)
            f1s.append(2*prec*rec/(prec+rec))
    return sum(f1s)/len(f1s), em
```

## Common pitfalls

- Random initialization and mini-batch ordering during training significantly impact adversarial annotation consistency; retrained models often achieve non-zero EM on their own adversarial datasets (Table 5).
- Evaluations are averaged over 10 runs with different random seeds, and results report mean ± standard deviation, not single-run scores.
- Adversarial datasets are model-specific; training on data generated by a weaker model does not guarantee performance on datasets generated by stronger models.

## Evidence (verbatim from paper)

> First, we observe – as expected given our annotation constraints – that model performance is 0.0EM on datasets created with the same respective model in the annotation loop. We observe however that retrained models do not reliably perform as poorly on those samples. For example, BERT reaches 19.7EM, whereas the original model used during annotation provides no correct answer with 0.0EM.

## Citation

```bibtex
@misc{bartolo2020beattheai,
  title={Beat the AI: Investigating Adversarial Human Annotation for Reading Comprehension},
  author={Bartolo et al. (2020)},
  year={2020},
  note={arXiv:2002.00293}
}
```

- arXiv: 2002.00293

