RAG完全指南:从嵌入到查询改写的五大核心技术(收藏必学)

LlamaIndex/Langchain实现RAG系统查询重写技术五大门派绝技 在检索增强生成(RAG)中,我们经常会遇到用户原不准确义信息。例如,像“2020年NBA冠军是洛杉矶湖人队!告诉我什么是langchain框架?”这样的查询,如果直接搜索,可能会从大语言模型(LLM)中得到错误或无法回答的响应。因此,将用户查询的语义空间与文档的语义空间对齐至关重要。查询重写技术可以有效解决这个问题。它在RAG中的作用如图1所示:查询重写是对齐查询和文档语义的关键技术。目前这方面有五大门派,各有绝技。 阅读详情

在之前的文章中有提到RAG相关的内容,感兴趣的可以看看:知识库 RAG:原理、流程、问题与优化建议。

原理大概就是当用户向关联了知识库的 AI 智能体提出问题时,查询不会直接发送给 LLM,而是先在知识库(如企业的文档库,记忆库,数据库等)中检索相关信息。这种检索不仅仅是关键词匹配,而是“语义搜索”,理解用户提出的问题和词语背后的含义。系统会提取最相关的知识切片(chunk),并将这些切片“增强”到原始提示中,最终,这个增强后的提示被送入 LLM,基于上下文,生成既流畅自然又有事实依据的回复。

因此,RAG能够让 LLM 能够访问知识库的内容,突破静态训练数据的限制,利用企业内部文档或 Wiki 等专业知识降低了“幻觉”(虚假信息)的风险,另外一个重要优势是能够提供“引用”,明确指出大模型回复信息的来源,提升 AI 响应的可信度和可验证性,这个在一些财务或对于回复可信度要求较高的,极为重要。

但如果要想更深入了解下RAG相关的一些内容,有几个核心的概念,必须得先了解下,这里也结合最近在项目上的一些了解学习,以及市面上常见智能体平台来解释下。

1、嵌入

在 LLM 语境下,嵌入是文本(如词语、短语或文档)的数值表示,通常为向量(数字列表)。其核心思想是用数学空间表达语义和文本间的关系。含义相近的词或短语,其嵌入在向量空间中距离更近。

在百度千帆中,用户在知识库上传文件后,支持选择向量模型进行嵌入,就是把我上传的文件解析出来之后,对文件内容进行向量化表示。用户提问时,系统通过计算问题嵌入与文档嵌入的相似度,检索最相关的信息用于生成答案。一般常见的开源模型就是bge-large。向量化之后一般就是存储在ES数据库。

2、切片

将大文档拆分为更小、更易处理的片段。RAG 系统无法将整本大文档输入 LLM,而是处理这些小块。如下图,coze将一篇比较大的文档切分成小的片段。

而同样的文档,在百度千帆平台中,则被切成了575个小的分段。

不同的切片策略,会导致同一个切分出来的效果不一样,这里有几个点:

原因说明
✅ 分块大小(chunk size)最直接原因:小块 → 更多分段
✅ 分段重叠(overlap)重叠会显著增加块数
✅ 切分策略(智能语义 vs 固定)段落感知切分 vs 硬切
✅ 文本预处理差异是否去噪、压缩、去掉换行符,制表符等
✅ 平台默认设计哲学效率优先 vs 精度优先

在dify内,切片后会形成父子切片,子分段会被切得更细,这样在知识库内容的命中上会更精确。用户提问时,系统先通过 父分段 快速判断主题是否相关。若相关,则深入检索对应的 子分段 获取精确答案,这样可以避免在海量文本中盲目搜索,提升效率。

3、相似度

指两段文本或语义的相似程度,可分为表层(词汇重叠)和深层(语义)。如下面的两张图,在百度千帆和dify中,当知识库切片后,可以通过召回测试,测试其召回后的内容,并会对召回内容进行相似度的打分,分数越高,代表当前召回的文本切片相关度就越高。

文本相似度一般就是计算查询向量与所有文档向量的余弦相似度,返回 Top-K 最相似的文档,下图中,召回数量就是topk。

4、重排模型

对“Query-候选片段”重新排序并打分,更准确地修正知识检索环节后的排序结果。目前用的比较多的大部分都是开源的模型,bge-reranker-large,典型流程是:

初筛(Retrieval):用向量搜索从文档中快速召回 Top-K(如 K=100)候选。

重排(Reranking):用更精细的模型对这 K 个候选重新打分排序,选出最相关的 Top-N(如 N=5)送入 LLM,这样就能避免“检索到但排错位”的问题。如下图所示。

