
问题表示怎么选DAIL-SQL五大Prompt风格在GPT-4等4款LLM上的实验深度对比【免费下载链接】DAIL-SQLA efficient and effective few-shot NL2SQL method on GPT-4.项目地址: https://gitcode.com/gh_mirrors/da/DAIL-SQL在DAIL-SQL一种高效、高准确率的 few-shot 自然语言转 SQL即 Text-to-SQL 方法中有一个关键设计叫「问题表示」Question Representation把数据库表结构和用户问题「打包」进 Prompt 的方式。本文基于项目官方实验对比5 种 Prompt 风格在GPT-4、GPT-3.5-TURBO、TEXT-DAVINCI-003、Vicuna-33B四款大模型上的 zero-shot 表现帮你快速选出准确率高、Token 消耗低的 Text-to-SQL Prompt 风格。一、什么是「问题表示」5 种主流 Prompt 风格一览 做 Text-to-SQL 时模型要「看懂」两样东西数据库长什么样Schema和用户想问什么Question。这两样东西怎么组织成文字就是问题表示。不同风格直接影响模型理解成本和输出质量。DAIL-SQL 总结前人工作实现了 5 种典型风格源码见 prompt/PromptReprTemplate.py风格代码名核心思路直观感受 Basic Prompt (BS_P)BASELINETable 名, columns [...] 外键列表 Q: 问题朴素问答对 Text Representation (TR_P)TEXT纯文本列出表名与列名不用任何 SQL 语法最「人话」 Code Representation (CR_P)SQL用真实CREATE TABLEDDL 描述表结构把结构知识编码为 SQL OpenAI Demonstration (OD_P)NUMBERSIGN###号标记 Complete sqlite SQL query only and with no explanation贴近官方示例风格️ Alpa SFT Prompt (AS_P)INSTRUCTIONInstruction-Input-Response 指令格式模仿指令微调范式风格枚举定义在 utils/enums.py统一由 prompt/prompt_builder.py 装配进 Prompt 工厂通过--prompt_repr参数即可一键切换。二、Zero-shot 实测5 种 Prompt 风格在 4 款 LLM 上的准确率对决项目先在 zero-shot不给任何示例场景下用 Spider 数据集对 5 种风格做了系统对比分别看EMExact-match答案完全匹配和EXExecution Accuracy执行准确率两个指标。结论一目了然Code RepresentationSQL 风格与 OpenAI Demonstration### 风格整体最优在强模型上 EX 均能超过 72%EM 指标上GPT-4 的 Basic 风格意外领先但 EX 上与 CR_P、OD_P 差距很小——说明后两者生成的 SQL「语义更对」开源小模型 Vicuna-33B 表现整体偏弱EX 约 30%~45%且 OD_P / TR_P 最稳——小模型对「人话」式 Schema 更友好。三、两个「免费」增强外键信息与「无解释」规则 除了换风格DAIL-SQL 还验证了两个 Prompt 组件对 Text-to-SQL 准确率的提升效果EM 指标显式提供外键w/ FK四款模型、四种风格几乎全线上涨多表 JOIN 场景收益最大加 with no explanation 规则w/ Rule明确要求模型只输出 SQL对 GPT-4 的 CR_P 和 TEXT-DAVINCI-003 提升明显还能避免多余文字污染输出。 这两个增强几乎零成本建议在你的 Text-to-SQL Prompt 里直接抄走。四、Few-shot 示例怎么摆DAIL 组织方式的 Token 优势选定问题表示后few-shot 场景还要决定「示例里放什么」。DAIL-SQL 对比了三种组织方式以 GPT-4 在 Spider-dev 上的表现为例Full-Information示例里塞入完整数据库 Schema——信息全但 Token 贵SQL-Only只给 SQL——省 Token但模型缺少「问题↔SQL」的映射学习信号DAIL 组织只保留「问题-SQL」问答对并基于 SQL 骨架相似度检索示例同时剔除示例中的跨域 Schema。9-shot 下 EX 达83.5% 左右且每问平均只花约1600 Token——准确率与成本的双料最优。检索与组装配逻辑分别在 prompt/ExampleSelectorTemplate.py 和 prompt/ExampleFormatTemplate.py 中实现。五、实战速查表如何为你的 LLM 选择 Prompt 风格 ✅使用场景推荐配置GPT-4 / GPT-3.5 等强模型NUMBERSIGNOD_P或SQLCR_PEX 最高开源小模型如 Vicuna-33BTEXT或BASELINE更稳定数据库多表、JOIN 复杂显式附上外键信息w/ FK变体需要干净的纯 SQL 输出加 with no explanation 规则控制调用成本DAIL 示例组织QA 对 骨架相似度检索一条命令即可生成指定风格的 Prompt 文件完整参数见 generate_question.pypython generate_question.py --data_type spider --split test \ --prompt_repr NUMBERSIGN --k_shot 9 --example_type QA \ --selector_type EUCDISQUESTIONMASK --max_seq_len 4096也可以直接跑 run_dail_sql_mini.sh 一键体验最小流程。六、总结DAIL-SQL 给 Prompt 工程的三条启示 强模型选「代码感」把 Schema 编码为 SQL DDLCR_P或贴近官方示例格式OD_P是执行准确率最高的选择组件比风格更重要外键信息 无解释规则是跨模型通用的「白嫖」提升示例贵在精准DAIL 的「问题-SQL 对 骨架相似度检索」在 9-shot 下 EX 达 83.5%最终 DAIL-SQLGPT-4 在 Spider-test 上拿下86.2% 执行准确率加自一致性投票后86.6%登顶榜单而每问仅约 1600 Token。更多实验细节与数据见项目 README.md上手只需 3 个脚本数据预处理 → 生成 Prompt → 调用 LLM新手也能快速复现 Text-to-SQL 的完整 Prompt 实验。【免费下载链接】DAIL-SQLA efficient and effective few-shot NL2SQL method on GPT-4.项目地址: https://gitcode.com/gh_mirrors/da/DAIL-SQL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考