ToolAlpaca
收藏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": [ [ ["动作", "动作输入", "思考+动作+动作输入"], "观察结果" ] ] } ] }
数据集生成步骤
-
克隆仓库并安装依赖 bash git clone git@github.com:tangqiaoyu/ToolAlpaca.git cd ToolAlpaca pip install -r requirements.txt
-
下载公共API数据 bash python tool_maker/preprocess_public_apis.py -api data/public_apis.json
-
工具集构建 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
-
工具使用实例生成 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} }




