Project Icon

ToolBench

大规模工具使用指令数据集与开源语言模型

ToolBench项目构建了大规模的指令微调数据集,旨在提升语言模型的工具使用能力。该项目收集了16464个真实API,覆盖单工具和多工具场景,采用深度优先搜索决策树方法生成注释。项目提供训练脚本和微调后的ToolLLaMA模型,其工具使用能力达到了与ChatGPT相当的水平。

🛠️ToolBench🤖

对话 对话 对话 对话 对话 对话

模型数据发布网页演示工具评估论文引用

🔨本项目(ToolLLM)旨在构建开源、大规模、高质量的指令调优SFT数据,以促进具有通用工具使用能力的强大LLM的构建。我们的目标是使开源LLM掌握数千种不同的真实世界API。我们通过收集高质量的指令调优数据集来实现这一目标。该数据集是使用最新的ChatGPT(gpt-3.5-turbo-16k)自动构建的,该模型已升级并具有增强的函数调用功能。我们提供数据集、相应的训练和评估脚本,以及在ToolBench上微调的性能强大的ToolLLaMA模型。

2024年8月更新 我们已更新了RapidAPI服务器的IP地址,请确保您获取了最新代码。您也可以使用这里的代码在本地构建。

💁‍♂️💁💁‍♀️ 加入我们的Discord!

阅读中文版

最新动态

  • [2024/3/17] 欢迎使用**StableToolBench: 一个基于API响应模拟的稳定可靠**的本地toolbench服务器。深入了解StableToolBench背后的技术,请参阅论文,并在项目主页探索更多内容。代码可在这里获取。

  • [2023/9/29] 发布了更稳定且覆盖更多模型(包括GPT4)的新版本ToolEval!详情请参考ToolEval。此外,我们发布了具有更强工具使用能力的ToolLLaMA-2-7b-v2。请使用ToolLLaMA-2-7b-v2模型和新版本ToolEval重现我们最新的实验结果。

  • [2023/8/30] 数据更新,包含超过120,000个解决方案路径注释和完整的推理思路!请在Google Drive上查找data.zip

  • [2023/8/8] 不再产生幻觉!发布ToolLLaMA-2-7b-v1(从LLaMA-2-7b微调),API幻觉率低于ChatGPT。

  • [2023/8/4] 我们提供RapidAPI后端服务,让您无需使用自己的RapidAPI密钥和订阅API。请填写我们的表单。我们将尽快审核并向您发送ToolBench密钥以开始使用!

  • [2023/8/1] 我们的论文已发布。

  • [2023/7/27] 发布新版本ToolBench。

✨以下是数据集构建、训练和评估的概览。



✨✨特点:

  • API收集:我们从RapidAPI(一个托管大量由开发者提供的真实世界API的平台)收集了16464个具有代表性的REST API。
  • 指令生成:我们精心策划了涉及单工具多工具场景的指令。
  • 答案注释:我们开发了一种新颖的深度优先搜索决策树(DFSDT)来增强LLM的规划和推理能力,这显著提高了注释效率,成功注释了那些无法用CoT或ReACT回答的复杂指令。我们提供的响应不仅包括最终答案,还包括模型的推理过程、工具执行和工具执行结果
  • API检索器:我们整合了API检索功能,为ToolLLaMA提供开放域工具使用能力。
  • 所有数据都是由OpenAI API自动生成并经过我们筛选的,整个数据创建过程易于扩展。


我们还提供了ToolLLaMA的使用演示

目前,我们的ToolLLaMA在工具使用方面已达到ChatGPT(turbo-16k)的性能水平。未来,我们将持续改进数据质量并增加对真实世界工具的覆盖范围。

这里是ToolBench的*旧版本*。

数据

👐ToolBench仅用于研究和教育目的,不应被解释为反映本数据集创建者、所有者或贡献者的观点或意见。它以Apache License 2.0发布。以下是数据的统计信息:

工具数量API数量实例数量实际API调用推理轨迹
3451164641264864695854.0

我们从RapidAPI抓取了16000多个真实世界的API,并策划了涉及这些API的真实人类指令。以下展示了RapidAPI的层次结构和我们的指令生成过程。



ToolBench包含单工具和多工具场景。多工具场景可进一步分为类内多工具和集合内多工具。我们在所有场景中使用DFSDT方法进行数据创建。以下是使用DFSDT方法进行数据创建过程的示意图:

数据发布

请使用以下链接下载我们的数据集:谷歌云盘清华云请注意 data_0801 是旧版数据。 文件结构如下:

