THUDM / AgentTuning

AgentTuning: Enabling Generalized Agent Abilities for LLMs
https://thudm.github.io/AgentTuning/
1.36k stars 95 forks source link

Dataset details 中找不到reward的计算方式 #40

Closed DryPilgrim closed 12 months ago

DryPilgrim commented 12 months ago

请教以下问题,非常感谢您的回答:)

1.AgentBench 论文附录中数据集的 Dataset details 中找不到reward的计算方式!?比如DB的C.1中只是提到”Metrics. We measure the Success Rate of agents in completing instructions.“ 这个不是计算trajectory的reward分数(而且AgentBench中DB数据并没有trajectory)。

  1. AgentBench 中为什么#Dev比#Test大呢?如DB的#Dev=60,#Test=300. 训练集比测试集大吗?
lr-tsinghua11 commented 12 months ago
  1. reward 的计算方式与 AgentBench 相同,参考其附录各数据集的 metrics
  2. Dev 和 #Test 都是测试集,#Dev 从 #Test 随机采样而来,不是训练集,#Dev 仅用于减少评测时间

DryPilgrim commented 12 months ago

非常感谢您的回答 Tks :-) ,我还有疑问想请教一下:

  1. 我这里提到的reward是指AgentTunning中用来评估交互轨迹质量的reward, AgentBench中没有提到要评估交互轨迹的质量。 reward和metric不一样,以DB为例,metric是模型sql操作的成功率SR,属于整个数据集层面;reward是衡量trajectory的质量,属于单条交互轨迹层面。所以对于DB任务来说,AgentBench中的metrics不能拿来作为AgentTunning中交互轨迹的评估分数reward。

  2. AgentBench 论文中说开源了Datasets,只有#dev和#test,没有训练集吗?

lr-tsinghua11 commented 12 months ago

也感谢您的持续关注! :-)

  1. 正如你所说,metric 的确是衡量整个数据集的,我们在实验过程中修改了部分 AgentBench 代码,从而获取到每条训练数据的 reward(把最终计算 SR 平均数替换为存下整个列表),进而可以 filter 交互数据;
  2. 是的,AgentBench 仅评测模型,训练集需要通过其余开源仓库等方式获取。
DryPilgrim commented 12 months ago

1 AgentTunning仓库中为什么没有held_in任务的评测呀(已有eval_heldout和eval_general)? 2 agentBench的代码中是在哪里计算的DB的SR呀?我看了代码,发现只有webshop实现了SR计算(THUDM/AgentBench/src/server/tasks/webshop/baseline_models/test.py)。此外,data中也没有webshop数据。 3 AgentBench训练集要自己重新构造吗?比如DB任务,需要自己收集混合WikiSQL、WikiTableQuestions等等。有处理训练集的脚本吗?

lr-tsinghua11 commented 12 months ago
  1. held_in 任务位于 ./AgentBench.old 文件夹下
  2. 如果是说新版 AgentBench,计算 DB 的 metric 代码位于 THUDM/AgentBench/src/server/tasks/dbbench/_init_.py 第 173 行,旧版位于 THUDM/AgentTuning/AgentBench.old/src/server/tasks/dbbench/_init_.py 第 176 行
  3. AgentBench 中收录的部分任务有官方训练集,如 AlfWorld, WebShop, Mind2Web, KG,对于一些没有训练集的任务,如 DB,OS,我们自行构造了同分布训练数据。如 AgentInstruct 中 DB 的部分训练数据由 BIRD 数据集收集,其余还有部分 DB 和 OS 的训练任务使用 GPT-4 进行构造,构造的结果经筛选后收录于 AgentInstruct。我们暂时不会开源构造训练数据的脚本。