RAG5个常见错误
向量数据库并非硬性规定
几乎互联网上所有关于RAG的教程都使用向量存储。如果你一直在搜索RAG相关内容,你就会明白我们在说什么。
基于向量的检索无疑是RAG成功的重要因素。向量嵌入非常适合映射文本的语义含义。它们也能很好地处理不同大小的文本。你的查询可能只是一个句子,但你的文档存储包含整页的文章?—向量搜索能够处理这些情况。
然而,检索并不仅限于基于向量的检索。
RAG可以从互联网、关系型数据集、Neo4J中的知识图谱,或者这三者的组合中检索信息。
在许多情况下,我们注意到混合方法往往能带来更好的性能。
对于通用应用,你可以使用向量存储,但当向量存储中没有可用信息时,你可以搜索互联网。
对于客户聊天机器人,你可能需要授予RAG访问部分客户数据库的权限,这可能是一个关系型数据库。
公司的知识管理系统可能会创建知识图谱并从中检索信息,而不是使用向量存储。
从定义上讲,所有这些都是RAG。
然而,确定使用哪些数据源的过程并不是很直接。你需要尝试各种选项,了解每种方法的优缺点。接受或拒绝某个想法的原因可能受到技术和业务考虑的双重影响。
例如,你可以创建每个客户资料信息的文本版本,并将其向量化以供检索。这对于查询来说效率很高,因为你只需处理单个数据库。但它可能不如运行SQL查询准确。这是一个需要考虑的技术原因。
然而,让LLM运行SQL查询可能导致SQL注入攻击。这既是技术问题也是业务顾虑。
向量数据库对语义检索也很有效。但这并不意味着其他数据库无法处理语义检索;几乎所有其他数据库都可以处理向量搜索。
优先选择微调过的小型模型
嵌入模型可以将任何内容转换为向量形式。在更大的模型上你会看到比小模型更好的性能。
然而,这并不意味着更大就总是更好。
忘掉规模吧。所有模型都是在公开数据集上训练的。它们知道苹果(水果)和苹果(品牌)之间的区别。但是,如果你和你的朋友用"苹果"作为暗号,嵌入模型无法知道这一点。
而且,我们创建的几乎所有应用都专注于一个小众话题。
对于这些应用,使用更大模型带来的好处是微不足道的。
下面是一种不同的做法:
为你的领域数据创建一个数据集,并微调一个小型嵌入模型。
小型模型足以捕捉语言细微差别,但可能无法理解在不同情境中具有特殊含义的词语。
但仔细想想,为什么你的模型需要理解木星的卫星是什么呢?
小型模型更高效。它们速度快且成本低。
要让模型具备领域知识这一缺失能力,你可以对其进行微调。
这两个提示可以修复高效检索的索引部分。但是,检索过程本身也可以优化。
检索过程可以更先进
最直接的检索过程是直接查询。
如果你使用向量数据库,可以对用户输入进行语义搜索。否则,你可以使用LLM生成SQL或Cipher查询。
如果需要,你也可以调用HTTP端点。
但直接查询方法很少能产生可靠的上下文。
你可以通过更高级的方法查询数据源。例如,你可以尝试查询路由技术来决定从哪个数据源获取数据。具有良好推理能力的LLM可以用于此目的。你还可以对较小的模型进行指令微调,以节省成本并减少延迟。
另一种技术是链式请求。对于初始查询,我们可以从数据源获取信息。然后,基于获取的文档,我们可以获取后续文档。
分块是RAG中最具挑战性和最重要的部分
当上下文中包含不相关信息时,LLM往往会失控。
防止RAG中出现幻觉的最佳方法是分块。
现代LLM可能支持更长的上下文长度。例如,Gemini 2.5 Pro支持高达200万个token,足以容纳两到三本大学级别的物理教科书。
但对于关于基础力学的问题,你很少需要来自量子物理学的上下文信息。
如果你将教科书分解成更小的部分,可能每一部分只讨论一个主题,那么你只需获取与问题相关的信息。
这里的挑战在于有许多分块技术。每种技术都有自己的优缺点。对你的领域最有效的方法可能对其他领域不起作用。
递归字符分块可能是最简单的,也是我们的默认选择。然而,它假设文本中每个主题的讨论长度相等,这在现实中很少见。尽管如此,最好从这开始。
沿着这条路走下去,你甚至可以尝试主题聚类和代理式分块。
尝试重排序
最后但同样重要的是重排序。
已经证明,相关分块的位置对高质量LLM响应至关重要。
然而,常规的向量搜索,甚至数据库查询,都不能非常智能地排序结果。而LLM可以。
因此,我们使用专门的大型语言模型(LLM)作为重排器,对获取的上下文进行重新排序,并进一步过滤,只找出最相关的分块。
这种二级重排序在某些应用中有益,但在其他应用中则不然。但有一些技术可以用来改进重排序结果。
其中一种是获取大量初始结果。宽松定义初始标准会拉取一些不相关的上下文,但它增加了找到正确内容的概率。
现在,重排器可以处理这个大集合并过滤出更相关的内容。
相关文章:
RAG5个常见错误
向量数据库并非硬性规定 几乎互联网上所有关于RAG的教程都使用向量存储。如果你一直在搜索RAG相关内容,你就会明白我们在说什么。 基于向量的检索无疑是RAG成功的重要因素。向量嵌入非常适合映射文本的语义含义。它们也能很好地处理不同大小的文本。你的查询可能只…...
VuePress可以做什么?
VuePress 可以做什么 VuePress 是一个基于 Vue.js 的静态站点生成器,专注于文档和内容展示。它结合了 Markdown 的简洁性和 Vue 的灵活性,适合多种场景的开发需求。以下是 VuePress 的主要用途和功能: 1. 技术文档网站 VuePress 最初是为编写 Vue.js 官方文档而设计的,因…...
TDengine 数据缓存技术
简介 在现代物联网(IoT)和工业互联网(IIoT)应用中,数据的高效管理对系统性能和用户体验至关重要。为了应对高并发环境下的实时读写需求,TDengine 设计了一套完整的缓存机制,包括写缓存、读缓存…...
如何成功防护T级超大流量的DDoS攻击
防护T级超大流量的DDoS攻击需要综合技术、架构与运营策略的多层次防御体系。以下是基于最新技术实践和行业案例总结的关键防护策略: 一、流量清洗与分布式处理 部署流量清洗中心 T级攻击的核心防御依赖于专业的流量清洗技术。通过部署分布式流量清洗集群,…...
【Linux内核设计与实现】第三章——进程管理02
文章目录 7. 进程创建7.1. 进程之间的关系7.2. 进程创建的写时拷贝机制(copy-on-write)7.3. fork() 函数的入口7.4. 创建新进程的核心函数 kernel_clone()7.4.1. 检查参数并调用 copy_process 创建并复制进程7.4.2. 获取新进程 PID 作为返回值7.4.3. 唤醒…...
企业部署Power BI 报表服务器,在第三方系统嵌套该报表服务器,并实现单点登录
简介 Power BI Report Server 简称PBIRS,中文名"Power BI 报表服务器" 微软的文档:Power BI 报表服务器文档 - Power BI | Microsoft Learn 借用官网的介绍: Power BI 报表服务器类似于 SQL Server Reporting Services 和 Power BI…...
Leetcode 2845 题解
还是要把自己做题的思路写出来的,但是结果可能还是得去观摩一下题解,无论是大佬写的题解还是leetcode官方写的题解,看完题解后再去反思才能有收获,即使下次遇见一样的题不见得能写出来,但有思路比没思路更重要。 今天写…...
前端基础之《Vue(12)—插件封装》
一、插件封装 1、在Vue生态中,除了Vue本身,其它所有的与Vue相关的第三方包,都是插件 例子: import VueRouter form vue-router Vue.use(VueRouter) // 注册插件 2、如何封装Vue插件 (1)第一种写法 const…...
arcpy列表函数的应用(2)
arcpy.ListRasters() 该函数用于列出指定工作空间中的所有栅格数据集。 语法: python arcpy.ListRasters(wild_cardNone, raster_typeNone)• wild_card:用于筛选栅格数据集名称的通配符。 • raster_type:用于筛选栅格数据集的类型&…...
智能电网第7期 | 断网不断控:电力监控网络高可靠通信解决方案
随着智能电网建设加速推进,电力监控系统的可靠性已成为保障电网安全运行的核心要素。在变电站、配电房等关键场景中,网络中断可能导致监控失效、故障扩大等严重后果。当前电力通信网络面临的主要挑战包括: 网络脆弱性:单一链路故障…...
Nacos简介—2.Nacos的原理简介
大纲 1.Nacos集群模式的数据写入存储与读取问题 2.基于Distro协议在启动后的运行规则 3.基于Distro协议在处理服务实例注册时的写路由 4.由于写路由造成的数据分片以及随机读问题 5.写路由 数据分区 读路由的CP方案分析 6.基于Distro协议的定时同步机制 7.基于Distro协…...
offset voltage of Comparator
静态失调电压(static offset voltage) 主要影响因素:μCox(载流子传输速率和栅氧层电容的的乘积)、阈值电压。 静态失配方差与器件尺寸成反比,可以增大关键对mos管的尺寸 动态失调电压(dynamic offset voltage&…...
Spring-Ai-McpSever从外到内
MCP是什么 Model Context Protocol (MCP) 是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LL…...
Vue多地址代理端口调用
第一种方法 config.ts文件 配置多条代理服务端口 如下所示:proxy: {/app: {// 其他的端口target: http://125.124.5.117:12877/,changeOrigin: true}/api: {//默认的端口// http://192.168.31.53:5173/target: http://192.168.31.199:18777/,changeOrigin: true,rewrite: pat…...
Android APP 热修复原理
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ dexElements Android 的 ClassLoader(如 PathClassLoader、DexClassLoader)内部结构如下: BaseDexClassLoader└── pat…...
一些有关ffmpeg 使用(1)
1 解封装流程 1.1 什么解封装 封装的逆向操作:封装是把音频流、视频流、字幕流等不同成分按一定规则组合成视频文件(如 MP4、FLV ),复用器负责此过程。解封装则相反,是用解复用器(针对 MP4、FLV 等格式有…...
Postman-win64-7.2.2 安装教程(Windows 64位详细步骤)
1. 下载安装包 Postman-win64-7.2.2-Setup.exe下载链接:https://pan.quark.cn/s/6b48480d95d5 2. 运行安装程序 双击下载的 .exe 文件,启动安装向导。 若系统提示权限确认,点击 “是” 允许安装。 3. 安装向导设置 选择安装选项࿰…...
C语言实现贪心算法
一、贪心算法核心思想 特征:在每一步选择中都采取当前状态下最优(局部最优)的选择,从而希望导致全局最优解 适用场景:需要满足贪心选择性质和最优子结构性质 二、经典贪心算法示例 1. 活动选择问题 目标:…...
Linux 服务如何使用 curl 利用 HTTP Get 请求传入 SQL 语句修改数据库表内容和结构
本文是博主在部署项目时发现的一个小技巧,项目部署在 Linux 虚拟机上,数据库被设置了写权限,作为开发只能使用程序对数据库做增删改查,但是在开发测试阶段会出现很多问题,权限的问题大大降低了开发效率,所以…...
Java对象转换的多种实现方式
Java对象转换的多种实现方式 在Java开发中,对象转换是一个常见的需求。特别是在不同层次间传递数据时,通常需要将一个对象转换为另一个对象。虽然JSON序列化/反序列化是一种常见的方法,但在某些场景下可能并不是最佳选择。本文将总结几种常见…...
详解 LeetCode 第 242 题 - 有效的字母组
目录 题目描述 解题思路 代码分析 步骤说明 图解原理 优势分析 小结 码题目:LeetCode 242. 有效的字母组 题目描述 给定两个字符串 s 和 t,请判断是否为字母组(Anagram)。 如果 t 是通过打乱 s 的字符并重新排列所得到的…...
【滑动窗口+哈希表/数组记录】Leetcode 3. 无重复字符的最长子串
题目要求 给定一个字符串 s,找出其中不含有重复字符的最长子串的长度。 子字符串是字符串中连续非空字符序列。 示例 1 输入:s "abcabcbb" 输出:3 解释:无重复字符的最长子串是 "abc",长度为…...
springmvc-拦截器
目录 一,拦截器的职责 二,拦截器的应用场景 三,拦截器的工作原理 拦截器在Spring MVC请求处理流程中的位置: 四,使用拦截器 一 ,编写拦截类,实现HandlerInterceptor接口,重写方…...
【Agent】LangManus深度解析:AI自动化框架的对比与langgraph原理
LangManus深度解析:AI自动化框架的技术演进与实践 本文将带你深入探索LangManus这一AI自动化框架的核心技术与其基于langgraph的实现原理,并与OpenManus进行全面对比,助你掌握多智能体系统的前沿技术。 本文3万字,没有时间的话可以…...
【FreeRTOS】事件标志组
文章目录 1 简介1.1事件标志1.2事件组 2事件标志组API2.1创建动态创建静态创建 2.2 删除事件标志组2.3 等待事件标志位2.4 设置事件标志位在任务中在中断中 2.5 清除事件标志位在任务中在中断中 2.6 获取事件组中的事件标志位在任务中在中断中 2.7 函数xEventGroupSync 3 事件标…...
如何通过电路测量运放的增益带宽积(GBP)和压摆率(SR)
一、增益带宽积(GBP)的测量 定义:增益带宽积是运算放大器的开环增益下降到直流增益的 (即 - 3dB)时对应的频率与该频率下增益的乘积,数学表达式为: 其中 A0 是直流开环增益,f0…...
SAP接口超时:对 FOR ALL ENTRIES IN 的优化
SAP接口超时 经分析要10多分钟以上才出结果,且是这个语句耗时较长: SELECTaufnrmatnrbdmnglgortmeinschargFROM resbINTO CORRESPONDING FIELDS OF TABLE lt_lylcddxhFOR ALL ENTRIES IN lt_lylcddWHERE aufnr IN r_aufnr发现RESB有420万条记录…...
ElementUi的Dropdown下拉菜单的详细介绍及使用
Dropdown是 ElementUI 中用于创建下拉菜单项的一个组件,通常el-dropdown-item 包裹在 el-dropdown 组件中使用。以下从功能特性(一些属性及方法)、使用和高级功能(高亮显示,滚动,额外传参数)三个方面进行详细介绍。 一、功能特性 1.触发方式…...
C++类模板编程练习(从基础到进阶)
一、基础模板类设计 泛型盒子(Box) 实现一个 Box 类模板,存储任意类型的值,并提供获取/修改方法。 Box<int> intBox(42); cout << intBox.get(); // 输出 42 intBox.set(100);类型转换器(Converter&…...
基于物联网的智能家居安全防护系统设计
资料下载地址:基于物联网的智能家居安全防护系统仿真(仿真代码) 目录 一、功能介绍 二、仿真图 三、程序 一、功能介绍 1.单片机和app、OneNet云平台通过wifi进行通信 2.马达模拟家里的用电设备,可通过按键开关 3.可检测用电量…...
android jatpack Compose 多数据源依赖处理:从状态管理到精准更新的架构设计
Android Compose 多接口数据依赖管理:ViewModel 状态共享最佳实践 📌 问题背景 在 Jetpack Compose 开发中,经常遇到以下场景: 页面由多个独立接口数据组成(如 Part1、Part2)Part2 的某些 UI 需要依赖 P…...
非序列实现MEMS聚焦功能
zemax非序列模式下有MEMS,但是没有对应的代码。无法修改成自己需要的功能 以下是实现MEMS聚焦功能: #include <windows.h> #include <cmath> #include <stdio.h> #include <string.h> #include <algorithm> #undef max #undef min#define D…...
基于Java,SpringBoot,Vue,HTML宠物相亲配对婚恋系统设计
摘要 基于Java、SpringBoot、Vue和HTML的宠物相亲配对系统设计旨在为宠物主人打造一个高效、智能的宠物社交与配对平台。系统采用前后端分离架构,前端基于Vue.js框架结合HTML/CSS/JavaScript构建动态交互界面,实现宠物信息展示、用户社交互动等功能&…...
AI大模型学习十二:尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio对象存储测试和漫长修改之路
一、说明 前面已经安装完成,这里我们测试对象存储 AI大模型学习十一:尝鲜ubuntu 25.04 桌面版私有化sealos cloud devboxminio,实战运行成功-CSDN博客https://blog.csdn.net/jiangkp/article/details/147424823?spm1011.2415.3001.5331 二…...
身份与访问管理(IAM):零信任架构下的认证授权技术与实战
身份与访问管理(IAM):零信任架构下的认证授权技术与实战 在网络安全防御体系中,身份与访问管理(Identity and Access Management, IAM)是守护数字资产的“数字门禁系统”。随着远程办公和多云架构的普及&a…...
潮了 低配电脑6G显存生成60秒AI视频 本地部署/一键包/云算力部署/批量生成
最近发现了一个让人眼前一亮的工具——FramePack,它能用一块普通的6GB显存笔记本GPU,生成60秒电影级的高清视频画面,效果堪称炸裂!那么我们就把他本地部署起来玩一玩、下载离线一键整合包,或者是用云算力快速上手。接下…...
高防IP+CDN组合:电商大促的“双保险”防护方案
引言 电商大促期间,平台流量呈爆发式增长,既要应对瞬时激增的访问量,又要防范黑客趁机发起的DDoS攻击、恶意爬虫等威胁。单一防护手段往往难以兼顾性能与安全,而高防IPCDN组合通过“流量清洗加速分发”的双重机制,为电…...
“IAmMusicFont.com“:将音乐变成视觉
很高兴向大家介绍——IAmMusicFont.com,这是一个专为音乐爱好者和设计师打造的在线字体生成器,灵感源自Playboi Carti 2025年专辑《MUSIC》(又称"I Am Music")的标志性封面设计。 什么是"I am music font"&a…...
C++入门(下)
本文为个人学习笔记,如有错误欢迎批评指正,如有侵权,请联系删除。 今日名言: 好运只是个副产品,只有当你不带任何私心杂念,单纯的去做事情时,他才会降临。 上一篇文章我们讲了C入门的一部分内容…...
ubuntu22.04 命令行修改静态ip
传统interfaces文件配置(适用于旧版)即便我们已经在桌面上配置了固定ip 这里也可以修改 编辑配置文件 修改/etc/network/interfaces(需安装net-tools): # interfaces(5) file used by ifup(8) and ifdown(8) # In…...
Ubuntu18.04配置C++环境和Qt环境
Ubuntu18.04配置C环境和Qt环境 1、前言3.2 安装其他库3.3 查看有没有安装成功3.4测试C环境 4、配置Qt环境4.1 安装相关的库4.2 测试 5、总结 1、前言 记录一下Ubuntu18.04配置C环境和Qt环境的过程,方便自己日后回顾,也可以给有需要的人提供帮助。 # 2…...
深度学习--自然语言处理统计语言与神经语言模型
文章目录 前言一、语言转换方法1、数据预处理2、特征提取3、模型输入4、模型推理 二、语言模型1、统计语言模型1) 机器学习词向量转换2)解释:3) 统计语言模型存在的问题 2、神经语言模型1)one—hot编码2)解决维度灾难3)…...
linux ptrace 图文详解(七) gdb、strace跟踪系统调用
目录 一、gdb/strace 跟踪程序系统调用 二、实现原理 三、代码实现 四、总结 (代码:linux 6.3.1,架构:arm64) One look is worth a thousand words. —— Tess Flanders 相关链接: linux ptrace 图…...
Feign接口调用失败降级机制
是的,通过 FallbackFactory 实现的降级逻辑在 Feign 接口调用失败时会被触发,但需要注意以下关键点以确保降级生效: 一、代码有效性分析 降级逻辑是否生效? • 是的,当 Feign 调用 BaseServiceFeign 接口的 updateMoni…...
系统架构-安全架构设计
概述 对于信息系统来说,威胁有:物理环境(最基础)、通信链路、网络系统、操作系统、应用系统、管理系统 物理安全:系统所用设备的威胁,如自然灾害、电源故障通信链路安全:在传输线路上安装窃听…...
python实现简单的UI交互
文章目录 1. 基础打印 覆盖同一行2. 多行动画效果3. 彩色文本(Windows/macOS/Linux)4. 输入交互5. 异步输入与非阻塞显示6. 高级控制台 UI 库 可以通过控制台打印实现简单的「伪UI交互」,尤其适合展示进度、动态文本或轻量级状态反馈。以下是…...
高频面试题:如何保证数据库和es数据一致性
背景 在实际项目开发中,我们经常将MySQL作为业务数据库,ES作为查询数据库,用来实现读写分离,缓解MySQL数据库的查询压力,应对海量数据的复杂查询,这其中有一个很重要的问题,就是如何实现MySQL数…...
CS001-7-hbao
HBAO https://zhuanlan.zhihu.com/p/348467142 HBAO(屏幕空间的环境光遮蔽) - 知乎 (zhihu.com) [摸着原神学图形]HBAO实现与优化 - 知乎 (zhihu.com) https://zhuanlan.zhihu.com/p/367793439 Global Illumination_Horizon-Based Ambient Occlusion(HBAO)-CSDN博客 这个解…...
使用npm install或cnpm install报错解决
1.从git上拉了一个新vue项目npm install 报错如下 解决办法: 清除npm缓存 npm cache clean -force 2.阿里云镜像证书过期,报错如下 解决办法: 更换阿里云镜像地址 #原来的地址是:https://registry.npm.taobao.org/ cnpm confi…...
Electron Forge【实战】阿里百炼大模型 —— AI 聊天
获取 apiKey 登录并开通阿里云百炼 https://bailian.console.aliyun.com/#/home 新人有半年免费的使用福利,在模型详情中,可以查看剩余的免费额度 https://bailian.console.aliyun.com/?tabmodel#/model-market/detail/qwen-turbo 在下方链接中创建 ap…...