14-46 剑和诗人20 – 减少幻觉的提示词工程

​​​​​

14-46 剑和诗人20 - 减少幻觉的提示词工程

概述

幻觉或“编造”是大型语言模型 (LLM) 的常见故障模式,它们会产生事实上不正确或无意义的内容。幻觉背后的一些主要原因是:

  • 当模型不确定真正的答案时,它会试图通过捏造信息来提供过度的帮助。
  • 该模型缺乏适当的基础、背景和常识来确定事实的错误。
  • 该模型尚未经过明确训练以避免虚假内容。

通过精心设计我们提供给这些模型的提示,可以降低人工智能产生幻觉的可能性。各种提示工程技术都侧重于引导模型产生更真实、更理性、更符合常识的反应。

让我们探索以下设计提示以减少幻觉的方法:

  1. 检索增强生成 (RAG)
  2. ReAct 提示
  3. 验证链 (CoVe) 提示
  4. 笔记链 (CoN) 提示
  5. 知识链(CoK)提示
  6. 其他高级提示技术

对于每种方法,我将概述该技术的工作原理、示例来说明提示结构以及优势和局限性的分析。到最后,您应该对减少 AI 幻觉的提示工程的当前最新技术有一个扎实的了解。

14-46 剑和诗人20 - 减少幻觉的提示词工程

检索增强生成 (RAG)

检索增强生成 (RAG) 系统将语言模型的功能与外部信息源相结合。其关键思想是在文本生成之前从知识库中检索相关上下文,以便将语言模型的输出建立在事实证据的基础上。

RAG 系统利用从知识源检索到的事实来增强语言模型。

RAG 通过确保所有生成的响应都有支持证据,而不是模型盲目推测,从而减少幻觉。如果没有找到上下文证据,系统可以诚实地承认无知。

让我们看一些例子来更好地理解 RAG 提示的实际作用。

第一台冰箱是什么时候发明的?

  • 1854年:苏格兰发明家詹姆斯·哈里森制造出第一台可工作的冰箱。他的乙醚蒸汽压缩制冷系统为现代机械制冷技术奠定了基础。

泰坦尼克号电影的女主角是谁?

  • 凯特·温斯莱特:她在詹姆斯·卡梅隆 1997 年执导的电影《泰坦尼克号》中扮演罗斯·德薇特·布卡特一角。莱昂纳多·迪卡普里奥也在这部电影中扮演杰克·道森一角。

在上面的 RAG 查询中,系统首先在知识源中查找相关事实,然后再生成响应。这样输出结果就以检索到的信息为基础,而不是让语言模型捏造不受支持的事实。

RAG 的优势

  • 融入外部知识以减少毫无根据的幻觉
  • 如果未找到上下文数据,则允许模型返回“未知”
  • 检索到的事实是锚定生成文本的强烈信号

RAG 的局限性

  • 需要大型数据集或知识库来查找上下文信息,创建和维护这些数据集或知识库的成本可能很高
  • 如果知识源本身包含错误或事实空白,则存在表面事实重复而无法进行更深入理解的风险
  • 与纯语言模型方法相比,扩展性较差

虽然 RAG 提示有助于通过检索事实减少幻觉,但当底层知识来源广泛、高质量且定期更新时,该技术最有效。使用多个互补的知识库也可以提供更高的稳健性。

反应提示

ReAct 或递归助手提示旨在以递归方式查询模型,了解其在每一步中的思维过程和置信度。主要目标是:

  1. 鼓励模型深入反思其推理,而不是冲动地做出反应
  2. 能够校准知识中的不确定性和表面差距
  3. 最终提高真实性并避免虚假内容

以下是 ReAct 提示的示例:

问:澳大利亚的首都是哪里?

答:澳大利亚的首都是堪培拉。

以 0 到 10 为标准,您对上述答案有多大信心?请清楚地解释您的理由。

该模型可能会回应:

9/10 置信度我非常确信澳大利亚的首都是堪培拉。作为一个主要发达国家,澳大利亚的首都是常识,我在训练数据中经常遇到。

我们可以进一步递归探究:

