首页 > 教程攻略 > ai资讯 >大模型幻觉检测在 NL2SQL 任务的应用实践

大模型幻觉检测在 NL2SQL 任务的应用实践

来源:互联网 时间:2026-07-05 14:21:38

大模型在NL2SQL任务中的表现确实令人印象深刻,但幻觉问题始终是绕不开的坎。理想汽车的高级算法工程师团队带来了一套实战解决方案,不妨一起来看看。

核心要点包括:大模型幻觉的定义与分类、基于Token置信度的主动采样检测技术,以及其在汽车销售数据查询中的实际应用。内容比较扎实,值得花点时间了解。

大语言模型在NL2SQL任务上的应用越来越广泛,从复杂语义理解到自动化数据分析,优势相当明显。但与此同时,模型幻觉问题也跟着冒出来了。具体表现为生成的SQL与输入语义对不上号、对数据库架构或业务规则不够敏感、输出不符合实际数据情况等等。这些问题直接影响系统的可靠性和用户体验。

这篇文章从幻觉现象的本质出发,系统梳理了它的定义、分类和成因;回顾了当前无监督与有监督检测技术的研究进展;重点介绍了一种基于Token置信度的主动采样检测方法(ASD)在NL2SQL场景中的设计思路与工程实现;并通过理想汽车销售数据查询的真实业务案例,展示了实际应用效果。最后,也对未来可解释性强化、轻量级实时检测和跨场景通用框架建设等方向做了前瞻探讨。

什么是大模型幻觉

随着大模型时代的到来,预训练语言模型在文本生成、机器翻译、对话系统和结构化查询等场景中大放异彩。尤其在NL2SQL领域,通过自然语言直接生成可执行的SQL查询语句,给智能BI分析和自助报表带来了极大的便利。然而,幻觉现象逐渐成了系统工业化部署的绊脚石——有些语句在逻辑上与数据库表结构不匹配,对时间窗口或业务维度理解错误,甚至完全虚构字段或函数,导致下游执行失败。

大模型幻觉是指模型在生成内容时,输出与输入无关、不符合事实或逻辑上不合理的虚假信息。主要形式包括两类:

  • 事实性幻觉

    :事实不一致与捏造。输出内容违背客观事实或业务规则,比如伪造名人名言、编造历史细节、虚构参考文献。

  • 忠实性幻觉

    :不遵循指令与上下文。模型未能严格遵循输入指令或上下文约束,比如忽视用户指定的过滤条件或分组维度。

从模型内在表现的角度,又可以细分为:

  • 自信幻觉

    :模型在生成错误内容时token置信度却很高。这种情况最危险,因为高概率输出错误信息让人更难发现潜在风险。

  • 非自信幻觉

    :模型在生成幻觉内容时token置信度较低。这种情况反而给了我们机会——通过置信度分布可以检测并过滤掉潜在风险。

微调后的幻觉定义也需要厘清。微调的本质是通过训练数据与模型对话,使其对齐任务标准。对于给定输入,模型输出不符合任务定义就是幻觉。具体到不同任务:

  • 分类任务:模型输出的预测类别与预期类别不一致。

  • 信息提取任务:模型提取的信息与输入中包含的信息不一致,即抽取的实体或属性与原文不相符。

  • NL2SQL任务:模型生成的SQL无法得到输入问题要查的数据。可能是语法、字段名或逻辑错误导致无法执行,或者执行结果与用户预期不符。

为什么会出现幻觉

NL2SQL任务的核心要素包括指标、条件、分组维度。系统需要将用户输入的自然语言精准转换为结构化查询语句,核心流程涉及意图识别、拒识判断、Prompt拼接、SQL生成。典型的难点有:

  • 用户查询超出模型能力范围的指标。
  • 用户查询能力范围内的指标,但问题中条件和维度与指标存在冲突。
  • 用户问题本身不合理或表达不清,存在歧义。

流程简图可以归纳为:意图识别→拒识判断→Prompt拼接→SQL生成。

在微调场景下,模型不应该存在自信幻觉,所以我们主要关注非自信幻觉,也就是由不确定性导致的幻觉。造成不自信幻觉的原因包括:

  • 训练数据存在不一致或不均衡,导致某些知识训练不充分。
  • 模型推理超出训练数据范围的问题。
  • 模型推理错误或不合理的问题。

