增强LLM:使用搜索引擎缓解大模型幻觉问题
论文题目:FRESHLLMS:REFRESHING LARGE LANGUAGE MODELS WITH SEARCH ENGINE AUGMENTATION
论文地址:https://arxiv.org/pdf/2310.03214.pdf
论文由Google、University of Massachusetts Amherst、OpenAI联合发布。
大部分大语言模型只会训练一次,不会被频繁的更新,训练用到的知识会慢慢过时,所以它无法适应变化的世界。论文作者提出了动态问答的基准测试,称为FRESHQA,并且提出了一种简单的解决问题的方法,FRESHPROMPT。
FRESHQA收集的问题根据难度可以分别单跳和多跳两种,两种问题的区别在于是否需要多级的推理。而根据答案的性质问题可以分为1.永远不变;2.缓慢变化;3.快速变化;4.虚假前提。

测试集的评估模式也分别两种:1.RELAXED,它仅衡量主要答案是否正确; 2.STRICT,它衡量响应中的所有声明是否是事实和最新的(即没有幻觉)。
FRESHPROMPT 是一种简单而有效的方法,对于给定的问题,它通过提取所有最新和相关的信息(包括来自搜索用户也询问的相关问题的知识)来利用搜索引擎,并使用少样本上下文学习教模型推理检索到的证据并找出正确的答案。
搜索引擎返回内容如下图,serper api返回内容类似。

