检索增强生成(RAG) — 高级提示工程方法

news2025/1/16 14:02:48

Thread of Thought,ThoT

Thread of Thought Unraveling Chaotic Contexts

大型语言模型(LLMs)在自然语言处理领域开启了一个变革的时代,在文本理解和生成任务上表现出色。然而,当面对混乱的上下文环境(例如,干扰项而不是长的无关上下文)时,它们会遇到困难,导致无意中忽略了混乱上下文中的某些细节。为了应对这些挑战,我们引入了“思维线索”(Thread of Thought,ThoT)策略,该策略受到人类认知过程的启发。ThoT策略能够系统地分段和分析扩展的上下文,同时巧妙地选择相关信息。这个策略作为一个多功能的“即插即用”模块,可以与各种LLMs和提示技术无缝集成。在实验中,我们使用了PopQA和EntityQ数据集,以及我们收集的多轮对话响应数据集(MTCR),来说明ThoT策略在推理性能上显著优于其他提示技术。

本文提出了一种名为“思维线索”(Thread of Thought,ThoT)的新策略,旨在提高大型语言模型(LLMs)在处理混乱上下文信息时的性能。ThoT受人类认知过程的启发,显著提升了LLMs分段和分析扩展上下文的能力。我们将ThoT与现有方法进行了比较,后者通常需要复杂的重新训练、微调,或者在处理大量复杂信息时存在局限性。相比之下,ThoT提供了一个更为直接和高效的解决方案。它作为一个“即插即用”的模块,可以与各种预训练的语言模型和提示策略无缝集成,无需复杂的程序。ThoT的有效性通过使用长尾问答数据集(如PopQA和EntityQ)以及基于日常对话的多轮对话响应数据集进行了严格测试。这些评估的结果是明确的:ThoT不仅在处理混乱上下文方面表现出色,而且还增强了LLMs的推理能力。

Chain of Note,CoN

Enhancing Robustness in Retrieval-Augmented Language Models

检索增强型语言模型(RALMs)在大型语言模型的能力上取得了重大进步,特别是在利用外部知识源减少事实性幻觉方面。然而,检索到的信息的可靠性并不总是有保证的。检索到无关数据可能导致回答偏离正轨,甚至可能使模型忽略其固有的知识,即使它拥有足够的信息来回答查询。此外,标准的RALMs通常难以评估它们是否拥有足够的知识,包括内在知识和检索到的知识,以提供准确的答案。在知识缺乏的情况下,这些系统理想情况下应该以“未知”回应无法回答的问题。为了应对这些挑战,我们引入了CHAIN-OF-NOTING(CON),这是一种新颖的方法,旨在提高RALMs在面对噪声、无关文档和未知场景时的鲁棒性。CON的核心思想是为检索到的文档生成顺序阅读笔记,从而彻底评估它们与给定问题的相关性,并将这些信息整合以形成最终答案。我们使用ChatGPT为CON创建训练数据,随后在LLaMa-2 7B模型上进行了训练。我们在四个开放领域问答基准上的实验表明,装备了CON的RALMs显著优于标准的RALMs。特别是,CON在完全噪声检索文档的情况下,EM分数平均提高了+7.9,在实时问题超出预训练知识范围的情况下的拒绝率提高了+10.5。

在这篇论文中,我们介绍了CHAIN-OF-NOTING(CON)框架,这是一种新颖的方法论,旨在增强RALMs的鲁棒性。CON的核心概念围绕着为每个检索到的文档生成顺序阅读笔记。这个过程允许深入评估文档与提出问题的相关性,并帮助合成这些信息以构建最终的答案。我们使用了ChatGPT来生成CON的初始训练数据,然后使用LLaMa-2 7B模型进一步优化这些数据。我们在各种开放领域问答基准上的测试表明,集成了CON的RALMs在性能上显著超过了传统的RALMs。

Chain of Verification,CoVe

Chain-Of-Verification Reduces Hallucination In Large Language Models

