当前位置: 首页 > news >正文

应对LLM应用中的AI幻觉,如何通过Token对数概率预测LLM的可靠性

应对LLM应用中的AI幻觉

如何通过Token对数概率预测LLM的可靠性

内容:

1. 相关机器学习(ML)概念回顾(精准度/召回率,LLM直觉)

2. 使用序列对数概率度量作为LLM信心

3. 通过案例研究结果过滤低质量LLM输出

引言

使用LLM还是不使用LLM?

像ChatGPT、Claude、LLaMA这样的大型语言模型(LLMs)非常强大,但仍然是一项新兴技术,可能带来独特的风险。有时LLM似乎完全知道发生了什么,并能轻松回答复杂的问题。但在其他时候,它们输出无关的信息,甚至“幻觉”出虚假的信息(编造信息)。

ChatGPT幻觉了法律案件,随后被一家律师事务所引用。[卫报]

为什么选择LLM?

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

在这种应用中,至关重要的是要保持高度的信心,确保LLM理解请求并能准确回答。我们来看看使用LLM信心度量的一个潜在方法。

机器学习回顾

精准度-召回率曲线

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

通常,机器学习模型的低信心水平输出会包含更多错误。

我们的目标是平衡权衡:最大化展示给用户的“好预测”数量(高召回率),并最小化展示给用户的“坏预测”数量(高精准度)。

我们选择一个平衡我们需求的信心水平阈值。

ROC曲线和精准度-召回率曲线(PR曲线)是常用的衡量这种权衡的方法。

PR曲线示例,每个点是模型在不同信心水平阈值下的表现 [来源]

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

回顾:GPT直觉

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

GPT模型使用有限的词汇(tokens)——T

在生成序列的每个token位置上,GPT计算一个在词汇T上的可能性概率分布——P(T_i | context)。你可以把它想象成一个n-gram模型,其中token的概率是通过一个大型神经网络(GPT-4有1.76万亿个参数)来估算的。

GPT的“知识”实际上存储为每个token在当前上下文下的条件概率(见图1)。

图1 [来源] GPT/LLM计算最可能跟随当前上下文“the boy went to the ____”的单词的概率分布。根据它对世界的理解,LLM预测,如果没有其他信息,典型的男孩最可能去操场或学校,而不是医院。

我们能从这些t

oken对数概率中学到什么吗?

在LLM中找到信心

LLM信心得分

通过查看机器翻译文献,我们找到了检测幻觉的线索,在这些文献中常用变换器类型的机器学习模型。

“我们假设当发生幻觉时,模型的信心不高。”[1] 这一点可以通过token对数概率来捕捉。

Seq-Logprob(即“LLM信心”)——序列生成的对数概率的平均值。如果GPT生成了序列“the boy went to the playground”,并且这些top-token对数概率为([-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

对于长度为L的LLM输出,计算每个位置的top-likelihood token的平均概率P(y_k|…)

为什么这么好:

它的质量好。“Seq-Logprob是最佳启发式方法,与基于参考的COMET相当。模型的信心越低,它生成不合适翻译的可能性越大。”[1]

它是免费的。“Seq-Logprob分数是生成响应时的副产品,容易获取。”[1]

LLM设计模式

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

收集Seq-LogProb(信心)分数来了解期望输出信心分布。对数概率分数可以通过OpenAI API获取。[3]

监控LLM输出中信心分布底部的内容。

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

a) 拒绝低质量的响应

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

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

*LLM信心分布对提示变化敏感。因此,要相应地调整边界。

图2:1000次生成样本中LLM信心的平均分布。一个漂亮的正态分布。

在我的测试过程中,我发现低信心的响应通常含糊不清或过于宽泛(见图3左),更可能编造东西,也更不可能遵循提示指南,例如包括来源(见图3右)或参与对话。高信心的响应通常在指令上非常精准,能够完全理解问题和解决方案。利用这些知识,可以过滤掉低信心的响应,避免它们出现在客户面前。

用户问题的示例响应(左)

信心与LLM响应是否包含来源链接(二元)。

图3:用户问题的示例响应(左)。信心与LLM响应是否包含来源链接(二元)。

示例案例研究:FAQ服务

使用LLM信心过滤LLM错误

为了实践这种方法,我进行了一项小实验。我将1000个支持问题样本通过我们的问答LLM服务,并记录LLM的信心分数。

然后,我请我们的客户支持专家将LLM生成的输出标记为“优质”或“劣质”。这给我提供了一个二元标签,可以与LLM生成输出的信心分数对齐。

这个案例研究显示,最有信心和最没有信心的LLM响应之间的相对差异为69%。(见图4)

图4:相等大小的区间及其平均准确率与LogProbs信心的关系,带有标准误差条。最高信心区间准确率为76%,最低信心区间准确率为45%

通过控制LLM系统的灵敏度,我们现在更接近传统的机器学习系统,使我们能够控制所需的成功率。

LLM精准度-召回率曲线

利用我们的二元成功标签和LLM信心作为灵敏度,我们甚至可以为我们的LLM系统可视化一个实际的PR曲线!

图5:FAQ服务案例研究的LLM精准度-召回率曲线

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

这将使我们能够有效地限制低质量响应出现在客户面前。

结论:更可靠的LLM系统

LLM信心得分在捕捉幻觉和区分低质量与高质量LLM输出方面极其有效。

我们可以在LLM系统中以自动化的方式实现更好的用户体验模式(例如专家验证)。

http://www.dtcms.com/a/35758.html

相关文章:

  • 【新手入门】SQL注入之伪静态注入
  • 英语学习DAY5
  • 2022 年学习 Spring Boot 开发的最佳书籍
  • Mysql 主从集群同步延迟问题怎么解决?
  • Vi 编辑器基本使用指南
  • DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能
  • DroidDissector本地部署
  • [实现Rpc] 客户端 | Requestor | RpcCaller的设计实现
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeekR1+RAGFlow构建个人知识库)
  • MapTRv2 论文学习
  • [分披萨]
  • 让网页“浪“起来:打造会呼吸的波浪背景
  • 性能巅峰对决:Rust vs C++ —— 速度、安全与权衡的艺术
  • vue语法v-model例子单选题和多选题
  • 【每日德语】Reise — 旅行
  • 湖北中医药大学谱度众合(武汉)生命科技有限公司研究生工作站揭牌
  • vue2项目中初始化mapbox组件
  • 免费 MLOps 课程:学习机器学习运维的完整流程
  • 玩转Docker | 使用Docker搭建Vikunja任务管理应用
  • 浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。
  • HarmonyOS Next 实现登录注册页面(ARKTS) 并使用Springboot作为后端提供接口
  • Spring Boot集成Swagger API文档:傻瓜式零基础教程
  • unity学习52:UI的最基础组件 rect transform,锚点anchor,支点/轴心点 pivot
  • 首次使用WordPress建站的经验分享(一)
  • Json和JsonString之间互转总结
  • Debezium日常分享系列之:Debezium 3.1.0.Alpha2发布
  • 【AI时代】可视化训练模型工具LLaMA-Factory安装与使用
  • 诺依框架安装
  • mysql索引
  • API测试工具:Swagger vs Postman 2025最新全面对比