太好了,您能提供 1-2 个事实来源,证明堪培拉是澳大利亚首都吗?请引用具体参考资料。

模型可能会回答:

  • 我在地图、百科全书和培训中使用的世界各国首都数据集中看到堪培拉被列为澳大利亚首都。然而经过进一步思考,我没有具体的文本参考资料可以作为这个答案的事实证据。

缺乏具体的证据来源可能表明存在潜在的知识缺口。因此,我们可以重新表述最初的查询:

问:澳大利亚的首都是哪里?您可以引用哪些事实来源来肯定地证实这一点?

如果模型仍然无法提供外部验证的参考,它就会对其知识的局限性进行反省——减少虚假捏造的机会。

ReAct 提示的优势

  • 在模型的思维过程中建立递归透明度
  • 鼓励基于推理链的信心校准
  • 揭示知识差距以改进模型

ReAct 提示的局限性

  • 如果走极端,可能会导致对话乏味或低效
  • 不包含 RAG 系统等外部事实依据
  • 过度拟合模型的风险在于,它无法清晰地响应递归,也无法改善底层知识的完整性

虽然 ReAct 提示本身可能无法保证完全真实,但递归地质疑模型的信心和推理是一种减少盲目幻觉的有效方法。通过将 ReAct 询问与从外部知识源检索确凿证据相结合,可以使提示更加可靠。

验证链 (CoVe) 提示

验证链 (CoVe) 提示明确要求模型通过引用外部权威来源为其响应提供逐步验证。

该提示被表述为一系列可验证的逻辑推理,以得出最终答案:

{初始事实} -> 可验证地暗示 -> {逻辑推论 1} -> 可验证地暗示 -> {逻辑推论 2} -> … -> 可验证地暗示 -> {最终回应}

例如:

斯里尼瓦瑟·拉马努金 (Srinivasa Ramanujan) 出生于泰米尔纳德邦埃罗德 -> 可以证实意味着 -> 埃罗德是印度南部泰米尔纳德邦的一个城市 -> 可以证实意味着 -> 泰米尔纳德邦位于印度 -> 可以证实意味着 -> 斯里尼瓦瑟·拉马努金 (Srinivasa Ramanujan) 出生于印度

通过构建推理链,并在每一步都进行验证,CoVe 可以减少无根据的猜测。让我们分析一下这种方法的优点和缺点:

CoVe 提示的优势

  • 明确的验证要求最大限度地减少盲目猜测
  • 链式逻辑推理强化了系统性、结构化的思维
  • 逐渐揭示的背景使答案集中起来,没有离题的空间

CoVe 提示的局限性

  • 对于推理链模糊或复杂的问题,很难应用
  • 需要外部参考,但这些参考可能并不总是可用的
  • 可能导致过于严格的逐步语义

CoVe 技术牺牲了一些语言灵活性,以换取逻辑透明度。它对于具有相当线性推理流程的查询很有效,但对于需要更多非结构化推理的开放式分析来说,它可能变得乏味。

注释链 (CoN) 提示

注释链 (CoN) 提示旨在通过明确记录制定响应过程中遇到的背景、想法和差距来提高模型理解。

结构如下:

{初始问题}

注1:<模特最初的理解与想法>

注 2:<揭示任何知识差距>

注 3:<提供其他相关背景信息>

…不断演变的音符链……

最终答案:<回复包含注释中的完整推理>

例如:

法国大革命何时开始?

注1:法国大革命是指18世纪末期法国发生的一场影响深远的社会和政治动荡时期。我最初的理解是,这场革命最终导致了法国君主制的废除。

注 2:我手头没有确切的开始日期。我可能需要搜索外部资源来找到有关革命开始时间的准确信息。

注3:经过进一步分析,大多数历史记录都认为1789年是法国大革命开始的年份,以7月14日攻占巴士底狱为标志。

最终答案:法国大革命普遍接受的开始日期是 1789 年 7 月 14 日,当时抗议者攻占了巴黎巴士底狱,从而掀起了推翻路易十六国王并建立以自由、平等和博爱的启蒙原则为基础的共和国的革命势头。主要初始事件发生在 1789-1799 年期间。