├── /data/
│  ├── /instruction/
│  ├── /answer/
│  ├── /toolenv/
│  ├── /retrieval/
│  ├── /test_instruction/
│  ├── /test_query_ids/
│  ├── /retrieval_test_query_ids/
│  ├── toolllama_G123_dfs_train.json
│  └── toolllama_G123_dfs_eval.json
├── /reproduction_data/
│  ├── /chatgpt_cot/
│  ├── /chatgpt_dfs/
│  ├── ...
│  └── /toolllama_dfs/

以下是对 data 目录的一些描述:

  • instructionanswer:指令数据和解决方案路径注释数据。G1G2G3 分别指单工具、类内多工具和集合内多工具数据。我们还有一个用于可视化的 Atlas Explorer
  • toolenv:工具环境相关数据,包含 API jsons、API 代码和 API 示例响应。
  • retrieval:此目录包含用于工具检索的数据。
  • test_instructiontest_query_ids:我们从每个测试集中抽取200个实例。test_instruction 目录包含每个测试集的测试查询,test_query_ids 包含每个测试集中测试实例的查询 ID。
  • retrieval_test_query_ids:此目录包含检索器的测试实例查询 ID。
  • toolllama_G123_dfs_train.jsontoolllama_G123_dfs_eval.json:可直接用于训练 toolllama 并复现我们结果的预处理数据。关于预处理详情,我们将 G1、G2 和 G3 数据分别划分为训练、评估和测试部分,并在主要实验中合并训练数据进行训练。

请确保您已下载必要的数据并将目录(例如 data/)放在 ToolBench/ 下,以便以下 bash 脚本可以导航到相关数据。

🤖模型

我们发布了在最新版本数据上训练的 ToolLLaMA-2-7b-v2,以及在 0801 版本数据上训练的 ToolLLaMA-7b-v1ToolLLaMA-7b-LoRA-v1。所有模型都以多任务方式在发布的数据集上训练。我们还发布了在我们实验设置下训练的工具检索器

🚀微调

安装

克隆此仓库并进入 ToolBench 文件夹。

git clone git@github.com:OpenBMB/ToolBench.git
cd ToolBench

安装软件包(python>=3.9)

pip install -r requirements.txt

或仅用于 ToolEval

pip install -r toolbench/tooleval/requirements.txt

准备数据和工具环境:

wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=1XFjDxVZdUY7TXYF2yvzx3pJlS2fy78jk&confirm=yes' -O data.zip
unzip data.zip

https://drive.google.com/file/d/1XFjDxVZdUY7TXYF2yvzx3pJlS2fy78jk/view?usp=drive_link

训练检索器

  • 数据预处理:
export PYTHONPATH=./
python preprocess/preprocess_retriever_data.py \
    --query_file data/instruction/G1_query.json \
    --index_file data/test_query_ids/G1_instruction_test_query_ids.json \
    --dataset_name G1 \
    --output_dir data/retrieval/G1
  • 然后运行以下命令训练工具检索器:
export PYTHONPATH=./
python toolbench/retrieval/train.py \
    --data_path data/retrieval/G1/ \
    --model_name bert-base-uncased \
    --output_path retrieval_model \
    --num_epochs 5 \
    --train_batch_size 32 \
    --learning_rate 2e-5 \
    --warmup_steps 500 \
    --max_seq_length 256

训练 ToolLLaMA

  • 数据预处理,以 G1_answer 为例:
export PYTHONPATH=./
python preprocess/preprocess_toolllama_data.py \
    --tool_data_dir data/answer/G1_answer \
    --method DFS_woFilter_w2 \
    --output_file data/answer/toolllama_G1_dfs.json
  • 我们的训练代码基于 FastChat。您可以使用以下命令在 2 x A100(80GB)上训练 ToolLLaMA-7b,使用我们预处理的数据 data/toolllama_G123_dfs_train.json。关于预处理详情,我们将 G1、G2 和 G3 数据分别划分为训练、评估和测试部分,并在主要实验中合并训练数据进行训练:
