TaD+RAG-缓解大模型“幻觉”的组合新疗法

news2024/11/14 20:35:26

TaD:任务感知解码技术(Task-aware Decoding,简称TaD),京东联合清华大学针对大语言模型幻觉问题提出的一项技术,成果收录于IJCAI2024

RAG:检索增强生成技术(Retrieval-augmented Generation,简称RAG),是业内解决LLM幻觉问题最有效的系统性方案。

1. 背景介绍

近来,以ChatGPT为代表的生成式大语言模型(Large Language Model,简称LLM)掀起了新一轮AI热潮,并迅速席卷了整个社会的方方面面。得益于前所未有的模型规模、训练数据,以及引入人类反馈的训练新范式,LLM在一定程度上具备对人类意图的理解和甄别能力,可实现生动逼真的类人对话互动,其回答的准确率、逻辑性、流畅度都已经无限接近人类水平。此外,LLM还出现了神奇的“智能涌现”现象,其产生的强大的逻辑推理、智能规划等能力,已逐步应用到智能助理、辅助创作、科研启发等领域。京东在诸多核心业务如AI搜索、智能客服、智能导购、创意声称、推荐/广告、风控等场景下,均对LLM的落地应用进行了深入探索。这一举措提升了业务效率,增强了用户体验。

尽管具备惊艳的类人对话能力,大语言模型的另外一面——不准确性,却逐渐成为其大规模落地的制约和瓶颈。通俗地讲,LLM生成不准确、误导性或无意义的信息被称为“幻觉”,也就是常说的“胡说八道”。当然也有学者,比如OpenAI的CEO Sam Altman,将LLM产生的“幻觉”视为“非凡的创造力”。但是在大多数场景下,模型提供正确回答的能力至关重要,因此幻觉常常被认为是一种缺陷;尤其是在一些对输出内容准确性要求较高的场景下,比如医疗诊断、法律咨询、工业制造、售后客服等,幻觉问题导致的后果往往是灾难性的。

本文主要探索针对LLM幻觉问题的解决方案。

2. 相关调研

众所周知,大语言模型的本质依然是语言模型(Language Model,简称LM),该模型可通过计算句子概率建模自然语言概率分布。具体而言,LM基于统计对大量语料进行分析,按顺序预测下一个特定字/词的概率。LLM的主要功能是根据输入文本生成连贯且上下文恰当的回复,即生成与人类语言和写作的模式结构极为一致的文本。注意到,LLM并不擅长真正理解或传递事实信息。故而其幻觉不可彻底消除。亚利桑那州立大学教授Subbarao Kambhampati认为:LLM所生成的全都是幻觉,只是有时幻觉碰巧和你的现实一致而已。新加坡国立大学计算学院的Ziwei Xu和Sanjay Jain等也认为LLM的幻觉无法完全消除[1]。

虽然幻觉问题无法彻底消除,但依然可以进行优化和缓解,业内也有不少相关的探索。有研究[2]总结了LLM产生幻觉的三大来源:数据、训练和推理,并给出了对应的缓解策略。

2.1 数据引入的幻觉

“病从口入”,训练数据是LLM的粮食,数据缺陷是使其致幻的一大原因。数据缺陷既包括数据错误、缺失、片面、过期等,也包括由于领域数据不足所导致的模型所捕获的事实知识利用率较低等问题。以下是针对训练数据类幻觉的一些技术方案:

数据清洗

针对数据相关的幻觉,最直接的方法就是收集更多高质量的事实数据,并进行数据清理。训练数据量越大、质量越高,最终训练得到的LLM出现幻觉的可能性就可能越小[3]。但是,训练数据总有一定的覆盖范围和时间边界,不可避免地形成知识边界,单纯从训练数据角度解决幻觉问题,并不是一个高性价比的方案

针对“知识边界”问题,有两种主流方案:一种是知识编辑,即直接编辑模型参数弥合知识鸿沟。另一种是检索增强生成(Retrieval-augmented Generation,简称RAG),保持模型参数不变,引入第三方独立的知识库。

知识编辑

知识编辑有两种方法:1)编辑模型参数的方法可以细粒度地调整模型的效果,但难以实现知识间泛化能力,且不合理的模型编辑可能会导致模型产生有害或不适当的输出[4];2)外部干预的方法(不编辑模型参数)对大模型通用能力影响较小,但需要引入一个单独的模块,且需要额外的资源训练这个模块。

如何保持原始LLM能力不受影响的前提下,实现知识的有效更新,是LLM研究中的重要挑战[2]。鉴于知识编辑技术会给用户带来潜在风险,无论学术界还是业界都建议使用包含明确知识的方法,比如RAG

