当前位置: 首页 > article >正文

【大模型面试每日一题】Day 20:大模型出现“幻觉”(Hallucination)的可能原因有哪些?如何从数据或训练层面缓解?

【大模型面试每日一题】Day 20:大模型出现“幻觉”(Hallucination)的可能原因有哪些?如何从数据或训练层面缓解?

📌 题目重现 🌟🌟

面试官:大模型出现“幻觉”(Hallucination)的可能原因有哪些?如何从数据或训练层面缓解?

幻觉成因
数据噪声
训练偏差
推理偏差
错误知识
最大似然偏差
解码策略缺陷
缓解方案

🎯 核心考点

  1. 幻觉归因能力:能否识别数据、训练、推理多阶段的潜在风险
  2. 缓解方案设计意识:对知识注入、训练目标、解码策略的系统优化能力
  3. 工程实践适配经验:是否具备权威知识库对接、事实性约束等技术落地能力
  4. 风险控制意识:对幻觉危害的量化评估与应对策略

📖 回答

一、核心区别拆解

维度数据阶段训练阶段推理阶段
主要风险错误知识注入最大似然偏差解码策略缺陷
典型表现虚构事实过度泛化逻辑矛盾
缓解成本高(需重训练)中(调整损失函数)低(修改解码参数)

二、深度解析

1. 幻觉成因拆解
  • 数据阶段

    • 错误知识污染
      - 医疗领域:爬取网页含虚假广告内容(如"某草药治愈癌症")  
      - 法律领域:过期法规未标注时效性(如引用已废止的司法解释)  
      
    • 知识冲突
      # 知识一致性检测示例  
      def check_knowledge_conflict(text):  if "维生素C可治愈感冒" in text:  return "与WHO医学共识冲突"  
      
  • 训练阶段

    • 最大似然偏差
      模型倾向最大化 P θ ( y ∣ x ) ⇒ 可能选择高频但错误的输出 \text{模型倾向最大化} P_{\theta}(y|x) \Rightarrow \text{可能选择高频但错误的输出} 模型倾向最大化Pθ(yx)可能选择高频但错误的输出
      • 案例:在GSM8K数学题中,模型可能选择"1/3=0.33"(截断错误)而非精确分数表示
    • 参数记忆效应
      - 对罕见实体(如冷门药物)的表示不稳定 → 生成捏造属性  
      - 实验显示:LoRA微调可减少15%此类错误  
      
  • 推理阶段

    • 解码策略缺陷
      # Greedy Decoding vs Beam Search对比  
      model.generate(input_ids, num_beams=5, early_stopping=True)  # 减少随机性错误  
      
    • 上下文溢出
      - 2048长度文本摘要时,关键事实可能被遗忘 → 生成矛盾结论  
      - 解决方案:滑动窗口注意力 + 显式事实提示("基于上述文档...")  
      
2. 缓解方案设计
数据清洗
权威知识过滤
时效性标注
训练优化
对比学习
事实性约束
推理控制
解码约束
知识检索增强
(1)数据阶段:构建可信知识体系
  • 权威数据筛选

    # 使用知识图谱过滤错误信息  
    def filter_unreliable(text):  for entity in extract_entities(text):  if not knowledge_graph.contains(entity):  return False  return True  
    
    • 案例:医疗领域对接UpToDate、法律领域使用北大法宝数据库
  • 合成数据增强

    1. 对原始数据中的实体进行替换生成对抗样本(如将"北京"替换为"上海")  
    2. 强迫模型学习事实边界(类似Contrastive Learning)  
    
(2)训练阶段:事实性约束强化
  • 对比学习(Contrastive Learning)

    # SimCSE式训练目标  
    def simcse_loss(z_pos, z_neg, z_pred):  loss = -torch.log(  F.cosine_similarity(z_pred, z_pos) /  (F.cosine_similarity(z_pred, z_pos) + F.cosine_similarity(z_pred, z_neg))  )  
    
    • 效果:在TruthfulQA基准上提升12%事实正确率
  • 知识增强训练

    - 构建三元组损失(Triplet Loss):  - 锚点:原始问题  - 正例:权威答案  - 负例:模型生成的错误答案  
    