export PYTHONPATH=./
torchrun --nproc_per_node=2 --master_port=20001 toolbench/train/train_mem.py \
    --model_name_or_path huggyllama/llama-7b  \
    --data_path  data/toolllama_G123_dfs_train.json \
    --eval_data_path  data/toolllama_G123_dfs_eval.json \
    --conv_template tool-llama-single-round \
    --bf16 True \
    --output_dir toolllama \
    --num_train_epochs 2 \
    --per_device_train_batch_size 2 \
    --per_device_eval_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --evaluation_strategy "epoch" \
    --prediction_loss_only \
    --save_strategy "epoch" \
    --save_total_limit 8 \
    --learning_rate 5e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.04 \
    --lr_scheduler_type "cosine" \
    --logging_steps 1 \
    --fsdp "full_shard auto_wrap" \
    --fsdp_transformer_layer_cls_to_wrap 'LlamaDecoderLayer' \
    --tf32 True \
    --source_model_max_length 2048 \
    --model_max_length 8192 \
    --gradient_checkpointing True \
    --lazy_preprocess True \
    --report_to none

训练 lora 版本:

export PYTHONPATH=./
deepspeed --master_port=20001 toolbench/train/train_lora.py \
    --model_name_or_path huggyllama/llama-7b  \
    --data_path  data/toolllama_G123_dfs_train.json \
    --eval_data_path  data/toolllama_G123_dfs_eval.json \
    --conv_template tool-llama-single-round \
    --bf16 True \
    --output_dir toolllama_lora \
    --num_train_epochs 5 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 2 \
    --gradient_accumulation_steps 2 \
    --evaluation_strategy "epoch" \
    --prediction_loss_only \
    --save_strategy "epoch" \
    --save_total_limit 8 \
    --learning_rate 5e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.04 \
    --lr_scheduler_type "cosine" \
    --logging_steps 1 \
    --source_model_max_length 2048 \
    --model_max_length 8192 \
    --gradient_checkpointing True \
    --lazy_preprocess True \
    --deepspeed ds_configs/stage2.json \
    --report_to none

使用我们的 RapidAPI 服务器进行推理

请先填写表单,审核后我们将发送 toolbench 密钥给您。然后准备您的 toolbench 密钥:

export TOOLBENCH_KEY="your_toolbench_key"

对于 ToolLLaMA

要使用ToolLLaMA进行推理,请运行以下命令:

export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model toolllama \
    --model_path ToolBench/ToolLLaMA-7b \
    --max_observation_length 1024 \
    --observ_compress_method truncate \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file toolllama_dfs_inference_result \
    --toolbench_key $TOOLBENCH_KEY

对于ToolLLaMA-LoRA

export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model toolllama \
    --model_path huggyllama/llama-7b \
    --lora \
    --lora_path /path/to/your/downloaded/ToolLLaMA-7b-LoRA \
    --max_observation_length 1024 \
    --observ_compress_method truncate \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file toolllama_lora_dfs_inference_result \
    --toolbench_key $TOOLBENCH_KEY

对于开放域设置下的ToolLLaMA-LoRA,运行:

export PYTHONPATH=./
python toolbench/inference/qa_pipeline_open_domain.py \
    --tool_root_dir data/toolenv/tools/ \
    --corpus_tsv_path data/retrieval/G1/corpus.tsv \
    --retrieval_model_path /path/to/your/retrival_model \
    --retrieved_api_nums 5 \
    --backbone_model toolllama \
    --model_path huggyllama/llama-7b \
    --lora \
    --lora_path /path/to/your/toolllama_lora \
    --max_observation_length 1024 \
    --observ_compress_method truncate \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file toolllama_lora_dfs_open_domain_inference_result \
    --toolbench_key $TOOLBENCH_KEY

对于OpenAI模型

要使用ChatGPT,运行:

export TOOLBENCH_KEY=""
export OPENAI_KEY=""
export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model chatgpt_function \
    --openai_key $OPENAI_KEY \
    --max_observation_length 1024 \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file chatgpt_dfs_inference_result \
    --toolbench_key $TOOLBENCH_KEY

要使用Text-Davinci-003,运行:

export TOOLBENCH_KEY=""
export OPENAI_KEY=""
export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model davinci \
    --openai_key $OPENAI_KEY \
    --max_observation_length 1024 \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file davinci_dfs_inference_result \
    --toolbench_key $TOOLBENCH_KEY

使用您自己的RapidAPI账户进行推理

要使用自定义RapidAPI账户进行推理,请通过rapidapi_key传递您的rapidapi密钥,并在脚本中指定use_rapidapi_key参数:

export RAPIDAPI_KEY=""
export OPENAI_KEY=""
export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model chatgpt_function \
    --openai_key $OPENAI_KEY \
    --max_observation_length 1024 \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file chatgpt_dfs_inference_result \
    --rapidapi_key $RAPIDAPI_KEY \
    --use_rapidapi_key

API自定义