检索增强生成(RAG)

RAG引入信息检索过程,通过第三方数据库中检索相关信息来增强LLM的生成过程,从而提高准确性和鲁棒性,降低幻觉。由于接入外部实时动态数据,RAG在理论上没有知识边界的限制,且无需频繁进行LLM的训练,故已经成为LLM行业落地最佳实践方案。下图1为RAG的一个标准实现方案[11],用户的Query首先会经由信息检索模块处理并召回相关文档;随后RAG方法将Prompt、用户query和召回文档一起输入LLM,最终由LLM生成最终的答案。

图1. RAG架构图





RAG借助信息检索,引入第三方事实知识,大大缓解了单纯依靠LLM生成答案而产生的幻觉,但由LLM生成的最终输出仍然有较大概率产生幻觉。因此,缓解LLM本身的幻觉,对整个RAG意义重大

2.2 模型训练引入的幻觉

LLM的整个训练过程,都可能会引入幻觉。首先,LLM通常是transformer结构的单向语言模型,通过自回归的方式建模目标,天然存在单向表示不足、注意力缺陷[6]、曝光偏差[7]等问题;其次,在文本对齐阶段,无论是监督微调(SFT)还是人类反馈的强化学习(RLHF),都有可能出现有标注数据超出LLM知识边界、或者与LLM内在知识不一致的问题;这一系列对齐问题很可能放大LLM本身的幻觉风险[8]。

对于训练过程引入的幻觉,可以通过优化模型结构、注意力机制、训练目标、改进偏好模型等一系列手段进行缓解。但这些技术都缺乏通用性,难以在现有的LLM上进行迁移,实用性不高

2.3 推理过程引入的幻觉

推理过程引入的幻觉,一方面源自于解码策略的抽样随机性,它与幻觉风险的增加呈正相关,尤其是采样温度升高导致低频token被采样的概率提升,进一步加剧了幻觉风险[9]。另一方面,注意力缺陷如上下文注意力不足、Softmax瓶颈导致的不完美解码都会引入幻觉风险。

层对比解码(DoLa)

针对推理过程解码策略存在的缺陷,一项具有代表性且较为有效的解决方案是层对比解码(Decoding by Contrasting Layers, 简称DoLa)[9]。模型可解释性研究发现,在基于Transformer的语言模型中,下层transformer编码“低级”信息(词性、语法),而上层中包含更加“高级”的信息(事实知识)[10]。DoLa主要通过强调较上层中的知识相对于下层中的知识的“进步”,减少语言模型的幻觉。具体地,DoLa通过计算上层与下层之间的logits差,获得输出下一个词的概率。这种对比解码方法可放大LLM中的事实知识,从而减少幻觉。

图2. DoLa示意图





上图2是DoLa的一个简单直观的示例。“Seattle”在所有层上都保持着很高的概率,可能仅仅因为它是一个从语法角度上讲比较合理的答案。当上层通过层对比解码注入更多的事实知识后,正确答案“Olympia”的概率会增加。可见,层对比解码(DoLa)技术可以揭示真正的答案,更好地解码出LLM中的事实知识,而无需检索外部知识或进行额外微调。此外,DoLa还有动态层选择策略,保证最上层和中间层的输出差别尽可能大。

可见,DoLa的核心思想是淡化下层语言/语法知识,尽可能放大事实性知识,但这可能导致生成内容存在语法问题;在实验中还发现DoLa会倾向于生成重复的句子,尤其是长上下文推理场景。此外,DoLa不适用有监督微调,限制了LLM的微调优化

3. 技术突破

通过以上分析,RAG无疑是治疗LLM幻觉的一副妙方,它如同LLM的一个强大的外挂,让其在处理事实性问题时如虎添翼。但RAG的最终输出仍然由LLM生成,缓解LLM本身的幻觉也极为重要,而目前业内针对LLM本身幻觉的技术方案存在成本高、实用落地难、易引入潜在风险等问题。

鉴于此,京东零售联合清华大学进行相关探索,提出任务感知解码(Task-aware Decoding,简称TaD)技术[12](成果收录于IJCAI2024),可即插即用地应用到任何LLM上,通过对比有监督微调前后的输出,缓解LLM本身的幻觉。该方法通用性强,在多种不同LLM结构、微调方法、下游任务和数据集上均有效,具有广泛的适用场景。

任务感知解码(TaD)技术

