1.主要贡献
论文提出了zero shot 的 C3 的方法,C3由三个关键部分组成:清晰提示(Clear Prompting)、带有提示的校准(Calibration with Hints)和一致输出(Consistent Output),分别对应于模型输入、模型偏差和模型输出。具体来说,CP是一种新颖的零样本文本转SQL提示范例,它通过采用正确的输入来提高零样本文本转SQL的性能。此外,CH 还被提出来减轻 ChatGPT 在生成 SQL 查询时的偏差,从而通过校准模型偏差来提高零样本文本到 SQL 的性能。此外,CO旨在保持生成的SQL查询的一致性,通过克服大型语言模型输出中固有的随机性和不确定性来提高零样本文本到SQL的性能。
2.方法论
1.清晰提示
上图对比了传统的prompt和openAI的prompt还有论文提出的C3 prompt,提出了Clear Layout和Clear Context。
Clear Context使用了模式链接的方法,涉及表召回和列召回。
表召回借助于ChatGPT,首先,根据表格与问题的相关性对表格进行排名。其次,模型应检查是否已考虑所有表。最后,将输出格式指定为列表。为了保证表召回的稳定性,采用了自一致性方法。具体来说,该模型生成十组检索结果集,每组包含前四个表。最终结果是通过选择十组中出现次数最多的组来确定的。
列召回根据表召回结果,进一步检索候选表中的列,论文设计了一个零样本提示,并指示 ChatGPT 分两步调用列,首先,每个候选表中的所有列根据其与问题的相关性进行排名,然后,将输出格式指定为字典,同样采用了自一致性方法。
2.带有提示的校准
通过分析生成的 SQL 查询中发生的错误,论文发现一些错误是由 ChatGPT 固有的某些偏差引起的。如图 下图所示,ChatGPT 更喜欢提供额外的列和额外的执行结果,作者通过额外的提示来指导模型做什么,避免做什么。
3.一致输出
大量实验证明大模型是不稳定的,为了保持稳定的输出,采用了self-consistency。自洽方法的动机是,在复杂的推理问题中,有多种不同的推理路径可以得出唯一的正确答案,它首先对多个不同的推理路径进行采样,然后选择最一致的答案,以显着提高输出的质量。
Text-to-SQL 问题与推理问题类似,有多种方式编写 SQL 查询来表示相同的含义,如下图所示,通过ChatGPT获得多个SQL查询,在数据库上执行这些 SQL 查询并收集执行结果,在去除所有结果中的错误后,通过对这些执行结果应用投票机制来确定最一致的SQL作为最终的SQL。
3.实验
在表 1 中,可以看到C3方法和基线方法在 Spider 数据集上的性能,C3在测试集上的执行准确性方面优于所有传统的基于微调的方法,C3方法在开发集上的性能也比 ChatGPTSQL 的零样本设置高出 9.5%,在撰写本文时,C3模型在 Spider 排行榜上排名第二,与top1方法DIN-SQL的few-shot设置相比,C3方法侧重于zero-shot设置,C3方法仅使用大约 10% 的 DIN-SQL 标记数量,GPT-3.5引擎的成本也明显低于DIN-SQL中使用的GPT-4。论文也做了消融实验,可以看出清晰的提示对模型的成功起到了重要作用。