FRESHPROMPT的具体做法如下:
使用搜索引擎得到相关实时信息,并处理成统一的结构化信息:
1.对问题q进行逐字记录检索搜索引擎,并保留所有检索信息。
(搜索引擎使用google的serper api;搜索返回字段如下:relatedSearches,organic,searchParameters,knowledgeGraph,answerBox,peopleAlsoAsk,根据问题不同返回字段不同。)
2.将所有信息进行提取,生成内容为结构化的统一格式,证据E = {(s,d,t,x,h)的列表。
(符号表示如下:s:source, d:date, t:title, x:snippet, h:highlight)
3.对E的列表按时间进行排序。
为了帮助模型“理解”任务和期望输出,我们在输入提示的开头提供了输入输出示例的少量演示。每个演示都显示了模型示例问题和问题检索到的证据列表,然后对证据进行思维链推理,以找出最相关和最新的答案。最终的提问构造如下图。其中demonstrations表示输入输出示例的演示。

实验结果

表中主要展示不同的模型和实验配置(消融实验)在FRESHQA数据集上的表现(STRICT)。
大模型选取了gpt3.5和gpt4。
google search表示直接使用google进行回复,选取结果为answer box(如有) 或者 第一个结果的 text snippet。
PPL.AI是一个将LLM和搜索引擎相结合以生成对用户查询的有用响应的答案引擎。
self-ask是一种使用情景学习的方法,教LLM将每个问题分解成更简单的子问题,然后通过谷歌搜索来回答。
对于FRESHPROMPT的设置,搜索答案的选取不同(snippets only、answer box relevant info)、搜索结果的排序不同(search order、time order、random order)、搜索结果数量不同(1、5、15,默认为10)、输入输出示例描述demonstrations数量不同、是否添加premise check(让模型进行错误前提检查)。
结论
1.FRESHPROMPT可以带来巨大的效果提升,因为外部实时数据的加入,使模型可以回答动态问题。
2.FRESHPROMPT比其他的搜索增强的方法效果好,对比方法为PPL.AI和+self-ask方法。3.premise check方法对与错误前提问题有效,但是同时也会降低有效前提问题的回答准确性。总体结果为弊大于利。
4.更全面更新的相关证据的效果会更好。time order>search order>>random order;搜索内容更加全面(不仅仅是text snippets)也会有利回复。
5.增加检索到的证据的数量进一步提高了 FRESHPROMPT效果,但要考虑大模型的token length limit。
6.冗长的演示(demonstrations)改进了复杂的问题,但也增加了幻觉。
相关文章:
增强LLM:使用搜索引擎缓解大模型幻觉问题
论文题目:FRESHLLMS:REFRESHING LARGE LANGUAGE MODELS WITH SEARCH ENGINE AUGMENTATION 论文地址:https://arxiv.org/pdf/2310.03214.pdf 论文由Google、University of Massachusetts Amherst、OpenAI联合发布。 大部分大语言模型只会训练一次&#…...
WPF向Avalonia迁移(一、一些通用迁移项目)
通用变更 WPF:Visibility 其他参考文档 WPF: <TextBlock Visibility"Visible"/><TextBlock Visibility"Collapsed"/><TextBlock Visibility"Hidden"/>Avalonia : <TextBlock IsVisib…...
lua学习笔记
单行注释: 多行注释: 命名: Lua不支持下划线大写字母,比如:_ABC 但支持:_abc 关键字: 全局变量: 直接变量名 内容就是全局 局部变量: 加上local即可 nil࿱…...
修改 ModelScope 默认缓存路径
修改 ModelScope 默认缓存路径 设置 MODELSCOPE_CACHE 和 MODELSCOPE_MODULES_CACHE 两个环境变量。 export MODELSCOPE_CACHE<your_favourite_path>/hub export MODELSCOPE_MODULES_CACHE<your_favourite_path>/modelscope_modules完结!...
【ES实战】索引别名的使用说明
索引别名 文章目录 索引别名带有过滤器的别名RoutingWrite Index REST单一添加一个别名示例: 索引创建是增加别名删除别名检索现有别名示例: 索引别名可以通过API的方式进行操作一个索引别名可以映射到一个或一个以上的索引索引名和索引别名不能重复,在集群中都是唯…...
QT信号与槽机制 和 常用控件介绍
QT信号与槽机制 1、信号(signal): 所谓信号槽 (观察者模式)信号本质是事件。信号展现方式就是函数。当某一个事件发生之后,则发出一个信号(signal). 2、槽(slot): 就是对信号响应的函数,槽就是一个函数。槽函数与普通函数区别槽函数可以与一个信号关联&…...
【css-banner图片自适应】
<picture><source media"(max-width: 480px)" srcset"图片地址"><source media"(min-width: 481px)" srcset"图片地址"><img src"图片地址" id"homebanner"></picture>img{height:…...
【k8s管理操作】
k8s管理操作 一、k8s管理操作1.陈述式资源管理2.声明式资源管理 二、k8s基础信息常看(命令)增删改查项目的生命周期:创建-->发布-->更新-->回滚-->删除 headless clusterIP 无头模式 金丝雀发布(Canary Release&#…...
【java基础学习】之DOS命令
#java基础学习 1.常用的DOS命令: dir:列出当前目录下的文件以及文件夹 md: 创建目录 rd:删除目录cd:进入指定目录 cd.. :退回到上级目录 cd\ : 退回到根目录 del:删除文件 exit:退出dos命令行 1.dir:列出当前目录下的文件以及文件夹 2.md: 创建目录 …...
学习记录——StyleGAN2+SA-UNet
SA-UNet for Retinal Vessel improvment using StyleGAN2 作者提出了一种改进视网膜图像分割的方法,通过创建图像及其相应的分割地图来实现。作者的解决方案包括使用DRIVE数据集1对StylGAN2进行训练,并使用目前在分割DRIVE图像方面取得最先进结果的SA-UNet模型对新合成的图像…...
JVM222
文章目录 JVM222运行时数据区的内部结构线程程序计数器(PC寄存器)虚拟机栈 JVM222 运行时数据区的内部结构 概述 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载器加载完成后的阶段,如下图: …...
C语言 指针
含义 从根本上看,指针是一个值为内存地址的变量(或数据对象)。指针变量的值是地址。 要创建指针变量,先要声明指针变量的类型 作用 1.实现复杂的数据结构,例如数组、链表、队列和堆栈等; 2.能方便地表…...
YOLOv8血细胞检测(7):小目标大目标一网打尽,轻骨干重Neck的轻量级GFPN | 阿里ICLR2022 GiraffeDet
💡💡💡本文改进:小目标大目标一网打尽GFPN,提升大小目标检测性能 GFPN | 亲测在血细胞检测项目中涨点,map@0.5 从原始0.895提升至0.904 收录专栏: 💡💡💡YOLO医学影像检测:http://t.csdnimg.cn/N4zBP ✨✨✨实战医学影像检测项目,通过创新点验证涨点可…...
广度优先(BFS)(例子:迷宫)
广度优先搜索算法(BFS)是一种用于图形和树数据结构的搜索算法。该算法从根节点开始搜索,然后依次访问每个相邻节点。在搜索过程中,每个节点都标记为已访问,以避免重复访问。BFS算法适用于寻找最短路径的问题࿰…...
【安卓源码】安卓Watchdog 机制
在Android系统中,也设计了一个软件层面Watchdog,用于保护一些重要的系统服务,比如:AMS、WMS、PMS等,由于以上核心服务运行在system_server进程里面,所以当以上服务出现异常时,通常会将system_se…...
inscode连接不上gpu,持续8小时,为了数据不丢失续费了6小时,我只想知道什么时候可以连接
并且给我相应的补偿...
QT位置相关函数
Qt(Qt Framework)是一个流行的C应用程序开发框架,提供了丰富的位置相关函数和类,用于处理窗口、窗口小部件和图形的位置和几何操作。以下是一些常用的Qt位置相关函数和类: QPoint:QPoint类表示一个二维点的…...
vulnhub靶场 Kioptrix-level-1
简介: vulnhub是一个提供靶场环境的平台。而Kioptrix-level-1就是一个对新手比较友好的靶场。初学渗透的同学可以做做试试看,项目地址如下。 项目地址:Kioptrix: Level 1 (#1) ~ VulnHub 信息收集 查看本机IP,靶机跟kali都是使用…...
全网最细,真实企业性能测试落地实施,一文带你快速打通...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是性能测试…...
三十一、【进阶】B+树的演变过程
1、B树简单介绍 (1)介绍:B树也属于B树,是B树的变种 (2)特点:所有的数据都位于叶子节点上,叶子节点上的所有元素形成了一个单项链表 (3)图示: 2…...
飞书机器人自动化:OpenClaw调用Qwen3-4B实现会议纪要生成
飞书机器人自动化:OpenClaw调用Qwen3-4B实现会议纪要生成 1. 为什么选择OpenClawQwen3-4B做会议纪要 上个月我经历了连续三天的跨部门会议,每天手动整理会议纪要到深夜的痛苦让我开始寻找自动化解决方案。试过几款SaaS工具后,发现要么需要上…...
OpenClaw低代码开发:Qwen2.5-VL-7B自动化流程设计器入门
OpenClaw低代码开发:Qwen2.5-VL-7B自动化流程设计器入门 1. 为什么需要可视化流程设计器? 上周我尝试用OpenClaw自动处理一批产品截图和说明文档时,遇到了一个典型问题:需要先让Qwen2.5-VL-7B识别图片中的关键元素,再…...
javaweb农贸市场摊位商户管理信息系统设计与实现
目录同行可拿货,招校园代理 ,本人源头供货商功能模块设计商户服务功能市场运营功能技术实现要点项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块设计 用户管理模块 角色划分&…...
嵌入式开发关键技术演进与实战经验分享
1. 嵌入式开发的行业现状与核心挑战2023年的嵌入式开发领域呈现出明显的多元化发展趋势。作为一名从业超过十年的嵌入式工程师,我观察到这个行业正在经历从传统单机设备向智能化、网络化方向的快速转型。根据AspenCore最新发布的行业调查报告,目前超过30…...
打破设备壁垒:VR-Reversal实现3D内容自由视角全设备适配
打破设备壁垒:VR-Reversal实现3D内容自由视角全设备适配 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_…...
离线部署GraphRAG的tiktoken避坑指南:从源码解析到本地化实践
1. 离线部署GraphRAG的核心痛点:tiktoken的网络依赖问题 当你准备在内网环境部署GraphRAG时,第一个拦路虎往往是tiktoken这个看似简单的编码库。我在某金融机构的私有化部署项目中就遇到过这样的场景:所有服务器都处于物理隔离状态࿰…...
Hermes邮件生成器详解:如何配置产品信息和自定义主题
Hermes邮件生成器详解:如何配置产品信息和自定义主题 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes Hermes是一款强大的Go语…...
数据结构与算法学习笔记
java一.数据结构简介1. 为什么要有数据结构?数据太多、太乱 → 无法高效处理 → 必须结构化2. 数据结构的两大分类逻辑结构:数据之间的关系(怎么理解)物理结构:内存中的存储方式(怎么实现)3. 逻…...
Apollo6.0 Lattice算法实战解析——从轨迹组合到最优路径生成
1. Lattice算法在Apollo6.0中的核心作用 Lattice算法是Apollo自动驾驶系统中的关键路径规划模块,它负责将横向和纵向轨迹进行智能组合,最终生成安全、舒适且符合交通规则的最优行驶路径。这个算法就像一位经验丰富的导航员,不仅要考虑车辆当前…...
避坑指南:Doris明细模型(Duplicate Key Model)的5个常见错误及优化方案
避坑指南:Doris明细模型(Duplicate Key Model)的5个常见错误及优化方案 在实时数据分析领域,Apache Doris凭借其卓越的性能和易用性赢得了众多企业的青睐。作为Doris中最基础也最常用的数据模型,明细模型(Duplicate Key Model&…...