关于LLM知识获取机制的一些研究表明,LLM的输出并不能总是准确反映它们所拥有的知识,即使一个模型输出错误,它仍然可能拥有正确的知识[13]。此项工作主要探索LLM在保留预训练学到的公共知识的同时,如何更好地利用微调过程中习得的下游任务特定领域知识,进而提升其在具体任务中的效果,缓解LLM幻觉。

TaD的基本原理如图3所示。微调前LLM和微调后LLM的输出词均为“engage”,但深入探究不难发现其相应的预测概率分布发生了明显的改变,这反映了LLM在微调期间试图将其固有知识尽可能地适应下游任务的特定领域知识。具体而言,经过微调,更加符合用户输入要求(“专业的”)的词“catalyze”的预测概率明显增加,而更通用的反映预训练过程习得的知识却不能更好满足下游任务用户需求的词“engage”的预测概率有所降低。TaD巧妙利用微调后LLM与微调前LLM的输出概率分布的差异来构建知识向量,得到更贴切的输出词“catalyze”,进而增强LLM的输出质量,使其更符合下游任务偏好,改善幻觉。

图3. TaD原理图





知识向量

为了直观理解LLM在微调阶段学习到的特定领域知识,我们引入知识向量的概念,具体如图4所示。微调前LLM的输出条件概率分布为pθ,微调后LLM的输出条件概率分布为 pϕ。知识向量反应了微调前后LLM输出词的条件概率分布变化,也代表着LLM的能力从公共知识到下游特定领域知识的适应。基于TaD技术构建的知识向量可强化LLM微调过程中习得的领域特定知识,进一步改善LLM幻觉。

图4. 知识向量





特别地,当微调数据较少时,LLM的输出条件概率分布远远达不到最终训练目标。在此情形下,TaD技术增强后的知识向量可以加强知识对下游任务的适应,在训练数据稀缺场景下带来更显著的效果提升。

实验结果

1)针对不同的LLM,采用LoRA、AdapterP等方式、在不同的任务上进行微调,实验结果如下表1和表2所示。注意到,TaD技术均取得了明显的正向效果提升。

表1. Multiple Choices和CBQA任务结果





表2. 更具挑战性的推理任务结果





2)相比较其他对比解码技术,TaD技术在绝大部分场景下效果占优,具体如表3所示。需要特别强调的一点是,其他技术可能会导致LLM效果下降,TaD未表现上述风险。

表3. 不同对比解码技术结果





3)针对不同比例的训练样本进行实验,发现一个非常有趣的结果:训练样本越少,TaD技术带来的收益越大,具体如表4所示。因此,即使在有限的训练数据下,TaD技术也可以将LLM引导到正确的方向。由此可见,TaD技术能够在一定程度上突破训练数据有限情形下LLM的效果限制。

表4. 不同数据比例下的结果





可见,TaD可以即插即用,适用于不同LLM、不同微调方法、不同下游任务,突破了训练数据有限的瓶颈,是一项实用且易用的改善LLM自身幻觉的技术。

4. 落地案例

自从以ChatGPT为代表的LLM诞生之后,针对其应用的探索一直如火如荼,然而其幻觉已然成为限制落地的最大缺陷。综上分析,目前检索增强生成(RAG)+低幻觉的LLM是缓解LLM幻觉的最佳组合疗法。在京东通用知识问答系统的构建中,我们通过TaD技术实现低幻觉的LLM,系统层面基于RAG注入自有事实性知识,具体方案如图5所示,最大程度缓解了LLM的生成幻觉 。

图5. TaD+RAG的知识问答系统





目前知识问答系统已经接入京东6000+业务场景,为用户提供准确、高效、便捷的知识性问答,大大节省了运营、运维等人力开销。

5. 思考与展望

如果LLM依然按照语言模型的模式发展,那么其幻觉就无法彻底消除。目前业内还没有一种超脱语言模型范畴,且可以高效完成自然语言相关的任务新的模型结构。因此,缓解LLM的生成幻觉,仍然是未来一段时期的探索路径。以下是我们在系统、知识、LLM三个层面的一些简单的思考,希望能够抛砖引玉。

系统层面——RAG+Agent+More的复杂系统

RAG技术确实在一些常见的自然语言处理任务中发挥出色的作用,尤其是针对简单问题和小型文档集。但是遇到一些复杂的问题和大型文档集时,RAG技术就显得力不从心。近期有一些研究认为RAG+Agent才是未来的趋势[14],Agent能够辅助理解并规划复杂的任务。我们认为可能未来的系统可能不仅仅局限于Agent和RAG,可能还要需要多种多样的内外工具调用、长短期记忆模块、自我学习模块......

知识层面——与LLM深度融合的注入方式

