如何解决LLM应用程序中的AI幻觉现象

2025年02月24日 由 alex 发表 2837 0

介绍


使用大型语言模型(LLM)还是不用?

像ChatGPT、Claude、LLaMA这样的大型语言模型(LLM)功能强大,但仍是一项新兴技术,可能带来独特的风险。有时,LLM似乎完全明白发生了什么,能够轻松回答复杂问题。然而,另一些时候,它们却会输出无关信息,甚至“胡编乱造”(即虚构信息)。


7


为何使用大型语言模型(LLM)?

许多公司正在探索利用LLM和机器学习来改善客户体验的方法。一个常见的用例是处理客户支持问题。例如,一家公司可能每天收到数千个支持问题,其中一些问题可以通过适当的内部文档来回答(如“如何添加承包商?”、“如何将员工状态更改为兼职?”)。在这种情况下,基于LLM的问答服务可以帮助客户使用自然语言查询快速找到相关信息。


在这类应用中,至关重要的是要保持对LLM理解请求并能准确回答的高度信心。让我们通过LLM的信心水平来探讨一种可能的方法。


机器学习回顾


精确率-召回率曲线

在传统的机器学习建模方法中,我们通常通过控制模型的信心水平来防止低质量输出。

  • 通常,机器学习模型的低信心输出会包含更多错误。
  • 我们的目标是平衡这一权衡:最大化向用户展示的“良好预测”数量(高召回率),同时最小化向用户展示的“糟糕预测”数量(高精确率)。
  • 我们选择一个能够平衡我们需求的信心阈值。


接收者操作特征曲线(ROC曲线)和精确率-召回率曲线(PR曲线)是查看这种权衡的常用方法。


8


然而,LLM的输出是自由形式的文本,而不是像传统机器学习系统中那样有明确的类别标签和信心值。因此,这些技术似乎不适用于依赖LLM的机器学习系统。但在我们放弃之前(剧透:我们可以非常接近我们需要的目标),让我们先回顾一下LLM实际上是如何工作的。


回顾:GPT的直观理解

生成式预训练变换器(GPT)是LLM的一种常见架构。

  1. GPT模型使用有限的词汇表(标记)T进行工作。
  2. 在生成序列的每个标记位置上,GPT计算词汇表T上的似然概率分布——P(T_i | context)。你可以将其视为一个n元模型,其中标记概率是使用一个大型(GPT-4为1.76万亿参数)神经网络来估计的。
  3. GPT的“知识”实际上是以每个标记在当前上下文下的上下文概率形式存储的(见图1)。


9

图1


在LLM中寻找信心


LLM信心评分

我们通过查看通常使用 Transformer 型 ML 模型的机器翻译文献,找到了检测幻觉的指导。


  • “我们假设,当模型产生幻觉时,它并不自信。”[1] 这可以通过标记的对数概率来捕捉。
  • Seq-Logprob(即“LLM信心”)——序列生成过程中对数概率的平均值。如果GPT生成了一个序列“男孩去了游乐场”,并且这些顶级标记的对数概率为([-0.25, -0.1, -0.15, -0.3, -0.2, -0.05]),我们计算GPT的信心为:


llm_confidence = np.mean([-0.25, -0.1, -0.15, -0.3, -0.2, -0.05]) # -0.175


10


为何它很好:

  • 它质量高。“序列对数概率是最好的启发式方法,其性能与基于参考的COMET相当。模型越不自信,生成不合格翻译的可能性就越大。”
  • 它是免费的。“序列对数概率分数作为使用LLM生成响应的副产品很容易获得。”


LLM设计模式

在实现LLM服务时,我们可以:

1. 收集输出的序列对数概率(信心)分数,以了解预期输出信心分布。通过OpenAI API可以获得对数概率分数。

2. 监控信心分布低端的LLM输出。

3. 使用这个决策边界*,你可以自动:

a) 拒绝低质量响应

b) 对低信心响应引入专家人工验证

c) 尝试收集更多信息以使LLM更有信心


*LLM信心分布对提示变化敏感。因此,请相应校准边界。


11

图2


在我的测试过程中,我发现不自信的响应往往含糊其辞或过于宽泛(见图3左侧),更有可能编造内容,并且不太可能遵循提示指南,比如包含来源(见图3右侧)或不参与对话。自信的响应通常在指令上非常准确,能够确切地理解问题和解决方案。利用这一知识,可以过滤掉那些不自信的响应,避免它们被展示给客户。


12

图3


示例案例研究:常见问题解答服务


利用LLM信心过滤LLM错误

为了在实践中探索这种方法,我进行了一个小实验。我将1000个支持问题通过我们的问题解答LLM服务进行处理,并记录了LLM信心分数。


然后,我请我们的客户支持专家将LLM生成的输出标记为“高质量”或“低质量”。这样我就得到了一个二元标签,可以将其与生成输出的LLM信心分数进行对齐。


本案例研究显示,最自信的LLM响应与最不自信的LLM响应之间存在69%的相对差异。(见图4)


13

图4


有了控制LLM系统敏感性的方法,我们现在更接近于传统的机器学习系统,这使我们能够控制达到期望的成功率。


LLM精确率-召回率曲线

使用我们的二元成功标签和LLM信心作为敏感性,我们甚至可以为我们的LLM系统可视化一个实际的PR(精确率-召回率)曲线!


14

图5


我们可以将这视为“幕后工作”。即使我们并不总是能看到它,但在大多数生成过程中,这都在LLM的“推理”中发生着。


这将使我们能够有效地限制低质量响应被展示给客户。


结论:更可靠的LLM系统

  1. LLM信心分数在捕捉幻觉以及区分低质量和高质量LLM输出方面极为有效。
  2. 我们可以在LLM系统中以自动化的方式实施更好的用户体验模式(例如专家验证)。


文章来源:https://medium.com/gusto-engineering/tackling-ai-hallucinations-in-llm-apps-6d46692f8cac
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消