一个 AI 产品实习生的 RAG 学习笔记。不是教程,是我真的搞懂了之后写给自己看的东西。
实习的时候接了一个教育智能体的项目。用户问问题,AI 回答。听起来简单。
但模型会编。它会非常自信地告诉你一个完全错误的知识点。在教育场景里,这不是「小问题」。
然后 mentor 说:上 RAG。
嗯,好。那 RAG 是什么?
在 LLM 回答之前,先从你的知识库里找到相关内容,塞进 Prompt,让它「有据可依」地说话。
核心公式:
回答 = LLM( 用户问题 + 检索到的相关文档 )不是让模型「记住」你的数据,是每次提问的时候,把答案提前喂给它。
其实就三步。
为什么不直接用长上下文?2026 年了,Claude 200K,Gemini 1M+。但实际跑下来:贵、慢、Lost-in-the-Middle。产业共识:知识库 < 500 页直接长上下文,> 500 页必须 RAG,最佳方案是组合拳。
流程看起来简单,但每一步的选择都会影响最终效果。
分块(Chunking):切大了不行,切小了也不行。切太大语义稀释,切太小信息碎片化。生产环境推荐:精确问答 256-512 tokens,复杂推理 512-1024 tokens,Overlap 10-20%。一个数据:自适应分块 87% 准确率 vs 固定分块 67%。
Embedding 模型:选错了后面全白搭。中文场景首选 bge-large-zh-v1.5(智源),API 调用选阿里 text-embedding-v3。选模型看语言 → 部署方式 → 维度和性能 trade-off。
向量数据库:别纠结太久。原型用 Chroma(pip install 就能用),生产看 Qdrant/Milvus/Pinecone。先把 pipeline 跑通再说。
理解「为什么会这样演进」比背概念更重要。
理论再好,上线挂了就是挂了。一个扎心的数据:40-60% 的 RAG 实现没能上线生产。根因基本都在检索层。
在字节实习的教育智能体项目里,我的迭代路径:
P0:纯向量检索(Naive RAG) ↓ 准确率不够P1:加 Contextual Retrieval ↓ 关键词场景还是漏P2:混合检索(向量 + BM25) ↓ Top-K 里有噪音P3:加 Reranker 重排序每一步都是被实际问题逼出来的。不是一开始就设计好「我要用 Advanced RAG」,是 Naive RAG 不够用了才一步步往上加。
技术选型:Embedding 用 text-embedding-v4,向量库 ChromaDB(原型阶段),框架 LangChain,模型 DeepSeek-V3.2。
RAG 不难。每一步拆开看都不难。难的是把每一步串在一起让系统在生产环境里稳定地跑,难的是知道什么时候该加什么。
写于 2026 年 4 月。一个还在学习的 AI 产品实习生。参考了 25+ 篇论文和工程实践文档。