AI智能问答“胡说八道“-RAG探索之路
AI智能问答"胡说八道"-RAG探索之路
- 背景信息
- RAG
- RAG技术的知识难题
- 分块矛盾
- 知识缺失
- 相互冲突
- RAG知识优化实践
- 分块优化
- 缺失优化
- 冲突优化
- 未来展望
背景信息
你有没有遇到过这样的场景?当你向智能助手提问:“某科技公司为何突然更换高层领导?” 它却给出模棱两可的回答,甚至答非所问。这正是许多企业在搭建知识库时遭遇的困境——看似智能的AI,实则像拿着百科全书却不会查资料的"书呆子"。
这个难题在制造业、金融业等领域尤为突出。某新能源车企的知识库日均更新200+技术文档,质检部门的员工每天要花3小时处理重复咨询;某三甲医院的临床指南数据库包含5000+诊疗规范,年轻医生检索有效信息的效率却不足50%。这些场景催生了RAG技术的广泛应用,但简单的文档堆砌远不能解决问题。那么什么是RAG?
RAG
什么是RAG?检索增强生成(Retrieval-augmented Generation),简称RAG,是一种利用预先检索知识库来增强大模型生成能力的方案;简单来讲,对于大模型在业务上的落地来说,我们用的大模型一般都是较好的开源通用大模型,但通用大模型只有通用的归纳总结能力,并没有对领域问题回答的能力。因此,实际落地时如何让大模型能领域化回答问题,有两种方案,一种是用领域化数据再去训练和微调,另一种则是外接领域化知识库,对用户提问先检索知识库再由大模型生成回答。
RAG技术的知识难题
为什么说智能问答"胡说八道"?这主要是源于大模型并没有理解灌入模型的知识,大模型去总结很多文档时缺乏一些领域内常识,又在杂乱的文档中进行生成,会有较多幻觉。正如一个没有常识的人,看了点看似相关可能无关的只言片语,再结合自己的似是而非的理解,也就很难不胡说八道。那么如何来提高AI 智能问答的准确性,有哪些知识难题需要克服呢?
尽管RAG技术在理论上看起来很有前景,但在实际应用中,尤其是在需要高精度回答的场景中,简单的RAG系统往往效果不佳,存在我们常说的”胡说八道“感。这种问题可以从以下几个方面来理解。
分块矛盾
RAG技术中,文档分块就像切菜,如果切得太碎(小分块),虽然方便快速找到零散信息(检索精准),但炒菜时(生成回答)会发现食材零散,缺少连贯性;如果切得太大(大分块),虽然能保留完整段落(生成参考信息多),但找特定调料(检索关键词)时会费时费力。更麻烦的是,有些菜谱的关键步骤刚好分布在两块交界处(语义被分块切断),导致AI要么漏掉关键信息,要么把不相关的片段拼在一起,回答起来前言不搭后语。这种“一刀切”的分块方式,让RAG在精准度和上下文连贯性之间左右为难,最终影响回答的质量。
知识缺失
那么即使上面的分块问题得到解决,当遇到这种情况又该如何:知识不存在于任何一个分块里。就像玩“拼图寻宝”,答案可能碎在多个文档角落,但是又不在具体某个文档里,这就需要AI具备跨文档推理能力;领域知识缺口就像“工具箱少螺丝刀”,必须额外补充专业知识;历史经验未结构化则像“备忘录没归档”,导致AI反复犯同样的错。解决这些需要更智能的检索算法、领域知识库构建,以及自动化知识更新机制。
相互冲突
还有一种情况就是,知识本身不清晰或者是不同的文档中对相似问题的诠释不同。比如你检索到的知识可能存在不一致或模棱两可的情况,导致大模型生成错误或幻觉。
RAG知识优化实践
针对上面提到的三种RAG的知识难题,改如何进行优化呢?
分块优化
针对不同的文档,需要采取不同的策略,基本上就是:先结构化分割-对大chunk再长度分割-对小chunk进行结构化合并” 的分块策略。首先通过递归解析标题层级,将文档切分为最小标题单元(Sentence),再根据内容长度对长块二次分割(Segment),最后从最低级标题向上归并相邻小块形成完整语义块(Block)。
这个过程类似拼图游戏——先拆解精细零件,再按逻辑重组板块,确保每个知识块既保留原始结构信息,又避免因强制分块导致语义断裂。在检索时,我们进一步将块粒度解耦为句子级(精准匹配)、段落级(语义重组)和结构化块级(上下文扩充),相当于给大模型配备了从"显微镜查细节"到"望远镜观全局"的多重视角,有效解决了传统分块在检索精度与生成连贯性之间的矛盾。
缺失优化
在解决领域知识缺失的问题时,可以通过以下方面手机整理领域知识教给大模型,但是也同样有难处。首先,由于领域数据收集难度高,因此需要业务团队耗费大量精力整理高质量内容,且需与通用数据进行混合配比才能保证效果,这对资源有限的团队来说难以持续。其次,不同行业或研发平台的领域概念差异巨大,若为每个平台单独定制微调模型并部署,硬件成本和管理复杂度都超出承受范围。更关键的是,大模型迭代速度极快,频繁更新模型版本既不现实又难以带来显著收益。因此,是否可以通过显式注入领域知识来弥补模型本身的不足,例如构建领域知识图谱或建立专用知识库,尽管这种方式仍需人工介入维护,但在当前资源条件下是最可行的折中方案。
冲突优化
在处理知识库冲突时,是否可以通过双重标签体系(时间/阅读量等天然属性+业务人工标记)为文档赋予优先级,同时可以将优先级信息融入大模型决策流程:在检索阶段通过Prompt引导模型主动筛选高优先级文档作为参考依据,而非直接干预检索排序;在生成阶段要求模型先声明参考文档的筛选逻辑(如"优先采纳2023年最新修订的技术规范而非2021年旧版"),通过增强模型自我解释能力间接缓解知识冲突。这种"软性引导"策略使模型在面对冲突知识时,优先采信权威来源(如官方公告)或高频访问文档(如运维手册),从而将智能问答的答案置信度提升,同时避免了硬性调权带来的检索偏差问题。
未来展望
总的来说,检索增强生成 RAG 是会有目前可预见的这些局限和困难,但是在AI 智能问答上面,RAG的引入确实可以很大程度的提升智能问答回答的准确性。后续,随着对检索增强生成 RAG 技术的不断探索,持续优化,智能问答的精准性也将不断提升。后续也可以考虑在对历史会话的价值挖掘,通过升级问答对抽取模型、构建智能分析引擎,将冗长的多轮对话自动转化为结构化知识库,并挖掘高频问题模式,形成可复用的知识模块;同时也可以考虑探索多模态知识融合,突破纯文本限制,研发图文解析技术将图纸、流程图等非结构化载体转化为可检索的知识单元,同时打通文档链接背后的深层内容,让AI不仅能"看到"图片链接,更能"理解"图表数据,真正实现跨模态知识检索与生成。
相关文章:
AI智能问答“胡说八道“-RAG探索之路
AI智能问答"胡说八道"-RAG探索之路 背景信息RAGRAG技术的知识难题分块矛盾知识缺失相互冲突 RAG知识优化实践分块优化缺失优化冲突优化 未来展望 背景信息 你有没有遇到过这样的场景?当你向智能助手提问:“某科技公司为何突然更换高层领导&am…...
【yolo】YOLO训练参数输入之模型输入尺寸
模型输入尺寸是YOLO训练和推理过程中非常重要的参数之一。YOLO要求输入图像的尺寸是固定的,通常为正方形(如416416、640640等)。这个尺寸直接影响模型的性能和速度。以下是对模型输入尺寸的详细介绍: 1. 模型输入尺寸的作用 统一…...
[原创](Modern C++)现代C++的关键性概念: 如何声明一个返回数组指针的函数?
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、C …...
1204. 【高精度练习】密码
文章目录 题目描述输入输出样例输入样例输出数据范围限制CAC代码 题目描述 人们在做一个破译密码游戏: 有两支密码棒分别是红色和蓝色,把红色密码棒上的数字减去蓝色 密码棒上的数字,就是开启密码锁的密码。 现已知密码棒上的数字位数不超过…...
DigitalFoto公司如何用日事清流程管理工具实现任务优先级与状态可视化?
一、业务介绍 在DigitalFoto,设计和制造先进的摄影器材,如稳定器、灯光设备和支架,是日常工作的核心。公司的业务模式包括为其他品牌设计和制造定制产品,无论是作为OEM还是ODM。这样的多样化业务需求推动了公司在产品开发上必须非…...
解锁C++编程能力:基础语法解析
C入门基础 一、C的第一个程序二、命名空间三、C输入&输出四、缺省参数/默认参数五、函数重载六、引用1.引用的特性2.引用的使用引用做返回值场景 3.const引用只有指针和引用涉及权限放大、缩小的问题,普通变量没有 4.指针和引用的关系 七、inline八、nullptr 一…...
【Leetcode 每日一题】2680. 最大或值
问题背景 给你一个下标从 0 0 0 开始长度为 n n n 的整数数组 n u m s nums nums 和一个整数 k k k。每一次操作中,你可以选择一个数并将它乘 2 2 2。 你最多可以进行 k k k 次操作,请你返回 n u m s [ 0 ] ∣ n u m s [ 1 ] ∣ . . . ∣ n u m …...
YOLO魔改之SAM空间注意力模块
基于SAM注意力的YOLOv7改进算法详解(可用于工业检测方案) 一、应用场景说明 本改进算法适用于以下工业检测场景: 复杂背景下的微小目标检测(电子元件缺陷、PCB板焊点)密集目标重叠检测(传送带上的包裹分拣、人群计数)动态环境目标追踪(无人机巡检、自动驾…...
基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究
基于 TRIZ 理论的筏式养殖吊笼清洗装备设计研究 一、引言 筏式养殖在水产养殖业中占据重要地位,吊笼作为养殖贝类、藻类等生物的关键器具,其清洁程度直接影响养殖生物的健康与产量。传统的吊笼清洗方式多依赖人工,效率低下、劳动强度大且清洗…...
Day11 动态规划入门
动态规划 就是 : 给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法. 记忆化搜索 暴力dfs 记录答案 动态规划入门思…...
配置阿里云yum源
配置阿里云yum源 修改默认的yum仓库,把原有的移动到创建的目录里(踢出国外的yum源) # 切换到/ect/yum.repos.d/目录下 cd /etc/yum.repos.d/ # 新建repo目录 mkdir repo # 把原有的移动到创建的目录里 mv ./*.repo ./repo/配置yum源 # 找到…...
在Linux系统安装Ollama两种方法:自动安装和手动安装,并配置自启动服务
目录 一、命令自动安装 (一)使用命令行安装 (二)配置环境变量 (三)重新加载systemd配置并重启服务 二、手动安装 (一)下载本地文件 (二)解压并安…...
Python Django入门(创建应用程序)
在本章中,你将学习如何使用 Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。 我们将为这…...
HCIP-2 RSTP快速生成树
HCIP-2 RSTP快速生成树 STP的不足: 1.STP的端口角色过于简单不丰富,部署时不能很好的应用与较为复杂的网络环境中。 2.STP的迁移状态过于冗长,侦听、学习、阻塞状态下都是不转发业务流量。 3.STP的算法较为繁琐。 TCN TCA TC。 4.STP被动…...
软考-软件设计师-计算机网络
一、七层模型 中继器:信号会随着距离的增加而逐渐衰减,中继器可以接受一端的信息再将其原封不动的发给另一端,起到延长传输距离的作用; 集线器:多端口的中继器,所有端口公用一个冲突域; 网桥&…...
夸克网盘任务脚本——进阶自动版
脚本是用于自动管理和更新夸克云盘(Quark Cloud Drive)上的文件和目录的Python脚本。其主要功能包括自动下载、更新、重命名、删除文件和文件夹,以及处理和发送通知,可以在特定的时间间隔内运行,根据配置文件进行操作。 主要功能 1. Quark 类: __init__:初始化类,设置…...
squirrel语言全面介绍
Squirrel 是一种较新的程序设计语言,由意大利人 Alberto Demichelis 开发,其设计目标是成为一个强大的脚本工具,适用于游戏等对大小、内存带宽和实时性有要求的应用程序。以下是对 Squirrel 语言的全面介绍: 语言特性 动态类型&a…...
北京南文观点:品牌如何抢占AI 认知的 “黄金节点“
在算法主导的信息洪流中,品牌正在经历一场隐蔽的认知权争夺战,当用户向ChatGPT咨询"哪家新能源车企技术最可靠"时,AI调取的知识图谱数据源将直接决定品牌认知排序。南文乐园科技文化(北京)有限公司ÿ…...
使用Python在Word中创建、读取和删除列表 - 详解
目录 工具与设置 Python在Word中创建列表 使用默认样式创建有序(编号)列表 使用默认样式创建无序(项目符号)列表 创建多级列表 使用自定义样式创建列表 Python读取Word中的列表 Python从Word中删除列表 在Word中ÿ…...
分布式中间件:RabbitMQ确认消费机制
分布式中间件:RabbitMQ确认消费机制 在分布式系统中,消息队列是实现异步通信和系统解耦的重要组件。RabbitMQ 作为一款功能强大的消息队列中间件,提供了丰富的特性来保证消息的可靠传输和消费。其中,确认消费机制是确保消息被正确…...
Redis的大Key问题如何解决?
大家好,我是锋哥。今天分享关于【Redis的大Key问题如何解决?】面试题。希望对大家有帮助; Redis的大Key问题如何解决? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis的大Key问题指的是存储在Redis中的某些键(Key…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(25):解释说明:という
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(25):解释说明:という 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习语法(2) 解释说明:という3、单词(1)日语单词(2)日语片假名单词4、相近词辨析5、单词辨析记录6、总结1、前言 (1)情况说明 …...
Windows10配置OpenJDK11
下载 # 华为OpenJDK镜像源 https://mirrors.huaweicloud.com/openjdk/11.0.2/解压 # 解压后至于C:\Dev\Env\Java\jdk-11.0.2目录下 https://mirrors.huaweicloud.com/openjdk/11.0.2/openjdk-11.0.2_windows-x64_bin.zip编译安装 # 以管理员身份运行 CMD命令提示符 并进入JD…...
Python实验:读写文本文件并添加行号
[实验目的] 熟练掌握内置函数open()的用法;熟练运用内置函数len()、max()、和enumerate();熟练运用字符串的strip()、ljust()和其它方法;熟练运用列表推导式。 [实验和内容] 1.编写一个程序demo.py,要求运行该程序后࿰…...
什么是 NDC 坐标?什么是世界坐标?
什么是 NDC 坐标(归一化设备坐标)? 定义 NDC(Normalized Device Coordinates) 是三维图形渲染管线中的中间坐标系统,范围为 [-1, 1](x、y、z 轴均为此范围)。它是设备无关的标准化…...
25年护网二面
《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…...
《鸟哥的Linux私房菜基础篇》---5 vim 程序编辑器
目录 一、vim程序编辑器的简介 二、命令模式快捷键(默认模式) 1、光标移动 2、编辑操作 3、搜索与替换 三、插入模式快捷键 四、底行模式快捷键(按:进入) 五、高级技巧 1、分屏操作 2、多文件编辑 3、可视化…...
Day21:在排序数组中查找数字
某班级考试成绩按非严格递增顺序记录于整数数组 scores,请返回目标成绩 target 的出现次数。 示例 1: 输入: scores [2, 2, 3, 4, 4, 4, 5, 6, 6, 8], target 4 输出: 3 示例 2: 输入: scores [1, 2, 3, 5, 7, 9], target 6 输出: 0 …...
Android音视频多媒体开源库基础大全
从事音视频开发工作,需要了解哪些常见的开源库,从应用到底软系统,整理了九大类,这里一次帮你总结完。 包含了应用层的MediaRecorder、surfaceView,以及常见音视频处理库FFmpeg和OpenCV,还有视频渲染和音频…...
ManiWAV:通过野外的音频-视频数据学习机器人操作
24年6月来自斯坦福大学、哥伦比亚大学和 TRI 的论文“ManiWAV: Learning Robot Manipulation from In-the-Wild Audio-Visual Data”。 音频信号通过接触为机器人交互和物体属性提供丰富的信息。这些信息可以简化接触丰富的机器人操作技能学习,尤其是当视觉信息本身…...
传感器研习社:Swift Navigation与意法半导体(STMicroelectronics)合作 共同推出端到端GNSS汽车自动驾驶解决方案
自动驾驶系统单纯依赖感知传感器进行定位在遇到恶劣天气或缺乏车道标线的道路场景时很容易失效。此外,由于激光雷达(LiDAR)、视觉等传感器的成本高昂以及将众多不同组件整合为统一系统的复杂性,都可能增加产品研发成本或延迟产品上…...
Java 二维数组元素降序排序(非冒泡排序)
说明:每次比较出最大值后,把最大值设置为最小值-1,再次比较该数组; 创建Object b[][] new Object[N][2];来存储String和Int两种类型数据到同一个数组里 package com.MyJava;import java.util.Scanner;public class Test {public…...
梦回杭州...
她对我说,烟雨中的西湖更别有情趣,我也怀着对‘人间天堂’的憧憬踏上了向往之旅。第一次亲密接触没有感觉中那么好,现在想起来是那时的人和心情都没能安静下来,去慢慢品味它的美。 六下杭州,亲历每一片风景,…...
Spring Boot整合Apache BookKeeper教程
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Spring Boot整合Apache BookKeeper教程 1. 简介 Apache BookKeeper 是一个高性能、持久化的分布式日志存储系统,适用于需要强一致性和高吞吐量的…...
C++项目——内存池
C项目——内存池 前置知识 std::allocator c中所有stl容器都有自己的allocator类用于分配和回收空间,例如vector类中push_back函数的实现方式: template <class T> void Vector<T>::push_back(const T& t) { // are we out of space…...
【设计模式】SOLID 设计原则概述
SOLID 是面向对象设计中的五大原则,不管什么面向对象的语言, 这个准则都很重要,如果你没听说过,赶紧先学一下。它可以提高代码的可维护性、可扩展性和可读性,使代码更加健壮、易于测试和扩展。SOLID 代表以下五个设计原…...
Deepseek-r1:14b+ScraperAPI实现联网本地大模型回答
文章目录 前言一、Deekseek本地部署二、SerpAPI1.什么是SerpAPI?2.如何使用SerpAPI进行Web搜索 三、实现Deepseek-r1:14bScraperAPI实现联网本地大模型回答1. Code 前言 我需要对本地的Deepseek-r1:14b进行提问,我发现它对于实时的问题,或者…...
DHCP工作原理
DHCP报文类型 DHCP Discover 客户端广播发送DHCP discover报文消息, 客户端通过UDP68端口向网络上发送DHCP discover数据包(包含MAC地址和计算机名等信息).源为0.0.0.0, 目的为255.255.255.255 discover等待时间默认为1秒, 1秒内没有得到回应, 客户机会将这一广播包重新发送4次…...
JVM常见面试总结
JVM(Java虚拟机)是Java程序运行的核心,掌握JVM相关知识对于Java开发者至关重要。以下是JVM常见的面试问题总结: 1. JVM内存模型 问题:JVM的内存结构分为哪些部分? 答案: 方法区(Met…...
博客系统自动化测试报告
1.项目背景 基于SSM框架实现的个人博客系统,现有登录注销页面,博客列表页,博客内容页,博客编辑页面。登录即可查看自己曾经发表的博客,通过使用Selenium定位web元素、对获取到的元素进行操作等,对博客系统…...
如何选择合适的 AI 模型?(开源 vs 商业 API,应用场景分析)
1. 引言 在 AI 迅猛发展的今天,各类 AI 模型层出不穷,从开源模型(如 DeepSeek、Llama、Qwen)到商业 API(如 OpenAI 的 ChatGPT、Anthropic 的 Claude、Google Gemini),每种方案都有其优势与适用…...
目标检测20年(二)
没有看过(一)的可以看看笔者这篇文章: 目标检测20年(一)-CSDN博客 目录 3.2 目标检测数据集和指标 3.2.1 数据集 3.2.1.1 Pascal VOC 3.2.1.2 ILSVRC 3.2.1.3 MS-COCO 3.2.1..4 Open Images 3.2.2 指标 3.3 目…...
【linux】统信操作系统修改默认编辑模式从nano改为vim
统信操作系统修改默认编辑模式从nano改为vim 适用命令update-alternatives --config editor rootuos-PC:~# update-alternatives --config editor 有 3 个候选项可用于替换 editor (提供 /usr/bin/editor)。选择 路径 优先级 状态 ---------------------…...
在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译
在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译 应用——系统工具——终端 suozhangfedora:~$ rpm -aq | grep firefox firefox-131.0.2-1.fc41.x86_64 firefox-langpacks-131.0.2-1.fc41.x86_64 fedora41系统自身安装有f…...
集成学习(下):Stacking集成方法
一、Stacking的元学习革命 1.1 概念 Stacking(堆叠法) 是一种集成学习技术,通过组合多个基学习器(base learner)的预测结果,并利用一个元模型(meta-model)进行二次训练,…...
知道自己鼠标在某个竖直平面上的经纬度信息在这个竖直的平面上的实时坐标
鼠标放上去就开启map.on(mars3d.EventType.mouseMove,结合以下方法实现 callback: function (e) {// 经纬度const mpt LngLatPoint.fromCartesian(e.cartesian)const ptNew proj4Trans([mpt.lng, mpt.lat], "EPSG:4326", CRS.CGCS2000_GK_Zone_3)const …...
【技术简析】触觉智能RK3506 Linux星闪网关开发板:重新定义工业物联新标杆
在工业智能化与物联网深度融合的今天,深圳触觉智能推出首款搭载瑞芯微RK3506芯片的Linux星闪网关开发板,为大家技术解析。 RK3506-国产芯的硬核实力 作为瑞芯微2024年第四季度推出的入门级工业芯片平台,RK3506以三核Cortex-A7(1.…...
GLB文件介绍
GLB文件是由支持glTF(GL Transmission Format)标准的软件或工具生成的。glTF是一种开放的3D模型传输格式,而GLB是其二进制版本,通常用于嵌入纹理和模型数据。以下是常见的生成GLB文件的软件和工具: 1. 3D建模软件 • …...
树莓集团数字产业布局:商业智慧的多维呈现
树莓集团在数字产业的布局展现其前瞻性的商业智慧,通过多维度的战略部署,构建一个 শক্তিশালী且富有活力的数字生态系统。 全国产业园布局:构建数字产业生态链 树莓集团通过在全国范围内建设产业园,有效整合资源&#x…...
“智改数转”新风口,物联网如何重构制造业竞争力?
一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…...