要使用自定义API进行推理,您应该准备API文档和代码,然后修改您的查询。例如,要添加一个返回"hello world"字符串的API hello_world

  • API文档:首先生成API文档hello_world.json,它应该遵循以下格式:
{
    "tool_description": "返回hello world。",
    "tool_name": "hello world",
    "title": "hello world",
    "api_list": [
        {
            "name": "get_hello_world",
            "url": "",
            "description": "获取'hello world'。",
            "method": "GET",
            "required_parameters": [],
            "optional_parameters": []
        }
    ],
    "standardized_name": "hello_world"
}

然后将其放在data/toolenv/tools/下的特定类别中,可以是49个现有类别之一或新类别,例如Customized

  • API代码:在Customized目录下创建一个名为hello_world的目录。然后编写一个api.py代码来实现API的功能,并将其放在Customized/hello_world/下。API代码可以按以下格式编写:
def get_hello_world():
    """
    获取hello world
    """
    observation = "hello world"
    return observation

现在data/toolenv/下的文件结构应该是:

├── /tools/
│  ├── /Sports/
│  │  ├── basketball.json
│  │  ├── /basketball/
│  │  │  └── api.py
│  │  └── ...
│  ├── ...
│  ├── /Customized/
│  │  ├── hello_world.json
│  │  ├── /hello_world/
│  │  │  └── api.py
└── response_examples
  • 修改您的查询文件,查询文件应遵循以下格式:
[
    {
        "query": "我想获取一个'hello world'字符串。",
        "query_id": 200001,
        "api_list": [
            {
                "category_name": "Customized",
                "tool_name": "hello world",
                "api_name": "get_hello_world"
            }
        ]
    }
]
  • 最后,我们可以通过运行以下命令使用hello_world API进行推理:
export PYTHONPATH=./
python toolbench/inference/qa_pipeline.py \
    --tool_root_dir data/toolenv/tools/ \
    --backbone_model toolllama \
    --model_path ToolBench/ToolLLaMA-7b \
    --max_observation_length 1024 \
    --observ_compress_method truncate \
    --method DFS_woFilter_w2 \
    --input_query_file /path/to/your/query/file \
    --output_answer_file /path/to/your/output/file \
    --api_customization

目前我们仅支持在封闭域设置下使用自定义API。我们计划很快支持开放域。

设置和运行界面

ToolBench包含一个基于Chatbot UI的Web UI,经过修改以包含工具的使用。它由两部分组成:后端服务器和chatbot-ui-toolllama。这里有一个视频演示

Web UI

git clone https://github.com/lilbillybiscuit/chatbot-ui-toolllama
cd chatbot-ui-toolllama
npm install
npm run dev

应用将在http://localhost:3000/上可用。

后端服务器

export PYTHONPATH=./
python toolbench/inference/toolbench_server.py \
    --tool_root_dir data/toolenv/tools/ \
    --corpus_tsv_path data/retrieval/G1/corpus.tsv \
    --retrieval_model_path /path/to/your/retrival_model \
    --retrieved_api_nums 5 \
    --backbone_model toolllama \
    --model_path huggyllama/llama-7b \
    --lora \
    --lora_path /path/to/your/toolllama_lora \
    --max_observation_length 1024 \
    --method DFS_woFilter_w2 \
    --input_query_file data/test_instruction/G1_instruction.json \
    --output_answer_file toolllama_lora_dfs_open_domain_result \
    --rapidapi_key $RAPIDAPIKEY

此服务器将在http://localhost:5000/上可用。要开始请求,请调用http://localhost:5000/stream,使用GET或POST请求,包含具有以下字段的JSON对象:

{
    "text": "今天纽约的天气如何?",
    "top_k": 5,
    "method": "DFS_woFilter_w2"
}

ToolEval

通过在 ToolBench 上微调 LLaMA,我们得到了 ToolLLaMA。考虑到人工评估可能耗时较长,我们参照 AlpacaEval 开发了一个高效的机器评估器 ToolEval,它包含两个评估指标:

  • 通过率:计算在有限的 OpenAI API 调用次数内成功完成指令的比例。
  • 偏好度:通过比较给定指令的两个答案(动作序列)来衡量。我们预先定义了一组更好答案的标准,并将其组织为 ChatGPT 的提示。我们向评估器提供测试指令和两个候选答案,并获取其偏好。我们对每对答案进行多次评估以提高系统的可靠性。然后我们计算胜率(被评估器偏好的百分比)。更多细节可以在我们的论文中找到。

