Agent_Memory_RAG 面试专题手册
💡 本章节共收录 1406 道面试真题,建议每天复习 10-20 题。
Q1: Milvus中使用了哪种索引算法?
【核心解析】 IVF_FLAT、IVF_SQ8、IVF_PQ等倒排索引;HNSW图索引;ANNOY树索引;索引选择与召回率、性能的权衡
Q2: 针对术语的语义偏移,除了混合检索,有没有试过对Embedding模型进行微调或使用Adapter?
【核心解析】 术语语义偏移的成因;Embedding模型微调方法(如对比学习);Adapter模块的插入与训练;微调与Adapter的效果对比及适用场景
Q3: 当向量库检索出的长期画像与当前会话状态有冲突时,你的系统如何应对?
【核心解析】 冲突检测机制;记忆更新策略(如时间衰减、重要性评估);短期会话与长期画像的融合方法;冲突解决规则或模型仲裁
Q4: 讲一下Agent的长短期记忆,在长对话中如何实现上下文的动态压缩和遗忘?
【核心解析】 短期记忆(如滑动窗口)与长期记忆(如向量存储)的划分;上下文压缩技术(摘要、关键信息提取);遗忘机制(时间衰减、重要性评分);记忆检索与当前对话的融合
Q5: 在Agent系统中,RAG检索到的外部知识是如何喂给模型并防止干扰的?
【核心解析】 知识注入方式(提示词拼接、结构化输入);相关性过滤与重排序;防止无关知识干扰的策略(如置信度阈值、上下文压缩);知识融合与冲突处理
Q6: 什么是Rerank?
【核心解析】 Rerank的定义与目的;在检索流程中的位置(粗排后精排);常见Rerank模型(如cross-encoder);对召回精度和最终效果的影响
Q7: 这个过程是基于全量扫描,还是事件驱动?
【核心解析】 数据更新检测机制;全量扫描的优缺点(简单但低效);事件驱动的实现方式(CDC、消息队列);实时性与一致性的权衡;在RAG或记忆模块中的应用场景
Q8: 讲一下Agent中的短期记忆和长期记忆分别怎样存储?
【核心解析】 短期记忆通常存储在上下文窗口或会话状态中,用于当前对话的连贯性;长期记忆可持久化到向量数据库或知识库,支持跨会话检索;短期记忆管理需考虑窗口长度和摘要技术;长期记忆需更新和检索机制,如RAG;两者结合实现个性化与上下文感知。
Q9: 对于RAG,既然向量检索已经计算了相似度,为什么还要用引入交叉编码器进行重排?
【核心解析】 向量检索使用双编码器,速度快但语义交互较弱;交叉编码器将查询和文档联合编码,捕捉细粒度相关性,提升精度;重排可过滤向量检索的噪声结果;交叉编码器计算成本高,仅用于Top-k候选;两者结合平衡效率与效果。
Q10: Rerank的Top-k数量怎么确定?如何评估Rerank的有效性?
【核心解析】 Top-k数量需权衡精度和延迟,通常基于召回率和资源限制实验确定;评估指标包括MRR、NDCG、召回率等;可通过人工标注或在线A/B测试验证;重排模型的选择影响k值;动态调整k以适应不同查询。
Q11: 混合检索时,BM25和向量检索融合你是如何设置权重的
【核心解析】 通常采用加权求和:score = α * BM25_score + (1-α) * vector_score;α可通过验证集调参确定;也可使用学习到的融合模型如Reciprocal Rank Fusion;需考虑分数归一化,如Min-Max或Softmax
Q12: 你的向量记忆库是如何做去重的?
【核心解析】 基于内容哈希(如SimHash或MinHash)检测近似重复;利用向量相似度阈值判断重复,结合聚类算法;设计去重策略,如保留最新或质量最高的记录;在插入时进行实时去重或定期批量去重;考虑元数据辅助去重,如时间戳、来源等
Q13: 在长对话中,除了截断,你了解哪些更高效的上下文压缩方法?
【核心解析】 使用摘要模型逐步压缩历史对话;基于检索增强生成,只保留与当前查询相关的历史信息;利用记忆模块存储关键实体和事件;采用递归摘要或分层记忆结构;使用特殊token或软提示压缩上下文表示
Q14: 在Milvus里,你如何实现BM25和向量检索分数对齐?
【核心解析】 使用混合检索框架,分别计算BM25分数和向量相似度分数;对两种分数进行归一化,如Min-Max或Z-score归一化;通过加权求和或Reciprocal Rank Fusion (RRF) 合并分数;调整BM25参数(k1, b)和向量检索参数以平衡影响;在Milvus中利用内置的混合搜索功能或自定义评分脚本
Q15: MinerU解析出的结果是Markdown,相比纯文本,Markdown的层级结构对检索有什么好处?
【核心解析】 Markdown的层级结构(如标题、列表)可提供语义边界,便于分块时保持信息完整性;层级信息可用于增强元数据,提高检索相关性;结构化标记有助于解析文档逻辑结构,支持更精准的段落定位;在RAG中,层级上下文可减少信息碎片化,提升答案生成的连贯性。
Q16: 长短期记忆在实现上有什么区别?
【核心解析】 短期记忆通常存储于会话上下文窗口或外部缓存,容量有限,随会话结束可能清空;长期记忆持久化存储于向量数据库或知识库,可跨会话保留;实现上短期记忆注重快速读写,长期记忆需索引和检索机制;长期记忆常结合RAG技术,短期记忆直接拼接进prompt。
Q17: 短期记忆通常存在哪里?
【核心解析】 短期记忆通常存储在Agent的上下文窗口(如对话历史);也可存储在内存型数据库(如Redis)或会话状态中;对于有状态图(如LangGraph),短期记忆可保存在节点状态或检查点;目的是快速访问近期交互信息,维持对话连贯性。
Q18: 讲一下向量检索和关键词检索各自的优缺点。
【核心解析】 向量检索基于语义相似度,能理解同义词和上下文,但可能忽略精确关键词匹配,且计算成本高;关键词检索(如BM25)精确匹配词项,速度快,可解释性强,但无法处理语义变体;混合检索结合两者优势,常在实际RAG系统中使用。
Q19: 为什么RAG比直接问大模型更能减少事实性错误?
【核心解析】 RAG将生成约束在检索到的外部知识上,限制模型自由发挥;提供可验证的引用来源,降低幻觉风险;动态接入最新或领域特定知识,弥补模型训练数据的滞后;通过检索步骤显式引入事实依据,增强答案的可靠性。
Q20: RAG实战:你的文档切片(Chunking)策略是什么?
【核心解析】 根据文档结构(段落、标题)进行语义切片,保持上下文完整;固定大小切片与重叠窗口结合,避免信息断裂;针对不同文档类型(PDF、网页)采用不同预处理;考虑切片大小对检索粒度和生成效果的影响;动态切片策略,如基于句子边界或语义相似度分割。
Q21: 检索优化:为什么在Embedding向量检索的基础上还要引入BM25关键词检索?
【核心解析】 向量检索擅长语义匹配但可能忽略精确关键词匹配;BM25基于词频和逆文档频率,对专有名词、缩写、数字等敏感;混合检索结合两者优势,提升召回率和准确率;通过加权融合或两阶段排序策略整合结果;适用于需要精确匹配和语义理解并存的场景。
Q22: RAG知识库更新时如何实现不停服?
【核心解析】 采用双缓冲或蓝绿部署策略;使用向量数据库的增量更新能力;设计热加载机制动态替换索引;通过版本化知识库实现平滑切换;确保查询服务无中断
Q23: 如何设计Agent的记忆机制?
【核心解析】 区分短期记忆和长期记忆;短期记忆存储会话上下文,长期记忆存储用户偏好和知识;采用向量数据库实现语义检索;设计记忆更新和遗忘策略;平衡记忆容量与检索效率
Q24: 如果不做记忆全量索引,如何实现记忆更新?
【核心解析】 采用增量索引仅更新变化部分;使用时间衰减或重要性采样淘汰旧记忆;基于事件触发局部重建索引;利用缓存机制加速热点记忆访问;设计分层存储结构分离冷热数据
Q25: 长短期记忆在Agent中如何管理?
【核心解析】 短期记忆用滑动窗口或对话历史管理;长期记忆持久化存储并支持语义检索;设计记忆合并与总结机制;根据任务相关性动态加载记忆;实现记忆生命周期管理如过期清理
Q26: 如何做内部代码库的知识库?
【核心解析】 代码解析与索引(AST、语义分割);代码嵌入与检索策略;RAG 在代码库中的应用;权限与安全控制;知识库更新与维护
Q27: RAG 了解吗?介绍一下你 RAG 的项目。
【核心解析】 RAG 的基本流程(检索、增强、生成);索引构建与检索优化;重排序与上下文融合;处理长文档与多文档的策略;项目中的挑战与解决方案
Q28: 在检索链路中,检索质量对Agent的决策准确性有什么影响?
【核心解析】 检索结果的相关性直接影响Agent的信息基础,不准确或无关的检索会导致错误推理;检索延迟可能影响Agent的实时决策效率;检索覆盖度不足会导致Agent遗漏关键信息;检索噪声会干扰Agent的注意力机制;检索结果的排序和呈现方式影响Agent的信息优先级判断。
Q29: 随着大模型上下文窗口的扩大,你认为RAG会被完全取代吗?
【核心解析】 RAG在知识更新方面具有优势,无需重新训练模型即可接入最新信息;RAG能提供可追溯的知识来源,增强可解释性和可信度;对于超长文档或海量知识库,检索仍比全量放入上下文更高效、成本更低;上下文窗口扩大可能缓解对RAG的依赖,但RAG在结构化知识检索、精确匹配等场景仍有价值;两者可能融合,形成混合架构。
Q30: Agent的Prompt是怎么写的?针对模型幻觉问题做了哪些约束?
【核心解析】 Prompt设计需明确角色、任务、工具使用规范、输出格式;约束幻觉可要求模型引用来源、标注不确定性、限制回答范围、使用结构化输出;结合RAG检索增强事实性。
Q31: 在RAG项目中,向量检索的评估是怎么做的?如何保证检索质量?
【核心解析】 评估指标如召回率、精确率、MRR等;使用标注数据集进行离线评估;在线监控检索结果相关性;优化手段包括调整嵌入模型、索引策略、混合检索与重排序。
Q32: Agent 的记忆系统应该如何设计?
【核心解析】 短期记忆用于当前对话上下文,通常基于滑动窗口或向量检索;长期记忆存储用户偏好、历史交互,需持久化和高效检索;记忆管理策略包括摘要、遗忘机制、重要性加权;记忆与 RAG 结合,利用外部知识库增强记忆。
Q33: RAG混合检索机制,是怎么实现的?
【核心解析】 稀疏检索与稠密检索的结合;结果融合策略(如RRF);索引结构与检索流程
Q34: 对于 200 组左右的固定 QA 知识库,你会选择 RAG、LoRA 微调还是长上下文直接输入?
【核心解析】 方案对比:RAG(检索增强生成)适合知识频繁更新、数据量大的场景,LoRA微调适合领域适应、数据量小的场景,长上下文直接输入适合极少量数据且模型上下文窗口足够;决策因素:数据量大小(200组属于小样本)、知识更新频率(固定知识库)、推理成本与延迟、模型能力(长上下文窗口支持);RAG优势:无需训练、可解释性强、易于更新;LoRA微调优势:推理效率高、领域知识内化、无需检索模块;长上下文直接输入:简单直接但成本高、可能超出上下文限制;综合建议:200组固定QA,LoRA微调可能更优,若需快速部署可选RAG
Q35: 长期记忆模块的输入和输出分别是什么?
【核心解析】 长期记忆的输入通常包括对话历史、用户偏好、知识片段等结构化或非结构化数据;输出是经过检索或总结后的相关信息,用于增强当前上下文;存储形式可以是向量数据库、知识图谱或摘要;输入需经过编码和索引,输出需考虑相关性和时效性;设计时需平衡存储成本与检索效率。
Q36: 在复杂场景下如何设计记忆检索策略?如何区分和优化不同的检索方式?
【核心解析】 根据查询类型选择稀疏检索(如BM25)或稠密检索(如向量相似度);混合检索结合关键词和语义匹配提升召回率;引入重排序模型对初检结果进行精排;考虑时间衰减、重要性加权等上下文特征;针对多步推理场景可能需要迭代检索或查询重写。
Q37: 如何做的分块,有没有做重叠
【核心解析】 分块策略(固定大小、语义分块等);重叠的作用(避免上下文断裂);分块大小与检索粒度的权衡;重叠窗口大小的选择;对检索效果的影响
Q38: 对rag的理解
【核心解析】 RAG的基本原理(检索增强生成);RAG与纯生成模型的区别;RAG的组成部分(检索器、生成器、知识库);RAG的优势(减少幻觉、知识更新);RAG的常见挑战(检索质量、生成融合)
Q39: 为什么用rag不用xxxx
【核心解析】 RAG与其他方法(微调、提示工程、纯生成)的对比;RAG在知识密集型任务中的优势;RAG的适用场景与局限性;成本与维护的权衡;RAG与长上下文模型的比较
Q40: 召回的多个网页搜索结果,是如何进行排序和筛选的?
【核心解析】 检索结果的排序策略(如相关性评分、时间衰减);去重与多样性控制;上下文窗口限制下的筛选方法;重排序模型(Reranker)的应用
Q41: RAG 有哪些模块?
【核心解析】 文档加载与解析;文本分割(Chunking);向量化嵌入;向量存储与索引;检索与重排序;生成与引用
Q42: 讲解不同等级的Agent Memory分别具备什么作用,并分享你在项目中采用的Agent记忆解决方案。当记忆内容超出模型上下文窗口时,有哪些可行的信息压缩方式?
【核心解析】 短期记忆(如对话历史)用于维持当前会话上下文;长期记忆(如向量数据库存储)用于跨会话知识保留;工作记忆(如结构化状态)用于任务执行中的临时信息;信息压缩方式包括摘要生成、滑动窗口、记忆蒸馏、选择性遗忘等;实际项目中需结合缓存工具(如Redis)和向量数据库(如Chroma)实现分层记忆
Q43: 拷打RAG:请详细说明RAG(检索增强生成)的实现原理,以及在项目中如何优化检索和生成效果
【核心解析】 RAG结合检索与生成,利用外部知识库增强LLM输出;文档切分与向量化索引策略;检索阶段的相关性排序与多路召回;生成阶段的上下文融合与幻觉控制;针对特定领域的嵌入模型微调;评估检索和生成质量的指标
Q44: 分享你在项目中采用的Agent记忆(Agent Memory)解决方案,当记忆内容超出模型上下文窗口时,有哪些可行的信息压缩方式
【核心解析】 记忆类型:短期/长期/工作记忆;记忆存储与检索机制;上下文窗口限制的挑战;信息压缩方法:摘要、关键信息提取、记忆蒸馏;滑动窗口与分层记忆管理;向量数据库与记忆索引
Q45: RAG 对于不同体量的知识库分别应该怎么处理?如何进行选型设计?
【核心解析】 小规模知识库可直接使用全文检索或简单向量库;中等规模需考虑分块策略、混合检索与重排序;大规模需引入分布式索引、近似最近邻搜索、多级缓存;选型需权衡延迟、召回率、资源成本。
Q46: Agent 的短期记忆如何转化为长期记忆?
【核心解析】 通过记忆管理器对短期记忆进行重要性评估与筛选;将关键信息提取为结构化知识存入长期存储(如向量数据库、知识图谱);设置遗忘曲线或时间衰减机制;支持记忆的检索与更新。
Q47: 在RAG系统中,如何解决Query混乱和检索精度低的问题?
【核心解析】 Query重写或意图澄清;混合检索策略;嵌入模型优化;检索结果重排序;知识库质量控制。
Q48: 你们的RAG系统检索召回精度是多少?如何评估的?
【核心解析】 召回率与精确率指标;评估数据集构建;评估方法(如MRR、NDCG);实际业务场景下的表现;持续优化策略。
Q49: 既然通用大模型可能已爬取罕见病知识,为何还要专门构建RAG系统?
【核心解析】 通用模型知识覆盖不全或过时;罕见病知识专业性强且更新频繁;RAG可提供最新、可溯源的领域知识;避免模型幻觉;满足垂直领域高精度需求。
Q50: Redis 做语义向量相似度检索,内部用的是什么算法?
【核心解析】 Redis 向量检索通常依赖 RediSearch 的向量索引能力,常见算法有 FLAT(暴力精确检索,召回准确但数据量大时性能差)和 HNSW(分层可导航小世界图,近似搜索近邻,查询速度快);相似度距离可选 cosine、L2 或 inner product,需与 embedding 模型匹配;工程上需关注维度、索引构建耗时、内存占用、topK、元数据过滤和向量版本;向量存储通常还需附带文档 ID、租户、类目、权限、更新时间等字段。
Q51: 在使用 RAG 的过程中有没有出现大模型幻觉,如何设计兜底方案?
【核心解析】 RAG 幻觉常见原因包括检索结果不相关、缺失、文档过期、prompt 证据过多导致混淆或模型将相似案例当成事实;RAG 只能降低幻觉,不能消灭幻觉,因生成仍是概率模型;兜底方案需从检索侧(设置相似度阈值、元数据过滤、rerank、文档时效校验)和生成侧(如限制引用来源、增加不确定性表达)共同设计。
Q52: 任务状态有没有必要持久化
【核心解析】 持久化的目的(故障恢复、跨会话连续性);内存状态与外部存储的权衡;持久化策略(数据库、文件系统);对Agent可靠性和用户体验的影响;在长时间运行任务中的必要性
Q53: 应该放memory,还是独立状态存储
【核心解析】 Memory与状态存储的区别(短期vs长期、结构化vs非结构化);根据信息生命周期和访问模式选择存储;Memory通常用于上下文和知识,状态存储用于任务进度;混合方案的考量;对Agent一致性和性能的影响
Q54: 哪些信息进短期上下文,哪些信息进长期记忆,哪些信息只进任务状态
【核心解析】 短期上下文:当前对话历史、即时工具结果;长期记忆:用户偏好、领域知识、历史交互摘要;任务状态:当前任务步骤、中间变量、待完成动作;信息分类的原则(时效性、复用性、隐私);对上下文窗口限制的应对
Q55: Embedding 模型选的是哪个?知识库怎么设计?
【核心解析】 根据场景选择 Embedding 模型(如通用、领域微调、多语言);考虑维度、性能和成本;知识库设计包括文档切分策略、向量存储选型、元数据管理;支持增量更新和版本控制;优化检索质量(如混合检索、重排序)。
Q56: 在RAG召回融合中,是否有必要给不同召回器分配不同权重?如何设计加权RRF?
【核心解析】 标准RRF不依赖原始分数,但工程上可做加权RRF;权重应根据query类型动态分配,如关键词检索在报错定位上更强,向量检索在自然语言需求上更强,图召回在跨文件依赖上更强;权重设计需依赖query理解和路由能力,避免错误召回前置污染;可基于历史评测集、query分类、仓库类型和问题意图动态设权
Q57: 在RAG系统中,重排序阶段的作用是什么?粗排和精排的区别有哪些?
【核心解析】 重排序阶段用更强模型在较小候选集上做精确相关性判断,将最相关结果前置;粗排轻量快速,目标是将大量候选压到几百,强调吞吐;精排用cross-encoder或LLM reranker等,将候选压到最终TopK,强调准确性;代码场景下精排需考虑路径、符号、调用关系和query类型
Q58: RAG中单轮推理和多轮推理的区别是什么?在代码场景下如何选择?
【核心解析】 单轮推理一次检索一次生成,适合明确问题;多轮推理允许查询改写、补查证据、调用工具、修正假设;代码场景下复杂问题(如接口403原因)需多轮推理,涉及路由、中间件、权限配置等多源信息;多轮推理能逐步收敛到关键证据
Q59: 什么是 HyDE(Hypothetical Document Embeddings)?它的原理和适用场景是什么?
【核心解析】 HyDE 先让大模型根据用户问题生成假想答案或文档,再用该文本做向量检索;解决用户 query 短、口语化与知识库文档正式表达之间的语义鸿沟;相当于在检索前进行语义投影,将 query 转换到目标文档的语义空间;对问答式 query 检索技术文档、制度文档等场景有效;假想文档方向错误可能带偏检索,通常需与原 query 检索融合
Q60: 在代码RAG中,如何利用AST(抽象语法树)提升检索效果?
【核心解析】 AST将代码转为结构化表示,去除格式细节;便于函数级切分、依赖分析和符号提取;可构建代码图用于图检索;结合原始代码和AST信息提升召回精度
Q61: 如果同时存储代码片段和代码注释,RAG的表结构应该如何设计?
【核心解析】 代码实体和注释实体应分开建模,避免相互干扰;通过symbol_id或chunk_group_id关联;检索时分通道召回并加权融合;需包含repo、branch等元信息用于过滤
Q62: 什么是RRF(Reciprocal Rank Fusion)?为什么它适合用于混合检索?
【核心解析】 RRF基于排名融合,公式为1/(k+rank);不同召回器分数尺度不可比,排名更稳定;适合代码检索等多路召回场景;弱化单一路径误差,统一排序框架
Q63: 在 RAG 系统中,如何处理 PDF 和表格等非结构化文档的解析与切分?
【核心解析】 PDF 缺乏语义结构,需先进行版面分析、阅读顺序恢复、标题识别、表格提取、页眉页脚去噪;表格不能直接拍平,切分后的 chunk 应保留 title_path、block_type、doc_version 等元信息以维护字段关系;工程上常用“布局解析 + 标题树恢复 + 规则切分 + LLM 修复”的方案。
Q64: 在Agent项目中,RAG模块的文本切分策略是怎样的?窗口大小如何设计?
【核心解析】 文本切分的粒度选择(如句子、段落、固定长度);窗口大小的设定依据(如模型上下文长度、检索精度);重叠窗口的设计与作用;切分策略对检索效果的影响。
Q65: 请介绍向量检索的基本原理,以及在项目中向量数据库的选型考量。
【核心解析】 向量检索的核心原理(如ANN算法、相似度度量);主流向量数据库的比较(如Milvus、Faiss、Pinecone);选型时的关键因素(性能、扩展性、成本);向量数据库在Agent系统中的集成方式。
Q66: 知识库主要存储什么内容?除了向量检索,还有哪些检索方式?
【核心解析】 知识库内容类型(文档、FAQ、结构化数据);向量检索(稠密检索)的原理与局限;稀疏检索(如BM25)的互补性;混合检索(Hybrid Search)策略;知识图谱检索、SQL查询等其他方式
Q67: 如何处理上下文窗口限制?
【核心解析】 滑动窗口截断;摘要压缩(如使用小模型生成摘要);检索增强(只取相关片段);递归/分层总结;长上下文模型(如LongLoRA)的微调
Q68: RAG系统中文本切分策略有哪些?
【核心解析】 固定长度切分与语义切分的对比;滑动窗口与重叠切分;基于文档结构的切分(如Markdown标题);动态切分与检索效果的关系
Q69: 有没有关注新的技术,比如谷歌前段时间发的一篇关于上下文压缩的论文?
【核心解析】 上下文压缩的目的(减少token消耗、提升效率);常见压缩方法(如摘要、关键信息提取);谷歌论文的核心思想(如AutoCompressors);压缩对Agent性能的影响
Q70: PDF文件是如何分片的?文件读取和转换的topk是多少,做的时候有调试过吗?文件读取有限制吗?
【核心解析】 文档分片策略(固定长度、语义分片、重叠窗口);TopK的选择依据与调试过程(召回率与精确率平衡);文件读取的限制(大小、格式、页数)与处理方式;文档解析与转换的工具(如PyPDF2、Unstructured);分片大小对检索效果的影响
Q71: 外接RAG知识库和不用知识库AI的回答有什么区别?向量检索的准确性怎么评估校验的?向量相似度是用什么距离计算?
【核心解析】 RAG与纯生成模型的对比(事实准确性、知识时效性、幻觉控制);向量检索准确性评估方法(命中率、MRR、人工标注);相似度度量方法(余弦相似度、欧氏距离、点积)及其适用场景;检索增强的流程(嵌入、索引、检索、重排序);知识库更新与维护策略
Q72: 在RAG系统中,如何设计文档分块(chunk)的元数据记录方案,以支持答案生成时对引用文档版本和来源的追踪?
【核心解析】 每个chunk需关联唯一chunk_id、doc_id、version_id、title_path、permission_tag、effective_time和source_url;生成答案时可追溯到具体文档版本;日志记录需包含模型中间结果和线上请求日志
Q73: 在Agent长期记忆优化中,向量数据库的分片和索引重建是如何实现的?
【核心解析】 分片策略(如基于哈希、范围或动态分片)以支持水平扩展;索引重建的触发条件(如数据增长、索引参数变更)与在线/离线重建方法;托管服务与自建方案在分片和索引管理上的差异;对查询性能与一致性的影响。
Q74: 在RAG系统中,如何结合BM25和向量召回进行混合检索?为什么制度类问题需要这种融合?
【核心解析】 BM25擅长关键词匹配,适合专有名词、缩写等精确查询;向量召回捕捉语义相似性,但可能遗漏稀有词;融合策略(如分数线性加权、倒数排名融合);制度类问题中术语匹配的重要性;混合检索提升召回率和准确率。
Q75: 为什么在推荐系统中不采用向量检索?
【核心解析】 向量检索基于语义相似度,可能忽略协同过滤信号;推荐需要个性化,纯语义相似度可能不准确;向量检索计算成本高,大规模实时推荐性能差;推荐系统常结合多种召回策略,向量检索只是其中一种;稀疏特征和交互历史在推荐中更重要。
Q76: 在幻觉控制中,缓存设计如何结合数据库?MySQL 和 Redis 有什么区别?你用过哪些存储方案?
【核心解析】 缓存可存储已验证的事实或高频查询结果,减少模型生成幻觉;MySQL 是关系型数据库,支持复杂查询和事务,持久化存储;Redis 是内存键值存储,读写速度快,适合缓存和会话管理;常用方案:Redis 缓存热点数据,MySQL 持久化存储;需考虑缓存一致性、过期策略和淘汰机制。
Q77: 为什么文档类RAG不一定要按固定长度分段?
【核心解析】 固定长度切分容易切断完整语义单元,如标题、定义、表格、条款和上下文关系,导致召回片段证据不完整;实际业务中更常用按标题层级、段落、条款编号、页面结构或元数据切分;对于药品说明书、合同、制度文档等有天然结构的内容,按结构切分效果更好
Q78: 多轮对话上下文过长时,如何有效压缩或管理上下文而不丢失关键信息?
【核心解析】 直接截断会丢失早期关键约束,应将上下文转为状态(任务目标、已确认信息、未解决槽位、冲突点);历史原文只保留最近几轮,早期内容做摘要或结构化存储;训练时使用多粒度样本(短对话训练跟随,中长对话训练状态保持,超长对话训练摘要压缩和冲突修正);可引入外部 memory(如商品属性、订单状态)提升有效上下文密度。
Q79: 在检索增强生成(RAG)系统中,常用的检索策略和向量匹配计算指标有哪些?
【核心解析】 检索策略包括稀疏检索(如 BM25)、稠密检索(如 DPR)和混合检索;向量匹配指标有余弦相似度、点积、欧氏距离等;评估检索质量常用 Recall@k、MRR、NDCG 等;需考虑检索效率、准确性和上下文相关性。
Q80: 知识库是如何构建的?如何处理上传的表格或图片等非结构化文件?
【核心解析】 知识库构建包括文档解析、分块、向量化和索引存储;对于表格文件,需使用专门的解析器提取结构化数据并转换为文本描述;对于图片文件,可结合OCR或视觉模型提取文字信息;分块策略需考虑语义完整性;向量化模型的选择影响检索质量。
Q81: 在企业知识库系统中,如何管理员工对知识库的访问权限?如何解决越权访问问题?
【核心解析】 基于角色的访问控制(RBAC)或属性访问控制(ABAC);文档级或段落级的权限粒度;检索与生成阶段的权限过滤;审计日志与异常检测
Q82: 知识库是如何构建的?
【核心解析】 数据源的接入与清洗;文档解析与分块策略;向量化与索引构建;知识更新与版本管理;质量评估与反馈闭环
Q83: 用户问上个月提交的工单处理到哪一步了,系统在知识检索中召回了很多上个月的工单,但用户想要的那一条没有出现,怎样排查或优化?
【核心解析】 检查查询改写是否准确,是否提取了关键实体(如工单号);评估Embedding模型对工单数据的语义匹配能力;分析分块策略是否导致目标工单被截断或遗漏;考虑混合检索(关键词+向量)提升召回;引入重排序模型对召回结果进行精排;排查索引构建时是否遗漏了该工单。
Q84: 分块具体怎么做的?递归分块对于按段落、按章节这些是怎么实现的?
【核心解析】 分块策略包括固定大小分块、递归分块、语义分块等;递归分块利用文档结构(如段落、章节)作为分隔符,先按大粒度分割,再递归细分;实现时需定义分隔符优先级(如'\n\n'、'\n'、'。');需平衡块大小与语义完整性,避免切断关键信息;可结合文档解析器提取结构元数据辅助分块。
Q85: Embedding模型选的是哪个?知识库怎么设计?重排序如何实现?
【核心解析】 Embedding模型选择需考虑领域适配性、维度、推理速度,常用模型如text-embedding-3、bge等;知识库设计包括索引结构(向量索引+属性过滤)、更新机制、多租户隔离;重排序可使用交叉编码器模型(如bge-reranker)对召回文档进行精细排序;需权衡重排序的延迟与效果,可结合缓存优化。
Q86: Embedding内部怎么完成的向量化了解吗?
【核心解析】 Embedding模型的基本原理(如BERT、Sentence-BERT);文本预处理与分词;向量化过程(将文本映射为固定维度向量);常用Embedding模型(如OpenAI Embedding、Cohere)及其适用场景
Q87: 知识库失效和更新怎么做的?
【核心解析】 知识库失效的检测机制(如时效性检查、数据漂移检测);更新策略(全量更新、增量更新);向量数据库的索引重建;保证更新期间服务可用性的方法
Q88: RAG知识库分块有哪些方法?如何处理知识失效或更新?
【核心解析】 固定大小分块(如按token数);基于语义的分块(如按段落、句子);递归分块;滑动窗口分块;知识更新可采用版本控制、增量索引、定期重新索引或基于触发器的更新机制
Q89: 向量检索的原理是什么?
【核心解析】 向量化表示:将文本等数据通过嵌入模型映射为高维空间中的向量;相似度计算:常用余弦相似度或欧氏距离衡量向量间的相关性;近似最近邻搜索:使用FAISS、Annoy等库实现高效检索;索引结构:如倒排索引、HNSW图等加速查询;应用场景:在RAG中用于从知识库中召回相关文档片段。
Q90: RAG项目开发周期有多长?
【核心解析】 需求分析与数据准备:包括知识库构建、文档解析;核心组件开发:嵌入模型选择、向量数据库搭建、检索模块实现;生成模块集成:将检索结果注入LLM提示词;评估与优化:通过端到端测试调整检索和生成策略;迭代周期:通常需要数周至数月,取决于数据规模和性能要求。
Q91: 在RAG中,分块(chunking)采用了什么方法?
【核心解析】 固定大小分块:按字符数或token数切分,简单但可能破坏语义;递归分块:基于分隔符(如句号、换行)递归分割,保持段落完整性;语义分块:利用嵌入相似度或模型判断语义边界;重叠分块:相邻块之间保留部分重叠内容,避免信息断裂;动态分块:根据文档结构(如标题、表格)自适应调整块大小。
Q92: 多路检索相比单路检索,召回率提升了多少?
【核心解析】 多路检索融合:结合稀疏检索(如BM25)和稠密检索(向量相似度)的优势;互补性:稀疏检索擅长关键词匹配,稠密检索擅长语义匹配;召回率提升幅度:通常可提升10%-30%,具体取决于数据集和检索策略;融合方法:使用加权求和、倒数排名融合(RRF)或学习排序模型;实际效果:在复杂查询或长尾问题上提升更明显。
Q93: 上下文过长怎么解决的
【核心解析】 滑动窗口截断;摘要压缩;分层记忆机制;向量检索召回相关上下文;使用长上下文模型
Q94: 分层记忆机制怎么实现的
【核心解析】 短期记忆存储最近对话;长期记忆持久化重要信息;记忆检索基于相关性评分;记忆更新与遗忘策略;使用向量数据库存储
Q95: 针对项目中的Embedding和ReRank模型,具体是怎么做微调的?
【核心解析】 Embedding模型微调:使用对比学习或双塔结构,正负样本构造策略;ReRank模型微调:基于交叉编码器,使用排序损失如ListNet或Pairwise损失;数据构造需考虑难负例挖掘;训练时可能冻结底层参数;评估指标包括MRR、NDCG等
Q96: 双路召回中TopK是如何确定的?有没有尝试过一个多召回一些,一个少召回一点?
【核心解析】 TopK通常通过离线实验和线上AB测试确定;考虑召回率与计算开销的平衡;双路召回可分配不同配额,如一路召回TopK1,另一路召回TopK2;尝试动态调整配额以优化整体效果;需监控各路的贡献度和重叠度
Q97: 针对项目问题:双路召回的 Topk,k 是如何确定的?有没有试过尝试一个多召回一些,一个少召回一点?
【核心解析】 双路召回通常指稀疏检索(如 BM25)和稠密检索(如向量召回)各取 TopK 再融合;K 值的确定需权衡召回率和性能,可通过离线实验和在线 A/B 测试调整;尝试不对称召回(一路多一路少)以平衡互补性,避免冗余;融合策略(如 RRF、加权求和)对最终效果的影响
Q98: 多路召回后的粗排策略是什么?
【核心解析】 多路召回(如向量检索、关键词检索、知识图谱)的融合方式;粗排模型的选择(如轻量级双塔模型、BM25 加权);粗排效率与精度的平衡;粗排特征设计(文本相似度、时效性、权威性);粗排与精排的级联架构
Q99: 二阶段重排序(Rerank)是如何实现的?
【核心解析】 重排序模型的选型(如 Cross-Encoder、ColBERT);特征工程(语义匹配、上下文相关性);训练数据构造(正负样本挖掘);重排序与粗排的协同;延迟与效果的权衡(如模型量化、缓存策略)
Q100: GraphRAG 相比传统 RAG 的优点是什么?
【核心解析】 GraphRAG 利用实体抽取和多跳机制,支持多跳关系推理,不仅是相似度检索,还能捕捉因果/关联链条;通过扩展邻域检索更相关内容,无需检索全库向量;可解释性强,能给出路径、邻居、证据块;图检索失败时可回退向量检索;生成层需避免胡编,可触发检查确保与证据一致。