5、查询改写

当用户开启“多轮对话改写”后,在正式检索知识库之前,系统会插入一个额外的大模型处理步骤:获取上下文:收集当前对话的历史记录(history)和当前用户输入(current_question)。调用大模型,使用固定提示词模板(Prompt)引导模型输出:你是一个查询改写助手……要求输出仅为改写后的查询语句,不加解释、标注或其他内容。

用改写后的查询 替代原始输入,执行后续的知识库检索,从而提高后续知识检索的相关性和准确度。

最后唠两句

为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选

很简单,这些岗位缺人且高薪

智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

在这里插入图片描述

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

那0基础普通人如何学习大模型 ?

深耕科技一线十二载,亲历技术浪潮变迁。我见证那些率先拥抱AI的同行,如何建立起效率与薪资的代际优势。如今,我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理,分享于此,为你扫清学习困惑,共赴AI时代新程。

我整理出这套 AI 大模型突围资料包【允许白嫖】:

  • ✅从入门到精通的全套视频教程

  • ✅AI大模型学习路线图(0基础到项目实战仅需90天)

  • ✅大模型书籍与技术文档PDF

  • ✅各大厂大模型面试题目详解

  • ✅640套AI大模型报告合集

  • ✅大模型入门实战训练

这份完整版的大模型 AI 学习和面试资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

①从入门到精通的全套视频教程

包含提示词工程、RAG、Agent等技术点

在这里插入图片描述

② AI大模型学习路线图(0基础到项目实战仅需90天)

全过程AI大模型学习路线

在这里插入图片描述

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

在这里插入图片描述

④各大厂大模型面试题目详解

在这里插入图片描述

⑤640套AI大模型报告合集

在这里插入图片描述

⑥大模型入门实战训练

在这里插入图片描述

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

UE5 SplineMesh与StaticMesh性能对比:生成1000米路径的帧率与内存实测 本文深度对比了UE5中SplineMesh与StaticMesh在生成1000米路径时的性能差异,包括帧率、内存占用及实现复杂度。实测数据显示,SplineMesh在Draw Call优化和动态变形场景中表现更优,而StaticMesh适合需要复杂材质变化的场景。文章还提供了优化技巧和选型指南,帮助开发者根据项目需求做出科学决策。 阅读详情

相关推荐

华为OD机试_2025 B卷_模拟消息队列(Python,100分)(附详细解题思路)

时间排序:确保事件处理顺序正确消费者管理:集合操作高效维护状态优先级实现:利用消费者ID自然排序边界处理:正确处理空消费者情况。

测试工程师的成长之路 1120

Rag中的问题改写query rewriting

在rag的整个流程中,一般第一步就是对问题query进行改写,为什么需要改写呢,主要是用户在提问的时候,想要得到的答案和问题不匹配,为了得到想要的答案,不同的用户可能问的方式千变万化,这就需要对query进行改写,来提高rag系统的鲁棒性和扩展性。用户的query存在的问题,主要有两个方面,一是信息缺失,用户表达的不全面;一是噪声,用户query里面携带了很多不相关的东西。改写后query的质量,很依赖于prompt和大模型的能力。

sinat_28694519的博客 6015

VESC电调高级调参指南:电机校准与性能优化实战解析

本文详细解析了VESC电调的高级调参方法,包括电机校准与性能优化实战技巧。从基础参数设置到高级机械参数优化,再到动态性能调优,提供了全面的调参指南。特别针对电机类型、功率设置、电池参数配置等关键环节给出实用建议,帮助用户充分发挥VESC电调的性能潜力。

weixin_30772105的博客 196

RAG中的3个高级检索技巧

我们介绍的这些检索技术有助于提高文档的相关性。但是这方面的研究还正在进行,还有很多其他方法例如,利用真实反馈数据对嵌入模型进行微调;直接微调LLM以使其检索能力最大化(RA-DIT);探索更复杂的嵌入适配器使用深度神经网络而不是矩阵;深度和智能分块技术作者:Ahmed Besbes。

deephub 5966

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords!

Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 目录 Unity 常见问题 之 打包编译的报错 Unable to sign the application; please provide passwords! 一、简单介绍 二、问题描述 三、原因分析 四、可能的解决方法 方法一:取消 Keystore 设置即可 方法二:重新添加 Keystore 相关设置 一...

仙魁XAN 1万+

别再为EPI形变头疼了!FSL的topup+eddy实战保姆级教程(含AP/PA数据采集要点)