为了验证 ChatGPT 评估器在通过率和胜率方面的可靠性,我们从四种不同的方法(ChatGPT+ReACT、ChatGPT+DFSDT、ToolLLaMA+DFSDT 和 GPT4+DFSDT)中抽样,为每种方法的 300 条测试指令获取解决方案对。然后我们让人类标注 ChatGPT+DFSDT、ToolLLaMA+DFSDT 和 GPT4+DFSDT 的通过率,以及 ChatGPT+ReACT 和 ChatGPT+DFSDT 之间的胜率。

我们的 ChatGPT 评估器在通过率方面与人类标注者达到了 87.1% 的高度一致性,在胜率方面达到了 80.3% 的一致性。这个结果表明,我们的评估器生成的评估结果与人类非常相似,可以被视为一个可靠的评估器,能够模拟人类对通过率和胜率的评估。

关于 ToolEval 的更多细节可以在我们的论文中找到。

使用 ToolEval 进行评估

安装

安装包(python>=3.9)

pip install -r requirements.txt

评估

如果你想重现官方结果,请通过 Google Drive 下载复现数据 reproduction_data.zip,解压后将 reproduction_data 放在 ToolBench/data/ 下,并跳过数据准备过程。

  • 数据准备。要使用 ToolEval 评估你自己的模型和方法,首先你需要准备六个测试子集的所有模型预测。创建一个以你的模型和方法命名的目录,例如 chatgpt_cot,然后将每个测试集的预测放在该目录下。目录的文件结构应该是:
├── /chatgpt_cot/
│  ├── /G1_instruction/
│  │  ├── /10160_CoT@1.json
│  │  └── ...
│  ├── /G1_tool/
│  │  ├── /10221_CoT@1.json
│  │  └── ...
│  ├── ...
│  ├── /G3_instruction/
│  │  ├── /10221_CoT@1.json
│  │  └── ...

然后通过运行以下命令预处理预测:

export RAW_ANSWER_PATH=../../data/reproduction_data/model_predictions/
export CONVERTED_ANSWER_PATH=../../data/reproduction_data/model_predictions_converted/
export MODEL_NAME=chatgpt_cot
export METHOD=CoT
mkdir ${CONVERTED_ANSWER_PATH}/${MODEL_NAME}
for test_set in G1_instruction G1_category G1_tool G2_category G2_instruction G3_instruction
do
    answer_dir=${RAW_ANSWER_PATH}/${MODEL_NAME}/${test_set}
    output_file=${CONVERTED_ANSWER_PATH}/${MODEL_NAME}/${test_set}.json
    python convert_to_answer_format.py\
        --answer_dir ${answer_dir} \
        --method ${METHOD} \
        --output ${output_file}
done

之后,检查 ${CONVERTED_ANSWER_PATH}/${MODEL_NAME} 下是否有测试集的预处理 json 文件。如果有,你就可以运行以下评估流程。如果没有,检查模型预测是否有问题。

  • OpenAI 密钥。准备你的 OpenAI 密钥以使用我们的评估器。密钥应存储在一个 json 文件中,例如 path/to/your/openai_key_json_file.json
[
    {
        "username": "your_user_name",
        "passwd": "your_password",
        "api_key": "your_openai_key",
        "organization": "your_organization"
    },
    ...
]
  • 通过率:
export CONVERTED_ANSWER_PATH=../../data/reproduction_data/model_predictions_converted/
export SAVE_PATH=pass_rate_results
export CANDIDATE_MODEL=chatgpt_cot
export API_POOL_FILE=path/to/your/openai_key_json_file.json

python eval_pass_rate.py \
    --converted_answer_path ${CONVERTED_ANSWER_PATH} \
    --save_path ${SAVE_PATH} \
    --reference_model ${CANDIDATE_MODEL} \
    --test_ids ../../data/test_ids/ \
    --max_eval_threads 20 \
    --evaluate_times 7

结果文件将存储在 ${SAVE_PATH} 下。

  • 胜率。以下示例以 ChatGPT-ReACT 作为参考模型,GPT4-ReACT 作为候选模型。注意,你需要先获得两个模型的通过率结果,然后运行以下命令来评估 GPT4-ReACT 的偏好结果:
export CONVERTED_ANSWER_PATH=../../data/reproduction_data/model_predictions_converted/
export SAVE_PATH=preference_results
export PASS_TARE_PATH=pass_rate_results
export REFERENCE_MODEL=chatgpt_cot
export CANDIDATE_MODEL=gpt-4-0613_cot
export API_POOL_FILE=path/to/your/openai_key_json_file.json

