MAC-SQL icon indicating copy to clipboard operation
MAC-SQL copied to clipboard

关于evaluate中的etype参数

Open Everyth1ng-kyh opened this issue 1 year ago • 9 comments

作者您好,请问为什么evaluate中的参数,选在all时EX指标会比选exec时的EX要高俩点左右?

Everyth1ng-kyh avatar Aug 18 '24 16:08 Everyth1ng-kyh

因为如果参数为 all ,即使无法执行,SQL层面上match也算对;而exec必须保证SQL能执行且执行结果和Gold完全一致才行,条件比all苛刻,所以会低2个点。

wbbeyourself avatar Aug 18 '24 16:08 wbbeyourself

image

wbbeyourself avatar Aug 18 '24 16:08 wbbeyourself

感谢您的回复,这对我非常重要。请问MAC中的实验结果使用的是all还是exec呢?NL2SQL普遍使用的是哪种呢? 并且我调用的公司聊天GPT4O(带有上下文可能会对实验结果产生影响),复现了MAC-SQL发现在SPIDER上,EM分数较低(20左右),这是否和您当时得到的实验结果一致?如果一致的话,您知道其中的原因是什么吗?

Everyth1ng-kyh avatar Aug 18 '24 16:08 Everyth1ng-kyh

MAC-SQL 用的exec,这点可以从代码脚本中看到。NL2SQL普遍采用 exec,因为随着大模型出现,EM指标显得很鸡肋,无法反映出模型的真实能力,因为SQL的写法有很多,只要答案对了即可,而EM指标要求写法完全按照Gold的来,很显然这不合理。MAC-SQL在EM较低是正常的,现在大模型方案在EM上都低,所以现在NL2SQL论文都已经摈弃EM指标了,都用的EX指标。

wbbeyourself avatar Aug 18 '24 16:08 wbbeyourself

https://github.com/FlyingFeather/DEA-SQL/issues/1#issue-2164761207 你知道DEA-SQL这篇论文吗,这个问题中提到您之前提交的代码好像和现在不同。

Everyth1ng-kyh avatar Aug 19 '24 02:08 Everyth1ng-kyh

Spider数据集上是有点调整,你可以用现在的版本。

wbbeyourself avatar Aug 19 '24 02:08 wbbeyourself

请问作者,您有使用gpt4o复现您的论文吗?我在BIRD和SPIDER上都无法得到理想的结果
spider:
                     easy                 medium               hard                 extra                all
count                248                  446                  174                  166                  1034
=====================   EXECUTION ACCURACY     =====================
execution            0.935                0.841                0.730                0.584                0.804

====================== EXACT MATCHING ACCURACY =====================
exact match          0.302                0.123                0.138                0.072                0.161




BIRD:
"Evaluate BIRD EX begin!"
save json file to ./outputs/bird\eval_result_dev.json
start calculate
                     simple               moderate             challenging          total
count                925                  465                  144                  1534
======================================    ACCURACY    =====================================
accuracy             62.16                48.17                37.50                55.61
===========================================================================================
Finished evaluation
"Evaluate EX done!"
"Evaluate BIRD VES begin!"
0
500
1000
1500
start calculate
                     simple               moderate             challenging          total
count                925                  465                  144                  1534
=========================================    VES   ========================================
ves                  28.23                25.32                17.45                26.34
=======================================================================================
并且BIRD上VES表现差距较大

Everyth1ng-kyh avatar Aug 28 '24 01:08 Everyth1ng-kyh

我没用 GPT4o跑过,Spider dev 上那个分数是正常的,会有波动。BIRD分数波动可能是BIRD dev 数据集更新了,我用的版本是之前的数据了。VES这个分数计算其实参考性不大,因为这个和当时电脑运行的CPU占用情况有关,有的服务器性能好,比较空闲,VES会很高,有的服务器跑的程序很多,就会导致VES偏低,我觉得这个VES指标看看就好。

wbbeyourself avatar Aug 28 '24 02:08 wbbeyourself

作者您好,请问您data中的dev_gold_schema.json是怎么获得的呢?我想在我的论文中计算召回率,但是您的BIRD数据版本和我的不一致,所以我想知道这是怎么获得的。 非常感谢!

Everyth1ng-kyh avatar Sep 03 '24 06:09 Everyth1ng-kyh

通过把 gold_sql 进行解析得到的,这个过程确实挺麻烦的,因为BIRD的SQL有些并不规范,还有错误,所以还需要加上人工修正。我回头整理一下脚本吧。

wbbeyourself avatar Nov 23 '24 02:11 wbbeyourself