DeTriever: Decoder-representation-based Retriever for Improving NL2SQL In-Context Learning
作者: Yuxi Feng, Raymond Li, Zhenan Fan, Giuseppe Carenini, Mohammadreza Pourreza, Weiwei Zhang, Yong Zhang
分类: cs.CL, cs.IR
发布日期: 2024-06-12
💡 一句话要点
DeTriever:一种基于解码器表征的检索器,用于提升NL2SQL的上下文学习效果。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: NL2SQL 上下文学习 信息检索 大型语言模型 解码器表征
📋 核心要点
- 现有NL2SQL上下文学习方法依赖外部编码器检索示例,与LLM存在表征能力差异,影响性能。
- DeTriever通过学习LLM隐藏状态的加权组合,构建更适合LLM的检索器,提升检索效果。
- 实验表明,DeTriever在NL2SQL任务上显著优于现有方法,尤其是在one-shot场景下。
📝 摘要(中文)
上下文学习(ICL)已被证明是一种有效的技术,可以提高大型语言模型(LLM)在各种复杂任务中的性能,尤其是在将自然语言问题翻译成结构化查询语言(NL2SQL)方面。然而,如何选择最有益的演示示例仍然是一个开放的研究问题。以往的工作通常采用现成的编码器来动态检索示例,但外部检索器和LLM之间存在固有的表征能力差异。此外,优化示例的选择是一项非平凡的任务,因为没有直接的方法可以在不执行成对推理的情况下评估示例的相对益处。为了解决这些缺点,我们提出了DeTriever,一种新颖的演示检索框架,它学习LLM隐藏状态的加权组合,其中编码了丰富的语义信息。为了训练模型,我们提出了一个代理分数,该分数基于输出查询之间的相似性来估计示例的相对益处。在两个流行的NL2SQL基准上的实验表明,我们的方法在one-shot NL2SQL任务上显著优于最先进的基线。
🔬 方法详解
问题定义:现有的NL2SQL上下文学习方法,通常使用预训练的通用句子编码器(例如Sentence-BERT)来检索演示示例。这些编码器与最终使用的LLM之间存在表征能力上的差异,导致检索到的示例可能并非LLM的最佳选择。此外,评估每个示例对最终性能的贡献非常困难,因为需要进行大量的成对推理,计算成本高昂。
核心思路:DeTriever的核心思路是利用LLM自身的解码器表征来构建检索器。通过学习LLM隐藏状态的加权组合,可以获得更贴合LLM内部表征的示例表示,从而提高检索的准确性和有效性。同时,论文提出了一种代理分数,用于估计示例的相对益处,避免了昂贵的成对推理。
技术框架:DeTriever框架主要包含以下几个步骤:1)使用LLM对训练集中的每个NL2SQL示例进行编码,提取其解码器隐藏状态;2)学习一个权重矩阵,用于对不同层的隐藏状态进行加权组合,得到示例的最终表征;3)对于给定的输入NL问题,使用相同的LLM进行编码,并计算其表征与训练集中所有示例表征的相似度;4)选择相似度最高的K个示例作为演示示例,用于LLM的上下文学习。
关键创新:DeTriever的关键创新在于使用LLM的解码器表征来构建检索器,而不是依赖于外部的句子编码器。这种方法能够更好地捕捉LLM内部的语义信息,从而提高检索的准确性。此外,提出的代理分数能够有效地估计示例的相对益处,避免了昂贵的成对推理。
关键设计:DeTriever的关键设计包括:1)使用多层解码器隐藏状态的加权组合,以捕捉不同层次的语义信息;2)使用余弦相似度来衡量示例之间的相似性;3)使用基于输出查询相似度的代理分数来训练权重矩阵。具体来说,代理分数计算的是使用不同示例作为上下文学习输入时,LLM生成的SQL查询之间的相似度。目标是最大化使用“好”示例时的查询相似度,同时最小化使用“坏”示例时的查询相似度。
🖼️ 关键图片
📊 实验亮点
实验结果表明,DeTriever在Spider和Bird两个NL2SQL基准数据集上都取得了显著的性能提升。在one-shot设置下,DeTriever在Spider数据集上超越了现有的SOTA方法,取得了X%的提升(具体数值请参考原论文)。这表明DeTriever能够更有效地利用上下文信息,提高NL2SQL系统的准确性。
🎯 应用场景
DeTriever方法可以广泛应用于各种需要上下文学习的NL2SQL任务,例如智能助手、数据库查询、数据分析等。该方法能够提高NL2SQL系统的准确性和效率,降低人工干预的需求,具有重要的实际应用价值。未来,该方法还可以扩展到其他自然语言处理任务,例如文本摘要、机器翻译等。
📄 摘要(原文)
While in-context Learning (ICL) has proven to be an effective technique to improve the performance of Large Language Models (LLMs) in a variety of complex tasks, notably in translating natural language questions into Structured Query Language (NL2SQL), the question of how to select the most beneficial demonstration examples remains an open research problem. While prior works often adapted off-the-shelf encoders to retrieve examples dynamically, an inherent discrepancy exists in the representational capacities between the external retrievers and the LLMs. Further, optimizing the selection of examples is a non-trivial task, since there are no straightforward methods to assess the relative benefits of examples without performing pairwise inference. To address these shortcomings, we propose DeTriever, a novel demonstration retrieval framework that learns a weighted combination of LLM hidden states, where rich semantic information is encoded. To train the model, we propose a proxy score that estimates the relative benefits of examples based on the similarities between output queries. Experiments on two popular NL2SQL benchmarks demonstrate that our method significantly outperforms the state-of-the-art baselines on one-shot NL2SQL tasks.