🛠️ToolQA
🛠️ ToolQA数据集的官方代码和数据仓库。ToolQA是一个专门设计用于评估工具增强型大语言模型(LLMs)的开源数据集。本仓库提供了数据集、相应的数据生成代码,以及在我们数据集上的基线实现。
特点
- 我们精选的问题保证了大语言模型几乎不可能凭借内部知识记忆并正确回答;
- ToolQA中的大多数问题需要组合使用多个工具。根据工具链的长度,我们提供了两种不同难度级别的数据集:简单和困难。
- 我们在论文中对上下文工具增强型大语言模型进行了全面的诊断和分析。
- ToolQA是通过人工智能与人类协作创建的,可以自动适应新的数据和问题。
数据集统计
ToolQA包含来自8个不同领域的数据,每个实例都是一个元组——(问题、答案、参考语料库和工具)。参考语料库是可查询的外部知识源,可以是文本语料库、表格数据库或图形。
上下文 | 主题 | 知识格式 | 知识规模 | 简单模板数 | 简单问题数 | 困难模板数 | 困难问题数 |
---|---|---|---|---|---|---|---|
时间性 | 航班 | 表格数据库 | 4078318 | 10 | 100 | 10 | 100 |
时间性 | 咖啡 | 表格数据库 | 5746 | 8 | 100 | 13 | 130 |
空间性 | Yelp | 表格数据库 | 150346 | 11 | 100 | 10 | 100 |
空间性 | Airbnb | 表格数据库 | 102599 | 10 | 100 | 10 | 100 |
数学性 | GSM8K | 专业能力 | - | - | 100 | - | - |
社交性 | DBLP | 图形 | 553320 | 10 | 100 | 10 | 100 |
科学性 | SciREX | 纯文本语料库 | 438 | 1 | 100 | 4 | 100 |
个人性 | 日程 | 纯文本语料库 | 10000 | 5 | 100 | 5 | 100 |
总计 | - | - | - | 55 | 800 | 62 | 730 |
数据下载
我们为ToolQA涉及的所有数据提供下载链接。我们提供两类数据供下载和使用。第一类是外部语料库。这类数据已经由我们预处理,用于外部工具交互(例如检索、数据库操作等)。第二类数据是原始数据,不能作为ToolQA的外部知识进行交互。我们提供这部分数据仅供用户生成更多问题和答案,用于模型调优或全面评估。
外部语料库下载
外部语料库可以通过此链接下载。下载并解压后,用户需要将其放置在/<YOUR_OWN_PATH>/ToolQA/data/external_corpus/
目录下。
原始数据下载
以下列出了所有数据源和下载指南:
- 航班:您可以从下载链接下载原始航班数据。请将"Combined_Flights_2022.csv"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/flights/"目录下。
- 咖啡:您可以从下载链接下载原始咖啡数据。请将"coffee.csv"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/coffee/"目录下。
- Yelp:您可以从下载链接下载原始Yelp数据。请将"yelp_academic_dataset_business.json"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/yelp/"目录下。
- Airbnb:您可以从下载链接下载原始Airbnb数据。请将"Airbnb_Open_data.csv"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/airbnb/"目录下。
- DBLP:您可以从下载链接下载原始DBLP数据。请将"DBLP-Citation-network V14.zip"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/dblp/"目录下。
- GSM8K:您可以从下载链接下载原始GSM8K数据。请在原始问题上运行ChatGPT vanilla,并将结果文件"gsm.chat.jsonl"放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/gsm8k/"目录下。
- SciREX:您可以从下载链接下载原始SciREX数据。请将数据集文件"train.jsonl"、"val.jsonl"和"test.jsonl"放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/scirex/"目录下。
- 日程:您可以从我们准备的下载链接下载原始数据。请将"agenda_events.jsonl"文件放在"/<YOUR_OWN_PATH>/ToolQA/data/raw_data/agenda/"目录下。
生成新问题
您还可以使用ToolQA在我们的模板下生成新问题,用于调优和新的评估集。我们在"/dataset_generation/"目录中提供了数据生成代码。您只需修改笔记本中的路径即可。
工具实现
我们在基准测试的每个基线中提供了一系列已实现的工具,如"./benchmark/ReAct/code/tools"。请注意,这些问题是有意设计成开放式的。这反映了我们的信念,即这些问题已经具有足够的挑战性,我们不希望限制论文中建议的工具。我们欢迎使用更高级的工具(如更优秀的检索器)进行实验以提高性能,或设计更有效的规划模块以更好地组合使用我们定义的工具。因此,我们很期待看到针对所有问题的多样化实现。
检索器
我们使用Langchain包和Chroma向量数据库实现了检索器。我们已经在下载链接上传了预处理的chroma向量库。请将文件下载到"/<YOUR_OWN_PATH>/ToolQA/data/chroma_db/"目录下。
SQL解释器
要解释SQL命令,用户可能需要先将数据库加载到mysql数据库中。您可以运行以下命令来创建数据库(整个过程可能需要数小时):
python ./benchmark/ReAct/code/tools/table/mysql_db_create.py
数学计算器
要在实现中使用计算器,您首先需要通过官方Wolframalpha开发者门户注册一个账户。
当前进展
数据和代码正处于最后的清理阶段,将在很短的时间内逐步公开。我们在TODO列表部分提供了最终审查的详细进展。
开源进展
-
发布所有简单和困难问题; -
工具实现; -
所有基准代码发布; - 更新基准代码。
问题?
如果您有任何问题,请随时联系"yczhuang at gatech.edu"。请尽量详细说明问题,以便我们能更好更快地帮助您!
引用
如果您发现这个仓库对您的研究有价值,我们恳请您通过引用以下论文来认可我们的工作。我们感谢您的考虑。
@misc{zhuang2023toolqa,
title={ToolQA: A Dataset for LLM Question Answering with External Tools},
author={Yuchen Zhuang and Yue Yu and Kuan Wang and Haotian Sun and Chao Zhang},
year={2023},
eprint={2306.13304},
archivePrefix={arXiv},
primaryClass={cs.CL}
}