ChatGPT论文:Evaluating the Text-to-SQL Capabilities of Large Language Models 评估大语言模型的文本到 SQL 的功能 (一)

摘要

我们对 Codex 语言模型的文本到 SQL 功能进行了实证评估。 我们发现,在没有任何微调的情况下,Codex 是 Spider 基准测试的强大基线; 我们还分析了 Codex 在此设置下的故障模式。 此外,我们在 GeoQuery 和 Scholar 基准测试中证明,提示中提供的少量域内示例使 Codex 的性能优于在此类少数示例上进行微调的最先进模型。

1.简介

1 简介
将自然语言问题转换为 SQL 查询(文本到 SQL)是一个重要的业务问题,引起了广泛的研究兴趣。

完成此任务的常见方法包括训练模型,以在给定问题、数据库模式以及可能的数据库内容作为输入时生成 SQL 查询。 该领域的一个明显趋势是对自然语言预训练的模型进行微调。值得注意的是,随着使用更大的预训练模型,性能显着提高(Shaw 等人,2021 年;Scholak 等人,2021 年)。

来自更广泛领域的最新结果表明,简单地扩展生成语言模型的训练数据和模型大小可以带来高级功能。在这项工作中,我们研究这些模型是否已经是有竞争力的文本到 SQL 解决方案,而无需对特定于任务的训练数据进行任何进一步的微调,评估 不同大小的 Codex 和 GPT-3 模型在文本到 SQL 基准测试中具有不同的提示。

我们发现 Codex 在 Spider 开发集上实现了高达 67% 的执行准确率,具有竞争力。 我们分析了自动评估判断为错误的预测查询,发现其中许多查询会被人类判断为正确,而其他查询可能会在无微调范式中修复。 最后,使用 GeoQuery 和 Scholar 基准测试,我们表明,通过用少量示例提示来使 Codex 适应特定领域,比在相同示例上微调较小的语言模型更有效。

2.试验设置

模型

我们的评估重点是可通过 OpenAI API 访问的模型:GPT-3(按升序的 ada、babbage、curie 和 davinci 大小)和 Codex(按升序的 cushman-codex 和 davinci-codex 大小)。
这些是生成语言模型,在训练和推理过程中执行下一个标记预测; GPT-3 在来自互联网的各种资源上进行了训练,Codex 在 GitHub 上的代码上进行了进一步的微调。 我们将 GPT-3 和 Codex 与 Shaw 等人的方法进行了比较。 (2021) 使用 T5 编码器-解码器模型。从在 Common Crawl 上预训练的公共检查点开始,T5 模型在 Spider 上进行了微调,以预测输出 SQL,以问题和模式为条件。 当与使用 PICARD 算法的约束推理相结合时,3B 参数 T5 模型是目前 Spider 上最先进的模型(Scholak 等人,2021)。 我们还与 BRIDGE v2(Lin 等人,2020)进行比较,这是一种基于 BERT 的序列到序列模型。

零样本实验 Zero-Shot Experiments

我们使用 Spider 基准测试(Yu et al., 2019)进行跨域文本到 SQL。 我们使用有效(可执行)SQLite SQL 的开发集预测百分比、执行准确性和测试套件执行准确性来报告性能。 后一个指标是由Zhong等人提出的。 (2020) 来衡量以不同风格编写的 SQL 查询的语义等效性,这在将 Codex 与在 Spider 上训练的模型进行比较时至关重要。 我们在附录 A.5 中解决了 Codex 可能记忆 Spider 数据的问题。

少样本实验 Few-Shot Experiments

我们重新利用了 GeoQuery 和 Scholar 数据集的问题分割(Zelle 和 Mooney,1996;Iyer 等人,2017;Finegan-Dollak 等人,2018),在Few-Shot 设置中进行实验。 这些数据集中的示例按查询模板分组。 同一模板对应的示例具有相同的 SQL 查询结构,但可能具有不同的英文问题和 SQL 文字。 为了定义小样本任务,我们首先根据模板在训练集中的频率对模板进行排序。 在 n-shot 设置中,我们为 n 个最常见的模板中的每一个使用一个随机示例。

提示 Prompts

我们在实验中使用了六种提示结构(附录 C 中提供的示例)

  1. 问题不提供数据库信息,仅包含问题作为 SQL 注释。
  2. API 文档遵循 Codex 文档中 Text-to-SQL 示例的风格,并包含不符合 SQLite 标准的注释风格模式。
  3. Select X 在注释中包含对每个表执行 SELECT * FROM T LIMIT X 查询的结果,包括通过列标题的架构。
  4. Create Table 包含每个表的 CREATE TABLE 命令,包括列类型和外键声明。
  5. Create Table + Select X2 是前面两种提示格式的组合。
  6. 最后,Fewshot 还包括问题-查询对。

ChatGPT论文:Evaluating the Text-to-SQL Capabilities of Large Language Models 评估大语言模型的文本到 SQL 的功能 (二)

猜你喜欢

转载自blog.csdn.net/rkjava/article/details/135433399