知识链=知识图谱+大模型+推理-幻觉

news2024/11/29 13:50:58

最近由华东师大和香港大学联合提出了一种面向大语言模型推理的幻觉缓解方法Chain-of-Knowledge被ACL2024接收为长文主会。

PDF: https://arxiv.org/pdf/2306.06427

最近这两年,诸如GPT-4、LLaMA3等一系列超百亿规模的大语言模型相继提出,这些大模型以其大规模参数、大规模语料和大规模算力为基础,展现出了极为强大的语义理解和推理生成能力。

为了更好地引导大语言模型完成复杂任务的推理,一些面向大模型提示工程被相继提出,包括Chain-of-Thougt(CoT)、Self-Consistency、Program-of-Thought(PoT)、ReAct等。在这些提示工程的引导下,大模型可以遵循一定的模式完成问题的理解、规划、推理和解答。

不过即便如此,大语言模型在推理过程中依然会存在幻觉,这通常表现在对问题的规划和推理步骤存在事实性错误或逻辑错误。为此,如何能够识别并纠正这些错误对缓解大模型幻觉问题具有重大价值。

图片

例如如上图所示,传统的推理方法是构造若干Input-Output Pair,从而大模型可以遵循这样的模式进行生成;CoT则在此基础上增加了推理路径,实验和理论发现CoT可以很好地提高大模型的推理能力。不过在实际使用中,依然会存在一些错误,这通常是因为大模型对目标问题存在没有掌握的知识,使得其在某个具体的推理步骤上犯错。

为了提高大模型的推理能力,缓解幻觉问题,本文从三个方面进行了改进。

提示工程:Chain-of-Knowledge Prompting

既然CoT存在一定的不足,那么就先从最简单的提示工程出发。回到刚才的图,我们发现大模型在回答问题时,虽然CoT可以在形式上约束大模型要给出推理步骤,但是由于这种推理步骤是以自然语言形态表达,大模型很有可能会生成出错误的中间结果,而自然语言文本模态的中间步骤很难判断其正确与否。

为此,作者尝试增加一项约束,即让大模型给出明确的推理证据三元组(Evidence Triple)。类似于知识图谱中的三元组,每个三元组由Subject、Relation和Object组成,描述一个推理过程则可以用若干个三元组组成,如以下例子:

假设问题:“乔丹为什么被认为是篮球史上最伟大的球员之一?” 传统的CoT方法可能会生成自然语言的推理步骤,但可能会遗漏关键证据或包含错误信息。使用CoK方法,模型会生成如下证据三元组:

  1. (迈克尔·乔丹,获得,6次NBA总冠军)
  2. (迈克尔·乔丹,获得,5次常规赛MVP)
  3. (迈克尔·乔丹,影响了,篮球的全球推广)

通过这种结构化的表达,我们可以发现可以较好地提高推理能力。因为,大模型产生幻觉通常会因为长篇大论的文本解释从而出错,而显式地给出依据则会间接约束大模型不能用模糊的解释来蒙混过关。

幻觉度量

不过,虽然通过CoK提示工程的引导,还是没有办法100%的避免幻觉问题。为此,我们需要找到这些可能错误错误的推理步骤,并尝试纠正他们。

一般地,不论是常识推理还是符号推理,虽然可以通过最终大模型预测的答案来判断其推理过程中间是否可能出错,但是想具体定位到错误的步骤是比较困难的。为此,我们借助CoK提示的结构,尝试将其与外部知识库进行对齐。

给定一个Prompt和大模型给出的CoK推理路径(包括文本模态的推理路径,和结构化的推理路径)。作者提出两个度量方式:

  • 基于忠实性的幻觉度量:忠实性是指大模型生成的结果与其输入的事实一致性,通常应用在文本摘要、机器翻译等场景。对于推理中,则表示当前推理步骤是否与上下文存在关联。先前一些工程采用类似自然语言推断(NLI)的形式来度量忠实性,作者则采用预训练的SimCSE来作为衡量指标。
  • 基于事实性的幻觉度量:大模型出现错误的另一个原因是某个步骤产生了事实错误,换句话说,其给出的某个推理三元组可能是错误的。为此,作者采用TransR等知识表示学习方法来估计每个证据三元组的正确与否,对于错误的三元组,其对应的得分会低于某个阈值,从而可以推断其是错误的。