笔记会追踪背景和空白,从而减少幻觉式的错误精确度。串联笔记还具有教育功能,可以提高模型对后续问题的评估能力。

CoN 提示的优点

  • 注释提供了模型演化推理的诊断线索
  • 揭示盲点,澄清开放与封闭的知识
  • 有机会融入更多背景信息以改善回应

CoN 提示的局限性

  • 可以显著增加每个查询的长度和时间
  • 暴露局限性可能会削弱对模型准确性的信心
  • 对清晰的不确定性描述过度拟合的可能性

CoN 方法本质上是用速度换取透明度。虽然冗长的内容可能会变得繁琐,但阐明背景和未知数可以为模型的即时理解提供有用的见解。需要进行额外的调整,以确保链式注释能够有效地改善底层知识的完整性。

知识链(CoK)提示

知识链 (CoK) 提示明确要求模型从专家知识链中获取其响应,以减少逻辑跳跃或错误推断。结构如下:

根据 <领域 1>、<领域 2>、<领域 3> 等专家的观点,{主题} 是:{根据引用的专家链得出的模型解释}

一些例子:

气候科学家、海洋生物学家和保护生物学家认为,全球变暖对北极生态系统的影响是:{引用专家领域观点的模型响应}

密码学专家、用户体验设计师和政策策略师认为,安全密码的最佳实践是:{从专业知识链构建模型响应}

链接领域专业知识来源就像一种同行评审,迫使模型将其响应置于既定知识中。在检查与跨多个领域的专业权威的一致性时,更容易出现不受支持的观点或错误的推论。

让我们分析一下这种 CoK 方法的优缺点:

CoK 提示的优势

  • 迫使人们从经过验证的专家那里获取信息,而不是不可靠的意见
  • 链接专家提供“群体智慧”事实核查
  • 理解与专业知识的结合可以减少推测性错误

CoK 提示的局限性

  • 识别相关领域和专家本身就需要熟悉领域
  • 专家观点可能因解读不同而出现分歧或存在盲点
  • 挑选专家遵循模型不真实信念的风险

通过合同要求汇集引用的资深观点的解释,CoK 促使人们坚持有根据的论述。然而,必须注意纳入学术观点的多样性,而不仅仅是方便的确认证据。

其他高级提示技巧

除了上述方法外,还有其他各种快速工程技术可以进一步减少幻觉。下面我将简要概述一些有前景的方法:

真实性分类提示

这些提示明确要求模型在定义的范围内对其响应的可能真实性或可信度进行分类,例如:

{查询} … 我的答案是 {回复}。从 1(不可靠)到 5(肯定正确),我将此回复的准确性评为 {真实性分数},原因是 {理由}

要求根据明确的标准对答案的完整性进行自我评估,可以阻止盲目的自信幻觉。同样重要的是,模型必须自省并揭示其知识中的差距,从而导致不确定性。

事实历史和未来提示

一个有趣的技巧是将过去的事实与逻辑上可推论的未来联系起来,以揭示矛盾之处:

根据事实历史{插入上下文},预测 10 年后最合理的未来。然后回溯 5 年,并评论你预测的未来是否合理。

心理跳房子鼓励质疑有根据的预测与没有根据的未来。识别合理的历史与基于常识原则的未来之间的矛盾会暴露幻觉风险。

提示替代观点

寻求替代的世界观会打开该模型主导地位的盲点:

从{人口统计学 X} 的角度提出疑问,并批评与其他基于证据的观点存在的事实不一致之处

反向观点会促使侦察假设的漏洞,从而增加捏造的可能性。当遇到事实不一致时,调和事实的不一致可以增强诚信。

还有许多其他有希望的提示方向,例如交织未知事实、品尝过度自信和与其他代理共同建模。统一的主题是不仅提示最终答案,还提示底层推理、不确定性校准、外部一致性检查和支撑真实响应的证据对齐。

结论

