应对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系统中以自动化的方式实现更好的用户体验模式(例如专家验证)。
相关文章:
应对LLM应用中的AI幻觉,如何通过Token对数概率预测LLM的可靠性
应对LLM应用中的AI幻觉 如何通过Token对数概率预测LLM的可靠性 内容: 1. 相关机器学习(ML)概念回顾(精准度/召回率,LLM直觉) 2. 使用序列对数概率度量作为LLM信心 3. 通过案例研究结果过滤低质量LLM输出…...
Openwrt路由器操作系统
一、什么是 OpenWrt? OpenWrt 是一个基于 Linux 的开源操作系统,主要设计用于嵌入式设备,尤其是路由器。与其说是传统的路由器固件,不如说它是一个路由器操作系统。 传统的路由器固件通常由路由器厂商开发,功能相对固…...
基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“流浪动物救助系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统…...
Ansible 学习笔记
这里写自定义目录标题 基本架构文件结构安装查看版本 Ansible 配置相关文件主机清单写法 基本架构 Ansible 是基于Python实现的,默认使用22端口, 文件结构 安装 查看用什么语言写的用一下命令 查看版本 Ansible 配置相关文件 主机清单写法...
(六)趣学设计模式 之 代理模式!
目录 一、啥是代理模式?二、为什么要用代理模式?三、代理模式的实现方式1. 静态代理2. JDK动态代理3. CGLIB动态代理 四、三种代理的对比五、代理模式的优缺点六、代理模式的应用场景七、总结 🌟我的其他文章也讲解的比较有趣😁&a…...
【CSS】HTML元素布局基础总结
HTML默认布局和元素显示 CSS 元素显示 { HTML 默认布局: 流式布局 { 从左到右,从上到下 随页面宽度变化动态排列元素 文档流:整个 H T M L 文档的流式布局 HTML 元素分为 { 块级元素 :默认占满一行 行内元素 :在行内最…...
【JavaScript】什么是JavaScript?以及常见的概念
作为 JavaScript 初学者,想要更好地理解这门语言,需要从核心概念、实践练习和项目实战三个方面入手。下面是详细的学习路线和方法,帮助你系统性地掌握 JavaScript。 一、理解 JavaScript 的核心概念 JavaScript 是一门动态、弱类型的编程语言…...
为什么要将PDF转换为CSV?CSV是Excel吗?
在企业和数据管理的日常工作中,PDF文件和CSV文件承担着各自的任务。PDF通常用于传输和展示静态的文档,而CSV因其简洁、易操作的特性,广泛应用于数据存储和交换。如果需要从PDF中提取、分析或处理数据,转换为CSV格式可能是一个高效…...
P1038 [NOIP 2003 提高组] 神经网络
题目描述 在兰兰的模型中,神经网络就是一张有向图,图中的节点称为神经元,而且两个神经元之间至多有一条边相连,下图是一个神经元的例子: 神经元(编号为 i) 图中,X1∼X3 是信息…...
TypeScript 类型断言的适用场景及代码示例
类型断言的适用场景及代码示例 适用场景 类型断言就像是你很确定某个东西是什么,然后直接告诉 TypeScript 编译器“相信我,它就是这个类型”。以下是几种常见的适用场景: 从 any 类型恢复具体类型:当你使用 any 类型时…...
Docker 容器
Docker 是一种开源的容器化平台,可以让开发人员将应用程序及其依赖项打包到一个可移植的容器中,然后部署到任何支持 Docker 的环境中。Docker 的基本概念包括以下几点: 1. **容器(Container)**:容器是一个独立、轻量级的运行环境…...
Spark(3)vi的基本使用
一.打开与创建文件 二.三种模式 三. 光标操作 四.复制粘贴 一.打开与创建文件 它是linux的内置命令,所以还是以命令的方式来运行。 命令的格式是:Vi /路径/文件名。要注意如下两种情况: 1.如果这个文件不存在,此时就是新建文…...
element-ui的组件使用
1. 安装 Element UI(在文件夹最上面输入cmd进入dos窗口,然后输入安装指令 npm install element-ui --save) 2.在main.js文件全局引入(main.js文件负责 全局注册 ),在该文件注册的所有组件在其他文件都能直接调用,一般…...
Starlink卫星动力学系统仿真建模第九讲-滑模(SMC)控制算法原理简介及卫星控制应用
滑模控制(Sliding Mode Control)算法详解 一、基本原理 滑模控制(Sliding Mode Control, SMC)是一种变结构控制方法,通过设计一个滑模面(Sliding Surface),迫使系统状态在有限时间内…...
《深度剖析Linux 系统 Shell 核心用法与原理_666》
1. 管道符的用法 查找当前目录下所有txt文件并统计行数 # 使用管道符将ls命令的结果传递给wc命令进行行数统计 ls *.txt | wc -l 在/etc目录下查找包含"network"的文件并统计数量 # 使用find命令查找文件,并通过grep查找包含特定字符串的文件…...
51单片机学习之旅——定时器
打开软件 1与其它等于其它,0与其它等于0 1或其它等于1,0或其它等于其它 TMODTMOD&0xF0;//0xF01111 0000进行与操作,高四位保持,低四位清零,高四位定时器1,低四位定时器0 TMODTMOD|0x01;//0x010000 0…...
超详细介绍map(multimap)的使用
map类的介绍 map的声明如下,Key是map底层关键字的类型,T是map底层value的类型。set默认要求Key支持小于比较,如果不支持或者需要的情况下我们可以自行传入仿函数,map底层存储数据的内存是从空间申请来的。一般情况下,我…...
原生稀疏注意力NSA 替换transformer 注意力进行文本生成训练
DeepSeek-R1这篇文章,聚焦范围更加小,R1的重点在于提出了一个文本生成的训练策略和蒸馏策略,这篇文章则是提出了一个注意力机制NSA,主要解决的是长序列做注意力时带来的效率问题。通篇文章看下来,它的实际意义可能比较…...
读书笔记:《百年孤独》
《百年孤独》加西亚.马尔克斯 著 范晔 译 读出了阅读障碍。 记不得书中的人,记不得书中的事,更不知何为孤独,只记得马孔多,这个陌生的地方,还有那个猪尾巴婴儿。 百年:故事跨越了百年 孤独&#…...
TVS管学习记录
文章目录 前言一、TVS是什么?二、TVS关键参数1.反向截至电压**实际意义** 2.钳位电压**定义与作用****选择依据** **4. 实际应用示例****场景:通信端口的ESD保护** 3.反向截至电压和钳位电压的关联和区别**. 小结** 三、实际应用电路举例总结 前言 TVS管…...
网络安全系统概述 网络安全系统分为几级
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 5级 网络信息系统安全等级保护分为五级,一级防护水平最低,最高等保为五级。分别是用户自主保护级、系统审计保护级、安全标记保护级、结构…...
基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
写在前面 博文内容涉及 基于 Deepseek LLM 的本地知识库搭建使用 ollama 部署 Deepseek-R1 LLM知识库能力通过 Ragflow、Dify 、AnythingLLM、Cherry 提供理解不足小伙伴帮忙指正 😃,生活加油 我站在人潮中央,思考这日日重复的生活。我突然想,…...
Apache Flink架构深度解析:任务调度、算子数据同步与TaskSlot资源管理机制
Apache Flink是一个分布式流处理框架,其核心架构设计围绕有界与无界数据流的统一处理能力展开。以下从任务分配、算子数据同步、TaskManager与JobManager的TaskSlot机制三个维度展开详细分析: 一、任务分配机制 Flink的任务分配基于并行度(P…...
Linux 常见命令全解析
一、文件操作命令 1. ls ls是列出目录内容的命令。简单输入ls,会展示当前目录下的文件和目录列表。想要获取更详细的信息,比如文件权限、所有者、大小、修改时间等,使用ls -l。若要显示所有文件,包括以点(.ÿ…...
k8s集群部署
集群结构 角色IPmaster192.168.35.135node1192.168.35.136node2192.168.35.137 部署 #需在三台主机上操作 //关闭防火墙 [rootmaster ~]# systemctl disable --now firewalld//关闭selinux [rootmaster ~]# sed -i s/enforcing/disabled/ /etc/selinux/config//关闭swap分区…...
springboot005学生心理咨询评估系统(源码+数据库+文档)
源码地址:学生心理咨询评估系统 文章目录 1.项目简介2.部分数据库结构与测试用例3.系统功能结构4.包含的文件列表(含论文)后台运行截图 1.项目简介 使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了,把现…...
LeetCode37
LeetCode37 目录 题目描述示例思路分析代码段代码逐行讲解复杂度分析总结的知识点整合总结...
2025年02月24日Github流行趋势
项目名称:mastra 项目地址url:https://github.com/mastra-ai/mastra 项目语言:TypeScript 历史star数:5735 今日star数:1140 项目维护者:adeleke5140, abhiaiyer91, TheIsrael1, adeniyii, Joshuafolorunsh…...
Spring Boot 中的日志管理
一、日志框架选择 1. 主流框架对比 框架特点Spring Boot 默认支持Logback- 性能优异,Spring Boot 默认集成- 支持自动热更新配置文件✅ (默认)Log4j2- 异步日志性能更强- 支持插件扩展- 防范漏洞能力更好❌ (需手动配置)JUL (JDK自带)- 无需额外依赖- 功能简单&am…...
后端之JPA(EntityGraph+JsonView)
不同表之间的级联操作或者说关联查询是很多业务场景都会用到的。 对于这种需求最朴素的方法自然是手动写关联表,然后对被关联的表也是手动插入数据。但是手写容易最后写成一堆shit代码,而且修改起来也是非常麻烦的。 学会使用现成的工具还是非常有利的…...
点击修改按钮图片显示有问题
问题可能出在表单数据的初始化上。在 ave-form.vue 中,我们需要处理一下从后端返回的图片数据,因为它们可能是 JSON 字符串格式。 vue:src/views/tools/fake-strategy/components/ave-form.vue// ... existing code ...Watch(value)watchValue(v: any) …...
Linux第一个小程序-进度条 (linux第七课)
目录 知识补充: 随机数的使用,先用srand(time(NULL))种时间种子 函数指针 模拟进度条代码 知识补充: \r只是回车 \r\n是回车加换行,其中\n带有强制换行的功能 如果只使用\r ,还需要刷新缓冲区(fflush(stdout)) %2d是左对齐 %-2d是右对齐 %.1lf是小数点后保留一位 随机数的使…...
iOS指纹归因详解
iOS 指纹归因(Fingerprint Attribution)详解 1. 指纹归因的概念 指纹归因(Fingerprint Attribution)是一种无 ID 归因(ID-less Attribution)技术,主要用于广告跟踪、用户识别或流量分析。它基…...
【Erdas实验教程】009:非监督分类及分类后评价
文章目录 一、分类过程二、分类评价ERDAS 的 ISODATA 算法是基于最小光谱距离来进行的非监督分类,聚类过程始于任意聚类平均值或一个已有分类模板的平均值;聚类每重复一次,聚类的平均值就更新一次,新聚类的均值再用于下次聚类循环。这个过程不断重复,直到最大的循环次数已…...
DeepSeek+Kimi生成高质量PPT
DeepSeek与Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用:生成结构化PPT大纲(擅长逻辑构建与内容优化)Kimi核心作用:将文本转换为视觉化PPT(提供模板库与排版引擎) 二、操作步骤详解 1. 通…...
conda 基本命令
1、查询当前所有的环境 conda env list 2、创建虚拟环境 conda create -n 环境名 [pythonpython版本号] 其中[pythonpython版本号]可以不写 conda create -n test python3.12 我们输入conda env list看到我们的环境创建成功了,但是发现他是创建在我们默认的C盘的…...
网站搭建wp
前置准备工作 需要下载Git,note.js,在官网上可以搜索并安装 搭建过程 这里借助hexo工具 1. 本地博客搭建 首先创建本地文件夹,并在该文件夹里面创建一个叫做hexo的文件夹在该文件夹中选择Git Bash 进入hexo官网将五条指令用bash运行运行…...
什么是图传技术?
1.什么是图传技术? 图传技术(图像传输技术)是指将摄像头或其他图像采集设备捕获的实时画面,通过无线通信方式传输到接收端(如遥控器、显示屏、云端服务器等)的技术。它广泛应用于无人机、安防监控、直播设…...
Python数据结构高级:图的表示与遍历
Python数据结构高级:图的表示与遍历 一、图的基本概念 1.1 图的定义与分类 图(Graph)是由顶点(Vertex)集合和边(Edge)集合组成的数据结构,形式化表示为 G (V, E) 主要分类&…...
登录-10.Filter-登录校验过滤器
一.登录校验过滤器的实现思路 我们要实现登录校验过滤器,就要首先明白登录校验过滤器的实现思路。登录校验过滤器是用来实现登录校验的。那么首先思考第一个问题,所有的请求都需要校验吗? 答案是否定的,因为login请求就不需要过滤…...
《Keras 3 : 使用迁移学习进行关键点检测》:此文为AI自动翻译
《Keras 3 :使用迁移学习进行关键点检测》 作者:Sayak Paul,由 Muhammad Anas Raza 转换为 Keras 3 创建日期:2021/05/02 最后修改时间:2023/07/19 描述:使用数据增强和迁移学习训练关键点检测器。 (i) 此示例使用 Keras 3 在 Colab 中查看 GitHub 源 关键点检测包…...
【Deepseek】AnythingLLM + Ollama
1. 下载安装 anythingllm 下载地址:https://anythingllm.com/desktop 2. 启动anything 点击 Get started 3.创建工作空间 4.选择Ollama大语言模型 聊天设置 当前只有一个1.5b的模型 下载完成7b模型后 选择后记得点击更新到工作空间!&…...
VMware17下Ubuntu22.04设置本地共享文件夹
VMware17下使用Ubuntu22.04设置共享文件夹 在日常的开发与学习中,我们常常需要在主机(通常是Windows系统)和虚拟机(如Ubuntu 22.04)之间进行文件交换。为了简化这一过程,VMware提供了共享文件夹的功能&…...
【GreenHills】GHS合并库文件
1、 文档目标 解决Green Hills对于多个库文件合并问题 2、 问题场景 客户具有多个工程库文件。但是,客户想要在项目最终交付的时候,通过将多个库文件打包成一个库文件,进行交付。 3、软硬件环境 1)、软件版本:MULTI…...
mysql-统计表占内存大小
在 MySQL 中,统计表占用的内存大小(或者更准确地说,是表占用的磁盘空间大小)并非一个简单的任务,因为MySQL的数据存储涉及多种文件,包括数据文件、索引文件等。不过,有几种方法可以帮助你估算一…...
基于SpringBoot和Leaflet的邻省GDP可视化实战
目录 前言 一、技术实现路径 1、空间数据检索 2、数据展示检索流程 二、SpringBoot后台实现 1、模型层实现 2、控制层实现 三、WebGIS前端实现 1、控制面展示 2、成果展示 四、总结 前言 在数字化浪潮席卷全球的今天,数据已成为驱动社会经济发展、指导政策…...
DeepSeek-R1本地部署保姆级教程
一、DeepSeek-R1本地部署配置要求 (一)轻量级模型 ▌DeepSeek-R1-1.5B 内存容量:≥8GB 显卡需求:支持CPU推理(无需独立GPU) 适用场景:本地环境验证测试/Ollama集成调试 (二&a…...
DeepSeek + Mermaid编辑器——常规绘图
下面这张图出自:由清华大学出品的 《DeepSeek:从入门到精通》。 作为纯文本生成模型,DeepSeek虽不具备多媒体内容生成接口,但其开放式架构允许通过API接口与图像合成引擎、数据可视化工具等第三方系统进行协同工作,最终…...
推送项目 之 解决冲突
文章目录 为什么会发生冲突?如何解决这些冲突?1. **查看冲突文件**2. **解决二进制文件冲突**3. **解决文本文件冲突**4. **标记冲突已解决**5. **完成合并**6. **推送更改** 注意事项总结 问题:我们在git pusll拉取远程仓库的代码到本地对比…...
蓝桥杯——lcd显示
一:复制文件 从官方参考文件中复制相关文件,Src中的lcd.c,Inc中的lcd.h,fonts.h复制到自己创建的文件中 二:lcd初始化 在lcd.h中找到四个初始化函数,将其写到main文件中 三:写lcd显示函数 在…...