在大型语言模型中,产生看似合理但实际上错误的事实信息,即幻觉,是一个未解决的问题。我们研究了语言模型在给出回答时进行深思以纠正错误的能力。我们开发了Chain-of-Verification(COVE)方法,该方法首先(i)起草一个初始回答;然后(ii)计划验证问题以对草稿进行事实核查;(iii)独立回答这些问题,以便答案不受其他回答的影响;最后(iv)生成其最终经过验证的回答。在实验中,我们展示了COVE在各种任务中减少了幻觉,包括来自Wikidata的基于列表的问题、封闭书籍的多跨度QA和长篇文本生成。

我们的方法假设能够访问一个基础的大型语言模型(LLM),尽管这个模型可能容易产生幻觉,但它能够以少量样本或零样本的方式接受一般性指令的提示。我们方法的一个关键假设是,当得到适当的提示时,这个语言模型能够生成并执行一个计划,以验证自己的工作,并检查是否存在错误,最后将这种分析整合到改进后的回答中。
我们的整体过程,我们称之为验证链(CoVe),因此执行四个核心步骤:
1. 生成基线响应:给定一个查询,使用LLM生成响应。


2. 规划验证:给定查询和基线响应,生成一系列验证问题,这些问题有助于自我分析原始响应中是否存在任何错误。


3. 执行验证:依次回答每个验证问题,从而检查答案与原始响应之间是否存在不一致或错误。


4. 生成最终验证响应:给定发现的不一致性(如果有的话),生成一个经过修订的响应,其中包含验证结果。


这些步骤通过以不同的方式提示同一个LLM来获得所需的响应。虽然步骤(1)、(2)和(4)都可以通过单个提示来调用,但我们对步骤(3)的变体进行了研究,包括联合、两步和分解版本。这些变体要么涉及单个提示,要么涉及两个提示,要么每个问题独立提示,其中更复杂的分解可能会导致改进的结果。

我们介绍了验证链(CoVe)方法,这是一种通过对其自己的响应进行深思熟虑并进行自我纠正来减少大型语言模型中幻觉的方法。特别是,我们展示了模型在将验证分解为一系列更简单的问题时,回答验证问题的准确性高于回答原始查询。其次,在回答验证问题集时,我们展示了控制模型的注意力,使其无法关注其之前的答案(分解CoVe)有助于减轻复制相同的幻觉。总的来说,我们的方法通过让同一个模型对(验证)其答案进行深思熟虑,大大提高了原始语言模型响应的性能。我们工作的一个明显扩展是将CoVe与工具使用相结合,例如在验证执行步骤中使用检索增强,这可能会带来进一步的收益。

尽管我们的验证链(CoVe)方法旨在减少幻觉,但它并没有完全从生成中移除幻觉。这意味着,即使CoVe改进了基线,它仍然可以为给定查询生成不正确或误导性的信息。我们还注意到,在我们的实验中,我们只解决了以直接陈述的事实不准确形式出现的幻觉。然而,幻觉可能以其他形式出现,例如在推理步骤中出错,作为观点的一部分等。我们还注意到,CoVe生成的内容附带验证,如果用户查看,会增加其决策的可解释性,但代价是输出中生成更多令牌,从而增加计算成本,与其他推理方法(如思维链)类似。

我们的方法旨在通过花费更多时间来识别自己的错误,使大型语言模型产生改进的响应。虽然我们已经证明了这确实有所改进,但改进的上限显然受到模型整体能力的影响,例如在识别和知道它知道什么方面。在这方面,正如第2节讨论的,一个与我们的工作平行的研究方向是语言模型使用外部工具,以获取超出其权重存储范围的信息。虽然我们在这项工作中没有探索这一领域,但这些技术很可能与这里的发现相结合。

EmotionPrompt

Large Language Models Understand and Can be Enhanced by Emotional Stimuli