具体来看:

  • 分类任务幻觉:输入为"理想L9的NP",输出却是"TP"。因为训练数据中没有NP的类别,大模型基于泛化能力输出了最相似的TP。
  • 信息提取任务幻觉:输入为"24年,理想L9销量,按上海分组",输出却是条件{年,车系},分组{城市}。模型根据自己的理解做了不正确的衍生。
  • NL2SQL任务幻觉:输入为"24年7月至今,理想L9的展定单,按季度分组","展定单"这个表述有歧义,模型将其理解为"外展",导致SQL错误。

因此,工程实现中需要针对以上机理,制定多层次的检测与拦截策略。

幻觉检测的研究进展

常见的幻觉检测思路主要有几种:

  • 基于外部知识的验证

    :针对自信幻觉,通过验证SQL查询数据是否正确。
  • 基于自洽性的检测

    :针对非自信幻觉,通过多次生成验证一致性。
  • 基于概率或不确定性的方法

    :针对非自信幻觉,分析生成token的低概率或高不确定性(如熵值过高)。
  • 监督微调与对比学习

    :针对非自信幻觉,构建幻觉-非幻觉对比数据,训练分类器识别。

模型对某个输入越不确定,其生成的输出就越可能是随机的或不一致的。这种不确定性可以帮助我们识别出可能导致幻觉的问题或情境。非自信幻觉导致的不确定性有三种表现:

  • 顺序的不确定性

    :LLM可能在先生成时间条件还是地域条件上犹豫不决。
  • 形式上的不确定性

    :LLM可能用不同的表达方式,但不同形式不会改变文本的基本含义。
  • 内容的不确定性

    :LLM不确定要生成什么内容。

语义熵

是一种无监督检测方法,利用模型对其输出的不确定性来检测幻觉。通过语义聚类解决顺序不确定性和形式不确定性问题,从而检测内容不确定性导致的幻觉。实现流程是:采样多个答案→根据语义相似度聚类→计算聚类后的熵值。核心优势在于无需访问模型内部参数或改造模型推理流程,适用于闭源与开源模型。但需要较高的采样次数来保证统计稳定性,会增加推理成本。适合对响应时间要求不高、或基于闭源模型开发的应用场景。

CCP(断言条件概率)

是另一种无监督方法,适用于事实检查任务。将生成文本拆分为多个断言(Claim),通过拆分解决顺序不确定性的干扰;然后判断每个claim是否存在幻觉,看其中每个token的置信度是否低于阈值。如果低于阈值,将该位置的token替换为分布中置信度第二的token,得到新的claim,对比新旧claim是否语义等价。如果等价则合并两个token的置信度再判断,如果不等价则认为该token存在幻觉。

无监督幻觉检测方法不依赖额外的训练模型,更适合轻量级应用。优势在于:无需额外训练,适用于已有模型部署环境;轻量高效,不引入额外参数;即插即用,可作为后处理模块快速部署。主流方法围绕语义不确定性识别展开,核心思路包括:随机采样与语义熵计算、文本拆分与主张验证、词语替换与语义稳定性评估、语义等价对比等。但实际应用中也存在采样成本较高、结果不稳定、文本拆分效果依赖性强等问题。

PINOSE

是一种有监督检测方法,结合探针训练与离线一致性检查,针对非事实内容构造对照数据集,以二分类方式检测幻觉。通过提取LLM中间层(第16层)最后一个token的隐藏表示作为分类模型的输入。在同分布场景下准确率高,但依赖昂贵的标注与持续更新。

Factoscope

提出了更系统性的检测框架,模拟"测谎仪"原理,从静态与动态两个视角观测LLM内部状态。静态视角关注LLM某一生成时刻的激活状态,尤其是与事实相关的神经元激活模式;动态视角通过跟踪模型生成过程中的内部指标变化,捕捉潜在幻觉信号。训练阶段采用对比学习优化表征,推理阶段通过相似度检索实现内容分类与幻觉判别。

有监督检测方法在工程实践中优势明显,检测速度快、同分布内精度高。但局限性也很明显:依赖高质量标注数据、泛化能力有限、维护成本高——每当被检测的大模型发生更新或替换时,原有的检测模型往往需要重新训练。

