2024年大模型面试准备(三):聊一聊大模型的幻觉问题

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。

合集在这里:《大模型面试宝典》(2024版) 正式发布!

今天分享大模型面试中经常被问答的大模型的幻觉问题

文章目录

    • 一、幻觉(Hallucination)的定义
    • 二、为什么LLM会产生幻觉?
    • 三、如何度量幻觉?
    • 四、如何缓解LLM幻觉?
      • 4.1 事实核心采样
      • 4.2 通过使用外部知识验证主动检测和减轻幻觉
      • 4.3 SelfCheckGPT
    • 五、幻觉一定是有害的吗?
    • 技术交流群
    • 用通俗易懂方式讲解系列

一、幻觉(Hallucination)的定义

不遵循原文(Faithfulness)或者不符合事实(Factualness)

在传统任务里,幻觉大都是指的是Faithfulness:

  • Intrinsic Hallucination(信息冲突)
    LMs在生成回复时,与输入信息产生了冲突,例如摘要问题里,abstract和document的信息不一致。

  • Extrinsic Hallucination(无中生有)
    LMs在生成回复时,输出一些并没有体现在输入中的额外信息,比如邮箱地址、电话号码、住址,并且难以验证其真假。(PS: 按照此定义,Extrinsic Hallucination有可能是真的信息,只是需要外部信息源进行认证)

而面向LLMs,我们通常考虑的幻觉则是Factualness。

因为我们应用LLM的形式是open-domain Chat,而不是局限于特定任务,所以数据源可以看做任意的世界知识。LLMs如果生成了不在input source里的额外信息,但是符合事实的,这种情况也可能是对我们有帮助的。

LLM幻觉(Hallucination)经常表现为一本正经的胡说八道:看似流畅自然的表述,实则不符合事实或者是错误的。

LLM幻觉主要可以分为两类:即内在幻觉外在幻觉

  • 内在幻觉
    生成的内容与源内容相矛盾。

  • 外部幻觉
    生成的内容不能从源内容中得到验证,既不受源内容支持也不受其反驳。

LLMs的幻觉可能会产生如传播错误信息或侵犯隐私等严重后果。eg: 在医疗应用中,对患者生成的报告如果存在幻觉可能导致错误诊断甚至影响生命安全。

幻觉影响了模型的可靠性和可信度,因此需要解决LLM的幻觉问题。

