RAG:给大模型装上一套专业参考书
通用模型只能凭训练记忆回答,遇到本单位制度、行业法规、内部流程就只能「可能、大概、建议核实」。 RAG(Retrieval-Augmented Generation,检索增强生成)把回答限定在你提供的文档内, 让答案可溯源、可更新、可审计。
Retrieval
Augmented
Generation
91% / 83%
① 四步工作流
Step 1 · Load
文档导入
PDF / Word / TXT / Markdown / PPTX / XLSX 等格式进入知识库,系统统一解析为纯文本。
💡 质量前提:垃圾进 = 垃圾出,文档质量直接决定回答质量。
Step 2 · Chunking
切分
长文档切成小片段(Chunk)。片段太大检索噪声多,太小则语义不完整。常用 300—500 字 + 重叠窗口。
💡 项目参数:文档片段数量建议 30—50;单次上传 ≤100MB。
Step 3 · Embedding
向量化索引
嵌入模型(如 BAAI/bge-m3)把文字转成实数向量,语义相近的文本在向量空间中距离更近,写入向量库建索引。
💡 与关键词检索的区别:语义检索匹配「意思相近」,而不是字面相同。
Step 4 · Retrieve + Generate
检索 + 生成
问题同样被向量化 → 检索 Top-K 相似片段 → 拼接进提示词 → 模型基于片段生成答案并标注引用来源。
💡 这一步就是「增强」:模型不再凭记忆,而是带着资料开卷考试。
② 有无知识库的差距(实测对照)
| 提问 | 无知识库 | 挂知识库 |
|---|---|---|
| 天龙屯堡始建于哪个朝代? | 「可能建于明朝……但我不确定具体年份,建议查阅史料验证。」 模糊、不确定、存在编造风险 |
「始建于明朝洪武十四年(1381年),是明太祖朱元璋为平定云南设立的军屯据点……」 📖 附引用来源与段落位置 |
| 安顺学院的办学定位是什么? | 「是一所地方本科院校,但具体定位不太清楚……」 信息不全 |
「定位为『地方性、应用型』本科院校,以服务地方经济社会发展为己任……」 📖 附引用来源 |
核心结论:知识库让 AI 从「凭记忆作答」切换为「基于文档作答」,大幅减少幻觉且答案可溯源。
项目侧同样验证:咨询响应时间从平均 15 分钟压缩至 10 秒以内。
③ 本项目的 RAG 架构
知识组织:10 个一级 / 15 个二级分类
覆盖烟草专卖法规、营销管理政策、产品信息、客户服务标准、市场监管规范、证件管理流程、 物流配送规程、财务结算制度、信息系统操作、综合行政等核心业务领域。
四阶投喂法
① 原始素材收集
内部文件、政策法规、历史案例多渠道获取。
② 结构化处理
清洗、转换,形成主题分类。
③ 动态关联
建立知识条目之间的内在联系。
④ 智能增强
基于已有知识扩展案例、补充新增。
实测性能
91%
检索精确率(目标 ≥85%)
83%
检索召回率(目标 ≥80%)
≤3s
核心场景知识响应
≤10s
咨询端到端响应
关键参数:嵌入模型 BAAI/bge-m3(需先在 LM Studio / Ollama 下载,
否则创建知识库会报错);文档片段数量 30—50;可选重排模型提升检索精度;按需开启 MinerU 做文档预处理 / OCR。
④ 三代 RAG:从能用,到好用
Naive RAG
朴素 RAG
「切分 → 向量化 → Top-K 检索 → 拼提示词」的直线流程,也是本项目当前所处阶段。
- 优点:实现简单、见效快
- 痛点:切分破坏语义、检索召回不全、上下文冗余、无法处理多跳问题
Advanced RAG
进阶 RAG
在检索前后各加一层优化:检索前做查询改写/扩展,检索后做重排与压缩。
- 查询改写、HyDE(先生成假设答案再检索)
- 混合检索:BM25 关键词 + 向量语义双路召回
- Rerank 重排模型二次排序
- 上下文压缩与去重
Modular / Agentic RAG
模块化与智能体化
把检索变成可编排的能力:路由、多跳、自我纠错,由智能体决定「查不查、查哪里、查几次」。
- 路由:按问题类型选择不同知识源
- 多跳检索:先检索 A,据结果再检索 B
- 自我纠错:置信度低时自动改写重查
- GraphRAG:用知识图谱补上跨文档关系
⑤ 可落地改进清单(按性价比排序)
| 改进项 | 解决什么 | 做法 | 成本 | 预期收益 |
|---|---|---|---|---|
| 混合检索 | 纯向量检索对专有名词、条款编号召回差 | BM25 与向量双路召回后融合(RRF) | 低 | 召回率提升最明显,优先做 |
| 重排 Rerank | Top-K 里混进弱相关片段,稀释上下文 | 检索 Top-50 → 重排取 Top-5 再送入模型 | 中 | 精确率与答案忠实度同步提升 |
| 查询改写 / HyDE | 用户提问口语化,与文档表述不匹配 | 先让模型生成规范查询或假设答案,再检索 | 低 | 模糊查询场景召回显著改善 |
| 语义切分 | 固定长度切分切断条款、表格与上下文 | 按标题层级 / 句号 + 重叠窗口,保留来源与页码 | 低 | 减少「答非所问」与断章取义 |
| 强制引用与拒答 | 模型绕过资料自由发挥 | 提示词约束:无依据即回答「资料未提及」并标注 [n] | 极低 | 合规场景的刚需,审计可追溯 |
| 评测集与回归 | 改了参数说不清是好是坏 | 建 50—100 条问答对,定期跑精确率/召回率/忠实度 | 中 | 把「玄学调参」变成可度量迭代 |
| GraphRAG | 跨文档的多跳关系问题(A 与 B 的关联) | 抽取实体关系建图,图上检索再生成 | 高 | 适合法规体系、案例库等强关联场景 |
| Agentic 路由 | 不同类型问题混在一个库里互相干扰 | 按问题路由到不同知识源/工具,必要时多跳 | 高 | 复杂业务流程的终局形态 |
⑥ 现场演示:浏览器内检索(无需模型)
TF-IDF + 余弦相似度,全在前端计算输入一个问题,观察检索命中的片段与相似度分数——这就是 RAG 里「R」的部分, 后面「G」只是把命中片段交给模型写成通顺答案。
口径说明:为做到零后端,本演示用 TF-IDF + 余弦相似度 + 短语加权近似语义检索,
与生产环境的 bge-m3 稠密向量检索存在差距——尤其是对同义改写与长句语义的召回。
生产部署请按「部署流程」接入嵌入模型与向量库。