ASD(基于Token置信度的主动采样)

是一种无需大量随机采样的幻觉检测策略。核心思路是根据模型生成过程中的token置信度分布,主动识别存在语义不确定性的片段,并进一步判断其成因。具体流程如下:

首先,贪婪解码生成初始回答。给定输入问题,模型用贪婪解码生成第一个样本,同时记录每一步生成过程中top-N的token及其置信度。然后筛选低置信度token,分析每一步token的置信度,识别潜在风险点。最后判断置信度低的成因,通过主动采样策略确认token置信度降低是由顺序不确定性还是内容不确定性引起的。

在筛选不确定的token时,考虑到单个token粒度过细,ASD将其聚合为语义片段。通过统计语义片段置信度的均值和方差,设定动态阈值(均值-3×方差),筛选置信度显著偏低的片段。再反向定位影响片段置信度的具体token,用于后续分析或重采样。

在实际应用中,ASD通过"模型输出回馈"机制构造扩展输入,提升采样策略的可控性。在对话型LLM中,ASD兼容标准对话模板格式,通过将模型的输出拼接在对话模板后面来实现主动采样。

相比传统随机采样,ASD的优势很明显:采样效率更高,避免无效的重复采样,当所有token置信度都高时可以节省高达95%的采样次数;采样结果更稳定,基于模型置信度分布,具有更高的一致性。

幻觉检测应用实践

分类任务通常用于识别用户问题中提及的指标名称。检测难点在于如何精准识别超出范围的指标,判断指标是否存在于模型知识中,以及模型是否"自创"指标。检测方法包括判别式分类器(如微调后的BERT模型,可设置置信度阈值判断模型是否"自信")和生成式方法(基于LLM微调的生成模型直接生成识别出的指标名称)。检测指标包括token置信度和困惑度。

ASD应用于信息提取时,可通过训练数据微调LLM,有效辅助识别用户输入中涉及的条件或分组维度。例如,用户问题"24年,订单量,按上海分组",模型输出结构化内容。不确定性类型包括顺序不确定性和内容不确定性。ASD通过token置信度筛选低置信度片段,定位潜在幻觉位置,同时避免不必要的随机采样。

在NL2SQL幻觉检测中,使用LLM微调模型端到端将自然语言转换为SQL,推理过程中应用ASD检测策略。检测准确率可达80%,召回率75%。

来看一个实例。问题:"2023年MODEY 3上险量"。模型误输出将'Model Y'替换成'Model'(置信度0.4855)和'MODE'(置信度0.4608)。另一个问题:"24年7月至今,理想L9的展定单,按季度分组"。生成的SQL语句中间出现语法残缺和错误字段,channel置信度仅为0.4594,expand置信度仅为0.1955,模型不确定性相当明显。

ASD在实践中的应用方式包括实时检测和模型评估。实时检测在在线推理阶段实时监控token置信度,判断生成内容是否存在潜在幻觉。模型评估方面,ASD支持对模型"幻觉率"进行系统评估,帮助发现评测集中未覆盖的问题类型,提前识别潜在风险。

未来展望:可解释性与结构性控制

未来幻觉检测的重要方向之一是模型可解释性的增强。之前介绍的都是外部检测方法,如今大模型能力不断增强,问题来了:大模型是否可以从内部意识到自己产生了幻觉?

Anthropic通过研究机制可解释性,尝试了解大模型内部的计算机制。他们分析模型的神经元是否可以有效表达清晰的特征,结果发现只有极少数神经元能清晰表达单一特征,大部分神经元同时表达多个特征,导致无法把神经元与特征关联起来。为了更好的分析,Anthropic提出了稀疏自编码器(SAE),把大模型的特征映射到稀疏可解释的空间,并基于可解释的特征绘制了归因图,展示在给定输入条件下各种特征如何作用并产生输出。基于归因图分析幻觉,发现大模型具备"幻觉控制回路"——这是一种结构化地参与特征决策路径的机制,并非简单的后处理手段。

未来,一方面我们会有更多优秀的大模型可供选择,同时这些大模型的厂商也会为用户提供幻觉检测方法。对于垂类任务,可能需要搭建自己的大模型及幻觉检测机制。通过深入解析模型内部结构和决策流程,有望构建更加稳定、可控的幻觉抑制系统。

相关下载