二、为什么LLM会产生幻觉?

  • 大模型缺乏相关的知识,或者存储的知识是错的。这个问题主要是由于预训练数据决定的。

  • 大模型高估了自己的能力,他可能不知道问题的边界,编造内容回复。

  • 对齐问题,这里主要是说我们通过指令精调,模型可以基于我们的instruciton做出回复,但是调教出来的大模型可能会迎合我们的instruciton,也有可能在某个问题下,他不具备这方面的知识,而问题又必须让他回答,他就只能生成一个一本正经的胡说八道内容。

  • 在decoder-only的结构下,生成策略我们是每次生成一个token,早期如果就错了,那么后期大模型只能将错就错,不会纠正之前的错误,这也就产生了幻觉滚雪球的现象。还有像top-k,top-p的采样策略也会有影响。(top-k是每次解码时选择k个最大的概率,随机采样;top-p,是选定一个概率阈值,如chatgpt中默认的是0.95,意思是我们选择词表概率加和到大于等于0.95时随机采样。

  • 最后,如GPT之类的生成模型,其实只是学会了文本中词汇间的统计规律,所以它们生成内容的准确性仍然是有限的。

三、如何度量幻觉?

最有效可靠的方式当然是靠人来评估,但是人工评估的成本太高了。因此有了一些自动化评估的指标:

  • 命名实体误
    命名实体(NEs)是“事实”描述的关键组成部分,我们可以利用NE匹配来计算生成文本与参考资料之间的一致性。直观上,如果一个模型生成了不在原始知识源中的NE,那么它可以被视为产生了幻觉(或者说,有事实上的错误)。

  • 蕴含率
    该指标定义为被参考文本所蕴含的句子数量与生成输出中的总句子数量的比例。为了实现这一点,可以采用成熟的蕴含/NLI模型

  • 基于模型的评估
    应对复杂的句法和语义变化。

  • 利用问答系统
    此方法的思路是,如果生成的文本在事实上与参考材料一致,那么对同一个问题,其答案应该与参考材料相似。具体而言,对于给定的生成文本,问题生成模型会创建一组问题-答案对。接下来,问答模型将使用原始的参考文本来回答这些问题,并计算所得答案的相似性。

  • 利用信息提取系统
    此方法使用信息提取模型将知识简化为关系元组,例如<主体,关系,对象>。这些模型从生成的文本中提取此类元组,并与从原始材料中提取的元组进行比较。

四、如何缓解LLM幻觉?

与幻觉有关的数据问题可以(至少理论上)通过创建高质量无噪声的数据集来解决。但是,验证和清理数百GB的文本语料库难度太大了。

因此也有了一些其他的方法:

  • 事实核心采样

  • 利用外部知识验证正确性

  • 采样多个输出并检查其一致性

4.1 事实核心采样


相关文章:《Factuality Enhanced Language Models for Open-Ended Text Generation》

在这种方法中,作者认为,采样的“随机性”在用于生成句子的后半部分时,对事实性的损害比在句子的开头更大。因为在句子的开始没有前文,所以只要它在语法和上下文上是正确的,LM就可以生成任何内容。然而,随着生成的进行,前提变得更为确定,只有更少的单词选择可以使句子成为事实。因此,他们引入了事实核心采样算法,该算法在生成每个句子时动态调整“核心”p。在事实核心采样中,生成每个句子的第t个标记的核心概率pt为:

其中,λ是top-p概率的衰减因子,ω是概率的下限衰减。

4.2 通过使用外部知识验证主动检测和减轻幻觉

相关文章:《A Stitch in Time Saves Nine: Detecting and Mitigating Hallucinations of LLMs by Validating Low-Confidence Generation》

作者发现

  • 幻觉的生成是会传播的,比如一句话出现幻觉,后续生成的文本可能也会出现幻觉甚至更严重。这意味着,如果我们能够“主动”检测并减轻幻觉,那么我们也可以阻止其在后续生成的句子中的传播。

  • logit输出值(输出词汇表上的概率分布)可以用来获取幻觉的信号。具体地说,我们计算了一个概率得分,并展示了当这个得分很低时,模型更容易产生幻觉。因此,它可以作为幻觉的一个信号,当得分很低时,可以对生成的内容进行信息验证。

基于这两个发现,作者提出了主动检测和减轻的方法。

图片

在检测阶段,首先确定潜在幻觉的候选者,即生成句子的重要概念。然后,利用其logit输出值计算模型对它们的不确定性并检索相关知识。

在减轻阶段,使用检索到的知识作为证据修复幻觉句子。将修复的句子附加到输入(和之前生成的句子)上,并继续生成下一个句子。这个过程不仅减轻了检测到的幻觉,而且还阻止了其在后续生成的句子中的传播。

4.3 SelfCheckGPT

相关文章:《SelfCheckGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models》

SelfCheckGPT的主要思想是:如果模型真的掌握某个事实,那么多次生成的结果应该是相似的且事实一致的;相反,如果模型在胡扯,那么随机采样多次的结果会发散甚至矛盾。

图片

图片

因此,他们从模型中采样多个response(比如通过变化温度参数)并测量不同response之间的信息一致性,以确定哪些声明是事实,哪些是幻觉。这种信息一致性可以使用各种方法计算,比如可以使用神经方法计算语义等价(如BERTScore)或使用IE/QA-based方法。

五、幻觉一定是有害的吗?

幻觉不一定是有害的,特别是在一些需要创造力或灵感的场合,比如写电影剧情,幻觉的存在可能带来一些奇思妙想,使得生成的文本充满想象力。因此,对幻觉的容忍度取决于具体的应用场景。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:技术交流

用通俗易懂方式讲解系列

  • 《大模型面试宝典》(2024版) 正式发布!

  • 《大模型实战宝典》(2024版)正式发布!

  • 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)

  • 用通俗易懂的方式讲解:1.6万字全面掌握 BERT

  • 用通俗易懂的方式讲解:NLP 这样学习才是正确路线

  • 用通俗易懂的方式讲解:28张图全解深度学习知识!

  • 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库

  • 用通俗易懂的方式讲解:实体关系抽取入门教程

  • 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer

  • 用通俗易懂的方式讲解:图解 Transformer 架构

  • 用通俗易懂的方式讲解:大模型算法面经指南(附答案)

  • 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期

  • 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain

  • 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统

  • 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览

  • 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序

  • 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA

  • 用通俗易懂的方式讲解:面了 5 家知名企业的NLP算法岗(大模型方向),被考倒了。。。。。

  • 用通俗易懂的方式讲解:NLP 算法实习岗,对我后续找工作太重要了!。

  • 用通俗易懂的方式讲解:理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。

  • 用通俗易懂的方式讲解:基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统

  • 用通俗易懂的方式讲解:面试字节大模型算法岗(实习)

  • 用通俗易懂的方式讲解:大模型算法岗(含实习)最走心的总结

  • 用通俗易懂的方式讲解:大模型微调方法汇总

