Balancing Content Size in RAG-Text2SQL System

参考论文:Balancing Content Size in RAG-Text2SQL System项目代码
时间:2025.3

通过RAG虽然检索到了更多相关的文档,但Text2SQL系统却由于提示词数量增加产生了更多的幻觉,本文研究了不同文档内容、不同文档配置的内容对RAG+Text2SQL系统检索精度、幻觉率及可靠性的影响,并提出了一些建议

一、研究背景与核心问题

1. 技术背景

  • Text2SQL系统局限:基于LLMs的Text2SQL系统虽能将自然语言查询转化为SQL命令,实现数据库无缝交互,但存在幻觉、知识过时、推理不可追溯等固有问题。
  • RAG的整合价值:RAG通过提供表结构、元数据等关键上下文信息,可缓解LLMs的上述缺陷,成为Text2SQL系统的重要增强方案。
  • 新的矛盾点:RAG+Text2SQL系统性能受检索文档质量与规模影响显著——文档内容越丰富,虽可能提升 schema 相关性与检索精度,但会增加噪声,导致Text2SQL模型提示词(Prompt)规模膨胀,进而提高幻觉风险、降低查询保真度。

2. 研究意义

在商业智能、自动化报告、企业数据自然语言接口等实际场景中,即使一个幻觉SQL查询也可能引发错误洞察与重大决策失误,因此平衡文档规模与质量对保障查询结果可靠性至关重要,同时可提升软件行业日常任务效率,推动优质软件解决方案开发。

二、研究目标

  1. 分析不同文档内容对RAG+Text2SQL系统检索精度、幻觉率及可靠性的影响。
  2. 探究不同文档配置下,纯RAG系统与RAG+Text2SQL系统的性能差异。
  3. 提出简洁、高质量的文档设计框架,在最大化检索效果的同时最小化幻觉,实现系统性能最优平衡。

三、实验设计

1. 数据集选择:SPIDER数据集的子集

在这里插入图片描述

2. 文档变体设计

基于SPIDER数据集表结构,设计7类文档变体,逐步增加内容复杂度,以测试文档规模与质量的影响:

  1. Spider-Data-1:仅包含原始CREATE TABLE语句。
  2. Spider-Data-2:统一格式的CREATE TABLE语句(保证一致性)。
  3. Spider-Data-3:修改后的CREATE TABLE语句+1条示例INSERT查询。
  4. Spider-Data-4:修改后的CREATE TABLE语句+2条示例INSERT查询。
  5. Spider-Data-5:修改后的CREATE TABLE语句+表及列的文本描述。
  6. Spider-Data-6:修改后的CREATE TABLE语句+表及列的文本描述+1条示例INSERT查询。
  7. Spider-Data-7:修改后的CREATE TABLE语句+表及列的文本描述+2条示例INSERT查询。

3. 系统架构

在这里插入图片描述

(1)RAG系统配置
  • 框架:采用LangChain,支持语言模型与检索组件的无缝集成。
  • 嵌入模型:使用all-MiniLM-L12-v2( sentence-transformer模型),可将文本转化为固定维度向量,该模型非常适合聚类和语义搜索任务,并且在开源嵌入模型中表现出了卓越的性能。
  • 向量存储:采用FAISS,优化相似性查询速度与精度。
  • 检索参数:设置k=3(每次检索Top 3相关文档),因单SQL查询通常涉及不超过3张表。
(2)Text2SQL模型
  • 基础模型:基于Llama-3的SQLCoder-8B,它解决了传统 Text2SQL 模型的局限性,在准确性、适应性和易用性方面树立了新的标杆。该模型在零样本场景下的准确率超过 90%,在各种查询环境中都表现出卓越的性能。
  • 关键超参数
    • 温度(Temperature):0.01(最小化输出随机性,保证一致性)。
    • Top_p:0.7(控制生成多样性,同时维持相关性)。
    • 最大新token数:1024(确保生成完整、语法正确的SQL)。
    • 返回完整文本(Return Full Text):False(简化输出,便于下游集成)。
(3)端到端流程
  1. 用户输入自然语言查询。
  2. RAG系统检索Top 3相关文档(表结构/元数据等)。
  3. 检索文档+用户查询+Text2SQL指令组合为Prompt。
  4. Text2SQL模型处理Prompt,生成SQL查询。

4. 评估指标

(1)RAG系统评估指标
  • discounted累积增益(DCG):评估检索文档相关性,权重向高排名文档倾斜,公式为 D C G p = ∑ i = 1 p r e l ( i ) log ⁡ 2 ( i + 1 ) DCG_{p}=\sum_{i=1}^{p} \frac{rel(i)}{\log _{2}(i+1)} DCGp=i=1plog2(i+1)rel(i)(rel(i)为第i位文档相关性得分,p为排名)。
  • 标准差(Std Dev):衡量Top-k文档相关性得分的离散度,反映系统区分相关与非相关文档的能力,公式为 S t d D e v = 1 k ∑ i = 1 k ( r e l ( i ) − r e l ‾ ) 2 StdDev=\sqrt{\frac{1}{k} \sum_{i=1}^{k}(rel(i)-\overline{rel})^{2}} StdDev=k1i=1k(rel(i)rel)2 r e l ‾ \overline{rel} rel为Top-k文档平均相关性得分)。
  • 范围(Range):Top-k文档中最高与最低相关性得分的差值,体现得分分布广度。