任何一个深度模型都会存在知识边界的问题,LLM也不例外。RAG通过检索的方式召回外部知识,以Prompt的形式送入LLM进行最终的理解和生成,一定程度上缓解LLM知识边界问题。但是这种知识注入的方式和LLM生成的过程是相对割裂的。即便已经召回了正确的知识,LLM也可能因为本身知识边界问题生成错误的回答。因此探索如何实现外部知识和LLM推理的深度融合,或许是未来的一个重要的课题。

LLM层面——低幻觉LLM

LLM本身的幻觉是问题的根本和瓶颈,我们认为随着LLM更广泛的应用,类似TaD可缓解LLM本身幻觉的探索一定会成为业内的更大的研究热点。

6. 结语

缓解LLM幻觉一定是个复杂的系统问题,我们可以综合不同的技术方案、从多个层级协同去降低LLM的幻觉。虽然现有方案无法保证从根本上解决幻觉,但随着不断探索,我们坚信业内终将找到限制LLM幻觉的更有效的方案,也期待届时LLM相关应用的再次爆发式增长。

京东零售一直走在AI技术探索的前沿,随着公司在AI领域的不断投入和持续深耕,我们相信京东必将产出更多先进实用的技术成果,为行业乃至整个社会带来深远持久的影响。



【参考文献】

[1] Hallucination is Inevitable: An Innate Limitation of Large Language Models

[2] A Survey on Hallucination in Large Language Models: Principles, Taxonomy, Challenges, and Open Questions

[3] Unveiling the Causes of LLM Hallucination and Overcoming LLM Hallucination

[4] Editing Large Language Models: Problems, Methods, and Opportunities

[5] ACL 2023 Tutorial: Retrieval-based Language Models and Applications

[6] Theoretical Limitations of Self-Attention in Neural Sequence Models

[7] Sequence level training with recurrent neural networks.

[8] Discovering language model behaviors with model-written evaluations

[9] Dola: Decoding by contrasting layers improves factuality in large language models

[10] Bert rediscovers the classical nlp pipeline

[11] Retrieval-Augmented Generation for Large Language Models: A Survey

[12] TaD: A Plug-and-Play Task-Aware Decoding Method toBetter Adapt LLM on Downstream Tasks

[13] Inference-time intervention: Eliciting truthful answers from a language model

[14] Beyond RAG: Building Advanced Context-Augmented LLM Applications

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

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

相关文章

《昇思25天学习打卡营第25天|第14天》