参考文献:

1. https://medium.com/mlearning-ai/the-hallucination-problem-of-large-language-models-5d7ab1b0f37f

2. https://zhuanlan.zhihu.com/p/651507945

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SuperGluePretrainedNetwork 详细解读

目录结构展示了SuperGluePretrainedNetwork项目的简化版布局。这是一个关于使用SuperGlue算法进行图像配对的深度学习项目&#xff0c;主要包括预训练的模型和执行配对的脚本。 demo_superglue.py demo_superglue.py脚本的主要作用是展示SuperGlue预训练网络在图像对上进行特征…

Linux下命令行方式导入Mysql数据库

一. 正常Mysql导入 直接登录mysql进行导入即可 mysql -u用户名 -p密码 要导入的数据库名 < 数据库名.sql mysql -u用户名 -p密码 db_doc < 20210616.sql二. Docker镜像方式Mysql导入 1. docker启动mysql docker exec -it mysal bash 2. 登录mysql mysql -uroot -p密…

软件设计师21--操作系统章节回顾

软件设计师21--操作系统章节回顾 章节重要内容考情分析 章节重要内容 考情分析

消息队列八股

RabbitMQ 确保消息不丢失 重复消费问题 延迟队列 消息堆积 高可用 很少使用 Kafka 如何保证消息不丢失 回调接口保证生产者发送到brocker消息不丢失 保证消息顺序性 高可用机制 数据清理机制 实现高性能的设计

公平锁和非公平锁,为什么要“非公平”?

公平锁和非公平锁&#xff0c;为什么要“非公平”&#xff1f; 主要讲一讲公平锁和非公平锁&#xff0c;以及为什么要“非公平”&#xff1f; 什么是公平和非公平 首先&#xff0c;我们来看下什么是公平锁和非公平锁&#xff0c;公平锁指的是按照线程请求的顺序&#xff0c;…

欧科云链OKLink:坎昆升级后,Layer2项目是否更具竞争力?

在坎昆升级激活之际&#xff0c;OKLink 上线以太坊坎昆升级 Dencun 专题页 &#x1f449; 从专业链上数据分析角度&#xff0c;带来一场充实且即时的 Layer2 数据盛宴。 在近日由 137Labs 发起&#xff0c;Cointime 主持的 Layer2 生态专场讨论中&#xff0c;OKLink 产品…

AISD智能安全配电装置--智能监测、远程监控

安科瑞薛瑶瑶18701709087 AISD100单相、AISD300三相智能安全配电装置是安科瑞专为低压配电侧开发的一款智能安全配电产品。主要针对低压配电系统人身触电、线路老化、短路、漏电等原因引起电气安全问题而设计。 产品主要应用于学校、加油站、医院、银行、疗养院、康复中心、敬…

补充--广义表学习

第一章 逻辑结构 &#xff08;1&#xff09;A()&#xff0c;A是一个空表&#xff0c;长度为0&#xff0c;深度为1。 &#xff08;2&#xff09;B(d,e)&#xff0c;B的元素全是原子&#xff0c;d和e&#xff0c;长度为2&#xff0c;深度为1。 &#xff08;3&#xff09;C(b,(c,…

什么事缓存击穿、缓存穿透、缓存雪崩?

缓存击穿&#xff1a;是指当某一个key的缓存过期时大并发量的请求同时访问此key&#xff0c;瞬间击穿缓存服务器直接访问数据库&#xff0c;让数据库处于负载的情况。 缓存穿透&#xff1a;是指缓存服务器中没有缓存数据&#xff0c;数据库中也没有符合条件的数据&#xff0c;…

