five

ToolAlpaca

收藏
github2023-06-01 更新2025-02-07 收录
下载链接:
https://github.com/tangqiaoyu/ToolAlpaca
下载链接
链接失效反馈
资源简介:
ToolAlpaca数据集旨在提升模型使用常见工具的能力,包含总共3928个实例和超过400种工具。在构建过程中,从一个公共API仓库中随机选取了500个API作为起点,随后利用模型生成更全面的文档,从而形成一个多样化的工具集合。

The ToolAlpaca dataset is designed to enhance models' ability to utilize common tools, encompassing a total of 3928 instances and over 400 types of tools. During its construction, 500 APIs were randomly selected from a public API repository as starting points, followed by the generation of more comprehensive documentation using the model to form a diverse collection of tools.
提供机构:
中文信息处理实验室等
创建时间:
2023-06-01
原始信息汇总

ToolAlpaca数据集概述

数据集简介

  • 名称:ToolAlpaca
  • 目的:为紧凑型语言模型提供广义工具学习能力,最小化人类监督
  • 特点:通过多智能体模拟环境生成工具使用语料库,包含3.9k工具使用实例,覆盖400+工具

数据集组成

  • 训练数据train_data.json(400+ API)
  • 评估数据
    • eval_simulated.json(10个模拟API)
    • eval_real.json(11个真实API,部分需认证)

数据格式

json { "Name": "API名称", "Description": "API描述", "Category": "API类别", "Introduction": "LLM生成的介绍", "Functions": "LLM生成的NLDocumentation", "Documentation": "LLM生成的OpenAPI规范文档", "NLDocumentation": "自然语言文档", "Function_Description": "各功能描述", "Function_Projection": "功能到HTTP请求方法的映射", "Instructions": "LLM生成的指令", "Instances": [ { "input": "用户初始指令", "output": "最终输出", "Final Thought": "输出前的最终思考", "intermediate_steps": [ [ ["动作", "动作输入", "思考+动作+动作输入"], "观察结果" ] ] } ] }

数据集生成步骤

  1. 克隆仓库并安装依赖 bash git clone git@github.com:tangqiaoyu/ToolAlpaca.git cd ToolAlpaca pip install -r requirements.txt

  2. 下载公共API数据 bash python tool_maker/preprocess_public_apis.py -api data/public_apis.json

  3. 工具集构建 bash python tool_maker/get_elements.py -api data/public_apis.json -out ./data python tool_maker/natural_language_documentation.py -api ./data/api_data.json

  4. 工具使用实例生成 bash python instance_generation/instruction.py -api ./data/api_data.json -out ./data python instance_generation/simulator.py -api ./data/api_data.json python instance_generation/generation.py -api ./data/api_data.json -out ./data --use_cache

训练方法

bash deepspeed --num_gpus=2 --master_port=12345 train.py --model_name_or_path ${base_model_path} --data_path ${data_path} --output_dir outputs/vicuna-7b-toolalpaca/ --num_train_epochs 3 --per_device_train_batch_size 32 --learning_rate 2e-5

预训练模型

评估方法

  • 模拟API评估: bash python instance_generation/simulator.py -api ./data/eval_simulated.json python instance_generation/generation.py -api ./data/eval_simulated.json -out ./eval -llm TangQiaoYu/ToolAlpaca-13B python evaluation.py -api ${api_data_path} -out ./eval

  • 真实API评估: bash python instance_generation/generation.py -api ./data/eval_real.json -out ./data -llm TangQiaoYu/ToolAlpaca-13B --real python evaluation.py -api ${api_data_path} -out ./eval

引用

bibtex @misc{tang2023toolalpaca, title={ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases}, author={Qiaoyu Tang and Ziliang Deng and Hongyu Lin and Xianpei Han and Qiao Liang and Le Sun}, year={2023}, eprint={2306.05301}, archivePrefix={arXiv}, primaryClass={cs.CL} }