python eval_preference.py \
    --converted_answer_path ${CONVERTED_ANSWER_PATH} \
    --reference_model ${REFERENCE_MODEL} \
    --output_model ${CANDIDATE_MODEL} \
    --test_ids ../../data/test_ids/ \
    --save_path ${SAVE_PATH} \
    --pass_rate_result_path ${PASS_TARE_PATH} \
    --max_eval_threads 20 \
    --use_pass_rate true \
    --evaluate_times 7

结果文件将存储在 ${SAVE_PATH} 下。

更多详情请参考 ToolEval

📊 模型实验结果

在我们的主要实验中,ToolLLaMA(v2) 展示了处理单工具和复杂多工具指令的强大能力,与 ChatGPT 不相上下。 以下是主要结果。每个模型的胜率都是与 ChatGPT-ReACT 比较得出的。

通过率:

方法模型I1-指令I1-工具I1-类别I2-指令I2-类别I3-指令平均值
ReACTClaude-25.53.55.566146.8
Text-Davinci-0031220208.514.52416.5
ChatGPT41.54444.542.546.52240.2
ToolLLaMA25293330.531.52529
GPT453.550.053.567.072.047.057.2
DFSDTClaude-220.53118.51720.52822.6
Text-Davinci-00343.5444637424643.1
ChatGPT54.56560.57571.56264.8
ToolLLaMA57616277776666.7
ToolLLaMA-Retreiver646460.581.568.56567.3
GPT46071.56779.577.57171.1
胜率: (参考模型: ChatGPT-ReACT)
方法模型I1-指令I1-工具I1-类别I2-指令I2-类别I3-指令平均值
-------------------------------------------------------------------------------------------
ReACTClaude-23127.833.83531.547.534.4
Text-Davinci-00328.535.33129.829.84533.2
ToolLLaMA454247.550.841.85547
GPT46058.863.565.860.37864.4
DFSDTClaude-23844.343.336.833.56543.5
Text-Davinci-00340.343.846.840.543.36346.3
ChatGPT60.56257.37264.86964.3
ToolLLaMA5555.354.568.5586960
ToolLLaMA-Retreiver62.3595568.560.87363.1
GPT467.567.866.573.363.38470.4

待办事项

  • ToolLLaMA将达到GPT-4的工具使用能力。

工具学习资源

随着基础模型的强大能力,我们热切期待看到它们在操作各种工具方面的应用。更多资源请参考以下内容:

引用

如果您喜欢ToolBench,欢迎引用我们。

@misc{qin2023toolllm,
      title={ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs}, 
      author={Yujia Qin and Shihao Liang and Yining Ye and Kunlun Zhu and Lan Yan and Yaxi Lu and Yankai Lin and Xin Cong and Xiangru Tang and Bill Qian and Sihan Zhao and Runchu Tian and Ruobing Xie and Jie Zhou and Mark Gerstein and Dahai Li and Zhiyuan Liu and Maosong Sun},
      year={2023},
      eprint={2307.16789},
      archivePrefix={arXiv},
      primaryClass={cs.AI}
}
@misc{qin2023tool,
      title={Tool Learning with Foundation Models}, 
      author={Yujia Qin and Shengding Hu and Yankai Lin and Weize Chen and Ning Ding and Ganqu Cui and Zheni Zeng and Yufei Huang and Chaojun Xiao and Chi Han and Yi Ren Fung and Yusheng Su and Huadong Wang and Cheng Qian and Runchu Tian and Kunlun Zhu and Shihao Liang and Xingyu Shen and Bokai Xu and Zhen Zhang and Yining Ye and Bowen Li and Ziwei Tang and Jing Yi and Yuzhang Zhu and Zhenning Dai and Lan Yan and Xin Cong and Yaxi Lu and Weilin Zhao and Yuxiang Huang and Junxi Yan and Xu Han and Xian Sun and Dahai Li and Jason Phang and Cheng Yang and Tongshuang Wu and Heng Ji and Zhiyuan Liu and Maosong Sun},
      year={2023},
      eprint={2304.08354},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
@misc{guo2024stabletoolbench,
      title={StableToolBench: Towards Stable Large-Scale Benchmarking on Tool Learning of Large Language Models},
      author={Guo, Zhicheng and Cheng, Sijie and Wang, Hao and Liang, Shihao and Qin, Yujia and Li, Peng and Liu, Zhiyuan and Sun, Maosong and Liu, Yang},
      year={2024},
      eprint={2403.07714},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号