(3)推理阶段:可控生成技术
  • 解码策略优化

    # 约束解码实现  
    def constrained_decoding(prompt, constraints):  generated = model.generate(  prompt,  prefix_allowed_tokens_fn=lambda batch_id, sent: constraints.get_allowed_tokens()  )  
    
    • 案例:生成医疗建议时,强制要求输出包含"请咨询专业医生"免责声明
  • 知识检索增强(RAG)

    用户问题
    向量化检索
    权威知识库
    生成答案
    • 实验表明:在PubMed医学问答中,RAG可将幻觉率从32%降至9%
3. 评估指标设计
指标定义典型值
事实性得分与权威知识库匹配度≥0.8(满分1.0)
一致性得分多次生成结果稳定性≥0.95(BERTScore)
可解释性生成依据的可追溯性≥70%步骤可验证
风险等级幻觉危害程度(1-5级)目标≤2级

三、典型案例分析

1. 医疗对话场景

问题:用户询问"维生素C能否预防新冠?"
幻觉输出:“临床试验证明维生素C可使感染风险降低70%”
缓解方案

# 医疗知识增强流程  
def medical_check(text):  if contains_medical_claim(text):  evidence = search_pubmed(text)  if not evidence:  return add_disclaimer(text)  # 添加"尚无明确证据"提示  
2. 法律咨询场景

问题:“合同违约金上限是多少?”
幻觉输出:“根据《民法典》第585条,违约金不得超过合同金额的50%”(实际为30%)
缓解方案

1. 在训练时注入带时效性的法律条文版本  
2. 解码时强制要求引用具体条款并验证内容  

四、典型错误认知辨析

错误观点正确解释
“增大模型规模可减少幻觉”参数规模与幻觉率无直接关系(LLaMA-65B与30B幻觉率相近)
“仅需增加训练数据”噪声数据可能加剧错误记忆(需配合数据清洗)
“Top-k采样优于Greedy”在事实性任务中,Greedy更稳定(实验显示BLEU提升2.3%)

⚡️ 工程级技术选型建议

场景推荐方案理由
医疗/金融RAG + 人工审核严格监管需求
新闻摘要事实性约束训练需要高可信度
创意写作有限制的Top-p采样平衡创造性与准确性
客服对话知识检索+规则过滤需要可追溯性

🏭 业界案例参考

1. Anthropic医疗模型优化

  • 技术栈:
    • 数据清洗:过滤非同行评审内容
    • 训练目标:加入逻辑一致性损失函数
  • 效果:
    • MedQA准确率提升18%
    • 虚构药物推荐减少83%

2. Meta CICERO项目

方法幻觉率
基线模型27%
+ RAG15%
+ 约束解码8%

🛠️ 工程实践技巧

1. 动态知识注入

# 实时知识更新机制  
def dynamic_knowledge_update(kb_path):  latest_data = fetch_latest_research()  update_knowledge_base(kb_path, latest_data)  reload_model_knowledge()  

2. 错误传播监控

# 构建幻觉传播图谱  
hallucination_graph.add_edge("错误前提", "错误结论", weight=0.8)  

📈 总结速记图谱

幻觉成因
数据噪声
训练偏差
推理缺陷
权威校验
对比学习
解码约束
缓解方案

一句话总结:大模型幻觉是数据噪声、训练偏差、推理不确定共同作用的结果,需通过可信数据注入、事实性约束训练、可控生成技术的三层防护体系,在知识边界生成自由度间取得平衡。


🎬明日预告:

对比Chain-of-Thought(CoT)和Self-Consistency方法在复杂推理任务中的优劣

(欢迎在评论区留下你的方案,次日公布参考答案)


🚅附录延展

1、难度标识:

• 🌟 基础题(校招必会)

• 🌟🌟 进阶题(社招重点)

• 🌟🌟🌟 专家题(团队负责人级别)


