在大模型迅速发展的当下,RAG -- Retrieval-Augmented Generation成为企业构建智能问答、知识助理和自动化咨询系统的首选框架。但“RAG很强大”≠“RAG很好用”。很多企业在实践RAG时面临落地困难,归根结底,是没有真正理解RAG的核心原理与工程挑战。
本文将围绕以下五个方面深入解析如何用好RAG:
- 为什么直接使用企业文件效果很差?
- 如何构建高质量的知识库?
- Excel管理知识切片的技巧
- 检索准确率为何低?如何优化Query?
- 如何利用Embedding & Rerank模型提升性能?
一、用RAG面对的核心挑战:知识切片不是你想切就能切
❌ 误区:把PDF、Word、PPT导进知识库就能用
很多团队希望将企业文档“一键导入”作为知识源,实际上效果极差。这是因为:
- 文档往往结构松散,主题跳跃,不适合检索;
- 用户提问无法精准对应原文内容;
- RAG本质上是检索 + 生成,而检索部分高度依赖结构化知识切片。
✅ 正确认知:70% 的工作量在知识切片。
知识切片的目标不是切,而是重构知识 —— 你需要从用户问题出发,理解哪些内容是关键,再把文档拆解成有意义的片段,甚至重写成“问题+答案”对。这一过程不是一个简单步骤,而是一个贯穿整个产品生命周期的反复迭代过程。
📌 举例:
你有一份讲述公司加班制度的PDF,如果用户问:“我晚上加班到10点,公司是否需要支付加班工资?”
文档中可能写的是:“公司员工晚于20:00下班,视为加班,需登记并获得批准。”
你需要将它重写成一条问答对:
问:晚上加班到10点,公司是否支付加班工资?
答:如晚于20:00下班,视为加班。需登记并获得批准,方可享有加班工资。
二、构建RAG知识库的核心原则
✅ 核心思路:从用户问题出发,而不是从文档出发!
构建一个有效的RAG知识库,需要以下步骤:
- 明确场景与目标:哪些场景是RAG能解决的?哪些问题用户会反复问?
- 整理典型问题:为每个场景总结“用户最可能提出的核心问题”;
- 反向映射参考内容:从文档中找到支撑这些问题的内容;
- 构建问答对:如果能明确用户问题,最好重写成QA形式;
- 无法QA的再切片:对信息不够明确或问题范围模糊的,再以摘要或片段形式处理。
💡 结论:不是“怎么切文档”,而是“用户会问什么,我们该怎么回答”。
三、Excel管理知识库:简单、透明、可迭代
✅ 为什么推荐用Excel?
Excel是一种结构化且易于维护的方式,便于版本控制与团队协作。一个高质量的知识库Excel应包含:
- 标签(场景、主题等)
- 标题(问题)
- 内容(答案或片段)
- 元数据(来源文档名、页码、作者、创建时间等)
📌 示例表格结构:
| 标签 | 问题 | 回答内容 | 来源文件 | 创建时间 |
|---|---|---|---|---|
| 加班制度 | 晚上加班到10点,公司支付加班工资吗? | 晚于20:00下班视为加班,需登记并获得批准。 | policy.pdf | 2023-09-01 |
此外,标记哪些字段进入向量数据库(如标题+回答)也很关键,以确保Embedding检索的内容是有价值的。
📌 图片文件如何处理?
对于图片、扫描件、图表等非文本内容,建议:
- 使用多模态模型生成描述;
- 转为图片处理逻辑后,仍以问答或描述形式整理入Excel;
- 对合并单元格、复杂表格,建议截图 + 图片描述。
四、如何优化RAG的Query处理?
很多人忽略了“用户提问”这一环节对RAG性能的影响。
✅ 关键点:
- 默认使用用户最后一轮提问作为Query;
- 多轮对话时建议引入对话上下文(可以用摘要方法拼接历史);
- 部分问题无法穷举时,要改写检索词。
📌 示例:
用户问:“从陆家嘴打车去虹桥机场多少钱?”
如果知识库只有“打车计费规则”作为片段,很难匹配该问题。
此时需要对用户Query进行结构化转换,例如:
原问题:从陆家嘴到虹桥机场多少钱?
改写为检索词:打车费用 + 城市 + 起终点(结构化信息)
✅ 提升检索准确率方法:
- 改造知识库结构(见上文 Excel管理);
- 改造检索词逻辑:加入地理信息、实体识别等技术进行“Query重写”。
五、Embedding & Rerank 是检索质量的关键
🔍 Embedding 原理简述:
- 将一段文字转换为向量(高维数字表示);
- 向量之间的“夹角”或“距离”代表两段文字的语义相似度;
- 用来在海量文本中“以文找文”。
✅ 高质量Embedding模型的训练方法:
使用大量三元组训练:
- Anchor(锚点):“秦始皇统一六国后,推行了中央集权的政治体制。”
- Positive(正例):“秦朝实行了法家思想,中央政府的权力得到了加强。”
- Negative(负例):“宋朝的科举制度对教育有深远影响。”
注意:传统负例(意思差太多)会让模型学不到“细粒度差异”,需改用“难负例(Hard Negative) ”,意思接近但不相关:
- 锚点:“秦始皇统一六国后推行中央集权。”
- 难负例:“秦朝设立郡县制度加强地方管理。”(语义接近但不完全等价)
✅ 使用“Hard Negative”能让模型学会“语义分辨力”。
📌 垂直行业的Embedding微调:
- 教育:问题-答案对
- 医疗:症状-诊断方法
- 法律:案情-判决依据
- 金融:投资方向-风险提示
比起直接微调大模型,微调Embedding更安全、成本更低。
六、Embedding + Rerank 的最佳实践
RAG中推荐的两阶段检索架构:
- Embedding模型检索前20个最相关的知识切片(粗检,快速);
- Rerank模型对这20个切片逐一打分,排序出最相关者(精检,准确)。
✅ Rerank 是提升精准度的关键,尤其是知识切片相似度接近时。
常用Embedding & Rerank模型推荐:
| 模型名称 | 出品方 | 特点 |
|---|---|---|
| BGE | 智源研究院 | 通用中文Embedding模型 |
| BCE | 网易 | 中英双语对齐能力强 |
| QWen GET | 阿里 | 对长文本切片支持良好 |
| Conan-Embedding | 腾讯 | 适合对话类语义检索场景 |
结语:RAG不是“AI的外挂”,而是“认知工程的系统工程”
很多团队失败不是因为RAG不好,而是忽略了RAG是检索工程 + 语义工程 + 用户建模 + 知识重构的系统协同。
用好RAG,需要以下三板斧:
- 从用户问题出发重构知识库结构(问答对优先) ;
- 优化Query处理流程,增强语义对齐;
- Embedding + Rerank 组合,提升语义识别的精准度。
只要方向对,方法精,RAG就能真正成为你的“企业大脑”。