(2)RAG+Text2SQL系统评估指标

通过与SPIDER数据集的正确SQL对比,从5个维度评估生成SQL质量:

  1. 归一化编辑距离:计算生成与正确SQL的编辑距离,除以查询长度,阈值0.5(低于则判定相似)。
  2. 嵌入匹配:用all-MiniLM-L12-v2将SQL转化为向量,计算余弦相似度,阈值0.85(低于则判定不匹配)。
  3. 模糊匹配:基于字符串模糊匹配算法,阈值75(高于则判定相似)。
  4. SQL组件匹配:逐组件对比(表选择、列选择、操作选择如JOIN/WHERE),组件不匹配即视为幻觉。
  5. 数据库执行对比:在PostgreSQL中执行生成与正确SQL,对比输出结果,不匹配则判定查询错误。

四、核心实验结果

1. RAG系统性能

  • 范围与标准差:文档内容越丰富(从Spider-Data-1到Spider-Data-7),范围与标准差越大,说明RAG系统区分相关/非相关文档的能力越强;尤其从Spider-Data-5(加入文本描述)开始,性能提升显著,证明上下文信息对检索的价值。

Range 的定义:Top-k 文档中 “最高相关性得分 - 最低相关性得分” 的差值,反映得分分布的广度。

Std Dev 的定义:衡量 Top-k 文档相关性得分的离散程度,反映系统区分 “相关 / 非相关文档” 的稳定性。

  • DCG:随文档内容增加呈下降趋势(因RAG得分越低表示相关性越高),说明Top-ranked文档相关性逐步提升。
  • INSERT语句的作用:在Spider-Data-3/4(内容较少)中,加入INSERT语句可提升检索效果;但在Spider-Data-5/6/7(已含文本描述)中,INSERT语句对检索性能提升不明显。

在这里插入图片描述

2. RAG+Text2SQL系统性能

  • 相似性得分:从Spider-Data-1到Spider-Data-4,相似性得分逐步提升;但Spider-Data-5(加入文本描述)后,得分下降一点,因Prompt规模膨胀导致幻觉增加,生成SQL与正确结果差异变大。
  • SQL组件幻觉:表选择与操作选择的幻觉率较低,但列选择幻觉率高——生成SQL常包含不必要的ID列(即使明确指令避免),推测与LLM(8B参数)自身能力限制相关。
  • 数据库执行结果:Spider-Data-4表现最优,Spider-Data-5后执行结果匹配率大幅下降,进一步验证“过度丰富的文档内容导致幻觉风险上升”的结论。

在这里插入图片描述

在这里插入图片描述

五、优化策略与框架

基于实验结果,提出RAG+Text2SQL系统文档设计的5项核心优化策略:

  1. 文档数量适配
    • 小规模文档集/少表场景:无需复杂RAG,基础schema文档即可满足需求。
    • 大规模文档集/多表场景:需加入详细表描述,提升RAG区分能力,减少无关表选择。
  2. 表相似度适配
    • 高相似表(同领域):需增强RAG能力,通过丰富文档内容提升区分度。
    • 高差异表(跨领域):基础schema文档即可实现精准检索。
  3. Text2SQL模型能力适配:高性能LLM可处理更复杂文档,低幻觉风险;低性能LLM需精简文档,避免Prompt过载。
  4. RAG的k值适配:k值增大时,需减小单文档规模,避免Prompt过长;k值较小时,可适当增加文档内容。
  5. 动态内容筛选:让RAG仅将文档中与查询最相关的部分传入Text2SQL模型,减少噪声,聚焦核心信息。

六、研究局限与未来方向

1. 局限

  • 数据集单一:仅基于SPIDER数据集,结果可能无法推广到其他结构、复杂度或领域的数据集。
  • Prompt长度限制:复杂schema场景下,Prompt易被截断,导致上下文丢失,影响性能。
  • 依赖结构化数据库:未考虑非结构化/半结构化数据,适配场景有限。

2. 未来方向

  • 大规模数据库适配:优化计算效率、响应时间与内存管理,提升系统在生产级大规模数据库中的适用性。
  • Text2SQL模型微调:基于RAG增强输入进行微调,提升模型对检索上下文的适配能力。
  • 幻觉缓解:整合领域约束、置信度评分、后处理校正等机制,降低幻觉率。
  • 动态文档生成:基于查询上下文动态生成schema文档,平衡Prompt长度与信息完整性。

七、核心结论

  1. 文档内容规模对RAG与RAG+Text2SQL系统的影响存在“双刃剑”效应:丰富内容提升RAG检索能力,但可能导致Text2SQL模型幻觉增加,需动态平衡。
  2. Spider-Data-4(修改后CREATE TABLE+2条INSERT)是最优文档配置,在检索精度与幻觉控制间实现最佳平衡。
  3. 文本描述对RAG检索有显著价值,但需控制规模——过度添加会引发Prompt过载,抵消检索优势。
  4. 优化文档设计需结合场景(文档数量、表相似度、模型能力),而非单一追求“内容丰富”,动态筛选与适配是关键。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