🚀 为什么值得关注?

  1. 每日进阶:碎片化学习大厂高频考点,30天构建完整知识体系
  2. 实战代码:每期提供可直接复现的PyTorch代码片段
  3. 面试预警:同步更新Google/Meta/字节最新面试真题解析

📣 互动时间

💬 你在面试中遇到过哪些「刁钻问题」?评论区留言,下期可能成为选题!
👉 点击主页「关注」,第一时间获取更新提醒
⭐️ 收藏本专栏,面试前速刷冲刺


如果觉得内容有帮助,欢迎点赞+收藏+关注,持续更新中…

相关文章:

【大模型面试每日一题】Day 20:大模型出现“幻觉”(Hallucination)的可能原因有哪些?如何从数据或训练层面缓解?

【大模型面试每日一题】Day 20:大模型出现“幻觉”(Hallucination)的可能原因有哪些?如何从数据或训练层面缓解? 📌 题目重现 🌟🌟 面试官:大模型出现“幻觉”&#xf…...

简单图像自适应亮度对比度调整

一、背景介绍 继续在刷对比度调整相关算法,偶然间发现了这个简单的亮度/对比度自适应调整算法,做个简单笔记记录。也许后面用得到。 二、自适应亮度调整 1、基本原理 方法来自论文:Adaptive Local Tone Mapping Based on Retinex for High Dynamic Ran…...

CompletableFuture统计任务