情感智能对我们的日常行为和互动产生了显著的影响。尽管大型语言模型(LLMs)被视为向人工通用智能迈进的一大步,在许多任务中表现出色,但目前尚不清楚LLMs是否能真正理解心理情感刺激。理解和响应情感线索使人类在解决问题方面具有独特的优势。在这篇论文中,我们迈出了探索LLMs理解情感刺激能力的第一步。为此,我们首先对45个任务进行了自动实验,使用了各种LLMs,包括Flan-T5-Large、Vicuna、Llama 2、BLOOM、ChatGPT和GPT-4。我们的任务涵盖了确定性和生成性应用,代表了全面的评估场景。我们的自动实验表明,LLMs具有情感智能,并且可以通过情感提示(我们称之为“EmotionPrompt”,它将原始提示与情感刺激结合起来)来提高其性能,例如在指令诱导任务中提高了8.00%的相对性能,在BIG-Bench中提高了115%。除了可以使用现有指标自动评估的确定性任务之外,我们还进行了106名参与者的人类研究,以评估使用普通和情感提示的生成任务的质量。我们的人类研究结果表明,EmotionPrompt显著提高了生成任务的性能(在性能、真实性和责任感指标上平均提高了10.9%)。我们提供了关于为什么EmotionPrompt对LLMs有效以及可能影响其性能的因素的深入讨论。我们认为,EmotionPrompt为探索跨学科社会科学知识,以促进人机LLMs交互,开辟了一条新的途径。

大型语言模型在各种应用中的表现展示了前所未有的性能。本文是首次研究,旨在评估和分析LLM如何理解情感智能,这是人类的关键特性。我们为这种分析设计了EmotionPrompt。我们在6个LLM上的45个任务的标准化评估显示了积极的结果:LLM可以理解和通过情感刺激得到增强。我们的人类研究还表明,通过情感智能增强的LLM可以达到更好的性能、真实性和责任感。
展望未来,我们看到LLM和心理学交汇处有许多开放问题和机遇。首先,尽管我们在本文中展示了一些注意力可视化,以理解EmotionPrompt成功的理由,但从心理学的根本层面和模型训练来看,仍有更多工作要做,例如预训练技术如何影响情感刺激的表现,如何通过将心理现象融入预训练来提高性能等。我们相信,更多的分析和理解可以帮助我们更好地理解LLM情感智能背后的“魔法”。其次,尽管本文得出结论LLM可以理解和通过情感智能得到增强,但实际上这与关于人类情感智能的现有研究相冲突。现有的心理学研究表明,人类的行为或态度可能受到情绪的影响,但他们的推理或认知能力不能简单地通过添加情感刺激来增强。然而,这种差异背后的奥秘仍然不清楚,我们留给未来的工作来找出人类和LLM情感智能之间的实际差异。

ExpertPrompting

ExpertPrompting: Instructing Large Language Models to be Distinguished Experts

如果适当设计提示,对齐的大型语言模型(LLM)的回答质量可以显著提高。在本文中,我们提出了ExpertPrompting,以激发LLM作为杰出专家回答问题的潜力。我们首先利用In-Context Learning自动合成每个具体指令的详细和定制的专家身份描述,然后要求LLM在这种代理背景条件下提供答案。基于这种增强的提示策略,我们使用GPT-3.5生成了一组新的遵循指令的数据,并训练了一个竞争的开源聊天助手,名为ExpertLLaMA。我们使用基于GPT4的评估来证明,1)专家数据比普通答案的质量显著更高,2)ExpertLLaMA优于现有的开源对手,并达到了原始ChatGPT能力的96%。所有数据和ExpertLLaMA模型将在https://github.com/OFA-Sys/ExpertLLaMA上公开。

在本文中,我们提出了ExpertPrompting和ExpertLLaMA。ExpertPrompting是一种增强的提示策略,用于指导LLM以杰出专家的方式回答问题。它是自动的、通用的,同时仍然易于实现。我们将这种提示策略应用于GPT-3.5,以生成一组新的遵循指令的数据,并基于此训练了一个新的开源聊天助手ExpertLLaMA。根据基于GPT4的评估,ExpertPrompting产生了更高质量的答案,ExpertLLaMA优于现有的开源聊天助手,达到了原始ChatGPT能力的96%。在未来,我们将扩大指令数据的规模,超过52k Alpaca,以进一步提高ExpertLLaMA。

结论

从这些论文中可以看出,提示策略在减少RAG应用中的幻觉方面起到了关键作用。

