3 评价结果
3.1 spider 数据集
表 2 列出了各种提示策略和模型组合的执行准确性 (ex) 和测试套件 (ts) 的准确性。我们的主要发现是:
- 开源模型在 spider 数据集上遇到了困难:尽管参数数量和模型性能之间存在正相关关系,但开源模型在 spider数据集上实现高精度方面面临着挑战。 例如,尽管 vicuna 7b 和 13b 已证明比原始预训练的 llama 7b 和 13b模型有所改进,但与 bard 和 gpt-3.5 相比,性能仍然存在显着差距。 此外,与 llama 的 13b 版本相比,dolly模型在不同的提示策略上也表现不佳。
- llm的表现对提示风格高度敏感:我们的实证研究结果证实,不存在适用于所有模型的通用提示策略。 虽然 is 提示策略对于gpt-3.5、bard、vicuna 和guanaco 被证明是有效的,但对于 dolly 和 llama 来说却产生了次优的准确度。令人惊讶的是,llama 在使用 s3 提示时实现了最佳结果,相比之下,gpt-3.5 的性能显著恶化。
- 使用随机示例的小样本学习提供的性能提升有限:从 1sl 和 5sl获得的大多数结果往往表现不佳,或者充其量只能达到与其他提示策略相当的结果。 然而,这种趋势也有一些例外。 dolly 模型是一个例外,与12b 变体中的其他提示策略相比,该模型显示 1sl 提示策略的性能有所提高。 这个结果似乎是反常的,因为在其他 1sl 和 5sl结果中没有观察到类似的性能提升。 另一个例外是 llama 模型,其中少样本提示策略优于一些零样本策略。 例如,30b llama模型仅用 5 个给定示例就实现了 22.4% ex 和 19.9% ts 准确率,这接近于guanaco 模型的性能(24.4% ex 和19.0% ts)。
3.2 经典数据集
由于academic, restaurants, imdb,yelp 没有有训练集,我们从其他经典数据集的评估集中抽取 1sl 和 5sl 的示例。 我们根据表 3 中的结果强调了一些主要发现:
- llm在大多数经典数据集上表现不佳:特别是,与之前研究中报告的基线性能相比,这些数据集上达到的最高准确率分别仅为 2.9% 和 2.4%,明显低于使用 lstm 或 bert 的传统 seq2seq模型的其他研究中观察到的基线结果 34.0% 和 45.2%(devlin 等人, 2019)。此外,即使进行了指令调整,vicuna、guanaco 和 dolly 在经典数据集上也面临着相当大的挑战。它们在各种提示策略和数据集组合中的执行精度通常几乎为零。
- 不同模型的少样本学习的有效性有所不同:与 spider 数据集的发现相比,我们观察到 llama 和 gpt-3.5 在 1sl 和5sl 上的性能有所改进。 例如,使用 1sl,gpt-3.5 在 geoquery 数据集上的性能从 15.4% 提高到42.3%,而使用 5sl,llama 在同一数据集上的性能也从 12.1% 显着提高到 15.4%。 然而,我们没有看到 dolly、vicuna 和 bard 的 1sl或 5sl 具有类似的性能改进。
- 附加数据库示例行是无效的:就像使用spider数据集观察到的结果一样,s3 提示策略在应用于不同模型的经典数据集时会产生低于标准的结果。因此,很明显,s3 提示策略在 text-to-sql 环境中可能并不有效。
4.探讨
4.1 llm 是否生成有效的 sql?
大型语言模型性能不佳的一个可能的解释是它们无法理解旨在生成 sql 语句的提示背后的意图。 当面对许多 s3 提示时,gpt-3.5 无法生成有效的响应。 为了评估此类实例的范围,我们绘制了图 1a 和 1b 中各种大型语言模型使用不同提示策略生成的有效 sql 语句的比例。对于 spider 数据集,我们发现许多模型(dolly 除外)一致,使用 is、1sl 和 5sl 提示策略在 90% 以上的时间内生成有效的 sql 响应。 有趣的是,llama 还展示了生成有效 sql 语句的能力,尽管它没有在指令数据集上进行专门的微调。 对于经典数据集,bard-p2 和 gpt-3.5 仍然能够生成 80-100% 范围内的有效 sql。 然而,vicuna 和 dolly 等开源模型在实现有效 sql 百分比高于 75% 方面遇到了挑战。 特别值得注意的是 llama 和guanaco 中观察到的不同趋势。 llama 通过小样本学习生成更有效的 sql,而guanaco 的性能随着示例数量的增加而下降。
此外,我们注意到 ad 和 s3 提示策略通常不是最优的,因为它们会导致许多大型语言模型的所有数据集中有效 sql 响应的数量显着减少。 gpt-3.5 特别容易受到 s3 提示策略的影响,导致spider数据集和经典数据集中生成的有效 sql 的百分比急剧下降。最后,需要强调的是,尽管这些语言模型可以生成有效的 sql 重新生成,但 sponses,这些 sql 在语义上通常不准确,并且无法充分解决输入文本问题。 因此,大多数数据集的执行精度都非常低。
4.2 样本选择如何影响1sl和5sl的性能?
在提示中包含训练集中的随机示例并不会显着提高不同模型的性能
根据表 2 和表 3 中的结果,很明显,在提示中包含训练集中的随机示例并不会显着提高不同模型的性能。 唯一的例外是 llama 和 gpt-3.5,它们在使用 1sl 和 5sl 提示策略时在大多数经典数据集上表现出显着的改进。 使用 1sl 或 5sl 提示策略提高 llama 的性能可部分归因于这样一个事实:让 llama 接触更多示例可以显着增强其生成有效 sql 的能力,如图 1b 所示。
llm 适应规范化 sql 风格
另一个值得注意的观察是,当向大型语言模型提供来自经典数据集的示例时,它们开始以类似于 finegan-dollak 等人中描述的规范化格式的风格生成 sql。 (2018),如图 2 所示,其中表别名遵循 <table_name>alias 的标准化约定。
llm 对风格变化的敏感性
为了评估语言模型 (llm) 在使用 1sl 和 5sl 生成 sql 时遵循规范化 sql 风格的程度,我们检查了生成的包含术语“别名”的 sql 语句的比例表 4 中。我们的研究结果表明,只有在采用 1sl 和 5sl 提示策略时,生成的 sql 样式的变化才明显。 值得注意的是,llama 在所有模型中脱颖而出,因为它始终将术语“别名”附加到超过 86% 的生成 sql 语句中。 有趣的是,bard 对规范化 sql 样式不太敏感,仅在所有生成的 sql 中 16.0% 观察到样式更改。 另一方面,gpt-3.5 表现出更高的敏感性,超过 50% 的生成 sql 受到影响。基于这一观察,我们假设这种敏感性差异可能是 llama 和 gpt-3.5 采用的 1sl 和 5sl 提示策略取得更大成功的一个促成因素。
不同来源的采样对性能的影响
我们通过对涉及从训练集以外的来源采样示例的实验进行简要讨论来结束本节。 表 5 列出了从两个不同来源获取样本时获得的 1sl 和 5sl 结果:1)spider 训练集,2)评估集。 在第二种情况下,我们采取预防措施,通过过滤掉与感兴趣的问题具有相同 sql 答案的所有示例,避免任何潜在的答案泄漏。 我们发现,使用 spider 数据集中的示例不仅不能产生任何好处,而且还会导致模型性能下降,比零样本方法的性能更差。 另一方面,当我们包含评估集中的示例时,我们会观察到评估结果的改进。 经过仔细检查提示,我们发现一些例子在语法上与预期的 sql 响应类似,主要区别在于表、列和值。 这一发现凸显了llm对提示中提供的示例的敏感性。 我们假设,如果我们向llm提供语法上接近预期 sql 响应的示例,它们可能会生成更准确的 sql 语句。
4.3 我们是否真正以零样本或少样本的方式评估文本到 sql 数据集?
我们已经确定了几个潜在的数据污染源(elangovan et al., 2021; lewis et al., 2021; magar and schwartz, 2022),这些来源引起了人们对文本零样本或少样本评估的真实性质的担忧 -to-sql 数据集。 这些来源包括 github 存储库上的 spider 数据集和经典数据集的可用性,以及 huggingface 数据集等平台上的 spider 数据集的存在。 此外,文本到 sql 数据集还可以包含在指令调整数据集集合中,例如 flan(wei 等人)。 我们在论文的结尾提出了一个问题,供研究人员思考:当大型语言模型已经接触到我们的评估数据时,我们是否真的在对大型语言模型进行零样本或少样本评估?
5 相关工作
最近,基于解码器的大型语言模型对代码生成任务做出了巨大贡献(li et al., 2023b; fu et al., 2023; darm et al., 2023)。 这些模型利用大规模文本数据的无监督自回归学习,使它们能够捕获丰富的语义关系和单词的概率分布。 尽管它们在上下文中仅用一个或几个例子就表现出色,但最近的研究表明,它们在涉及复杂推理的文本到 sql 任务中仍然面临挑战(liu 等人,2023)。
有几项工作专注于通过增强的提示设计来提高大型语言模型的文本到 sql 解析能力。 nan 等人进行的一项研究中。 (2023),作者强调了仔细选择情境学习示例的重要性。 他们证明,结合示例查询中的句法结构可以极大地增强大型语言模型的小样本能力。 chang 和 fosler-lussier (2023) 进行了一项全面的研究,探讨提示长度对文本转 sql 模型性能的影响。 此外,他们还检查了跨不同领域的数据库知识表示的敏感性。 郭等人。 (2023)提出了一种基于案例的推理框架,通过自适应检索案例提示来调整跨域设置中 gpt-3.5 的输入。 拉伊等人。 (2023) 使用基于边界的技术提高大型语言模型的泛化能力,这些技术在模式和 sql 的标记级别和序列级别上预处理提示。
同时,一些研究还探索了复杂的多步骤推理在提高大型语言模型在文本到 sql 解析方面的性能的潜在好处。 tai 等人(2023)表明,从最少到最多的提示(zhou 等人,2023)可能是不必要的,直接应用思想链(cot)提示(wei 等人,2022)可能会导致 到错误传播。 liu and tan (2023) 为文本到 sql 任务引入了一种划分和提示范例,其中涉及将任务划分为多个子任务并对每个子任务应用 cot 方法。 在 pourreza 和 rafiei(2023)的另一项研究中,在零样本设置中采用了自我校正模块,以在 spider 排行榜上取得新的最先进结果。 该模块将每个子问题的解决方案反馈给大语言模型,使其能够构建更好的整体解决方案。
6 结论和未来工作
本文使用五种不同的提示策略,系统地评估了九个基准数据集上六种流行的大型语言模型的文本到 sql 解析能力。 我们的研究结果表明,与闭源模型相比,开源模型的性能明显不足。 然而,值得注意的是,即使是 gpt-3.5 在几个经典数据集上的表现也比较小的基线模型更差。 我们正在提供我们的成果以供进一步分析并促进未来的研究工作。 我们未来想要探索几个研究课题。 首先,我们计划使用有限的 gpu 资源,使用低秩适应等技术,研究在 text-to-sql 数据集上对这些大型语言模型进行微调。 (2021)。 其次,我们想探索可以动态选择上下文学习示例的方法。 最后,我们有兴趣研究在多轮文本到 sql 数据集(例如 sparc)上使用这些大型语言模型的可行性和局限性(yu 等人,2019)。
局限性
首先,我们承认这项研究的范围仅限于六种大型语言模型,并且这些模型并不涵盖整个研究领域。 该家族中出现了令人兴奋的新条目,例如 falcon 模型。其次,在某些经典数据集的数据库模式中附加 5 个示例在某些情况下可能会超出开源模型的 2048 个令牌限制,从而导致截断 这可能会惩罚这些具有较短上下文窗口的模型。 最后,一些模型不仅生成 sql 语句,还生成补充信息,包括解释。 为了确保准确性,我们开发了正则表达式模式,旨在尽最大努力仅提取 sql 语句。 尽管如此,我们承认我们的规则可能并非完全万无一失,并且在某些情况下可能会引入错误的 sql
论文原文:battle of the large language models: dolly vs llama vs vicuna vs guanaco vs bard vs chatgpt - a text-to-sql parsing comparison
发表评论