本文详细介绍了如何使用FSL的topup和eddy工具解决EPI形变问题,包括数据采集要点、参数设置和实战操作步骤。通过AP/PA双编码数据和精确的形变场估计,有效矫正MRI图像中的几何畸变,提升弥散数据质量。特别适合需要处理高场强MRI数据的研究人员和技术人员。

weixin_28725949的博客 400

【RAG提升技巧】查询改写HyDE

提高 RAG 推理能力的一个好方法是添加查询理解层 ——在实际查询向量存储之前添加查询转换。

2301_81888214的博客 1125

VMware Converter 6.2.0保姆级教程:从物理机到ESXi主机的完整迁移指南(含常见错误排查)

本文提供VMware Converter 6.2.0从物理机迁移至ESXi主机的完整保姆级教程。详细解析了迁移前的环境规划、核心转换过程步骤、版本差异对比,并重点针对代理安装失败、任务卡顿、虚拟机无法启动等常见错误提供了实战排查与解决方案,确保P2V迁移顺利进行。

sam99的博客 380

RAG Query 改写==>意图识别

RAG Query 改写

core815的专栏 1351

uniapp [安卓苹果App端] - 实现获取请求手机位置权限+开启定位获取经纬度/省市区地址等,检测权限手机定位是否开启并引导用户同意授权,uniApp app端调用本机开启本机定位权限及IP属地

uni-app,手机定位权限,安卓Android,苹果ios,uniapp获取本机位置权限,uni-app获取用户定位数据,uniapp APP获取用户IP属地定位,判断权限,权限被拒绝了怎么办,苹果ios系统无法开启定位,获取定位权限报错,uniapp定位获取省市区,UNI-APP如何开启手机定位功能并获取经纬度,不依赖地图第三方插件组件,打包上架后如何获取,真机运行无法获取定位,安卓和ios权限获取,判断权限检查,正式打包,详细教程,根据获取当前经纬度,再根据经纬度去定位具体省市区,自定义基座打包能成功

🏆 前端领域优质创作者 1万+

【RH850/U2A】:HSM与APP通信(中断方式)

HSM与APP通信(中断方式)

1994

RAG查询改写方法概述

在RAG系统中,用户的查询是丰富多样的,可能存在措辞不准确和缺乏语义信息的问题。这导致使用原始的查询可能无法有效检索到目标文档。因此,将用户查询的语义空间与文档的语义空间对齐至关重要,目前主要有查询改写和嵌入转换两种方法。查询改写的方法包括Query2Doc,Doc2Query,HyDE,Step-Back Prompting,Rewrite-Retrieve-Read,ITER-RETGEN,Multi-query。

qq_43814415的博客 4060

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

RAG 每日一技(十三):检索一次不够?学习查询改写与迭代式检索!

RAG第一次检索就“翻车”怎么办?别放弃!本文教你两种查询改写“黑科技”:查询分解与HyDE。学习如何让你的RAG系统自我反思,自动将复杂问题拆解,或生成“虚拟答案”来优化检索,从源头提升召回质量!

RAG 1045

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

小白程序员必学:大模型RAG技术完全指南,从原理到核心概念详解

本文详细介绍了RAG(检索增强生成)技术原理与核心概念。RAG通过在知识库中检索相关信息并增强提示,使LLM能突破静态数据限制,降低幻觉风险并提供可验证的引用。文章深入探讨了嵌入、切片、相似度计算、重排模型和查询改写等关键技术,帮助读者构建更精准、可靠的RAG系统,适用于企业知识库和专业领域应用。

2401_84495872的博客 588

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【必学收藏】2026年大模型新趋势:智能体RAG(Agent-RAG)完全指南

Agentic RAG描述了基于AI智能体实现的RAG。具体来说,它将AI智能体纳入RAG流程中,以协调其组件并执行超出简单信息检索和生成的额外行动,以克服非智能体流程的局限性。Agentic RAG描述了基于AI智能体实现的RAG。Agentic RAG如何工作?尽管智能体可以被纳入RAG流程的不同阶段,智能体RAG最常用于检索组件中的智能体。

EnjoyEDU的博客 1885

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【AI的热门应用】构建“二代 RAG”:查询改写、重写/重排、迭代检索各自解决了什么?

构建“二代 RAG”:查询改写、重写/重排、迭代检索各自解决了什么?

人工智能(AI)技术,大模型技术,深度学习,机器学习,计算机视觉,AI工具实践应用等分享 959

RAG系统答非所问?别怪模型,是你的查询该改写了

做 RAG(检索增强生成)的人,迟早会撞上同一个问题:用户问了一句话,检索出来的结果却离题万里。

m0_59235245的博客 290