搜集汇总
数据集介绍
main_image_url
构建方式
ToolAlpaca数据集的构建依托于多智能体模拟环境,通过生成工具使用语料库来支持语言模型的工具学习能力。该数据集包含了超过400种工具的3900个工具使用实例,涵盖了从公开API中提取的工具信息,并通过大语言模型生成的自然语言文档进行补充。数据集的构建过程包括从公开API中提取数据、生成自然语言文档以及模拟工具使用实例,最终形成一个结构化的工具学习语料库。
特点
ToolAlpaca数据集的特点在于其广泛覆盖的工具类型和丰富的工具使用实例。数据集不仅包含了400多种工具的详细描述和功能文档,还通过大语言模型生成了自然语言形式的工具使用说明和示例。此外,数据集还提供了模拟和真实API的评估数据,支持对语言模型工具学习能力的全面测试。数据格式清晰,包含了工具名称、描述、功能映射以及使用实例的详细步骤,便于研究人员进行深入分析。
使用方法
ToolAlpaca数据集的使用方法包括数据下载、工具集构建和工具使用实例生成。用户可以通过克隆GitHub仓库并安装依赖包来获取数据集。随后,通过运行预定义的脚本,用户可以从公开API中提取数据并生成自然语言文档。工具使用实例的生成则通过模拟环境完成,用户可以根据需求生成训练或评估数据。训练模型时,用户需将数据集组织为标准SFT训练格式,并使用提供的训练脚本进行模型优化。评估阶段则支持对模拟和真实API的测试,用户可通过指定模型和提示模板来生成评估结果。
背景与挑战
背景概述
ToolAlpaca数据集由Qiaoyu Tang等人于2023年提出,旨在通过多智能体模拟环境生成工具使用语料库,以提升紧凑型语言模型的工具使用能力。该数据集包含超过400种工具的3900个工具使用实例,涵盖了广泛的API操作。其核心研究问题在于如何在最小化人类监督的情况下,使语言模型具备泛化的工具使用能力。ToolAlpaca的提出为自然语言处理领域中的工具学习任务提供了新的研究范式,推动了语言模型在实际应用中的工具交互能力。
当前挑战
ToolAlpaca数据集面临的挑战主要体现在两个方面。首先,在领域问题层面,如何使语言模型在复杂的工具使用场景中准确理解并执行API调用仍是一个难题,尤其是在涉及多步骤操作和动态环境交互时。其次,在数据集构建过程中,生成高质量的工具使用实例需要克服模拟环境的真实性和多样性问题,同时还需确保生成的语料库能够覆盖广泛的工具类别和操作场景。此外,如何有效评估模型在真实API环境中的表现,尤其是在涉及认证和动态数据的情况下,也是一个亟待解决的挑战。
常用场景
经典使用场景
ToolAlpaca数据集在自然语言处理领域中被广泛应用于工具学习的研究。通过多智能体模拟环境生成工具使用语料库,该数据集为语言模型提供了丰富的工具使用实例,涵盖了400多种工具和3900多个工具使用场景。研究人员可以利用这些数据来训练和评估语言模型在工具使用任务中的表现,尤其是在无需大量人工监督的情况下,提升模型的泛化能力。
衍生相关工作
ToolAlpaca数据集衍生了一系列相关研究工作,特别是在工具学习和语言模型泛化能力方面。例如,基于该数据集的研究成果已被应用于开发更高效的多智能体协作系统,以及提升语言模型在复杂任务中的推理能力。此外,该数据集还为其他工具学习框架提供了基准测试数据,推动了该领域的标准化和进一步发展。
数据集最近研究
最新研究方向
在自然语言处理领域,ToolAlpaca数据集的最新研究方向聚焦于提升语言模型在工具使用方面的泛化能力。通过多智能体模拟环境生成工具使用语料库,该数据集提供了超过400种工具的3900个工具使用实例,极大地丰富了语言模型在工具学习中的训练数据。当前研究热点包括如何通过最小化人类监督,使紧凑型语言模型能够高效地学习和应用多种工具。这一研究方向不仅推动了语言模型在实际应用中的智能化水平,还为解决复杂任务提供了新的可能性。ToolAlpaca的推出,标志着工具学习领域的一个重要里程碑,其影响深远,为未来的研究和应用奠定了坚实的基础。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作