随着语言模型变得更加复杂,但缺乏更广泛的基础来确定常识的可信度,幻觉仍然是一个关键挑战。即时工程的进步通过明确编码可靠声明所需的证据、逻辑和上下文支持来提供缓解。检索增强、置信度递归、链式验证、专家采购和其他讨论过的技术通过合同化举证责任来降低捏造谎言的倾向。

然而,这些解决方案强调了我们距离建立真正值得信赖、内省和扎实的智能还有很长的路要走。巧妙地使用提示可以说更多的是一种诊断工具,可以揭示模型需要干预的能力差距,而不是单独解决人工智能安全问题的完整解决方案。在扩展模型功能的同时指导模型局限性的混合方法很有希望。但独立于特定的技术方法,灌输对其能力边界的内在诚实对于管理对未来系统的期望至关重要。通过认识到今天构建人工智能透明度所需的勤勉,我们播下了可解释性和责任感的种子,这对于明天构建人机之间的有益合作是必需的。

14-46 剑和诗人20 - 减少幻觉的提示词工程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/782754.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5、v7、v8如何修改检测框文字颜色和大小

YOLOv5和YOLOv8默认的标签文字颜色为白色&#xff0c;但是在亮度较大的图片中文字不明显&#xff0c;就需要对标签文字的颜色进行修改 一、YOLOv5 打开X:\Anaconda\envs\your-env\Lib\site-packages\ultralytics\utils\plotting.py X代表你的anaconda安装的盘&#xff0c;yo…

格蠹汇编阅读理解

一、调试工具使用方式 WinDbg常用命令&#xff1a; 执行 lm 命令&#xff0c;可以看到进程中有几个模块。执行~命令列一下线程。用!heap 命令列一下堆。执行!address 命令可以列出用户态空间中的所有区域。搜索吧&#xff01;就从当前进程用户态空间的较低地址开始搜&#xf…

基于大数据技术Hadoop的气象分析可视化大屏设计和实现

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

Android - 手势

Android 提供特殊类型的触摸屏事件&#xff0c;例如捏合、双击、滚动、长按和退缩。 这些都被称为手势。 Android 提供了 GestureDetector 类来接收运动事件并告诉我们这些事件是否对应手势。 要使用它&#xff0c;您需要创建一个 GestureDetector 对象&#xff0c;然后使用 Ge…

SpringBoot源码阅读(1)——环境搭建

SpringBoot官网 官网 https://spring.io/projects/spring-boot 代码仓库 github&#xff1a;https://github.com/spring-projects/spring-boot gitee: https://gitee.com/mirrors/spring-boot 下载代码 git clone https://gitee.com/mirrors/spring-boot.git下载的代码中有些…

如何看自己电脑的ip地址?这些方法教你搞定

在数字化时代&#xff0c;网络已经成为我们生活中不可或缺的一部分。对于每一个接入网络的设备来说&#xff0c;IP地址就像是一个独特的身份证&#xff0c;它标识着设备在网络中的位置。对于电脑用户而言&#xff0c;了解如何查看自己电脑的IP地址&#xff0c;不仅有助于我们更…

满足信创环境运行的国产FTP服务器是什么样的?

2018 年以来&#xff0c;受“华为、中兴事件”影响&#xff0c;我国科技尤其是上游核心技术受制于人的现状对我 国经济发展提出了严峻考验。在全球产业从工业经济向数字经济升级的关键时期&#xff0c;中国明确 “数字中国”建设战略&#xff0c; 抢占数字经济产业链制高点。 在…

【Python】已解决:(paddleocr导包报错)ModuleNotFoundError: No module named ‘paddle’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;paddleocr导包报错&#xff09;ModuleNotFoundError: No module named ‘paddle’ 一、分析问题背景 近日&#xff0c;一些使用PaddleOCR库进行文字…

西安电子科技大学833、834学长经验分享(初复试总成绩第一、机试第二)

考研经验分享 首先自我介绍。2024考研上岸西安电子科技大学计算机学硕&#xff0c;初试成绩 390 分&#xff0c;复试成绩第一&#xff0c;初复试总成绩第一&#xff0c;机试第二&#xff0c;跟着研梦全程班上岸。 成绩单&#xff1a; 本文主要分为以下几个部分&#xff1a;【…

