2023年的深度学习入门指南(15) - 大模型的幻觉

2023年的深度学习入门指南(15) - 大模型的幻觉

大模型的能力最另人惊讶的,一个是强大的能力,另一个就是时不时一本正经地胡说八道。如果你用的是小一点的模型,可能还见过输出循环内容之类的情况。我们将这种生成不良内容的现象称为幻觉-hallucination。

那么,随着模型不断变大,能力不断变强,幻觉是否会好转呢?从我们前面讲过的Instruct GPT等论文的结论来看,并没有。

需要强调的一点是,所有的生成任务都有可能产生幻觉。并不是仅限于问答类或者对话类,比如翻译任务也有可能产生幻觉。这是因为,幻觉的产生是由模型的能力决定的,而不是任务的类型。

我们来把幻觉问题拆解一下,大家就能更清楚地得到答案了。我们先看来一篇香港科技大学的综述《Survey of Hallucination in Natural Language Generation》。

什么是幻觉?

在这里插入图片描述

从产生的原因上来讲,幻觉的引入主要有数据原因和模型训练和推理的原因。

数据方面,我们前面讲了缩放定律,大模型需要大数据,如果数据不够,那么投入更多的计算资源并不会取得更好的效果。但是,当数据越来越多时,手动去检查数据的重复就变得越来越不可能。这些重复的数据,在模型中的比重就会比不重复的数据可能更高。从而导致模型在生成时,更倾向于生成重复的内容。

而在模型方面,越大的模型掌握的知识越多,这导致模型更容易犯参数化知识偏差的问题。也就是说,模型是从自己的知识中生成内容,而不是从输入的材料中生成内容。这就导致了模型生成的内容更倾向于自己的知识,而不是输入的材料中的知识。

我们可以将幻觉分为两类,内在幻觉和外在幻觉。

在这里插入图片描述

内在幻觉是指生成的输出与源内容相矛盾。这个相对容易判断,因为我们可以通过源内容来判断生成的内容是否正确。
外在幻觉是指生成的输出无法从源内容中验证。在很多任务中,这样的幻觉可能是有益的,因为是模型从自己的知识库里调用了知识,补充了源材料中没有的内容。但是,对于另一些严格需要根据源材料生成的任务,这样的幻觉就是有害的,而且很难发现。

我们做过的阅读理解的问题,很多干扰选项就是这样的幻觉。比如要阅读的材料是讲李白和汪伦的友情,而干扰项可能就有李白和孟浩然的交往。在历史上李白和孟浩然确实是朋友,但是从材料中找不到这样的信息,如果大模型的生成了这样的信息,这就是外在幻觉。

不管是内在幻觉还是外在幻觉,都有可能是模型根据相似性泛化出来的,有可能是对的,有可能是错的,还有可能根本没办法判断对错。

当我们去用大模型做一些对于幻觉的容忍度比较低的任务时,需要想办法做验证。比如摘要和翻译这样的任务,就需要小心。

数据原因导致的幻觉

产生幻觉的一部分重要原因,就是数据的质量不够好。Garbage in, Garbage out的基本原理对于大模型仍然是适用的。

在这里插入图片描述

启发式数据集

为了降低数据的成本,训练大模型时,很多数据并不都是由人类来校验过的,而是采用了一些启发时的方法。比如,从wiki中获取的数据,在写作的时候,其实就没有遵循严格的规范。对于海量的数据,我们采取一些假设,比如假设总是结论先行,后面是论据。

这种对语料库的近似处理并不是近几年模型变大之后才有的,早在2016年的时候语料库就开始使用启发式方法来构造了。

2020年Google和卡耐基梅隆大学的一项研究《ToTTo: A Controlled Table-To-Text Generation Dataset》指出,现有的模型生成的文字很流畅,但是有时候就会幻想出表格中没有的一些新短语。

2019年加州大学的一篇研究《Revisiting Challenges in Data-to-Text Generation with Fact Grounding》指出现有的RotoWire数据集中,类编写的摘要中有大约40%的内容无法直接映射到任何输入的表格记录,,这导致了模型在学习时容易产生不符合事实的幻想。为此,作者提出一个质量更好的新的数据集。

目前基本上各大商用模型都并不公开自己的数据集,也很难假设厂商自己有这样的人力和上面的几个研究一样去仔细审查数据集。