首先,ThoT(思维线索)通过细致的上下文理解和CoN(链式注释)强大的注释生成功能,解决了混乱上下文和无关数据检索的难题。

其次,CoVe(链式验证)引入了系统验证机制,通过迭代改进提高了回答的正确性。而EmotionPrompt则利用情感刺激,不断提升LLM(大型语言模型)的性能,尤其是在大型模型中表现出色。

最后,ExpertPrompting通过其身份切换技巧,展示了更高的回答质量,并在性能上超越了ChatGPT。这些策略不仅增强了LLM的理解和处理能力,还为未来的研究和应用提供了新的视角和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kotlin多线程

目录 线程的使用 线程的创建 例一:创建线程并输出Hello World Thread对象的用法 start() join() interrupt() 线程安全 原子性 可见性 有序性 线程锁 ReentrantLock ReadWriteLock 线程的使用 Java虚拟机中的多线程可以1:1映射至CPU中,即…

1298 - 摘花生问题

题目描述 Hello Kitty 想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有…

Git命令操作

什么是Git? Git是⼀个免费的,开源的分布式版本控制软件系统 git区域 存储区域:Git软件⽤于存储资源得区域。⼀般指得就是.git⽂件夹 ⼯作区域:Git软件对外提供资源得区域,此区域可⼈⼯对资源进⾏处理。 暂存区&am…

Mendix 开发实践指南|Mendix的核心概念

在当今快速变化的技术环境中,Mendix平台以模型驱动开发方法,重新定义了应用程序的构建过程。本章内容,将深入探讨Mendix的几大核心概念:模型驱动开发、微流、纳流 、 实体模型和页面,旨在帮助我们全面理解Mendix平台的…

蓝桥杯-顺子日期

解答加解析 #include<iostream> using namespace std; int main() { //日期分别是:2022.01.20~29 10天 //10.12 11.23 12.30 12.31 //总体思路就是123 012 其他组合不能出现 cout<<"14"; return 0; }

全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法

一、篇头 全志H713平台&#xff0c;作为FHD投影的低成本入门方案&#xff0c;其公板上也配齐了许多投影使用的模组&#xff0c;本文即介绍投影仪调焦所用的步进电机&#xff0c;此模组的驱动原理、配制方法、调试方法。因为条件限制&#xff0c;本文采用的是H618香橙派Z3平台&…

模仿蜘蛛工作原理 苏黎世联邦理工学院研发牛油果机器人可在雨林树冠穿行

对于野外环境生物监测的研究人员来讲&#xff0c;收集生物多样性数据已成为日常工作重要组成部分&#xff0c;特别是对于热带雨林的茂密树冠当中活跃着非常多的动物、昆虫与植物。每次勘察都需要研究人员爬上茂密树冠收集数据&#xff0c;一方面增加了数据收集难度&#xff0c;…

Unity(第五部)新手图层和标签的理解

1、标记用于在物体上显示名字&#xff0c;方便开发 2、标签&#xff08;某一类物体&#xff0c;方便给某一类进行组件脚本编写&#xff09; 而且有了标签之后&#xff0c;我们在写代码的时候就可以直接通过标签找到一系列我们需要的游戏物体了 Untagged未标记Respawn重生Edi…

【hashmap】【将排序之后的字符串作为哈希表的键】【获取 HashMap 中所有值的集合】Leetcode 49 字母异位词分组

【hashmap】【将排序之后的字符串作为哈希表的键】【获取 HashMap 中所有值的集合】Leetcode 49 字母异位词分组 解法1 将排序之后的字符串作为哈希表的键解法2 在解法一的基础上加入了getOrDefault ---------------&#x1f388;&#x1f388;题目链接&#x1f388;&#x1f3…

在 where子句中使用子查询(二)

目录 ANY ANY &#xff1a;功能上与 IN 是没有任何区别的 >ANY &#xff1a;比子查询返回的最小值要大 ALL >AL &#xff1a;比子查询返回的最大值要大 EXISTS() 判断 NOT EXISTS Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209…

