中小企业 AI 知识库 RAG 方案落地指南
一、为什么企业需要 RAG,而不是直接调大模型?
大语言模型(LLM)有三个关键局限:
- 知识截止:训练数据有时间窗口,无法回答公司内部 2025 年后的制度文档。
- 幻觉严重:编造不存在的财务数据、政策条款,企业场景风险极高。
- 数据泄漏:把合同、客户名单贴到公域大模型,存在合规与数据安全风险。
RAG(Retrieval-Augmented Generation,检索增强生成)通过「把私有文档做向量检索 → Top-K 片段塞进上下文 → 让模型只基于检索内容回答 → 附带来源引用」的流水线,一次性解决上述三个问题。
二、一个可落地的最小 RAG 架构
┌───────────────┐ ┌─────────────────────┐ ┌────────────────┐
│ PDF/Word/URLs │────▶│ Document Chunking │────▶│ Embedding │
└───────────────┘ └─────────────────────┘ │ (bge-small-zh)│
└───────┬────────┘
▼
┌────────────────┐
│ Vector Store │
│ (Milvus / Qdrant)
└───────┬────────┘
▲
┌───────────────┐ ┌─────────────────────┐ │
│ 用户 Query │────▶│ Query Rewrite │─────────────┘
└───────────────┘ └─────────────────────┘
│
▼
┌─────────────────────┐
│ Hybrid Search │ (向量相似度 + BM25 关键词 + 元数据过滤)
└───────────┬─────────┘
▼
┌─────────────────────┐
│ Rerank (bge-reranker)
└───────────┬─────────┘
▼
┌─────────────────────┐
│ Prompt + Context │
└───────────┬─────────┘
▼
┌─────────────────────┐
│ LLM (私有化 Qwen72B)
└───────────┬─────────┘
▼
最终答案 + 引用来源段落
三、关键环节选型建议
| 环节 | 小规模(<10 万文档) | 中规模(10-100 万) | 大规模(百万+) |
|---|---|---|---|
| 向量数据库 | pgvector | Qdrant | Milvus |
| Embedding | bge-small-zh-v1.5 | bge-large-zh-v1.5 | bge-m3 |
| Rerank | 跳过 | bge-reranker-v2-m3 | bge-reranker-v2-m3 |
| 文档切分 | 512 tokens + 128 overlap | 语义切分 + 512 tokens | 语义切分 + 结构切片 |
| 部署成本(月) | 单台 8G 显存机器 | 2 台 24G 显存机器 | 集群 10 张 A10 |
四、效果评估指标(必须上线前量化)
- 召回率(Recall@Top-K):选 100 条标准问答对,答案段落是否在检索 Top-K 中;目标 ≥ 0.90。
- 引用准确率:生成答案引用的段落是否真正支持答案;目标 ≥ 0.85。
- 拒答率:知识库没有的内容,模型明确说「未检索到相关资料」;目标 ≥ 0.95。
- P95 响应时延:端到端 5 秒内(复杂问题放宽到 10 秒)。
五、成本控制
- Embedding + Rerank 是固定成本(模型一次加载,推理 batch 化可 3-5 倍吞吐)。
- LLM 推理是大头:单轮 1000 token 成本约 ¥0.003-0.01;严格控制检索上下文长度到 8k token 以内。
- 缓存:同个问题(或向量距离<0.01)命中缓存直接返回,命中率通常 30-60%。
六、FAQ
Q1: 公司只有 OCR 扫的合同扫描件,能做 RAG 吗?
A: 可以。先上多模态 OCR(PaddleOCR + 版面分析)或用 MinerU 抽取,再走语义切分 + RAG。建议人工抽样 20 份检查 OCR 准确率,低于 90% 要先优化扫描件质量。
Q2: 数据敏感,能完全不连公网大模型吗?
A: 可以。Qwen2.5-72B(或更小的 14B)+ vLLM 推理框架可 100% 私有化部署,数据不出内网。3 张 24G 消费级显卡就能跑 14B 4bit 量化,延迟可接受。
Q3: RAG 回答还是有幻觉怎么办?
A: ① 加 Reranker 提升检索质量;② 加 System Prompt「只根据以下上下文回答,严禁编造;无法回答时明确说未找到」;③ 加 Self-Check 二次校验模块,让另一个 Prompt 验证引用是否支持答案。