数据重复

2022年Google大脑团队的一项研究《Deduplicating Training Data Makes Language Models Better》指出,来自预训练语料库的重复示例会导致模型偏向于生成重复的、来自重复示例中记忆短语的输出。他们发现了现有的语言模型数据集中存在许多近似重复的样本和长重复的子串,导致语言模型在无提示输出时有超过1%的文本是从训练数据中直接复制的。

这种重复不光出现在训练集内部,也同时出现在训练集和验证集之间,导致超过4%的验证集其实是无效的。

数据的内在差异

2021年来自Google的一项研究《Increasing Faithfulness in Knowledge-Grounded Dialogue with Controllable Features》指出,在人类编写的回复中,也并不是都有理有据的回答,有的是非常主观的信念,也有的就是随便闲聊。所以该论文提出了增加一些评估指标,让回答数据更有依据的改进方法。

综上三种,要么是数据量太大人标不过来而采取一些近似的方法,要么是有重复数据没有过滤,要么是人类本身的回答就风格不统一等等,这些数据上的问题导致模型的输入就不是那么足够有效。

要学习一个流畅的语言模型自然是没有问题的,但是想要像知识库一样精准,确实是有点难为大模型了。

模型原因导致的幻觉

根据研究,即使是可以做到高水平的语料库,仍然可能由于模型的训练和推理的原因产生幻觉。

这其实也好理解,因为训练数据和推理用的数据并不是完全一样的。这跟你不管用多少年的股价信息来做训练,也难以预测未来的股价是一个道理。

不完善的表示学习

编码器的作用是理解和将输入文本编码为有意义的表示。具有有缺陷理解能力的编码器可能会影响幻觉的程度。当编码器在训练数据的不同部分之间学习到错误的相关性时,可能导致与输入不一致的错误生成结果。

错误的解码

解码器接收编码器的编码输入并生成最终的目标序列。解码过程中的两个方面会导致幻觉的出现。首先,解码器可能会关注错误的编码输入部分,导致错误的生成结果。这种错误的关联会导致生成的内容中混淆了两个相似实体之间的事实。
其次,解码策略本身的设计也可能导致幻觉的产生。提高生成多样性的解码策略(例如top-k采样)与幻觉的增加呈正相关。

为了增加生成效果的随机性,我们会提高top-k采样的采样数量,但是这样的话,就会导致更多的幻觉。

曝光偏差

假设我们也解决了上面说的解码问题,一个新的问题叫做曝光偏差问题还是难以避免,它定义为训练和推理时解码之间的差异。

常见的训练方法是使用教师强制最大似然估计(MLE)训练来训练解码器,在这种训练中,解码器被鼓励根据真实的前缀序列预测下一个令牌。然而,在推理生成过程中,模型会根据之前由自身生成的历史序列来预测下一个令牌。这种差异可能导致越来越错误的生成结果,特别是当目标序列变得更长时。

比如我们用马丁路德金的著名演讲《I have a dream》来训练模型:

I have a dream that one day this nation will rise up and live out the true meaning of its creed: “We hold these truths to be self-evident, that all men are created equal.”

I have a dream that one day on the red hills of Georgia, the sons of former slaves and the sons of former slave owners will be able to sit down together at the table of brotherhood.

I have a dream that one day even the state of Mississippi, a state sweltering with the heat of injustice, sweltering with the heat of oppression, will be transformed into an oasis of freedom and justice.

I have a dream that my four little children will one day live in a nation where they will not be judged by the color of their skin but by the content of their character.

训练的时候,模型得到的知识是,“I have a dream”后面最可能的单词是that。而“I have a dream that”最可能是one,也有一定可能是my。而如果是“I have a dream that one day”,那可能性就比较多了。这时候如果模型根据自己的知识生成了一个错误的单词,比如“one”,那么后面的内容就会跟着偏差,从此越跑越远,跟金先生的原文就越来越无关了,这可能是大模型的梦想,但是不一定是金博士的梦想了。

参数化知识偏差

其实我们现在跟chatgpt聊天时,大部分都是靠chatgpt模型本身所学的参数化知识来输出的。这些参数化的知识显著地提高了很多自然语言处理任务的性能,比如说它本身对于情感分析就有自己的判断,再结合材料给的样例去对齐,就比只看材料本身带来的理解更为准确。