今天是打卡的第十四天,今天学习的是应用实践中的热门LLM及其他AI应用的K近邻算法实现红酒分类篇。这一片主要介绍使用MindSpore在部分wine数据集上进行KNN实验,对实验的步骤的介绍:K近邻算法原理介绍(分类问题、回归问题和距离的定…

电商库存API设计与实现详解

库存管理在电商运营中非常重要,因为这影响到电商交易是否能够顺利进行。很多从线下零售发展到电商渠道的朋友了解到了电商库存接口能够高效管理库存,但不知道自己想要应用的场景是否仅通过电商库存接口就能实现,那不妨先了解一下电商库存接口…

最新开源的PDF版面分析工具 PDF-Extract-Kit

最近有一个新开源的版面分析的模型,做PDF版面分析效果非常好。而且对公式的解析效果比较好。虽然现在star数量不高,但是绝对会涨起来的。我们调研对比过很多开源的工具,效果都强差人意,这个是我看到的最满意的一个。甚至要比我们生…

牛客TOP101:判断链表中是否有环

文章目录 1. 题目描述2. 解题思路3. 代码思路 1. 题目描述 2. 解题思路 快慢指针,原理就是快指针一次走两步,慢指针一次走一步,快指针会先进入到环中进行循环,慢指针后进行。以相对来看,快指针是比慢指针多走一步&…

构建自定义bootos

1 构建自定义bootos BootOS (也称 ramos ),是一个基于内存的操作系统,系统启动后全部加载到内存中运行,不依赖磁盘存储设备,因此可以对硬件层级进行一系列的操作。主要分为两部分内核和文件系统。 1.1 构建vmlinuz内核文件 1.1.1 从现有系统获取 从系统iso镜像获…

使用Python Turtle绘制圣诞树和装饰

简介(❤ ω ❤) 在这篇文章中,我们将探索如何使用Python的Turtle模块来绘制一个充满节日气氛的圣诞树,以及一些可爱的装饰品。Turtle是一个受Logo语言启发的图形库,非常适合初学者学习编程和创建图形。 码农不是吗喽(大学生版&…

VulnHub:CK00

靶场搭建 靶机下载地址:CK: 00 ~ VulnHub 下载后,在vmware中打开靶机。 修改网络配置为NAT 处理器修改为2 启动靶机 靶机ip扫描不到的解决办法 靶机开机时一直按shift或者esc直到进入GRUB界面。 按e进入编辑模式,找到ro,修…

Linux(CentOS7)离线安装Redis6

版本 CentOS-7、redis-6 1、下载redis离线包 下载地址:http://download.redis.io/releases/ 2、选择安装包 redis-6.2.5.tar.gz 3、上传安装包至服务器 cd /usr/local/redis #进入目录,没有redis目录则自行创建 tar -zxvf redis-6.2.5.tar.gz #…

拓扑排序(练习题)

文章目录 拓扑排序[P1113 杂务](https://www.luogu.com.cn/problem/P1113)题目描述输入格式输出格式代码(BFS) [P4017 最大食物链计数](https://www.luogu.com.cn/problem/P4017)题目描述输入格式输出格式代码(BFS)代码&#xff0…

Python实战MySQL之数据库操作全流程详解

概要 MySQL是一种广泛使用的关系型数据库管理系统,Python可以通过多种方式与MySQL进行交互。本文将详细介绍如何使用Python操作MySQL数据库,包括安装必要的库、连接数据库、执行基本的CRUD(创建、读取、更新、删除)操作,并包含具体的示例代码,帮助全面掌握这一过程。 准…

基于天地图使用Leaflet.js进行WebGIS开发实战

目录 前言 一、天地图的key 1、创建应用 2、调用限制策略 注: (1)日服务调用超量会暂时拒绝访问,次日自动开启; (2)如果服务调用过程中存在数据爬取或者下载行为,服务调用会被自…

UE4-系统默认天空球的使用

当我们在调整平行光的时候,会发现场景中的光照改变了,但是太阳的位置并没有改变,此时就需要用到系统默认的天空球中的: 但是只有在选中是由平行光的改变而改变的情况下才会发生改变,如果没有选择或者选择其他的光源&am…

爬虫(一)——爬取快手无水印视频

前言 最近对爬虫比较感兴趣,于是浅浅学习了一些关于爬虫的知识。爬虫可以实现很多功能,非常有意思,在这里也分享给大家。由于爬虫能实现的功能太多,而且具体的实现方式也有所不同,所以这里开辟了一个新的系列——爬虫…

MySQL(6)内置函数,复合查询.

目录 1.内置函数; 2.复合查询; 1.内置函数: 1.1 日期函数: 时分秒: 时间戳: 基本日期上加日期: 基本日期减去日期: 日期相差天数: 🌰 创建一张表,记录生日: 创建一个留言表: 显示所有留言信息,发布日期只显示日期,不用显示时间: …

【数据结构】Splay详解

Splay 引入 Splay旋转操作splay操作插入操作查询x排名查询排名为x删除操作查询前驱/后继模板Splay时间复杂度分析 进阶操作截取区间区间加,区间赋值,区间查询,区间最值区间翻转原序列整体插入指定位置插入整体插入末尾区间最大子段和 一些好题…

自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍

文章目录 1. 背景介绍2. 功能定义3. 功能原理4. 传感器架构5. 实际应用案例5.1 典型场景1:前方车辆压线5.2 典型场景2:相邻车道有大型车辆5.3 典型场景3:它车近距离cut in 6. 总结与展望 1. 背景介绍 随着汽车技术的发展,智能巡航…

一些常见的网络故障

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…

关于我在vue3中使用swiper的使用碰到swiper-slide的width特别大的这件事儿

一. 环境 "vue": "^3.3.8","swiper": "^10.0.4",二. 问题描述 原代码: <template><swiperclass"wq-swiper":space-betwee"spaceBetween":pagination"{ clickable: true }":modules"mod…

Unity发微信小游戏记录

Unity2Wechat 流程1.小程序AppID2.Unity 插件3.微信开发者工具4.CDN资源服 参考文档 流程 1.小程序AppID 已有账号 登陆公众平台获取小程序AppID https://mp.weixin.qq.com/ 无账号 注册小程序 https://developers.weixin.qq.com/minigame/dev/guide/ 经营类目需要是游戏大类…

msvcr120.dll丢失的原因分析,msvcr120.dll丢失的解决方法分享

在日常使用电脑的过程中&#xff0c;我们可能会遇到一些错误提示或程序无法正常运行的问题。其中&#xff0c;msvcr120.dll丢失是一种常见的错误&#xff0c;它会导致某些应用程序无法启动或运行。本文将分析msvcr120.dll丢失的原因&#xff0c;并介绍5种解决方法以及修复过程中…