论文:DIN-SQL:Decomposed In-Context Learning of Text-to-SQL with Self-Correction

ps:才开始学习,有问题很正常,QAQ,主要是自用当笔记本

1.Introduction

         在zero-shot和few-shot下的大模型已经有了足够好的结果,但这些模型在常用的基准测试(比如spider上)仍然落后于设计良好的经过微调的模型,如下图:

      微调相比于从头开始或微调一个模型,不需要消耗过多的资源,此外在一些基准测试数据集上,few-shot已经展现出较好性能,在训练例子有限的情况下也能有很高准确率。最新结果表明,LLM在使用如:chain-of-thought、least-to-most、decomposed prompting techniques等技术后在更复杂的任务中的性能可以得到改善。

     本文的贡献在于:

        (1)通过任务分解提高了基于LLM的text-to-SQL的模型性能

        (2)引入适应任务复杂性的自适应提示策略

        (3)在提示上下文中解决schema links挑战

        (4)使用LLM进行自修正

2.Related Work

        seq-to-seq模型在text2sql任务中显示出了巨大潜力,核心思想是结合给定的自然语言问题和schema并理由解码器来预测目标的SQL。

        具体的略

3.Few-shot错误分析

        随机在spider数据集的训练集中的不同数据库中抽取了500个查询,来解释LLM在少数情况下的失败之处。本文手动检查了这些失败,并将其分为六种。

### DIN-SQL 和 C3-SQL 的主要差异及各自特点 #### 主要差异 DIN-SQL 和 C3-SQL 都致力于解决 Text-to-SQL 任务并利用了大型语言模型的能力,但两者之间存在一些关键的不同之处。 - **侧重点不同** DIN-SQL 更加注重任务分解和自我纠正机制的应用。这种设计使得该方法能够逐步处理复杂问题,并通过多次迭代改进生成的结果[^1]。 相较之下,C3-SQL 则强调零样本学习能力以及提示词的设计质量对于最终效果的影响。此框架下的系统能够在无需额外训练的情况下适应新环境或领域内的查询需求[^5]。 - **实现方式** 对于 DIN-SQL 而言,其采用的是基于多轮对话的形式来进行 SQL 查询构建;而 C3-SQL 是依靠强大的预训练大模型本身所具备的知识完成从自然语言描述向结构化查询语句转换的过程[^2]。 #### 各自特点 ##### DIN-SQL 特点 - 提出了任务分解的方法论,有助于更好地理解输入文本中的逻辑关系; - 自我纠正功能允许算法在发现错误时自动调整输出结果直至满意为止; - 可能更适合那些具有明确阶段性和层次感的任务场景应用。 ##### C3-SQL 特点 - 凭借先进的预训练架构实现了真正的零样本泛化能力,在面对未知数据源时表现尤为突出; - 清晰有效的提示可以帮助引导模型生成更加精准合理的答案选项; - 使用 self-consistency 技术确保即使是在高度不确定性的条件下也能保持较高的准确性与稳定性。 ```python def generate_sql_query_din(input_text): # 基于DIN-SQLSQL查询生成功能模拟 decomposed_tasks = task_decomposition(input_text) sql_query_drafts = [] for task in decomposed_tasks: draft = initial_sql_generation(task) corrected_draft = self_correction(draft, input_text) sql_query_drafts.append(corrected_draft) final_sql_query = combine_and_refine(sql_query_drafts) return final_sql_query def generate_sql_query_c3(input_text): # 基于C3-SQLSQL查询生成功能模拟 multiple_inferences = multi_path_inference(input_text) valid_queries = filter_execution_errors(multiple_inferences) best_query = vote_for_best(valid_queries) return best_query ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值