大模型应用开发学习第七天

张开发
2026/4/9 23:50:47 15 分钟阅读

分享文章

大模型应用开发学习第七天
在当前AI原生应用爆发的背景下RAGRetrieval-Augmented Generation检索增强生成已成为大厂后端、AI工程、大模型应用等岗位的核心考点——无论是字节、阿里、腾讯等大厂的算法岗还是Java后端、全栈开发岗只要涉及大模型落地RAG相关问题几乎必考。一、基础概念类必问入门级考察基础认知1. 请解释一下什么是RAG核心解决了大模型的什么问题RAG全称Retrieval-Augmented Generation即检索增强生成是一种结合「外部知识库检索」和「大模型生成」的技术方案。其核心逻辑是当用户发起提问时先通过检索模块从预设的外部知识库中筛选出与问题最相关的上下文信息再将这些信息与用户问题一起输入大模型让大模型基于检索到的真实、精准信息生成回答而非仅依赖大模型自身的训练数据。它核心解决了大模型的三大痛点一是知识过时大模型的训练数据有时间截止线无法获取实时、最新的信息二是幻觉问题大模型可能生成看似合理但不符合事实的内容三是私有数据不可访问大模型无法直接调用企业内部、未公开的私有数据RAG可通过接入私有知识库实现私有数据的安全调用。追问延伸面试官可能会追问“RAG和传统的信息检索有什么区别”传统检索只返回检索结果不进行自然语言生成RAG将检索结果作为上下文让大模型生成连贯、贴合用户需求的回答更符合自然语言交互场景。2. RAG的核心组成部分有哪些每个部分的作用是什么RAG的核心组成分为两大模块——「检索模块」和「生成模块」再加上支撑两个模块的「知识库模块」共三大核心部分各部分作用如下1. 知识库模块RAG的“信息储备库”用于存储需要检索的外部数据可以是文档、数据库等为检索模块提供数据源核心是对原始数据进行预处理分块、Embedding便于高效检索。2. 检索模块RAG的“信息筛选器”核心作用是接收用户问题将问题转化为可检索的向量形式从知识库中快速筛选出与问题最相关的Top N条上下文信息核心目标是“精准、高效”避免无关信息干扰生成结果。3. 生成模块RAG的“回答生成器”接收用户问题和检索模块返回的相关上下文由大模型基于这些信息生成回答核心要求是“贴合上下文、无幻觉、逻辑连贯”同时保留大模型的自然语言表达能力。追问延伸面试官可能追问“检索模块中向量匹配的核心原理是什么”基于Embedding模型将用户问题和知识库中的文本转化为高维向量通过计算向量之间的相似度如余弦相似度筛选出相似度最高的文本实现精准检索。二、核心原理类高频进阶级考察技术深度3. RAG的完整流程是什么从用户提问到生成回答每一步的关键操作是什么RAG的完整流程分为「离线准备阶段」和「在线推理阶段」两步缺一不可具体流程及关键操作如下一、离线准备阶段提前预处理为在线检索做准备1. 数据收集收集需要接入的外部数据私有文档、公开数据、实时接口数据等确保数据的准确性和相关性。2. 数据预处理核心是「文本分块」和「Embedding编码」——① 文本分块将长文档拆分为大小合适的文本块避免分块过大导致检索精度低分块过小导致上下文不完整② Embedding编码通过Embedding模型将每个文本块转化为高维向量。3. 向量存储将编码后的文本向量存入向量数据库如Milvus、Chroma、Pinecone等建立向量索引提升后续检索效率。二、在线推理阶段用户提问后实时处理生成回答1. 问题解析接收用户提问对问题进行简单预处理去冗余、分词确保问题语义清晰。2. 问题编码用与文本块相同的Embedding模型将用户问题转化为高维向量。3. 向量检索将问题向量传入向量数据库通过相似度计算检索出与问题最相关的Top N个文本块N通常取3-5过多易导致上下文冗余过少易导致信息不足。4. prompt构造将检索到的相关文本块、用户问题按照固定格式构造prompt核心是“明确告知大模型基于以下上下文回答问题不要脱离上下文”。5. 生成回答将构造好的prompt传入大模型如GPT、ChatGLM、Llama等生成最终回答同时可添加“引用来源”提升回答可信度。追问延伸面试官可能追问“文本分块有哪些常用方法不同方法的适用场景是什么”常用方法有固定长度分块、语义分块、按章节/段落分块固定长度分块适用于结构化文档语义分块适用于非结构化文档如散文、论文按章节分块适用于有明确层级的文档如手册、书籍。4. RAG中文本分块的核心原则是什么分块过大或过小会有什么问题文本分块是RAG检索精度的核心影响因素其核心原则是「保语义、控长度」——即分块后的数据要保留原始文本的核心语义同时长度要适配Embedding模型的输入限制和后续检索、生成的需求不能过大或过小。分块过大的问题① 检索精度低一个分块包含过多无关信息会导致向量匹配时“噪声干扰”无法精准匹配用户问题② 生成冗余传入大模型的上下文包含无关内容会导致回答冗长、偏离重点③ 超出模型输入限制大模型的context window有限分块过大会导致无法完整传入。分块过小的问题① 上下文断裂无法保留文本的完整语义如一句话被拆成两个分块导致检索到的信息不完整大模型生成回答时出现逻辑断层② 检索效率低分块过多会增加向量数据库的存储压力同时检索时需要匹配更多向量降低检索速度。补充实际项目中分块大小通常结合Embedding模型和大模型的输入限制调整一般建议200-500字/块同时可设置“重叠率”如10%-20%避免语义断裂。追问延伸面试官可能追问“如何设计一个自适应的文本分块策略”结合文档类型、语义相似度和模型输入限制先按固定长度初步分块再通过语义相似度计算合并语义相近的分块、拆分语义断裂的分块同时动态调整分块大小和重叠率。5. 什么是EmbeddingRAG中选择Embedding模型的核心标准是什么首先Embedding嵌入是将文本、图片等非结构化数据转化为高维向量的过程核心是“将语义信息转化为可计算的向量形式”——在RAG中Embedding的作用是让“用户问题”和“知识库文本”处于同一个向量空间从而通过向量相似度计算实现精准检索。RAG中选择Embedding模型的核心标准有3点按优先级排序1. 语义匹配精度这是最核心的标准模型需能准确捕捉文本的语义信息确保用户问题和相关文本的向量相似度高无关文本的相似度低避免检索错误。2. 向量维度维度不宜过高过高会增加向量数据库的存储和检索压力也不宜过低过低会导致语义信息丢失通常选择128-1024维的模型。3. 速度和成本在线推理时Embedding编码速度要快同时模型部署成本要低。补充常用的Embedding模型有开源的Sentence-BERT、ChatGLM-Embedding、M3E闭源的OpenAI Embeddingtext-embedding-ada-002实际项目中优先选择开源模型。追问延伸面试官可能追问“开源Embedding模型和闭源Embedding模型的选型对比”开源模型如Sentence-BERT可控性强、无调用成本、可本地化部署适合私有数据场景闭源模型如OpenAI Embedding精度高、无需自己部署但有调用成本、无法处理私有数据适合非敏感数据场景。三、工程落地类高频核心级考察项目能力6. RAG中常用的向量数据库有哪些各自的优缺点是什么RAG中常用的向量数据库主要有4种各自的优缺点如下核心区分“开源”和“闭源”1. Milvus开源优点开源免费、支持高维向量、检索速度快、可扩展性强支持分布式部署、支持多种索引类型如IVF_FLAT、HNSW适配大规模数据场景缺点部署和维护有一定成本需要具备分布式部署经验2. Chroma开源优点开源免费、部署简单轻量级、API友好适合快速开发和小规模项目缺点不支持分布式部署难以应对大规模数据场景3. Pinecone闭源SaaS服务优点无需部署和维护开箱即用支持大规模数据、检索速度快缺点收费模式按存储和检索量收费、数据隐私可控性差数据存储在第三方4. FAISS开源Facebook推出优点检索速度极快、支持高维向量适合对检索性能要求高的场景缺点不具备完整的数据库功能如持久化、分布式部署需要搭配其他数据库使用补充大厂正式生产环境中优先选择Milvus开源、可扩展、可控性强适合大规模私有知识库的落地原型开发可选择Chroma快速验证方案。追问延伸面试官可能追问“Milvus的索引类型有哪些如何选择”常用索引有IVF_FLAT精度高、速度一般适合小规模数据、HNSW速度快、精度较高适合大规模数据、DISKANN平衡速度和精度适合中等规模数据实际选型需结合数据量和检索精度要求大规模生产环境优先选HNSW。7. RAG和微调Fine-tune的区别是什么什么时候用RAG什么时候用微调RAG和微调都是大模型的“知识补充”方案但核心逻辑、适用场景完全不同具体区别及选型建议如下一、核心区别1. 知识存储位置RAG的知识存储在「外部知识库」向量数据库不修改大模型本身微调的知识存储在「大模型参数」中修改模型本身的权重。2. 知识更新成本RAG更新知识只需更新外部知识库添加/删除文本块、重新编码成本低、速度快微调更新知识需要重新训练模型成本高、周期长需标注数据、训练资源。3. 适用数据规模RAG适合大规模、非结构化的数据如海量文档、实时数据微调适合小规模、结构化的标注数据。4. 幻觉风险RAG的回答基于外部检索的真实数据幻觉风险低微调的回答依赖模型自身训练的知识幻觉风险较高尤其是数据量不足时。5. 成本RAG无需训练部署成本低微调需要大量的标注数据和计算资源GPU成本高。二、选型建议1. 用RAG的场景① 知识需要频繁更新如新闻、政策、企业内部文档② 数据量较大、非结构化③ 私有数据场景避免数据泄露④ 成本有限无需大规模训练。2. 用微调的场景① 知识相对固定如行业术语、固定流程② 数据量小、结构化如特定领域的问答对③ 对回答的专业性、流畅度要求极高如专业医疗、法律问答④ 无网络环境无法检索外部知识库。补充实际项目中常采用“RAG微调”结合的方案——用RAG补充外部知识用微调优化大模型对检索结果的理解和生成能力兼顾灵活性和专业性。追问延伸面试官可能追问“RAG微调的结合方案具体怎么落地”① 先用RAG搭建基础框架接入外部知识库确保回答的准确性② 收集用户的高频问题、不满意的回答标注成结构化数据③ 用标注数据微调大模型优化prompt理解、上下文整合和回答生成能力④ 上线后定期更新知识库同时根据用户反馈迭代微调模型。8. RAG中如何提升检索精度提升RAG的检索精度核心是“从检索的全流程优化”重点关注4个环节每个环节的具体优化方案如下结合大厂实际落地经验1. 文本分块优化采用“语义分块”替代固定长度分块结合文档的语义结构如段落、章节拆分同时设置合理的重叠率10%-20%避免语义断裂分块大小根据Embedding模型和文档类型调整确保每个分块包含完整的语义。2. Embedding模型优化① 选择语义匹配精度高的模型② 对文本进行预处理提升Embedding编码的准确性③ 若有特定领域数据可对Embedding模型进行微调适配领域语义。3. 检索策略优化① 采用“混合检索”向量检索关键词检索向量检索负责语义匹配关键词检索负责精准匹配如专有名词、人名互补提升精度② 调整检索的Top N数量③ 引入“重排机制”对检索到的文本块进行语义相似度重排筛选出最相关的内容。4. 知识库优化① 定期清理知识库中的冗余、过时、错误数据避免干扰检索结果② 对知识库进行分层优先检索高频、相关层级的内容③ 引入“用户反馈机制”将用户标记的“检索错误”数据用于优化分块、Embedding和检索策略。追问延伸面试官可能追问“混合检索向量关键词具体怎么实现”① 向量检索将用户问题和文本块编码为向量计算相似度筛选Top N文本块② 关键词检索提取用户问题中的关键词在文本块中进行关键词匹配筛选包含关键词的文本块③ 合并两个检索结果去除重复内容按语义相似度重排得到最终的检索结果。四、进阶拓展类9. 什么是多模态RAG和传统文本RAG有什么区别多模态RAG是传统文本RAG的延伸核心是“支持多模态数据文本、图片、音频、视频的检索和生成”即知识库中不仅包含文本数据还包含图片、音频等非文本数据用户可以通过文本或图片提问RAG检索相关的多模态数据再由大模型生成多模态回答如文本图片说明。和传统文本RAG的核心区别的是1. 数据类型传统RAG只支持文本数据多模态RAG支持文本、图片、音频、视频等多模态数据。2. Embedding方式传统RAG只用文本Embedding模型多模态RAG需要用多模态Embedding模型如CLIP将不同类型的数据转化为同一维度的向量实现跨模态检索如用文本检索图片。3. 生成方式传统RAG只生成文本回答多模态RAG可生成文本图片、文本音频等多模态回答更贴合真实用户需求。易错点提醒不要把“多模态RAG”和“多模态大模型”混淆多模态RAG的核心是“多模态检索生成”而多模态大模型是“能处理多模态输入输出的大模型”两者是“方案”和“工具”的关系。10. RAG在高并发场景下如何保证检索速度和系统稳定性RAG在高并发场景下如每秒上千次检索请求核心优化方向是“提升检索速度”和“保证系统高可用”具体落地方案如下大厂实际部署经验1. 向量数据库优化① 采用分布式部署如Milvus的分布式集群分担检索压力② 选择高效的索引类型如HNSW提升检索速度③ 对向量数据库进行缓存优化减少重复检索。2. 检索流程优化① 采用“分层检索”减少检索的数据量② 限制检索的Top N数量避免过多计算③ 对Embedding编码进行缓存避免重复编码。3. 系统架构优化① 引入负载均衡将检索请求分发到多个节点② 采用微服务架构将检索模块、生成模块、知识库模块拆分各自独立部署避免单点故障③ 加入降级策略如高并发时暂时关闭重排机制优先保证检索速度。4. 硬件优化为向量数据库和Embedding编码模块配置高性能GPU/CPU提升计算速度采用SSD存储提升数据读取速度。五、面试总结必看大厂面试中RAG相关问题的考察重点的是「基础认知工程落地问题解决能力」1. 基础题必答重点掌握RAG的定义、核心组成、完整流程确保不丢基础分2. 进阶题拉分重点掌握文本分块、Embedding选型、向量数据库选型、检索精度优化体现技术深度3. 拓展题高分了解多模态RAG、高并发场景优化体现对行业热点和实际落地的关注。最后面试官考察RAG本质是考察你“用大模型解决实际问题的能力”所以回答时要结合工程落地避免只说理论多讲“怎么做”“为什么这么做”才能脱颖而出

更多文章