但是,信息论告诉我们,如果你提供1个比特的输入想得到多个比特的输出,那么你就需要提供更多的信息。如果你想用大模型中已有的参数化知识来进行补齐,就要承担有偏差的风险。

这就像一枚硬币有正反两面,不可以只要其中一面一样。古人云:阴在阳之内,不在阳之对。参数化知识也是一样。

缓解幻觉的方法

最后,我们再讲解一下如何缓解幻觉。从目前业界的效果来看,幻觉问题肯定是没有被解决掉的。
但是有一些思路可以缓解幻觉的产生。其中像强化学习正是我们上节着重讲的内容。另外我们在使用openai的服务时可以发现,其在服务端还有一个后处理的服务,如果生成了不合适的内容,就会被这个监控服务给处理掉。

在这里插入图片描述

前面我们讲了,幻觉产生的原因是因为数据和模型两个方面,所以解决方案也是从这两方面入手,另外增加一个后处理的方式,就是先污染再治理。

数据类的思路,一个是花人工好好构建有质量的数据。另外,是写一些工具去处理比较重复数据的内容,去做清洗。
最后,数据还可以跟权威数据等进行对齐,不符合的数据清洗掉。

模型的方法,我们前面也讲了,总共就注意力机制、编码器和解码器三个方面。后面我们深入讲模型架构的时候再讲。

从训练和推理方面,我们可以先制定一个骨架或者模板让大模型参考,或者是采取受控生成的方式,增加限制以减少幻觉的产生。
当然,这两种限制,在减少幻觉的同时,也在降低模型的创造力甚至是生成能力。一些来自openai的消息就是为了安全性,其实模型的性能是有所损失的。

最后就是强化学习和多任务学习这两种了。强化学习的思路是,让模型自己去探索,然后根据反馈来调整。多任务学习的思路是,让模型同时学习多个任务,这样就可以让模型的知识更加丰富,从而减少幻觉的产生。

小结

其实论文中结合了更种任务有更细节的描述,而且我们不能只看综述,还要看一些重要的论文本身。不过这一讲的篇幅已经很长了,我们后面针对具体专题还会滚动式增加知识内容。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

a*算法代码 python,astar算法 python

这篇文章主要介绍了a*算法代码 python,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1、python哪个版本opencv可以直接调用sift 这几天继续在看Lowe大神的SIFT神作&#xff…

GPT-2 面试题

简介 1、GPT-2 是什么?它是基于什么模型的? GPT-2 是一种人工智能的大型语言模型,由 OpenAI 在2019年提出。它是基于变压器(Transformer)模型的,使用了自注意力(Self-Attention)机…

最新闲鱼数据采集软件【2019年4月更新】

闲鱼采集软件可以采集商品标题、成色、用户名、地区、价格、链接等!无需登录,无屏蔽! 2019年3月初旧的接口全部不能用了,新的接口比较稀缺哦; 转载于:https://www.cnblogs.com/xtfnpgy/p/10778344.html

api接口—闲鱼搜索的数据

api接口,闲鱼搜索接口的数据 数据展示:

闲鱼APP爬虫

写在前面:实现闲鱼APP的特定关键字商品检索 实现思路:首先想到使用此前用到的appium驱动app实现数据获取和订单生成,而后通过app抓包分析获取接口 1.appium实现 首先是搭建环境,此前进行工作时,搭建过环境&#xff…

闲鱼上哪些商品抢手?Python 分析后告诉你

点击上方“AirPython”,选择“置顶公众号” 第一时间获取 Python 技术干货! 阅读文本大概需要 10 分钟。 1 目 标 场 景 经常看到有朋友在闲鱼卖些小东西又或是自己擅长的一些技能,都能为他们带来不错的 睡后收入。 闲鱼上大量的商品&#xf…

向消息延迟说bybye:闲鱼消息及时到达方案(详细)

背景 IM消息作为闲鱼用户重要的交易咨询工具,核心目标有两点,第一是保证用户的消息不丢失,第二是保证用户的消息及时送达接收方。IM消息根据消息的接收方设备是否在线,分为离线和在线推送,数据显示目前闲鱼每天有超过一…

java爬取闲鱼商品信息(一)