Matryoshka Representation Learning (MRL)-俄罗斯套娃向量表征学习

前言 在2024年1月底OpenAI发布新的向量模型&#xff0c;并提到新的向量模型支持将向量维度缩短。向量模型支持缩短维度而又不会威胁到向量的表示能力的原因在于使用了Matryoshka Representation Learning。 Matryoshka Representation Learning (MRL)是2022年发表的论文&#…

matlab 凸轮轮廓设计

1、内容简介 略 46-可以交流、咨询、答疑 2、内容说明 略 4 取标段的分析 取标装置是贴标机的核心部件之一&#xff0c;是影响贴标质量和贴标精度的重要因素&#xff0c;取标段是通过取标板与标签的相切运动使得涂有胶水的取标板从标签盒中粘取标签纸[4]&#xff0c;理论…

批量删除传参那些事

接口参数&#xff1a; public Object batchDeleteUsers(RequestBody List userIds) 工具提示传参&#xff1a; { “userIds”: [] } 错误&#xff01;&#xff01;&#xff01;讨逆猴子 报错&#xff1a;JSON parse error: Cannot deserialize value of type java.util.ArrayL…

Open3D 法向量的统一对齐定向 (26)

Open3D 法向量的统一对齐定向 (26) 一、算法介绍二、算法实现一、算法介绍 定向后:(法线方向统一朝向一个方向) 定向前:(法线的朝向是随机的,可能向下或者向上) 这两个方向都是正确的。这就是经常遇到的法线方向问题。定向即为将方向统一,更加规整 二、算法实现…

使用Node.js和Vue.js构建全栈Web应用

随着互联网的迅速发展&#xff0c;Web应用程序的开发变得越来越复杂和多样化。为了满足用户不断变化的需求&#xff0c;全栈开发已成为一个备受关注的话题。在本篇博客中&#xff0c;我将介绍如何使用Node.js和Vue.js来构建全栈Web应用。 Node.js是一个基于Chrome V8引擎的Jav…

C/C++暴力/枚举/穷举题目持续更新(刷蓝桥杯基础题的进!)

目录 前言 一、百钱买百鸡 二、百元兑钞 三、门牌号码&#xff08;蓝桥杯真题&#xff09; 四、相乘&#xff08;蓝桥杯真题&#xff09; 五、卡片拼数字&#xff08;蓝桥杯真题&#xff09; 六、货物摆放&#xff08;蓝桥杯真题&#xff09; 七、最短路径&#xff08;蓝…

【深入理解设计模式】代理设计模式

代理设计模式&#xff1a; 代理设计模式是一种结构型设计模式&#xff0c;它允许你提供一个替代物或占位符来控制对其他对象的访问。在代理模式中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式&#xff0c;因为该模式涉及类和对象的组合。 概述 …

【谈一谈】Redis是AP还是CP?

【谈一谈】Redis是AP还是CP? 再说这个话题之前,这里的是AP和CP不是"A片"和"C骗"啊 !~哈哈哈,就离谱,博文后面我会解释下的 我说下自己对Redis的感觉,我一直很好奇Redis,不仅仅是当缓存用那么简单,包括的它的底层设计 所以,思考再三,我决定先从Redis基础开…

最简单的基于 FFmpeg 的视音频分离器

最简单的基于 FFmpeg 的视音频分离器 最简单的基于 FFmpeg 的视音频分离器正文结果工程文件下载参考链接 最简单的基于 FFmpeg 的视音频分离器 参考雷霄骅博士的文章&#xff0c;链接&#xff1a;最简单的基于FFmpeg的封装格式处理&#xff1a;视音频分离器&#xff08;demuxe…

五种多目标优化算法(MOFA、NSWOA、MOJS、MOAHA、MOPSO)性能对比(提供MATLAB代码)

一、5种多目标优化算法简介 多目标优化算法是用于解决具有多个目标函数的优化问题的一类算法。其求解流程通常包括以下几个步骤&#xff1a; 1. 定义问题&#xff1a;首先需要明确问题的目标函数和约束条件。多目标优化问题通常涉及多个目标函数&#xff0c;这些目标函数可能…