DEXTER
收藏资源简介:
DEXTER是一个针对开放领域复杂问答任务的基准数据集,由代尔夫特理工大学创建。该数据集包含7个子数据集,覆盖多种复杂性问题,如组合性、比较性、歧义性及多模态推理等。数据集大小从数千到数百万不等,数据来源广泛,包括Wikipedia等。创建过程中,数据集通过将问题与相关证据结合,模拟真实世界的信息检索挑战。DEXTER的应用领域广泛,旨在通过评估和改进复杂问答系统的性能,解决实际应用中的信息检索和推理问题。
DEXTER is a benchmark dataset for open-domain complex question answering, developed by Delft University of Technology. It comprises 7 sub-datasets covering diverse types of complex questions, such as compositional, comparative, ambiguous, and multi-modal reasoning questions. The scale of these sub-datasets ranges from thousands to millions of samples, with data sourced from a wide range of resources including Wikipedia. During its construction, the dataset combines questions with relevant supporting evidence to simulate real-world information retrieval challenges. DEXTER has a wide range of application scenarios, and it aims to evaluate and improve the performance of complex question answering systems to solve information retrieval and reasoning problems in practical applications.
DEXTER (Benchmarking Complex QA)
数据集
| 数据集名称 | 数据集别名 | 主页链接 | 特点 | 问题数量 | 语料库大小 |
|---|---|---|---|---|---|
| MusiqueQA | musiqueqa (2-hop only) | Link | 连接多跳推理 | 16.8k | 570k |
| WikiMultiHopQA | wikimultihopqa | Link | 比较多跳推理 | 190k | 570k |
| StrategyQA | strategyqa | Link | 多跳推理,隐式推理 | 2.7k | 26.6M |
| AmbigQA | ambignq | Link | 模糊问题 | 12k | 24.3M |
| OTT-QA | ottqa | Link | 表格和文本多跳推理 | 2.1k | 6.5M |
| TAT-QA | tatqa | Link | 金融表格和文本多跳推理 | 2.9k | 7000 |
| FinQA | finqa | Link | 金融表格和文本多跳推理 | 8k | 24.8k |
检索器
| 名称 | 范式 | 更多信息链接 |
|---|---|---|
| BM25 | 词汇 | Link |
| SPLADE | 稀疏 | Link |
| DPR | 密集 | Link |
| ANCE | 密集 | Link |
| tas-b | 密集 | Link |
| MPNet | 密集 | Link |
| Contriever | 密集 | Link |
| ColBERTv2 | 后期交互 | Link |
LLM引擎
- OpenAI模型
- Mistral
- Llama
- FlanT5
项目结构
- data
- datastructures: 基本数据类,用于问题、答案等。
- dataloaders: 加载器,将原始json/zip文件数据转换为管道所需格式。
- retriever: 检索器,使用数据加载器执行检索以生成结果。
- dense: 密集检索器,如ColBERTv2, ANCE, Contriever, MpNet, DPR和Tas-B。
- lexical: 词汇检索器,如BM25。
- sparse: 稀疏检索器,如SPLADE。
- llms: LLM引擎编排器和使用LLama2, Mistral, OpenAI模型和Flan-T5进行推理的实现。
- config: 配置文件,包含常量和初始化。
- tests: 上述组件的测试用例。
- utils: 管道中需要的实用工具,如检索准确性计算和匹配。
运行评估
以下是一个示例脚本,演示如何从我们的基准中加载数据集(此处为ambignq),将其输入到我们的检索器(此处为ANCE)中,并根据数据集提供的相关性标签评估检索质量。
python from dexter.config.constants import Split from dexter.data.loaders.RetrieverDataset import RetrieverDataset from dexter.retriever.dense.ANCE import ANCE from dexter.utils.metrics.SimilarityMatch import CosineSimilarity from dexter.utils.metrics.retrieval.RetrievalMetrics import RetrievalMetrics
if name == "main": loader = RetrieverDataset("ambignq","ambignq-corpus", "config.ini", Split.DEV,tokenizer=None)
config_instance = DenseHyperParams(query_encoder_path="facebook/contriever",
document_encoder_path="facebook/contriever"
,batch_size=32,show_progress_bar=True)
queries, qrels, corpus = loader.qrels()
contrvr_search = Contriever(config_instance)
similarity_measure = CosineSimilarity()
response = contrvr_search.retrieve(corpus,queries,100,similarity_measure,chunk=True,chunksize=400000)
metrics = RetrievalMetrics(k_values=[1,10,100])
print(metrics.evaluate_retrieval(qrels=qrels,results=response))