Rethinking策略

如果对于一个Prompt,大模型生成的推理步骤经过两个幻觉度量之后被认为存在错误,那么就需要对其进行纠正。作者借鉴了目前的RAG思想,尝试通过对外部知识进行检索增强的形式来提高其在某一个错误的推理步骤上的准确性。

但不同于RAG的是,Rethinking算法则是先基于忠实性和事实性度量指标找到错误的推理三元组,其次对这部分三元组检索外部知识库并实现知识增强,最后基于增强的知识以及原先错误的信息提示大模型进行自我反思,并重新规划和思考当前的问题。整个过程不断迭代直到通过幻觉度量。

整个框架的结构如下图所示:

图片

(1)提示工程 提示工程中,直接采用CoT编写的提示作为文本模态推理路径。同时也采用Zero-Shot CoT的方法构造一些推理路径。为了得到这些exemplar的结构化证据三元组,作者采用人工标注的方法实现,为了确保证据链的准确性,在标注过程中会参考现有的知识图谱,以保证推理过程是准确无误的。

(2)幻觉度量 幻觉度量的得分范围为0-1。0分表示完全错误,1分表示完全正确。这里针对不同的数据集会在验证集上挑选合适的阈值。

(3)再思考算法 大模型会接收到幻觉度量的反馈结果,包括具体到每个推理步骤的正确与否信息。对于错误的证据三元组,会对其检索外部知识库里寻找最有可能正确的三元组,并以提示的形式在下一轮大模型回答时作为增强。这里需要强调的是,只针对错误的推理步骤进行知识检索,而不会将正确答案泄漏给大模型。以下为一个直观的例子:

设想模型被问到:“爱因斯坦发明了电灯吗?” 初始回答可能是:

  • 证据三元组:(爱因斯坦,发明了,电灯)

    解释: 爱因斯坦发明了电灯,所以答案是“是的”。

经F²验证,发现第一条证据与事实不符。于是,从知识库中检索到正确的证据:

  • (托马斯·爱迪生,发明了,电灯)

将正确的证据注入提示后,模型重新生成回答:

  • 新的证据三元组:

    1. (爱因斯坦,是,物理学家)
    2. (托马斯·爱迪生,发明了,电灯)
  • 解释: 电灯是由托马斯·爱迪生发明的,而爱因斯坦是著名的物理学家,所以答案是“不是”。

新的回答通过了F²验证,成功纠正了模型在常识推理中的错误

实验

作者在包括常识与事实推理、算术推理和符号推理等任务上进行了实验。挑选了包括text-davinci-002、gpt3.5-turbo和gpt-4作为大模型基座。实验总体结果如下:

图片

实验结果呈现出CoK可以较好地在绝大多数任务上超越基线和SOTA。同时在Self-Consistency的增强下可以提高超过3%的准确率。

在BoolQ和CSQA上进行实验来验证再思考算法的收敛性,可发现大多数情况下大模型可以在第3轮回答正确。

图片

通过观察一些Case,可以发现在CoK的提示下,大模型可以生成出结构化的推理路径,并能够在再思考算法的增强下不断地提高准确性。

图片

未来展望

  • 应用拓展: CoK方法有望应用于法律推理、医学诊断等需要复杂推理的场景,提升模型在专业领域的应用价值。
  • 实时知识更新: 外部知识库可以被扩展为实时的搜索引擎,为模型提供最新的知识支持,进一步提高推理的准确性和时效性。

总结

