目前来看,大模型幻觉是阻碍大模型在产业界落地的一个非常重要的原因,而且我们也想方设法想降低大模型的幻觉。首先来看一下什么是幻觉。简单理解的话,幻觉其实对应到大模型的胡说八道,但这个胡说八道我们也可以把它分类成几大类型。
第一种我们可以把它归类为上下文的矛盾,那这个怎么理解?举个例子,比如说大模型目前在生成了一个段落一共包含2个句子,然后一开始生成了一句话接下来又生成了一句话,但是这两句话存在一定的矛盾。比如大模型一开始说他喜欢,后来又说他不喜欢,那这个就是上下文的矛盾。
第二种与 prompt要求不一致,比如说我们让大模型去给我们生成一个这种正面的一个评价,然后它给我生成了一个负面的评价,所以生成的内容跟prompt 里面所要求的是不太一样的,造成这种原因有可能我们 prompt 没有写好,
第三种也是最常见的与事实矛盾,也可以说它在编造一个事实,打个比方,北京是中国的首都。然后大模型把它编造为上海是中国的首都,这显然跟事实不符合的。还有一种回复的类型是荒谬的回复,就是它的回复完全不符合实际。比如说狗可以飞起来,或者苹果是一种动物,那些就是一个非常荒谬的。
所以大模型的回复只要符合其中的一条,我们可以把它称之为叫幻觉,只不过有些幻觉对业务带来的严重性可能比其他的幻觉要大一些,比如大模型编造的事实没有被及时发现,而且我们接纳了这个事实,那这个时候有可能会带来比较严重的后果。
为什么会产生幻觉,这里有几个比较重要的原因。
数据质量,因为大模型是基于海量的数据训练出来的,对于海量的数据来讲,我们不可能100% 保证那所有的数据都是正确的,数据里面会包含一些噪声,还有一些不符合实际的一些言论,这些都是造成大模型幻觉的潜在的因素。当然除了数据里面存在大量的噪声之外,还有像用于训练数据的多样性的缺乏也会导致一定的幻觉,比如用于训练的数据太过侧重于其中的某一个方面,那这个时候那大模型很容易产生一种所谓的叫Bias,那它也是幻觉的一个比较重要的因素。
模型训练过程所导致的一些幻觉,说白了就是大模型训练过程里面存在一些问题,其中一个最常见的问题,我们把它叫做过拟合,也就是说大模型在已经看到的那些数据上,它的表现是比较好的,但是因为它的泛化能力比较弱,所以当我们遇到一个新的问题的时候,它的能力就变得比较有限,
生成文本的过程,生成过程在大模型里面是我们给定历史的这些文本要生成的一个token。然后这个过程是由大模型本身来去负责的,它实际上是基于这样的一个概率生成出来的,也就是下一个 token 依赖于之前生成出来的所有的token,而且这里面是一个采样的过程,所以存在一定的随机性。实际上是没有任何的控制的,就是我们不会去控制那生成出来的 token 到底是不是真实的,还是跟事实违背的,所以没有任何的检查机制,所以通过生成过程生成出来的文本,我们是没有办法去控制它的幻觉的。当然在生成过程里面我们也可以试着去加入一些检查的机制,就是不断的检查,我们目前为止生成出来的是不是符合事实的,但这种逻辑的添加其实会增加大量的计算,所以很多时候它的操作性也比较弱。
提示工程,就是我们没有做好。所谓的提示工程,就是我们给大模型提供的 prompt 不太明确,而且有很多的歧义性,所以这个时候很明显大模型给我们生成的可能是不是我们想要的结果。另外还有一点就是大模型训练也包括微调,所以如果我们在微调过程没有控制好,其实也会增加大模型的幻觉。
降低大模型幻觉的几个常见的方法
提示工程,包括我们怎么去编写一个比较清晰的instruction还有就是我们怎么去让大模型帮我们输出我们想要的格式,还有包括一些技巧,比如如何让大模型帮我们去进行思考,然后把一步一步的过程帮我们去把它罗列出来。那这个其实也是可以大大的降低大模型的幻觉的手段,而且也是最便宜的手段。
重视数据质量,我们都知道大模型幻觉的一个比较重要的因素就是我们在训练时用的数据的质量不高,存在一些噪声,还有一些不太符合实际的一些事实。那反过来,那我们的解决方案就是提高数据质量,这里包括大模型的预训练,还有像持续语训练以及模型的微调,其实数据质量起到非常关键的作用,所以我们需要花大量的精力去进行数据的倾斜,从而确保我们手里的数据是高质量的。
那这里面有一个比较经典的认知,打个比方我们想做模型的微调,像SFT,这个阶段我们实际上数据的质量远重要于数据的数量,所以拥有少量的高质量的数据,好处其实要大于大量的低质量的数据的。
微调技术,可以通过微调让模型在某一个方面表现的比较好,而且同时可以降低幻觉的现象。但是模型微调本身它其实也是一个双刃剑,如果我们微调的不合理,它反而会增加幻觉的现象,所以对于模型微调能否降低或者增加幻觉来讲,其实目前来看也是一个开放的问题,没有一个明确的答案。比如有些学者就会提出,如果我们在模型微调阶段引入的是很多一些新的数据,就是新的知识,那这个新的知识是之前大模型这边是缺乏的,那这个时候那模型本身它可能会增加一定的幻觉。如果很多知识已经在原有的模型里面存在的,相反就不会存在这种幻觉的增加,很多都是在试验的阶段,所以我们并没有一个明确的答案。
后处理,后处理的它的含义就是我们先让大模型去生成,生成完之后我们对大模型生成的结果进行一定的处理或者是一些检验。那这里一个比较重要的手段就是进行事实的检验,叫 fact checking,就是通过某种方式我们来判断一下它生成出来的这些回复是不是符合实际的。为了检查事实,我们可能需要一些外部的知识,比如说我们外部有一个所谓的叫知识库或者 knowledge base,然后基于这个知识库,我们把生成出来的回复跟知识库做一个交叉的验证,然后从而保证大模型生成的结果是安全的,而且是符合实际的,当然这个过程也会增加大量的一些计算,所以很多时候它的可操作性也是没有那么强。第二个方法就是看看有没有一种方式可以衡量输出的confidence,或者是不确定性,也叫做uncertainty。当用大模型生成回复的时候,我们可以试着去判断这个回复有多大的概率属于幻觉。如果这个概率很大,我们其实可以通过一些方式进行二次的检验。如果概率很小,可以默认它不属于幻觉,所以在这里我们需要一些统计的模型或者是一些方法来判断它到底属于幻觉的概率有多大。那还有第三个也是最直接的,我们调用一些人工的力量,让人去帮我们标注或者检验,检验通过了我再回复给用户。
Grounding,也就是给大模型提供一些更加详细的上下文,然后促使大模型在生成过程里面具有一定的可控性。对于 grounding 来讲,有一个技术大家是非常熟悉的,叫做RAG。在 RAG 里面我们实际上通过检索的方法,首先去检索出跟这个 Query相关的一些信息,然后把这个信息作为上下文提供给prompt,那除了RAG,还有像few shot prompting,实际上也是通过 prompt 的方法给大模型提供一些更加详细的上下文。
从实操性比较强的角度来讲,那提示工程本身代价比较强,实操性很强。还有就是RAG,而像few shot prompting 这些都是时效性比较强的一些方法,而且也比较便宜,如果涉及到一些模型的能力的提升,微调前数据的一些收集也是比较重要的。
随着大模型的持续爆火,各行各业都在开发搭建属于自己企业的私有化大模型,那么势必会需要大量大模型人才,同时也会带来大批量的岗位?“雷军曾说过:站在风口,猪都能飞起来”可以说现在大模型就是当下风口,是一个可以改变自身的机会,就看我们能不能抓住了。
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
本文转自 https://blog.csdn.net/m0_57081622/article/details/140621390,如有侵权,请联系删除。