2024 ccfcsp认证打卡 2023 09 02 坐标变换(其二)

202309-2 坐标变换&#xff08;其二&#xff09; 题解1题解2区别第一种算法&#xff08;使用ArrayList存储操作序列&#xff09;&#xff1a;数据结构&#xff1a;操作序列处理&#xff1a; 第二种算法&#xff08;使用两个数组存储累积结果&#xff09;&#xff1a;数据结构&a…

微服务day06 -- Elasticsearch的数据搜索功能。分别使用DSL和RestClient实现搜索

1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;来定义查询。常见的查询类型包括&#xff1a; 查询所有&#xff1a;查询出所有数据&#xff0c;一…

代码随想录算法训练营day57|647. 回文子串 、 516.最长回文子序列

目录 647. 回文子串 16.最长回文子序列 647. 回文子串 力扣题目链接(opens new window) 给定一个字符串&#xff0c;你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视作不同的子串…

每天学点儿python(1)---print,input和注释

print函数 print语法格式 print(*objects, sep , end\n, filesys.stdout) sep参数默认为 一个空格 end&#xff08;输出末尾&#xff09;参数默认为 回车换行 file默认为 标准输出&#xff08;一般指屏幕&#xff09; 所以&#xff0c;如果想输出各个字段不用空格隔开&a…

人工智能三剑客NumPy、pandas、matplotlib和Jupyter四者之间的关系

NumPy 主要用途&#xff1a;NumPy&#xff08;Numerical Python的缩写&#xff09;主要用于处理大型多维数组和矩阵的科学计算。它提供了一个高性能的多维数组对象&#xff0c;以及用于数组操作的工具。与其他三者的联系&#xff1a;NumPy是pandas和matplotlib的基础库之一。许…

前端基础 Vue -组件化基础

1.全局组件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&…

如何搭建ERP帮助中心提升工作效率

现在是个信息化时代&#xff0c;ERP系统成了企业日常运营里必不可少的一部分。不过&#xff0c;随着ERP系统用得越来越多&#xff0c;大家在使用过程中碰到的问题变得多且复杂。为了解决这些麻烦&#xff0c;提高大家的工作效率&#xff0c;搭建ERP帮助中心其实是一个很有必要的…

FreeRTOS从代码层面进行原理分析(2 任务的启动)

FreeRTOS分析二—任务的启动 上一篇文章我们带着三个问题开始了对 FreeRTOS 代码的探究。 1. FreeRTOS 是如何建立任务的呢&#xff1f; 2. FreeRTOS 是调度和切换任务的呢&#xff1f; 3. FreeRTOS 是如何保证实时性呢&#xff1f; 并且在上一篇文章 FreeRTOS从代码层面进行…

学习刷题-13

3.23 hw机试【二叉树】 剑指offer32 剑指 offer32&#xff08;一、二、三&#xff09;_剑指offer 32-CSDN博客 从上到下打印二叉树I 一棵圣诞树记作根节点为 root 的二叉树&#xff0c;节点值为该位置装饰彩灯的颜色编号。请按照从 左 到 右 的顺序返回每一层彩灯编号。 输…

产品推荐 | 基于 Zynq UltraScale+ XCZU27DR的 FACE-RFSoC-C高性能自适应射频开发平台

一、产品概述 FACE-RFSOC-C自适应射频开发平台&#xff0c;是FACE系列新一代的产品。 平台搭载有16nm工艺的Zynq UltraScale™ RFSoC系列主器件。该器件集成数千兆采样RF数据转换器和ARM Cortex-A53处理子系统和UltraScale可编程逻辑&#xff0c;是一款单芯片自适应射频平台。…

电脑卸载软件怎么清理干净?电脑清理的5种方法

随着我们在电脑上安装和卸载各种软件&#xff0c;很多时候我们会发现&#xff0c;即使软件被卸载&#xff0c;其残留的文件和注册表项仍然存在于电脑中&#xff0c;这不仅占用了宝贵的磁盘空间&#xff0c;还可能影响电脑的性能。那么&#xff0c;如何确保在卸载软件时能够彻底…
最新文章