该研究开创性地将结构化的知识证据引入大语言模型的推理过程中,提供了一种有效缓解幻觉问题的新途径。通过明确的证据三元组和针对幻觉的度量与纠正机制,模型的推理过程变得更加透明和可靠。这一方法不仅适用于当前的大模型,也为未来更复杂的推理任务提供了宝贵的参考。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

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

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

相关文章

AI少女/HS2甜心选择2 仿逆水寒人物卡全合集打包

内含AI少女/甜心选择2 仿逆水寒角色卡全合集打包共6张 内含:白灵雪魅落霞飞雁君临华歌白君临华歌黑平野星罗晚香幽韵 下载地址: https://www.51888w.com/436.html 部分演示图:

P10185 [YDOI R1] Necklace

[YDOI R1] Necklace - 洛谷 因为是方案数求和 我们考虑计算每种珠子单独贡献的方案数有 因为有二项式定理 构造 因为n不取0&#xff0c;便有 时间复杂度 modint qmi code #include <bits/stdc.h>#define INF (1ll<<60) #define eps 1e-6 using namespace std; …

Hive数仓操作(十七)

一、Hive的存储 一、Hive 四种存储格式 在 Hive 中&#xff0c;支持四种主要的数据存储格式&#xff0c;每种格式有其特点和适用场景&#xff0c;不过一般只会使用Text 和 ORC &#xff1a; 1. Text 说明&#xff1a;Hive 的默认存储格式。存储方式&#xff1a;行存储。优点…

Leetcode—763. 划分字母区间【中等】

2024每日刷题&#xff08;175&#xff09; Leetcode—763. 划分字母区间 C实现代码 class Solution { public:vector<int> partitionLabels(string s) {int rightmost[26];int l 0;int r 0;for(int i 0; i < s.length(); i) {rightmost[s[i] - a] i;}vector<…

强化学习笔记之【DDPG算法】

强化学习笔记之【DDPG算法】 文章目录 强化学习笔记之【DDPG算法】前言&#xff1a;原论文伪代码DDPG算法DDPG 中的四个网络代码核心更新公式 前言&#xff1a; 本文为强化学习笔记第二篇&#xff0c;第一篇讲的是Q-learning和DQN 就是因为DDPG引入了Actor-Critic模型&#x…

虚拟电厂可视化:智能能源管理新时代

通过图扑可视化技术&#xff0c;全方位展示虚拟电厂的运行状态&#xff0c;优化能源生产与消耗&#xff0c;提高电网效率和稳定性&#xff0c;实现智能能源管理。

第十一篇——鸡兔同笼:方程这个数学工具为什么很强大?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 数学的伟大思想&#xff1b;不仅仅是我们解决了某一个具体问题&#xff1…

TIBCO Jaspersoft Studio 创建数据源并进行测试

1、连接数据源&#xff1a; 右键Data Adapters &#xff0c;然后新建 根自己的情况&#xff0c;进行创建&#xff0c;这里测试用的是excel表格。 2、新建Jasper Report&#xff0c;然后我们选择刚刚创建的数据源 这样report就建好了&#xff0c;然后我们进行测试。 3、先把不…

永旺梦乐城盛大开业,3300个停车位的智慧运营管理系统上线!

长沙首家&#xff01; 永旺梦乐城 9月12日正式开业&#xff01; 这座融合特色餐饮、娱乐体验的商场&#xff0c; 将为长沙消费者带来&#xff0c; 超越传统商业综合体的全新体验。 开业当日&#xff0c;占地1.3万平方米的永旺超市人声鼎沸&#xff0c;顾客络绎不绝&#x…

使用Java调用OpenAI API并解析响应:详细教程

使用Java调用OpenAI API并解析响应&#xff1a;详细教程 在现代应用程序中&#xff0c;API调用是一个非常常见的任务。本文将通过一个完整的示例&#xff0c;讲解如何使用Java调用OpenAI的ChatGPT API&#xff0c;并通过ObjectMapper处理JSON响应。本文的示例不仅适用于OpenAI…

红米Turbo 3工程固件预览 修复底层 体验原生态系统 默认开启diag端口

