A multi-domain training dataset for query-conditioned extractive evidence selection. Given a question and a passage, the task is to highlight the verbatim substrings of the passage that support the answer.
Combines three sources covering distinct domains and annotation conventions:
| source | domain | convention | annotator | rows (train / val) |
|---|---|---|---|---|
| ACL silver (this project) | NLP research papers | paragraph-scale | Qwen 3.6 35B (paragraph prompt) | 20,916 / 2,319 |
| RAGBench (12 configs, capped) | finance / medical / legal / general QA | sentence-scale | GPT-4o | 101,550 / 15,276 |
| Squeez | code / SWE-bench tool outputs | code block / line range | GLiNER-format (this project) | 51,917 / 2,579 |
| total | 174,383 / 20,174 |
The dataset is designed for training a generic span-highlighter encoder —
the intended model is a ModernBERT token classifier. For the specialized
ACL-only benchmark see
KRLabsOrg/acl-verbatim-spans.
canonicalOne row per (question, chunk) pair, with raw text. Use this config if you
want to train with your own tokenizer or inspect rows.
Fields:
| field | type | notes |
|---|---|---|
source_dataset | string | "acl", "ragbench", or "squeez" |
question | string | Query / question text |
paper_id | string | Source-namespaced identifier |
chunk_index | int | Chunk number within the source document |
chunk | string | Raw chunk text |
label | int | 1 if answer-bearing, 0 otherwise |
answerable | bool | |
spans | list[struct] | {start, end, text} evidence spans |
source | string | Provenance within the source pipeline |
retrieval_rank | int or null | Rank among retrieved candidates (if applicable) |
gold_paper | string | Source document id |
gold_chunk | int | Source chunk index |
predicted_texts | list[string] | Raw teacher outputs before alignment (ACL silver only) |
latency_s | float | Teacher latency (ACL silver only) |
err | string | Teacher error, if any (ACL silver only) |
encoderPretokenized, ready for direct training with
answerdotai/ModernBERT-base
or a compatible ModernBERT checkpoint.
Fields: input_ids, attention_mask, labels.
Pretokenization settings:
| parameter | value |
|---|---|
| tokenizer | answerdotai/ModernBERT-base |
| max_length | 8192 |
| doc_stride | 256 |
| truncation | only_second (question kept whole, chunk windowed) |
| label_scheme | binary (0 = outside, 1 = evidence) |
| drop_unlabeled_positives | true |
If you want to train with a different tokenizer, rebuild from canonical:
python acl_verbatim/span_training/prepare_token_cls_dataset.py \
--input-file <canonical_train.jsonl> \
--output-file train.my_tokenizer.binary.jsonl \
--tokenizer <your-tokenizer> \
--label-scheme binary \
--drop-unlabeled-positives
RAGBench cap: 15,000 rows per config for train, 2,000 per config for validation, random seed 1337. This balances the 12 RAGBench configs so that high-volume configs (tatqa, pubmedqa, finqa) do not dominate the mix. Without capping, tatqa + pubmedqa alone would be ~70% of the training data.
No RAGBench test split included. The RAGBench test split is reserved for downstream evaluation.
Squeez: all train and validation rows are included. The negative/positive split (~2:1) is preserved as-is; negatives are important signal for teaching the model when not to fire.
ACL silver: taken from the caption-preserving split released in
KRLabsOrg/acl-verbatim-spans.
Training a generic query-conditioned token classifier for evidence highlighting across diverse RAG / extractive-QA use cases. The associated model is released separately once trained.
Evaluation against the human-annotated ACL gold benchmark is handled by the
sibling dataset
KRLabsOrg/acl-verbatim-spans
(canonical/test split).
RELEVANT; span
boundaries were produced by a GLiNER-trained model rather than human
annotators.Apache 2.0. All three source datasets are Apache 2.0:
KRLabsOrg/acl-anthology-md)galileo-ai/ragbenchKRLabsOrg/tool-output-extraction-swebench-glinerAll preparation scripts live in
KRLabsOrg/acl-verbatim:
scripts/prepare_ragbench_spans.py — RAGBench → canonical spansscripts/prepare_squeez_spans.py — Squeez GLiNER format → canonical spansscripts/build_generic_spans_dataset.py — caps + merges + pushes to HF
(random seed 1337 for the RAGBench cap)@misc{Recski:2026,
title={ACL-Verbatim: hallucination-free question answering for research},
author={Gábor Recski and Szilveszter Tóth and Nadia Verdha and István Boros and Ádám Kovács},
year={2026},
eprint={2605.21102},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2605.21102},
}
6 commits
A multi-domain training dataset for query-conditioned extractive evidence selection. Given a question and a passage, the task is to highlight the verbatim substrings of the passage that support the answer.
Combines three sources covering distinct domains and annotation conventions:
| source | domain | convention | annotator | rows (train / val) |
|---|---|---|---|---|
| ACL silver (this project) | NLP research papers | paragraph-scale | Qwen 3.6 35B (paragraph prompt) | 20,916 / 2,319 |
| RAGBench (12 configs, capped) | finance / medical / legal / general QA | sentence-scale | GPT-4o | 101,550 / 15,276 |
| Squeez | code / SWE-bench tool outputs | code block / line range | GLiNER-format (this project) | 51,917 / 2,579 |
| total | 174,383 / 20,174 |
The dataset is designed for training a generic span-highlighter encoder —
the intended model is a ModernBERT token classifier. For the specialized
ACL-only benchmark see
KRLabsOrg/acl-verbatim-spans.
canonicalOne row per (question, chunk) pair, with raw text. Use this config if you
want to train with your own tokenizer or inspect rows.
Fields:
| field | type | notes |
|---|---|---|
source_dataset | string | "acl", "ragbench", or "squeez" |
question | string | Query / question text |
paper_id | string | Source-namespaced identifier |
chunk_index | int | Chunk number within the source document |
chunk | string | Raw chunk text |
label | int | 1 if answer-bearing, 0 otherwise |
answerable | bool | |
spans | list[struct] | {start, end, text} evidence spans |
source | string | Provenance within the source pipeline |
retrieval_rank | int or null | Rank among retrieved candidates (if applicable) |
gold_paper | string | Source document id |
gold_chunk | int | Source chunk index |
predicted_texts | list[string] | Raw teacher outputs before alignment (ACL silver only) |
latency_s | float | Teacher latency (ACL silver only) |
err | string | Teacher error, if any (ACL silver only) |
encoderPretokenized, ready for direct training with
answerdotai/ModernBERT-base
or a compatible ModernBERT checkpoint.
Fields: input_ids, attention_mask, labels.
Pretokenization settings:
| parameter | value |
|---|---|
| tokenizer | answerdotai/ModernBERT-base |
| max_length | 8192 |
| doc_stride | 256 |
| truncation | only_second (question kept whole, chunk windowed) |
| label_scheme | binary (0 = outside, 1 = evidence) |
| drop_unlabeled_positives | true |
If you want to train with a different tokenizer, rebuild from canonical:
python acl_verbatim/span_training/prepare_token_cls_dataset.py \
--input-file <canonical_train.jsonl> \
--output-file train.my_tokenizer.binary.jsonl \
--tokenizer <your-tokenizer> \
--label-scheme binary \
--drop-unlabeled-positives
RAGBench cap: 15,000 rows per config for train, 2,000 per config for validation, random seed 1337. This balances the 12 RAGBench configs so that high-volume configs (tatqa, pubmedqa, finqa) do not dominate the mix. Without capping, tatqa + pubmedqa alone would be ~70% of the training data.
No RAGBench test split included. The RAGBench test split is reserved for downstream evaluation.
Squeez: all train and validation rows are included. The negative/positive split (~2:1) is preserved as-is; negatives are important signal for teaching the model when not to fire.
ACL silver: taken from the caption-preserving split released in
KRLabsOrg/acl-verbatim-spans.
Training a generic query-conditioned token classifier for evidence highlighting across diverse RAG / extractive-QA use cases. The associated model is released separately once trained.
Evaluation against the human-annotated ACL gold benchmark is handled by the
sibling dataset
KRLabsOrg/acl-verbatim-spans
(canonical/test split).
RELEVANT; span
boundaries were produced by a GLiNER-trained model rather than human
annotators.Apache 2.0. All three source datasets are Apache 2.0:
KRLabsOrg/acl-anthology-md)galileo-ai/ragbenchKRLabsOrg/tool-output-extraction-swebench-glinerAll preparation scripts live in
KRLabsOrg/acl-verbatim:
scripts/prepare_ragbench_spans.py — RAGBench → canonical spansscripts/prepare_squeez_spans.py — Squeez GLiNER format → canonical spansscripts/build_generic_spans_dataset.py — caps + merges + pushes to HF
(random seed 1337 for the RAGBench cap)@misc{Recski:2026,
title={ACL-Verbatim: hallucination-free question answering for research},
author={Gábor Recski and Szilveszter Tóth and Nadia Verdha and István Boros and Ádám Kovács},
year={2026},
eprint={2605.21102},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2605.21102},
}
6 commits