Faithfulness-QA
收藏数据集概述
Faithfulness-QA 是一个大规模的反事实实体替换数据集,包含 99,094 个问答对,专门用于训练和评估检索增强生成(RAG)模型对检索上下文的忠实度(Faithfulness)。
核心思想
通过反事实实体替换,将上下文中的答案实体替换为类型一致的其他实体,制造上下文与模型参数知识之间的可控冲突。一个忠实度高的模型应输出上下文中的替换后实体,而非记忆中存储的原始实体。
关键特性
- 规模与来源:从 SQuAD(49,094 个)和 TriviaQA(50,000 个)构建,共 99,094 个反事实 QA 样本。
- 实体类型:覆盖 8 种实体类型:人物、组织、地缘政治实体、日期、基数、民族/群体、地点、事件。
- 实体库:包含 76,953 个独立实体。
- 质量控制:200 样本自动化审核的通过率为 100%。
- 数据划分:提供现成的训练集/开发集/测试集,比例为 80/10/10。
- 自动化流水线:可完全从源数据集复现。
数据集统计
总体统计
| 来源 | 输入量 | 输出量 | 成功率 | 训练集 | 开发集 | 测试集 |
|---|---|---|---|---|---|---|
| SQuAD | 87,599 | 49,094 | 56.0% | 39,275 | 4,909 | 4,910 |
| TriviaQA | 87,041 | 50,000 | 57.4% | 40,000 | 5,000 | 5,000 |
| 总计 | 174,640 | 99,094 | 56.7% | 79,275 | 9,909 | 9,910 |
实体类型分布
| 类型 | SQuAD 数量 | SQuAD 比例 | TriviaQA 数量 | TriviaQA 比例 |
|---|---|---|---|---|
| 人物 | 9,775 | 19.9% | 22,871 | 45.7% |
| 组织 | 10,114 | 20.6% | 8,186 | 16.4% |
| 日期 | 9,997 | 20.4% | 2,057 | 4.1% |
| 地缘政治实体 | 6,292 | 12.8% | 11,810 | 23.6% |
| 基数 | 6,568 | 13.4% | 1,348 | 2.7% |
| 民族/群体 | 4,004 | 8.2% | 1,247 | 2.5% |
| 地点 | 1,629 | 3.3% | 1,952 | 3.9% |
| 事件 | 715 | 1.5% | 529 | 1.1% |
互补性:TriviaQA 以人物实体为主(45.7%),SQuAD 则在组织、日期、人物和基数上分布均衡,两者结合实现了广泛的实体类型多样性。
实体库统计
| 类型 | 数量 |
|---|---|
| 组织 | 25,378 |
| 人物 | 20,292 |
| 日期 | 10,613 |
| 地缘政治实体 | 6,769 |
| 基数 | 6,636 |
| 地点 | 2,977 |
| 民族/群体 | 2,849 |
| 事件 | 1,439 |
| 总计 | 76,953 |
数据格式
每个样本为 JSONL 格式的 JSON 对象,示例如下:
json { "id": "5733be284776f41900661182", "question": "To whom did the Virgin Mary allegedly appear in 1858 in Lourdes France?", "original_context": "...the Virgin Mary reputedly appeared to Saint Bernadette Soubirous in 1858...", "modified_context": "...the Virgin Mary reputedly appeared to Kiyomori in 1858...", "original_answer": "Saint Bernadette Soubirous", "faithful_answer": "Kiyomori", "original_entity": "Saint Bernadette Soubirous", "replacement_entity": "Kiyomori", "entity_type": "PERSON", "source": "squad" }
字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
id |
字符串 | 源数据集中的原始样本 ID |
question |
字符串 | 问题文本 |
original_context |
字符串 | 源数据集的未修改上下文 |
modified_context |
字符串 | 反事实实体替换后的上下文 |
original_answer |
字符串 | 源数据集中的原始答案 |
faithful_answer |
字符串 | 修改后上下文中的正确答案(即替换实体) |
original_entity |
字符串 | 被替换的命名实体 |
replacement_entity |
字符串 | 替换后的新实体 |
entity_type |
字符串 | NER 类型:PERSON、GPE、ORG、DATE、CARDINAL、NORP、LOC 或 EVENT |
source |
字符串 | 源数据集:squad 或 triviaqa |
构建方法
流水线包含四个阶段:
- 实体库构建:使用 SpaCy NER 从 19,035 个 SQuAD 上下文中提取所有命名实体,构建包含 76,953 个实体的实体库。
- NER 与答案实体匹配:通过精确匹配、子串匹配、位置重叠三级策略,将答案与已识别的实体进行匹配。
- 反事实替换:从实体库中采样类型一致的替换实体,最多重采样 5 次以保证长度兼容性(0.3–3.0 倍比例),然后替换上下文中的所有出现。
- 质量过滤与划分:应用 6 项质量检查(存在性、变化性、长度、新颖性、频次、实体长度),并按 80/10/10 划分数据。
质量控制
| 检查项 | 通过率 | 目标 |
|---|---|---|
| 替换实体出现在修改后的上下文中 | 200/200 (100%) | 100% |
| 原始实体从修改后的上下文中移除 | 200/200 (100%) | 100% |
| 上下文确实发生了改变 | 200/200 (100%) | 100% |
| 上下文长度比例在 [0.5, 2.0] 内 | 200/200 (100%) | ≥90% |
预期用途
- 忠实度感知的微调:使用
(modified_context, question) → faithful_answer训练模型,使其遵循上下文而非参数记忆。 - 基于注意力的忠实度损失:监督交叉注意力权重,确保模型关注检索到的上下文。
- 忠实度评估:衡量模型输出忠实答案(基于上下文)与原始答案(依赖参数知识)的比例。
- 知识冲突研究:研究 LLM 在检索上下文与参数知识相矛盾时的行为。
已知局限
- 无共指消解:替换实体的指代关系未更新。
- 无 NLI 过滤:质量检查基于规则,未使用 NLI 模型进行语义一致性验证。
- 语义合理性:部分替换语法正确但语义上不合理(如“出生于[城市],伊利诺伊州”中替换为非美国城市)。
- 仅支持英文:当前流水线和实体库仅支持英语。