ApiOperation(value "首页统计")GetMapping("/statistics")public UnifyResponse<List<BusinessStatisticsVO>> statistics() throws Exception {StatisticsPermissionQuery permissionQuery getPermission();ThreadPoolExecutor executor …...

neo4j框架:ubuntu系统中neo4j安装与使用教程

在使用图数据库的时候&#xff0c;经常需要用到neo4j这一图数据库处理框架。本文详细介绍了neo4j安装使用过程中的问题与解决方法。 一、安装neo4j 在安装好了ubuntu系统、docker仓库和java的前提下 在ubuntu系统命令行依次输入如下命令&#xff1a; # 安装依赖库 sudo apt-…...

ECPF 简介

ECPF&#xff08;Embedded CPU Function&#xff0c;嵌入式CPU功能&#xff09;是NVIDIA BlueField DPU特有的一种功能类型&#xff0c;和PF&#xff08;Physical Function&#xff0c;物理功能&#xff09;、VF&#xff08;Virtual Function&#xff0c;虚拟功能&#xff09;密…...

eSwitch manager 简介

eSwitch manager 的定义和作用 eSwitch manager 通常指的是能够配置和管理 eSwitch&#xff08;嵌入式交换机&#xff09;的实体或接口。在 NVIDIA/Mellanox 的网络架构中&#xff0c;Physical Function&#xff08;PF&#xff09;在 switchdev 模式下充当 eSwitch manager&am…...

深入理解二叉树:遍历、存储与算法实现

在之前的博客系列中&#xff0c;我们系统地探讨了多种线性表数据结构&#xff0c;包括顺序表、栈和队列等经典结构&#xff0c;并通过代码实现了它们的核心功能。从今天开始&#xff0c;我们将开启一个全新的数据结构篇章——树结构。与之前讨论的线性结构不同&#xff0c;树形…...

Python3 简易DNS服务器实现

使用Python3开发一个简单的DNS服务器&#xff0c;支持配置资源记录(RR)&#xff0c;并能通过dig命令进行查询。 让自己理解DNS原理 实现方案 我们将使用socketserver和dnslib库来构建这个DNS服务器。dnslib库能帮助我们处理DNS协议的复杂细节。 1. 安装依赖 首先确保安装了d…...

【Win32 API】 lstrcmpA()

作用 比较两个字符字符串&#xff08;比较区分大小写&#xff09;。 lstrcmp 函数通过从第一个字符开始检查&#xff0c;若相等&#xff0c;则检查下一个&#xff0c;直到找到不相等或到达字符串的末尾。 函数 int lstrcmpA(LPCSTR lpString1, LPCSTR lpString2); 参数 lpStr…...

(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)

目录 前言&#xff1a; 源代码&#xff1a; product.h product.c fileio.h fileio.c main.c 代码解析&#xff1a; 一、程序结构概述 二、product.c 函数详解 1. 初始化商品列表 Init_products 2. 添加商品 add_product 3. 显示商品 display_products 4. 修改商品 mo…...

NAT转换和ICMP

NAT nat原理示意 nat实现 ICMP ICMP支持主机或路由器&#xff1a; 差错或异常报告网络探寻 2类icmp报文&#xff1a; 差错报告报文&#xff08;5种&#xff09; 目的不可达源抑制--拥塞控制超时&超期--TTL超时参数问题--问题报文丢弃重定向--不应该由这个路由器转发&a…...

Executors类详解

Executors类详解 Executors 是Java中用于快速创建线程池的工具类,提供了一系列工厂方法,简化了 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor 的配置。以下是其核心方法、实现原理及使用注意事项: 1. 常用线程池工厂方法 (1) newFixedThreadPool 作用:创建固定大小…...

【专利信息服务平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…...

BUUCTF——web刷题第一页题解

共31题&#xff0c;admin那题没有&#xff0c;因为环境问题&#xff0c;我做的非常卡 目录 极客大挑战 2019]Havefun [HCTF 2018]WarmU [ACTF2020 新生赛]Include [ACTF2020 新生赛]Exec [GXYCTF2019]Ping Ping Ping [SUCTF 2019]EasySQL [极客大挑战 2019]LoveSQL [极…...

哪个品牌的智能对讲机好用?推荐1款,能扛事更智能

在专业通信领域&#xff0c;智能对讲机早已突破传统设备的局限&#xff0c;成为集通信、调度、数据传输于一体的智能化终端。面对复杂多变的作业环境&#xff0c;用户对设备的稳定性、通信效率和智能化水平提出了更高要求。但是&#xff0c;市面上产品同质化严重&#xff0c;部…...

【Win32 API】 lstrcpyA()

作用 将字符串复制到指定的字符串缓冲区。 函数 LPSTR lstrcpyA(LPSTR lpString1, LPCSTR lpString2); 参数 lpString1 类型&#xff1a;LPTSTR 一个缓冲区&#xff0c;用于接收由 lpString2 参数指向的字符串的内容。 缓冲区必须足够大才能包含字符串&#xff0c;包括终止…...

Vue3——Watch侦听器

目录 手动指定监听对象 侦听ref对象 侦听ref对象中的某个属性 reactive写法 watchEffect 自动侦听 多源侦听 一次性侦听器 watch 是⼀个⽤于观察和响应Vue响应式系统中数据变化的⽅法。它允许你指定⼀个数据源&#xff08;可以是 响应式引⽤、计算属性、组件的属性等&#xf…...

Go的单测gomock及覆盖率命令

安装gomock&#xff1a; go get github.com/golang/mock/gomockgo get github.com/golang/mock/mockgen 使用 mockgen 生成 mock 代码: 参考 mockgen -sourceservice/user.go -destinationservice/mocks/mock_user_service.go -packagemocks go test -coverprofilecoverage.out…...

Leetcode209做题笔记

力扣209 题目分析&#xff1a;想象一个窗口遍历着这个数组&#xff0c;不断扩大右边界&#xff0c;让r。往窗口中添加数字&#xff1a; 此时我们找到了这个窗口&#xff0c;它的和满足了大于等于target的条件&#xff0c;题目让我求最短的&#xff0c;那么我们就尝试来缩短它&…...

Suna: 开源多面手 AI 代理

GitHub&#xff1a;GitHub - kortix-ai/suna: Suna - Open Source Generalist AI Agent 更多AI开源软件&#xff1a;发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI Suna 是一个完全开源的 AI 助手&#xff0c;可帮助您轻松完成实际任务。通过自然对话&#xff0c…...

25-05-16计算机网络学习笔记Day1

深入剖析计算机网络&#xff1a;今日学习笔记总结 本系列博客源自作者在大二期末复习计算机网络时所记录笔记&#xff0c;看的视频资料是B站湖科大教书匠的计算机网络微课堂&#xff0c;每篇博客结尾附书写笔记(字丑见谅哈哈) 视频链接地址 一、计算机网络基础概念 &#xf…...

12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建

文章目录 一、如何实现一条用例&#xff0c;实现覆盖所有用例的测试1、结合数据驱动&#xff1a;编辑一条用例&#xff0c;外部导入数据实现循环测试2、用例体&#xff1a;实现不同用例的操作步骤对应的断言 二、实战1、项目路径总览2、common 文件夹下的代码文件3、keywords 文…...

动态IP赋能业务增效:技术解构与实战应用指南

在数字化转型加速的今天&#xff0c;IP地址作为网络通信的基础设施&#xff0c;其技术特性正深刻影响着企业业务架构的效率与安全性。动态IP&#xff08;Dynamic IP&#xff09;作为互联网资源分配的核心机制&#xff0c;早已突破传统认知中的"临时地址"定位&#xf…...

【Java ee初阶】http(1)

HTTP 全称为“超文本传输协议”&#xff0c;由名字可知&#xff0c;这是一个基于文本格式的协议&#xff0c;而TCP&#xff0c;UDP&#xff0c;以太网&#xff0c;IP...都是基于二进制格式的协议。 如何区别该协议是基于哪种格式的协议&#xff1f; 形如这种协议格式&#xf…...

OkHttp用法-Java调用http服务

特点&#xff1a;高性能&#xff0c;支持异步请求&#xff0c;连接池优化 官方文档&#xff1a;提供快速入门指南和高级功能&#xff08;如拦截器、连接池&#xff09;的详细说明&#xff0c;GitHub仓库包含丰富示例。 社区资源&#xff1a;中文教程丰富&#xff0c;GitHub高…...

day18-数据结构引言

一、 概述 数据结构&#xff1a;相互之间存在一种或多种特定关系的数据元素的集合。 1.1 特定关系&#xff1a; 1. 逻辑结构 2.物理结构&#xff08;在内存当中的存储关系&#xff09; 逻辑结构物理结构集合&#xff0c;所有数据在同一个集合中&#xff0c;关系平等顺…...

我开源了一个免费在线工具!UIED Tools

UIED Tools - 免费在线工具集合 最近更新&#xff1a;修改了文档说明&#xff0c;优化了项目结构介绍 这是设计师转开发的第一个开源项目&#xff0c;bug和代码规范可能有些欠缺。 这是一个功能丰富的免费在线工具集合网站&#xff0c;集成了多种实用工具&#xff0c;包括 AI …...

什么时候可以开始学习深度学习?

咱们先来聊聊机器学习和深度学习的关系~ 这个问题其实挺常见的&#xff0c;之前我也跟不少同事、同学聊过。最近有好几个同学也聊过。 简单说&#xff0c;深度学习是机器学习的一个子集&#xff0c;两者不是并列关系&#xff0c;而是“包含”关系。 你可以这么理解&#xff…...

初学python的我开始Leetcode题8-5

提示&#xff1a;100道LeetCode热题-8-5主要是二叉树相关&#xff0c;包括三题&#xff1a;路径总和 III、二叉树的最近公共祖先、二叉树中的最大路径和。由于初学&#xff0c;所以我的代码部分仅供参考。 前言 二叉树完结撒花~ 下一次的图论会是一些有趣的应用案例~ 提示&am…...

构建RAG混合开发---PythonAI+JavaEE+Vue.js前端的实践

写在前文&#xff1a;之所以设计这一套流程&#xff0c;是因为 Python在前沿的科技前沿的生态要比Java好&#xff0c;而Java在企业级应用层开发比较活跃&#xff1b; 毕竟许多企业的后端服务、应用程序均采用Java开发&#xff0c;涵盖权限管理、后台应用、缓存机制、中间件集成…...