DECLINECRAFT
收藏官方服务:
资源简介:
DECLINECRAFT 是由普渡大学研究团队构建的动态 RAG 弃答基准,旨在评估模型在检索文档与参数知识共同不足时能否恰当承认知识缺口。该基准包含 700 个可回答问题和 300 个不可回答问题,共 1000 条,数据源自 Minecraft Wiki:截止 2025 年 3 月 31 日的 Cpre 语料含 2,642 页、11,612 个文本块,用于检索;截止后创建的 Cpost 含 170 页、712 个文本块,用于生成不可回答问题。其构建采用共享生成管线,先由生成模型基于随机文本块合成玩家情景、目标事实与问题,再以独立验证模型检查答案是否受 Cpre 支持及事实相对 Cpre 是否新颖。该数据集主要服务于检索增强生成系统的可靠性评估,重点关注模型能否区分承认知识缺失与无根据的前提否认,并可随语料截止时间更新而动态再生成。
提供机构:
普渡大学创建时间:
2026-10-20
原始信息汇总
DeclineCraft 数据集概述
基本信息
- 数据集/基准名称:DeclineCraft
- 详情页:https://github.com/Thakur-Atharva/declinecraft-benchmark
- 用途:提供代码以重建 DeclineCraft benchmark,并在该基准上评估模型。
- 数据来源:https://minecraft.wiki
- 数据可用性:基准问题、参考答案、语料快照和模型响应将发布,数据链接为 TODO: data link,当前未提供实际链接;语料也可通过重建脚本从 https://minecraft.wiki 重建。
- 许可:代码采用 MIT License;源自 https://minecraft.wiki 的数据,包括语料、问题和参考答案,采用 CC BY-NC-SA,遵循该 wiki 的许可。
数据集构成
语料
- C_pre:每个页面在 2025 年 3 月 31 日或之前的最新修订版。
- C_post:在 2025 年 3 月 31 日之后首次创建的页面。
- 过滤:剔除 joke、version、story、media 和非文章页面。
- 索引:两个语料均分块为 1,500 字符,重叠 250 字符,使用
[Page: <title>]前缀,并嵌入 ChromaDB。
问题
- 数量与类型:700 个可回答问题,300 个不可回答问题。
- 生成方式:场景优先的问题生成,对照 C_pre 验证,再进行组装。
- 来源标记:
Pre-cutoff表示可回答;latest表示不可回答。 - 字段:
question,即场景与问题;source;场景和目标的 chunk ids 与 titles;target_fact。 - 人工审核:论文中每个不可回答问题均人工对照 C_pre 审核;格式错误的问题被替换为已通过相同检查的未使用候选;该审核未自动化。
参考答案
- 由 oracle 模型基于源 wiki 页面生成。
- 论文使用通过 OpenRouter 调用的 DeepSeek V4.1 Flash。
- 参考提示提及网络搜索,但不提供搜索工具;oracle 从问题来源的完整页面及场景 chunks 作答。
基准重建流程
| 步骤 | 脚本 | 功能 |
|---|---|---|
| 1 | 1_scrape.py |
从 https://minecraft.wiki 构建 C_pre 和 C_post,并过滤非真实基础游戏机制页面 |
| 2 | 2_index.py |
将两个语料分块并嵌入 ChromaDB |
| 3 | 3_generate.py |
场景优先问题生成,对照 C_pre 验证,组装为 700 个可回答问题和 300 个不可回答问题 |
| 4 | 4_reference_answers.py |
由 oracle 模型根据源 wiki 页面生成参考答案 |
- 生成设置:thinking disabled;场景温度 0.3,问题温度 0.5,其他为 0。
- 验证器设置:温度 0,thinking disabled。
- generate 和 judge 阶段分离,使一次只服务一个模型的服务器可一次加载一个模型。
模型评估流程
| 步骤 | 脚本 | 功能 |
|---|---|---|
| 5 | 5_answer.py |
在基准上运行模型:无检索、单次 RAG 或迭代 RAG;thinking 启用或禁用 |
| 6 | 6_judge_responses.py |
响应判定:ABSTAIN、DENY、ANSWER |
| 7 | 7_judge_accuracy.py |
准确率判定:对照参考答案给 1、0.5 或 0;每个 judge 运行一次 |
| 8 | 8_metrics.py |
计算 Correct Abstention Rate、Answerable Attempt Rate、Answer Accuracy、leakage accuracy 和配对检验 |
--no-rag:无检索。-r 0:单次 RAG,使用 hybrid retriever 的前 5 个 chunks。-r 2:迭代 RAG,模型可在认为 chunks 不足时最多请求两轮额外检索。- 生成设置:温度 0,第二温度使用
-t 0.7,16,000 token 预算,包含推理。 - 闭源模型:通过 OpenRouter,端点 https://openrouter.ai/api/v1。
- 检索消融:
--retrieval-mode {dense,bm25,hybrid_rerank,hybrid_rewrite,full}。 - 检索深度:
-k 10。 - 泄漏审计:将无 RAG 的不可回答问题答案对照后截止参考答案评分;
8_metrics.py报告leakage_accuracy。 - 弃答训练模型:可用 Abstain-R1 模板
--prompt abstain_r1。 - 响应标签与评分:响应 judge 论文中为 Gemma 4 26B-A4B,温度 0,thinking disabled;Correct Abstention Rate 严格规则仅计 ABSTAIN;宽松规则
CAR_lenient也计 DENY;预算耗尽答案不计入两种率,准确率得 0。
环境与配置
- Python 3.11。
- 通过 OpenAI 兼容端点调用每个模型,可使用 vLLM、llama.cpp 的 llama-server、OpenRouter。
| 变量 | 用途 | 论文设置 |
|---|---|---|
DC_EMBED_URL、DC_EMBED_MODEL |
嵌入,用于索引、dense retrieval、问题生成 | Qwen3-Embedding-8B,Q8_0 GGUF,llama-server |
DC_RERANK_URL、DC_RERANK_MODEL |
cross-encoder reranker,用于验证和消融 | nvidia/llama-nemotron-rerank-1b-v2,vLLM |
DC_REWRITE_URL、DC_REWRITE_MODEL |
查询重写,仅消融 | Qwen3 30B-A3B,thinking disabled |
DC_LLM_URL |
生成和 judges 的默认端点 | vLLM |
DC_API_KEY |
自托管端点密钥,如需 | |
OPENROUTER_API_KEY |
闭源模型和参考答案 oracle | |
DC_DATA_DIR |
语料和索引写入位置 | 默认写入数据目录 |
共享模块:
config.py:设置和端点。prompts.py:每个提示词,逐字。retrieval.py:dense、BM25、hybrid、reranking、query rewriting、iterative RAG。wiki.py:MediaWiki API 和 wikitext 清理。- 人工标注工具目录:包含人工标注工具及其 README。
可复现性
- 同一配置的两次运行即使温度 0 也不完全相同;批处理 GPU 推理不是位可复现,闭源 API 也不确定性;嵌入服务器的批处理模式会轻微扰动查询向量,因此少数查询的前 5 个 chunks 可能不同。比较条件应使用同一批次运行。
- Wiki 文本来自 https://minecraft.wiki,许可为 CC BY-NC-SA 3.0;语料由
1_scrape.py重建,而非随附。 - C_pre 由截止日期固定;C_post 页面在抓取时存储为最新修订版,后续爬取可能不同。
许可
- 代码:MIT License。
- 源自 https://minecraft.wiki 的数据,包括语料、问题和参考答案:CC BY-NC-SA,遵循该 wiki 的许可。