可视化作品集(09):可视化运维大屏不可或缺。

可视化大屏在可视化运维上有很多价值&#xff0c;而且应用十分普遍&#xff0c;本文给老铁们分享一下。 1. 实时监控&#xff1a;可视化大屏可以实时展示系统运行状态、设备状态、生产数据等信息&#xff0c;使运维人员能够及时发现问题并做出相应的处理。 2. 数据分析&#x…

资源分享—2021版三调符号库

汇总整理平台软件支持过程中客户项目提供的各类资源&#xff08;包括但不限于符号库、地图模板等&#xff09;&#xff0c;在客户允许情况下进行集团内分享。 本次分享新版国土空间规划【三调符号库&#xff08;2021版&#xff09;】&#xff0c;提供SuperMap格式符号库下载。 …

2 ECMAScript

JavaScript 概述 JavaScript 编程语言允许你在 Web 页面上实现复杂的功能;如果你看到一个网页不仅仅显示静态的信息,而是显示依时间更新的内容,或者交互式地图,或者 2D/3D 动画图像,或者滚动的视频播放器,等等——你基本可以确定,这需要 JavaScript 的参与 JavaScript 编程语言…

GraalVM上的多语言混合开发

上篇文件我们介绍了GraalVM强大的静态编译功能,能够让Java应用程序摆脱虚拟机的束缚,像其它本地编译的应用一样直接运行。那么GraalVM的神奇之处仅限于此吗?今天我们再来看看它的另一个重要特性—多语言混合开发 多语言平台 Java并不是唯一运行在JVM上的语言,这个我们都应…

仿qq音乐播放微信小程序模板源码

手机qq音乐应用小程序&#xff0c;在线音乐播放器微信小程序网页模板。包含&#xff1a;音乐歌曲主页、推荐、排行榜、搜索、音乐播放器、歌单详情等。 仿qq音乐播放微信小程序模板源码

【前端界面分享】

实现效果&#xff1a;html源码来自b站up主&#xff1a;【CSSJS】甲方&#xff1a;啊&#xff1f;没叫你做那么超前啊_哔哩哔哩_bilibili 本人仅实现了将html格式改为vue3 html版&#xff1a; 对于前端连入门可能都没摸到&#xff0c;学了半天也就改成vue3了&#xff0c;对于输…

PCB阻抗控制为何如此重要?

或许你在各个厂商打PCB板的时候&#xff0c;会遇到询问你是否需要阻抗的的下单需求&#xff1f; 在当今的应用中&#xff0c;设计通常变得越来越快&#xff0c;控制布局参数比以往任何时候都更加重要。 在PCB设计和生产过程中&#xff0c;有几种方法可以进行阻抗控制。最常见的…

介绍一款Java开发的商业开源MES系统

介绍一款Java开发的开源MES系统&#xff0c;万界星空科技开源的MES系统。该系统基于Java开发&#xff0c;具有广泛的适用性和高度的可定制性&#xff0c;能够满足不同行业、不同规模企业的智能制造需求。 一、系统概述 万界星空科技开源的MES系统是一款面向制造企业车间执行层…

限流实现-小工具

需求描述 写一个1秒两个的限流工具类&#xff0c;2r/s public class LimitHelper {private int maxLimit;private Semaphore semaphore;private int timeoutSeconds;public LimitHelper(int maxLimit, int timeoutSeconds) {this.maxLimit maxLimit;semaphore new Semaphore…

产品经理-的职业发展(9)

找一份好工作&#xff0c;就是为了获得更好的职业发展&#xff0c;下面分别给大家介绍下大、中、小型公司的职业发展路径 中小型公司 中小型公司的规模往往相对不大&#xff0c;又处于飞速发展过程中&#xff0c;培养体系和晋升标准都不够成熟&#xff0c;所以实际的职业发展路…

如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你知道吗,根据Google 的一项研究,如果网站加载时间超过 3 秒,53% 的移动用户会离开该网站? 性能优化是一个经常讨论的话题,但很多开发人员并不关心提高应用的速度。 在前端开发中,优化包大小和加载时间对于提升用户体…