闲鱼真是一个很神奇的地方, 能让我等学生狗不用花很多钱就能体验科技的乐趣,当然,前提是别翻车。 好了,这当然是题外话,这阵子总结了自己学习的一些技能,就写一个对闲鱼的数据抓取来练练手。 预计达到的目…

网络爬虫淘宝api,获得淘宝app商品详情原数据

item_get_app-获得淘宝app商品详情原数据 注册测试 请求参数 请求参数:num_iid520813250866 参数说明:num_iid:淘宝商品ID 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameStr…

闲鱼搜索相关性——体验与效率平衡的背后

背景 闲鱼搜索是闲鱼APP最大的成交场景入口, 成交归因中搜索占一半以上,所以提高成交效率是工程和算法迭代优化的主要目标,然而只以效率为最终的衡量标准不但会影响搜索的质量阻碍成交,还会恶化整个平台的长期生态建设无法成长&am…

闲鱼唤端的背后

背景 众所周知,想要DAU稳步上升,端外引流是一个必不可少的手段,常见的引流方式有:广告投放、分享回流、流量互换等,而他们也有着一个共同的技术问题,就是唤端,本文着重分享一下唤端的相关知识以…

闲鱼最新选品技巧,快速帮你找到爆款!

在星球里面,每天可以获得一些数据,主要是闲鱼热销品,稳定品类,还有一些三方的工具。 户外最近是个热品类,基本很多爆款都是从这里产生的,从前段时间分享的帐篷,板凳,烧烤架&#xff…

闲鱼商品理解数据分析平台——龙宫

引言 闲鱼是一个以C2C为主的平台,区别于B端的用户,C端卖家在发布商品时更倾向于图描述的轻发布模式,对于补充商品的结构化信息往往执行力和专业程度都不高,这为我们的商品理解带来了很大的困难。为了能够在发布侧获得更多的商品结…

闲鱼API接口,如何获取原生数据

闲鱼平台API,item_app 获得闲鱼原生数据 num_iid:闲鱼商品ID 点击获取key和secret* 当你有了账号时候点到测试页面,下面是我测试的结果 返回参数 Result Object: --------------------------------------- {"item": {"all_result&q…

闲鱼榜单数据

昨天有个客户给我看了这个页面,感觉挺有意思的:闲鱼榜单。 系统集成了各个行业,还推荐了用户可能感兴趣的行业的关键词,然后将行业内的卖家做一个排行。 比如潮玩行业的排名就是这样的: 然后就临时做了个接口&#xff…

闲鱼消息发展回顾

引言 闲鱼消息系统经过几代开发的建设,目前稳定的支撑亿级消息体量。在消息系统建设过程中,我们经历了从简单到复杂,从困扰到破局,每一次的技术改变都是为了更好的解决当下业务面临的问题。“忆昔午桥桥上饮,坐中多是豪…

电商搜索里都有啥?详解闲鱼搜索系统(长文)

搜索是电商平台的核心流量入口,承载着平台主要的成交引导、意图收敛、活动投放。一个稳定、高效、可扩展的搜索系统是电商平台得以生存发展的基石。本文探讨如何构建完善的商品搜索系统, 并根据闲鱼二手交易的差异化特性介绍闲鱼搜索系统的时效性优化。 …

闲鱼关键词,实现闲鱼APP的特定关键字商品检索

最近碰上个需求 需要根据关键词检索出所有商品,可以指定价格范围,地点,和最新排序,去发现有某位大佬的一个项目刚好符合这个需求。放到这里分享一下给大家。因为系统不便公开需要的可以找我 任务设置页面 可以设置关键词&#xf…

闲鱼商品选投实时性优化

马赫是闲鱼的选品和投放系统,闲鱼业务中多数商品都是孤品即单库存商品,所以商品的实时变更需要即刻反馈到选品和投放链路中,为了满足业务诉求马赫设计之初就把实时性作为最重要的技术目标,随着系统的运行数据的膨胀实时性也遇到了…

闲鱼已售商品信息查询系统。手搓市场定价/行情查询利器

前段时间自己手搓出来一个闲鱼已售商品查询接口,最近有时间,就把接口搞成了软件。 软件作用: 可以方便地查询闲鱼已经成交的商品信息,包括成交价格、成交时间、挂单后多少天成交(成交效率)、以及商品信息&a…