红米Turbo 3机型代码:peridot 国外版本:POCO F6 用于以下型号的小米机型:24069RA21C, 24069PC21G, 24069PC21I。搭载1.5K OLED屏、骁龙8s处理器、5000mAh电池+90W快充、5000万像素主摄。 通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2💝💝�…

探索MinimalModbus:Python中强大的Modbus通信库

文章目录 **探索MinimalModbus&#xff1a;Python中强大的Modbus通信库**一、背景介绍&#xff1a;为什么选择MinimalModbus&#xff1f;二、MinimalModbus是什么&#xff1f;三、如何安装MinimalModbus&#xff1f;四、MinimalModbus的基本使用4.1 读取寄存器4.2 写入寄存器4.…

【平方差 / C】

题目 思路 打表找规律 枚举小区间对于判断要妥协&#xff0c;我这里选取100内的x, y #include <bits/stdc.h> using namespace std; bool st[120]; int main() {for(int i 1; i < 100; i){for(int x 0; x < 100; x ){for(int y 0; y < 100; y){if(!st[i])i…

关于Zipf定律与TF—IDF的一个实践

在这篇文章中&#xff0c;我将通过机器学习中的线性回归来计算zipf定律中一个经验常数alpha&#xff0c;还会画TF-IDF的图像&#xff0c;此外还将简单介绍下与zipf、TF-IDF有关的知识。 在之前的一篇文章中我曾介绍过TF-IDF&#xff0c;但之后我又阅读了Ricardo Baeza-Yates和…

我开发了一个出海全栈SaaS工具,还写了一套全栈开发教程

先上目录思维导图&#x1f447; 大家好&#xff0c;我是程普。 前段时间&#xff0c;我发布了第一个出海产品 PH Copilot&#xff0c;是一个基于 Plasmo 开发的 Chrome 插件和 Next.js 开发的落地页与服务端的全栈产品。 现在我把这个产品的完整实现写成系统性教程&#xff0…

强化学习笔记之【Q-learning算法和DQN算法】

强化学习笔记&#xff08;一&#xff09;——Q-learning和DQN算法核心公式 文章目录 强化学习笔记&#xff08;一&#xff09;——Q-learning和DQN算法核心公式前言&#xff1a;Q-learning算法DQN算法 前言&#xff1a; 强化学习领域&#xff0c;繁冗复杂的大段代码里面&#…

华为平板与非华为电脑多屏协同及Bug处理

本文参考B站空降猫咪、鱼翅2002、知乎奔跑的小牛、夏风微微等博主。 电脑版本型号&#xff1a;拯救者Y7000&#xff0c;核显3050Ti,无集成显卡 平板版本型号&#xff1a;华为matepad pro解决办法&#xff1a; 下载空降猫咪的安装器PCManagerInstaller_20230801 CSDN下载链接 …

Redis中BitMap实现签到与统计连续签到功能

服务层代码 //签到Overridepublic Result sign() {//1.获取当前登录的用户Long userId UserHolder.getUser().getId();//获取日期LocalDateTime now LocalDateTime.now();//拼接keyString keySuffix now.format(DateTimeFormatter.ofPattern(":yyyyMM"));String …

网页打不开、找不到服务器IP地址

现象&#xff1a;网络连接ok&#xff0c;软件能正常使用&#xff0c;当网页打不开。 原因&#xff1a;DNS 配置错误导致网站域名无法正确解析造成。 影响DNS设置的&#xff1a;VPN软件、浏览器DNS服务选择、IPv4属性被修改。 1、VPN代理未关闭 2、浏览器DNS解析选择 3、以太…

华为eNSP:端口隔离

一&#xff0c;什么是端口隔离 端口隔离是一种网络配置技术&#xff0c;用于将不同的网络设备或用户隔离在不同的虚拟局域网&#xff08;VLAN&#xff09;中&#xff0c;以实现网络流量的隔离和安全性提升。通过在交换机或路由器上配置端口隔离&#xff0c;可以将连接到同一设…