kdv-rag-benchmark
收藏资源简介:
KDV RAG Benchmark 是一个针对土耳其增值税(KDV)法规的检索增强生成(RAG)基准数据集,专注于时间点(Point-in-Time)检索任务。该数据集旨在评估检索系统能否根据查询事件发生时的有效法律条文版本,而非当前规则,返回正确的法律条款。数据集包含训练集(728条,覆盖2018-2023年)和测试集(154条,覆盖2024-2026年),采用时间分割以避免数据泄露。语料库提供两种粒度:未分块版本(110条,完整法律条文)和分块版本(174条,将长条文拆分为更小的段落,通常能提升检索效果)。每条查询(源自土耳其税务局GİB的税务裁定)包括问题、官方回答以及引用的法律条款ID;语料库条目包括条文ID、标题、全文、来源链接等字段。该基准可用于评估稀疏检索(如BM25)、稠密检索(如e5-large、Nomic Embed v2)、混合重排(RRF)及交叉编码器(如Qwen3-Reranker)等方法的recall@10性能。README还报告了多个实验发现,如分块对小模型可能适得其反、样板条款对评估的干扰,以及混合重排在大规模干净查询集上的优势。数据集采用CC BY 4.0许可证,数据来源于土耳其官方公开数据。
The KDV RAG Benchmark is a retrieval-augmented generation (RAG) benchmark dataset for Turkish Value Added Tax (KDV) regulations, focusing on point-in-time retrieval tasks. The dataset aims to evaluate whether retrieval systems can return the correct legal provisions based on the version of the law effective at the time of the query event, rather than current rules. It includes a training set (728 entries, covering 2018-2023) and a test set (154 entries, covering 2024-2026), with time-based splitting to avoid data leakage. The corpus is provided in two granularities: an unchunked version (110 entries, full legal articles) and a chunked version (174 entries, splitting long articles into smaller paragraphs, which often improves retrieval performance). Each query (derived from Turkish Revenue Administration GİB tax rulings) includes a question, official answer, and cited legal article IDs; corpus entries include article ID, title, full text, source link, and other fields. This benchmark can be used to evaluate recall@10 performance of methods such as sparse retrieval (e.g., BM25), dense retrieval (e.g., e5-large, Nomic Embed v2), hybrid re-ranking (RRF), and cross-encoders (e.g., Qwen3-Reranker). The README also reports several experimental findings, such as chunking potentially being counterproductive for small models, the interference of boilerplate clauses in evaluation, and the advantages of hybrid re-ranking on large, clean query sets. The dataset is licensed under CC BY 4.0, with data sourced from Turkish official public data.
KDV RAG Benchmark 数据集总结
数据集概览
该数据集是专为土耳其增值税(KDV)法规设计的检索增强生成(RAG)基准测试集,核心特点是 Point-in-Time Retrieval——评估检索系统在特定历史时间点下,能否找到当时有效的法规条款版本,而非回答当前规则。
- 许可证: CC BY 4.0
- 语言: 土耳其语
- 数据规模: 1K-10K 条记录
- 任务类型: 问答、文本检索
数据集结构
数据划分(Temporal Split)
| Split | 记录数 | 时间范围 |
|---|---|---|
train |
728 | 2018–2023 |
test |
154 | 2024–2026 |
划分策略为时间性划分,训练集和测试集来自不同时间段,最大限度降低数据泄漏风险。
语料库(两种粒度)
| 配置 | 记录数 | 内容 |
|---|---|---|
corpus |
110 | KDV法(3065号)完整条款,未分割 |
corpus_chunked |
174 | 同一批条款,其中27条超过2000字符的条款被细分为子段落 |
数据特征
训练/测试集(benchmark)
id: 税务局(GİB)裁定ID(整数)siteLink: 来源URL(gib.gov.tr)ozelgeNo: 官方裁定编号ozelgeTarih: 发布日期(YYYY-MM-DD)baslik: 裁定标题kanunNo: 法律编号(3065)soru: 纳税人问题cevap: 税务局回答madde_atiflar: 引用的条款列表(含ID和标题)
语料集(corpus)
id: 条款IDtitle: 条款标题metin: 条款全文siteLink: 来源URLpriority: 条款顺序bolum: 章节标题
分块语料集(corpus_chunked)
chunk_id: 分块标识(格式:MADDE_<条款ID>_<序号>)article_id: 对应语料中的条款ID(用于ground truth匹配)title: 条款标题section: 子章节标题(如有)part: 块在条款中的顺序metin: 分块文本metin_len: 字符长度
基准测试结果
基础模型表现(recall@10)
| 模型 | 参数规模 | 未分块语料 | 分块语料 |
|---|---|---|---|
| BM25 | — | 0.344 | 0.407 |
| e5-large | 560M | 0.285 | 0.353 |
| BGE-M3 | 560M | 0.272 | 0.388 |
| Qwen3-Embedding-0.6B | 0.6B | 0.377 | 0.316 |
| Qwen3-Embedding-4B | 4B | —¹ | 0.363 |
| Qwen3-Embedding-8B | 8B | —¹ | 0.515 |
| Nomic Embed v2-moe | 305M(MoE) | —¹ | 0.602 |
Türkçe-native (trmteb) |
— | —¹ | 0.429 |
¹ 未在未分块语料上测试——部分未分割条款(如第17条,35K字符)导致长上下文模型VRAM耗尽、耗时不可接受。
关键发现
- 分块效应:将条款分块(article → corpus_chunked)带来的性能提升大于更换模型。唯一例外是Qwen3-Embedding-0.6B(0.377 → 0.316),表明小模型有时需要完整上下文。
- 样板条款问题:41%的引用指向3个与具体问题无关的常用条款(KDV税率、征税对象、纳税责任人),这些查询无法通过内容匹配检索解决。排除后(剩余91条查询),真实检索质量显著提升:BM25达0.533,Nomic v2达0.626。
- 模型规模与排名:最小模型(Nomic v2,305M参数)在MTEB排名上超过顶级模型(Qwen3-Embedding-8B),但经bootstrap统计检验,在排除样板条款的难题中该差异不显著。MTEB排名不直接适用于低资源语言+小型语料的任务。
混合重排序(BM25 + 密集检索,RRF)
| 组合 | 原始recall@10 (n=154) | 清理后recall@10 (n=91) |
|---|---|---|
| BM25(单独) | 0.407 | 0.533 |
| Nomic v2(单独) | 0.602 | 0.626 |
| Qwen3-Embedding-8B(单独) | 0.515 | 0.583 |
| BM25 + Nomic v2 (RRF) | 0.554 | 0.658 |
| BM25 + Qwen3-Embedding-8B (RRF) | 0.570 | 0.663 |
发现4:混合重排序并非总有效。将弱模型(Qwen3-8B)与BM25结合,在清理数据上获得显著提升(98%置信度);但已针对任务优化的强模型(Nomic v2)混合BM25无额外收益(清理数据82%置信度,原始数据反而轻微下降)。
交叉编码器重排序
| 组合 | 原始recall@10 (n=154) | 清理后recall@10 (n=91) |
|---|---|---|
| bge-reranker-v2-m3(pool20) | 0.580 | 0.631 |
| Qwen3-Reranker-8B(pool20) | 0.632 | 0.687 |
发现5:弱交叉编码器(bge,568M)无法显著超越单独Nomic或混合RRF——架构本身不足,模型质量是关键。强交叉编码器(Qwen3-Reranker-8B)在小数据集上显著超过BM25和Nomic单独性能。
扩展/清理后基准(发现6)
改进措施:(1)移除了76个不属于KDV法(多为税法)的引用;(2)将训练集作为额外评估查询加入(未进行微调),使查询数增至813条原始/270条清理后。
| 方法 | 原始 (n=813) | 清理后 (n=270) |
|---|---|---|
| BM25 | 0.377 | 0.624 |
| Nomic v2(单独) | 0.593 | 0.646 |
| Hibrit BM25+Nomic (RRF) | 0.569 | 0.706 |
| Hibrit BM25+Qwen3-8B (RRF) | 0.559 | 0.698 |
| bge-reranker-v2-m3(pool20) | 0.618 | 0.653 |
| Qwen3-Reranker-8B(pool20) | 0.644 | 0.664 |
发现6:统计功效提升后结果反转——大/清理数据集中混合RRF超过交叉编码器(98%置信度),交叉编码器受限于单一首阶段检索器的top-k,而混合RRF可结合两个独立完整排序。原始(样板条款占主导)数据中交叉编码器仍领先。教训:不要轻信小数据集结论,应提高统计功效。
交叉编码器首阶段池:BM25 ∪ Nomic(发现7)
将首阶段池改为BM25 top-20 与 Nomic top-20 的并集(≤40个候选)。
| 方法 | 原始 (n=813) | 清理后 (n=270) |
|---|---|---|
| 混合BM25+Nomic(RRF) | 0.569 | 0.706 |
| Qwen3-Reranker-8B(仅Nomic池) | 0.644 | 0.664 |
| Qwen3-Reranker-8B(BM25∪Nomic池) | 0.664 | 0.725 |
发现7:假设得到验证——联合池在原始和清理数据上均带来显著提升(98%和100%置信度)。关键在于添加不同来源的候选而非扩大单一来源的排序池。清理数据上超越混合RRF的差距不再显著(82%置信度),两者实践等价。代价:池大小不固定(≤40),每查询耗时约增加2倍。当前最佳成绩:清理数据recall@10 = 0.725。
使用方式
python from datasets import load_dataset
基准数据
train = load_dataset("er3nhf/kdv-rag-benchmark", "benchmark", split="train") test = load_dataset("er3nhf/kdv-rag-benchmark", "benchmark", split="test")
语料(未分块,110条款)
corpus = load_dataset("er3nhf/kdv-rag-benchmark", "corpus", split="train")
语料(分块,174条记录——检索效果更佳)
corpus_chunked = load_dataset("er3nhf/kdv-rag-benchmark", "corpus_chunked", split="train")
评估方法:对每条测试记录,使用soru作为查询,madde_atiflar中的ID集合作为ground truth,计算recall@10。
数据来源
- 裁定(Özelgeler): 土耳其税务局(GİB) — KDV法裁定数据库
- 法律条款: mevzuat.gov.tr — 3065号KDV法
发布的是引用和标注,而非原始文本。
重要提醒
如果使用训练集进行微调,则评估只能使用原始154条记录的test集——将train加入评估会导致微调模型的数据泄漏。813/270的数字仅适用于零样本/预训练模型的比较。





