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-v44、向量存储将向量存入向量数据库构建知识库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、视频处理视频抽帧得到图像语音转文字得到文本分别向量化后建立多模态索引。