RAG相关问题整理学习

1、什么场景应该选择RAG而不是Fine-tuning?

RAG是给模型外挂知识库,Fine-tuning是模型微调,用自己的数据再训练模型,让模型具备某些能力,相当于把数据压缩到模型中。

1、知识需要频繁更新,比如:产品文档、政策、内部资料等,用RAG只需要更新向量库

2、需要引用知识的来源,比如:告诉用户答案的引用文档

3、数据量有限,Fine-tuning需要大量高质量数据,RAG有多少用多少,门槛低。

4、预算,rag开发快、部署简单、成本低,微调贵、慢、门槛高

2、文档分块策略有哪些?

1、固定长度

按字符数/Token数切分,实现简单,块大小可控,可能切断句子,破坏语义

适合:结构混乱、无格式、纯文本

2、LLM语义切片

用LLM判断语义边界,语义完整性最好,成本高,速度慢

适合:对精度要求极高、不差成本的场景

3、层次切片

按文档结构(标题/章节)切分,需要文档有清晰结构

适合:手册、文档、论文、说明书

4、滑动窗口

固定窗口 + 重叠区域,保留上下文连续性,存储空间增加、有冗余

适合:长文本、小说、连续叙述类内容

3、项目中用了什么分块策略?为什么选它?

句子切分:按标点符号切,比如:句号、问号、感叹号、换行、顿号,分好等。

示例:

项目中用滑动窗口 + 句子边界的混合策略

按句子边界切分,保证每个块语义完整

使用滑动窗口,设置20%重叠,确保跨块的信息不会丢失

【原因】

产品文档,内容之间有上下文依赖

小块检索精度高,但可能丢上下文

大块上下文完整,但噪声多,检索精度下降

20%重叠在存储开销和检索质量间取得平衡

4、描述下RAG系统流程?

R = Retrieve(检索)

A = Augmented(增强)

G = Generate(生成)

先从知识库中查资料

把查询的资料和用户问题给大模型

大模型根据这些上下文,生成答案

详细步骤如下,可以采用框架qwen-Agent、langchain等框架快速搭建

1、文档解析

将PDF、word、excel、html等非结构化文档中提取文本

2、文档切块

将长文档切分小块

3、向量化

使用Embedding模型将文本块向量化,比如:text-embedding-v4

4、向量存储

将向量存入向量数据库,构建知识库

5、向量检索

将用户问题向量化,再向量数据库中匹配,召回top-k个

6、rerank

使用rerank模型,对上一步的top-k,再精确匹配,找出最优的几个匹配项

7、prompt构建

将检索到的上下文,拼接到提示词中,作为LLM的上下文

8、生成

LLM根据上一步输入,生成回答

5、你在项目中用了哪个 Embedding 模型?为什么选它?

示例:

使用了 text-embedding-v4

【原因】

1、模型在中文理解上表现好

2、维度支持512/1024,选择1024,在精度和存储上平衡

3、生态兼容: 与通义千问系列模型配合使用,可无缝对接 LangChain、Qwen-Agent 等 RAG 框架,降低开发与运维复杂度

备注:

512维:一句话512个特征标签

1024维:一句话1024个特征标

6、如果RAG效果很差,你会从哪几个方面去调试?

【数据质量问题】

1、本身提供的数据文档错误、不准确。

【检索阶段】

1、召回内容不符合要求

a、top-k数量不够,增加top-k数量

b、相关性太低,更换Embedding模型,比如:更适配中卫的Embedding模型

2、排查文档分块

a、分块太大,噪声多,检索不准(减小chunk_size,添加Rerank)

b、分块太小,上下文丢失(增大chunk_size,增加overlap)

3、用户口语化问题

a、用户口语化问题未检索到,使用query改写,让问题更规范,提升检索匹配度

【生成阶段】

1、LLM生成能力不足,理解力差,更换模型

2、LLM幻觉,未遵循上下文

强化prompt指令,"请严格基于提供的上下文回答,不要编造内容"

3、生成的答案很简洁

修改Prompt指令,要求详细回答、按指定格式输出

7、向量检索有什么缺点?什么是混合检索?

向量检索是语义匹配,BM25是关键词匹配

向量检索缺点:可能匹配不准

1、对精确关键词匹配不敏感 (如产品型号、人名)

比如产品型号、人名、编号、术语,只看语义相似度,不看字面是否完全一致。

2、容易匹配不准,甚至漏掉字面完全匹配的内容

语义相似但实际不是同一个东西,也会被召回

混合检索 = 向量检索 + BM25匹配,结合向量检索和关键词匹配相结合。

【示例】

缺点 1:对精确关键词、编号、型号不敏感

例子:

文档里有:"苹果 15 Pro 电池容量 4400mAh"

用户问:"苹果 15 电池多少?"

向量检索可能会把

"苹果 14"、"苹果 15 标准版"、"苹果 15 Pro Max"

都当成语义相似,把正确的排到后面去。因为向量看语义,不看精确字。

8、RAG如何处理超长文档?

1、分层索引: 先检索摘要,再检索详细段落

2、长上下文模型: 使用支持128K+的模型 (如Qwen, Claude)

3、滑动窗口: 块之间重叠,保留上下文的分块策略

9、如何防止 LLM 幻觉?

1、Prompt明确指令,"仅基于背景知识回答,不确定时直接说不知道"

2、让LLM标注答案引用的来源

要求答案中标注来自哪段文档,避免无依据编造。

3、rerank重排

保证召回的上下文是准确、相关的

4、答案验证: 用另一个LLM检查答案是否有上下文支撑

5、降低 temperature: 减少随机性

减小生成随机性,让模型输出更保守、更稳定。

10、多模态 RAG 怎么做?

使用同一个多模态Embedding模型,将文本、图片映射到同一向量空间。

1、图片处理

使用多模态Embedding模型,将图片向量化

2、表格

转换为Markdown或json格式,保留结构,再进行向量化

3、PDF

文本通过解析提取,图片 / 图表通过 OCR 识别,分开处理后统一索引。

4、视频处理

视频抽帧得到图像,语音转文字得到文本,分别向量化后建立多模态索引。

相关推荐
会编程的吕洞宾21 分钟前
DeepAgents In Action学习(Third)
python·学习·django
章老师说30 分钟前
壬远 AI 网关 v0.4.0 正式发布:模型定价、RMB 配额与多 Key 路由,让企业级 AI 流量治理再进一步
人工智能·ai·开源·负载均衡·ai-native
Be for thing31 分钟前
【嵌入式成长10】STC89C51蜂鸣器|有源/无源蜂鸣器区分、三极管驱动、定时器播放音乐实战
单片机·嵌入式硬件·学习
那年窗外下的雪.33 分钟前
Linux 学习笔记
linux·笔记·学习
Roadinforest41 分钟前
Claude Code 架构深度解析:从 Agent Loop 到 Tool、MCP 与 Context
ai·架构·llm·agent·anthropic·claudecode
todoitbo1 小时前
一个接口,三个模型:一个Token Plan 的前后端开发实践
ai·项目·前后端·token plan·aiionly
俊哥V1 小时前
每日 AI 研究简报 · 2026-08-23
人工智能·ai
爱奥尼欧1 小时前
【daily practice】最长数字串怎么找?岛屿数量如何沉岛秒数?六棍拼两三角形有几种验法?(5.字符串中找出连续最长的数字串、岛屿数量、拼三角)
笔记·学习
Bernice橘子1 小时前
职场英语学习计划Day040
学习
tachibana21 小时前
把RAGAS跑起来
数据库·人工智能·ai·架构·大模型·llm·rag