【收藏必看】大模型RAG从入门到精通:RAG查询转换技术完全指南

文章介绍RAG系统中的查询转换技术,用于解决用户查询与知识库间的语义鸿沟问题。详细阐述了三种方法:查询重写通过多角度改写提高召回率;回溯提示生成更宽泛的背景问题提供上下文;子查询分解将复杂问题拆解为多个简单子问题。文章提供了三种方法的实际代码示例,强调精心设计的提示是实现这些技术的关键,查询转换能显著提升检索准确性和答案质量。

2401_85325726的博客 1141

深入解析RAG核心技术:嵌入模型与向量数据库实践指南

嵌入模型是将离散数据(如单词、句子、文档)转换为连续向量空间的数学函数。语义相似性:含义相近的文本在向量空间中距离更近维度固定:无论输入文本长度如何,输出向量维度固定可计算性:支持相似度计算等向量运算构建高效的RAG系统,嵌入模型和向量数据库的选择与实现是决定成败的关键。通过本文的深度技术解析,您应该已经掌握了:如何选择适合场景的嵌入模型设计高效的数据预处理流水线配置和优化向量数据库实施高级检索策略提升质量构建可扩展的部署架构。

喵酱 1694

【必学收藏】RAG技术完全指南:让AI助手掌握最新知识的革命性方法

RAG(检索增强生成)是一种创新AI架构,结合大语言模型的生成能力与外部知识库检索功能,解决传统大模型知识滞后和事实虚构问题。其流程包括知识预处理(向量化存储)、检索优化和增强生成三大阶段。RAG技术在数字政府、智能客服、公文写作等领域广泛应用,即使非技术人员也能通过集成RAG的AI工具或浏览器插件享受其便利。"先检索,再生成"的RAG思维模式可应用于研究与写作、专业咨询等场景,提升AI回答的准确性和时效性。

datian1234的博客 1052

【RAG进阶】提升RAG检索精度的三重魔法:查询转换技术详解,程序员必学必收藏!

本文介绍了RAG系统中的查询转换技术,用于解决用户提问与知识库间的"语义鸿沟"问题。详细阐述了三种查询转换方法:查询重写通过多角度改写问题提高召回率;回溯提示将具体问题转化为更宽泛的概念性问题以获取背景知识;子查询分解将复杂问题拆分为多个简单子问题独立检索。这些方法显著提升了检索准确性和全面性,让AI应用能更精准地理解用户意图并给出高质量答案。

Android23333的博客 830

高级 RAG 优化策略系列(一):让 LLM 能“看懂”的查询优化策略

从查询改写到查询分解,再到嵌入优化和假设性文档嵌入(HyDE),我们探讨了如何通过更智能的查询处理策略,显著提升RAG系统的检索质量与生成效果。

2501_90713449的博客 1062

必学收藏!从零开始掌握RAG技术:大模型检索增强生成系统完全指南

RAG技术通过将LLM的生成能力与外部知识库结合,形成可靠知识闭环。工作流程包括查询解析、文档检索、信息整合与回答生成。核心技术涉及文本分块、嵌入模型选择、向量数据库应用及检索策略优化。高级优化如HyDE、重排序及多跳检索可提升系统性能,需平衡检索质量与生成质量,通过持续迭代实现更智能可靠的AI应用。

2401_85325726的博客 705

RAG全链路核心技术解析:父子分块、Rerank、查询重写与标准化改写

检索增强生成(RAG)作为连接大语言模型与外部知识库的关键技术,其核心原理是通过检索相关文档片段来增强生成过程的准确性与可靠性。该技术的核心价值在于有效缓解大模型的幻觉问题,并使其能够基于最新、特定的知识生成答案。在实际应用场景中,RAG系统广泛用于智能问答、知识库构建和垂直领域搜索。为了构建高效可靠的RAG系统,需要深入理解并优化其全链路中的关键环节,例如采用父子分块策略来组织知识以保持语义完整性,以及引入Rerank模型对初步召回结果进行精排,从而显著提升最终答案的精度。

weixin_33858336的博客 347

一文梳理完全RAG的所有模块优化方法

信息检索和生成语言建模。这种方法旨在为语言模型提供访问外部数据源,来提高其在生成响应时的准确性和相关性,从而增强语言模型的能力。【索引,检索,生成】

qq_29837229的博客 1775
上一篇: 大模型Agent评估完全指南:提升AI应用稳定性的关键技术,开发者必藏!
下一篇: 深度智能体开发实战:基于LangChain与LangGraph的Python实现
Agent学习路线
博客等级 码龄6年 1万+粉丝 1903原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值