收藏!小白程序员必看:如何在大模型RAG系统中做出明智组件选型(附数据支撑)

张开发
2026/4/13 11:03:54 15 分钟阅读

分享文章

收藏!小白程序员必看:如何在大模型RAG系统中做出明智组件选型(附数据支撑)
本文深入探讨了在大模型RAG系统如使用Milvus、text-embedding-ada-002等组件搭建过程中选型对比的重要性远超简单复制教程。文章详细分析了向量数据库、Embedding模型及Chunk大小策略的选型决策依据强调基于吞吐量、延迟、成本和领域适配的权衡并提供数据支撑的选型建议。通过对比不同方案的效果揭示了通用模型在垂直领域的局限性及微调的必要性同时指出了切分策略对系统性能的关键影响。最终强调在当前约束下做出最合适的选择并清晰阐述选型理由、测试数据及发现的问题是展现工程判断力的关键。RAG 系统搭完之后很多人说得出我用了 Milvus text-embedding-ada-002 512 token 切分但说不出为什么选这三个也没测过换一套方案效果是好是坏。这道题考察的核心是你在搭系统时有没有做过选型对比而不只是抄了一份教程照着做。面试官真正想听到的不是我用了什么而是我为什么选这个测过什么发现了什么问题。回答这道题的主线是RAG 三大组件的选型不是查排行榜是在吞吐量、延迟、成本、领域适配四个维度上的权衡——每一个选型背后都应该有数据支撑。RAG三大组件选型决策框架图向量数据库选型吞吐量、延迟、管理成本主流的选择就那几个Milvus、Faiss、Chroma、Weaviate。很多人直接选了教程里默认的那个没有仔细想过为什么。FaissMeta 开源纯粹的向量检索库速度最快但只是个库——不是数据库不支持持久化存储重启就丢数据不支持过滤不能按文档类型、时间范围筛选后检索也没管理界面。适合研究场景或者数据量 10 万向量的小规模项目。Chroma部署最简单几行代码就跑起来特别适合 demo 和本地开发验证。但在 5000 份文档约 30 万条向量的规模下我们测下来单次查询延迟 200-300ms并发能力弱10 并发 QPS 约 15不适合生产环境。MilvusZilliz 开源专为生产设计持久化存储支持属性过滤按 doc_id、业务线、时间等条件缩小检索范围分布式部署完整的监控 API。缺点是部署配置复杂本地起一个 standalone 模式需要 Docker 配置 MinIO etcd不如 Chroma 开箱即用。Weaviate功能与 Milvus 接近原生支持混合检索向量 BM25 内置集成适合不想自己实现 BM25 的场景。但我们项目里 BM25 是分离部署的用 Elasticsearch所以 Weaviate 的这个优势没用上。我们的选择是Milvus standalone理由很具体5000 份文档、约 30 万条向量、线上需要支持按保险产品线过滤、要求 P99 查询延迟 100ms。测试数据方案QPS10并发P99延迟持久化属性过滤Faiss内存12005ms❌❌Chroma15280ms✅弱Milvus standalone32035ms✅✅Weaviate28042ms✅✅Faiss 速度最快但无法用于生产Chroma 延迟太高Milvus 和 Weaviate 都满足要求选 Milvus 的原因是运维工具链更成熟团队里有熟悉它的人。四种向量数据库核心指标对比图Embedding 模型选型领域偏差是根本问题通用模型在垂直领域场景里的失败模式几乎是系统性的。保险这个领域有大量专有名词——“保单现金价值”、“责任免除”、“等待期”——通用预训练语料里这些词出现的频率极低模型没有学到它们的语义边界。我们测了三个方案text-embedding-ada-002OpenAIMTEB 榜单排名高实际用下来保险专业术语的 Recall5 只有0.54。根因是通用模型把保单现金价值和公司资产净值的向量拉得很近余弦相似度 0.91检索时严重混淆。BGE-large-zh智源中文模型专业术语 Recall5 提升到0.68比 OpenAI 好一些但保险领域在预训练语料里占比低对专业术语的理解仍停留在字面层面。BGE 领域微调用 800 对人工标注的困难正负例语义相近但业务含义不同做对比学习微调专业术语 Recall5 提升到0.89整体 Recall5 从 0.76 到0.83。from sentence_transformers import SentenceTransformer, InputExample, losses from torch.utils.data import DataLoader model SentenceTransformer(BAAI/bge-large-zh-v1.5) # 关键负例必须选语义相近但业务含义不同的样本 train_examples [ # 正例同一概念不同表述 InputExample(texts[保单现金价值怎么算, 保险合同的退保可得金额], label1.0), # 困难负例词汇近含义不同 InputExample(texts[保单现金价值怎么算, 退保金计算公式], label0.0), InputExample(texts[保单现金价值怎么算, 公司净资产估值方法], label0.0), ] model.fit( train_objectives[(DataLoader(train_examples, batch_size16), losses.CosineSimilarityLoss(model))], epochs3, optimizer_params{lr: 2e-5} ) model.save(bge-large-zh-insurance-finetuned) # ⚠️ 微调后必须重新 Embedding 全部文档重建向量索引 # 微调改变了向量空间分布旧向量和新 query 不在同一空间一个高频踩坑微调完直接上线召回率毫无变化——因为向量库里存的还是旧模型的向量。5000 份文档重新 Embedding 花了 2 小时但重建之后 Recall5 立刻从 0.76 跳到 0.83。三种Embedding方案专业术语召回率对比图Chunk 大小与切分策略切分是 RAG 系统里最被低估的环节。在我们的项目里只改切分方案不换 Embedding 模型Recall5 从0.67 提升到 0.91——提升幅度比换最好的 Embedding 模型大 10 倍以上。固定 512 token 的问题按 token 数机械截断不理解文档结构。保险条款里一个保险责任章节有三千字切成六段后每段都是半截话向量相似度算出来根本排不到前几名。更关键的问题是特殊结构处理表格表头丢失大表格被按行切分后下半段的 chunk 里只有数字没有表头LLM 不知道这些数字代表什么。解决方案每个表格切片都复制完整表头。列表前导句丢失1核辐射、2战争这类列表项被单独切成 chunk 后缺少了以下情况不在承保范围这个前导句LLM 面对这条内容无法判断它是正面条款还是免责条款。跨章节内容混合同一 token 窗口里出现了两个不同章节的内容向量编码把两个语义混在一起既不像 A 又不像 B。最终方案效果切分方案Recall5主要问题固定 512 token0.67语义截断严重句子边界切分0.74不理解文档层级语义感知切分V30.91—V3 的核心改进按文档章节结构切而非 token 数关键条款用 1536 token 上限普通段落 1024表格整体保留或按表头数据行分割列表前导句强制保留到每个切片。智能 overlap 数据固定 100 token overlap 比无 overlap 提升 10 个召回点存储成本增加 10%。进一步用句子边界对齐 overlap 边界而非固定 token 数截断又额外提升了 2 个点。三组件联动选型不是孤立的这三个组件的选型之间有相互影响单独优化每一个的效果会打折扣。Embedding 和向量库的一致性Embedding 模型微调后向量空间的分布发生了变化。如果向量库里的索引结构Milvus 的 HNSW 参数是按旧模型分布调的新模型的检索效率会下降。我们重新微调后同时重建了向量库索引P99 延迟从 35ms 降到 28ms。Embedding 和 chunk 大小的匹配BGE-large-zh 输入的最优 token 长度是 512超过这个范围语义质量下降。我们的 chunk 上限 1024 token 对普通段落没问题但对关键条款的 1536 上限实际上会稍微损失向量质量——这是有意识的取舍因为这类条款语义完整性比向量精度更重要。Chunk 大小和向量库检索效率chunk 更大向量数量更少5000 份文档用 512 切出约 40 万向量用 1024 切出约 22 万向量Milvus 的检索速度相应更快。三大组件选型联动关系图面试如何回答这道题第一层先说决策框架20秒三大组件的选型不是查排行榜是在吞吐量、延迟、成本、领域适配四个维度上权衡。每个选型背后都要有测试数据支撑不是这个知名度高就选这个。第二层讲向量数据库30秒Faiss 速度最快但无持久化只适合研究场景Chroma 适合 demo高并发延迟太高10并发P99 280msMilvus 支持持久化、属性过滤、分布式5000份文档30万向量下P99 35ms适合生产。选 Milvus 的核心理由是支持按业务线过滤检索这是纯向量库做不到的。第三层讲 Embedding 选型40秒用了三个版本。text-embedding-ada-002 MTEB 排名高但保险专业术语 Recall5 只有 0.54——通用模型对领域专有名词有系统性偏差。BGE 提升到 0.68但还有偏差。用 800 对人工标注困难负例做对比学习微调Recall5 到 0.89。关键经验困难负例要选语义相近但业务含义不同的样本微调后必须重建向量库索引。第四层讲 Chunk 策略30秒只改切分方案不换 EmbeddingRecall5 从 0.67 提升到 0.91。核心改进按文档章节边界切而非固定 token 数表格每个切片复制表头列表前导句强制保留100 token 智能 overlap。追问准备“Milvus 和 Weaviate 怎么选” — 需要内置混合检索用 Weaviate其他场景 Milvus 运维工具链更成熟“Embedding 微调需要多少数据” — 质量优先于数量800 对高质量人工标注比 5000 对 LLM 生成更有效“chunk_size 怎么确定” — 和文档类型有关保险条款平均句子长度是通用文本 1.5 倍512 太小关键条款用 1536面试答题框架图RAG 三大组件没有最优选择只有在当前约束下最合适的选择。能说清楚我选了什么、为什么选、测了什么数据、发现了什么问题——这才是面试官想听到的工程判断力。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章