RAG 的工程优化
理解 RAG(Retrieval-Augmented Generation) 后,真正决定系统效果的不是“是否用了 RAG”,而是 RAG 的工程优化。 很多企业做出来的 RAG 效果差,其实都是这几个环节没做好。
下面是 RAG 系统最核心的 8 个优化点(几乎所有先进 AI 知识系统都会做)。
一、Chunk Strategy(分块策略)
这是 RAG 最重要的优化点之一。
如果 chunk 切得不好:
检索不到正确信息
常见 chunk 方式
1 固定长度 chunk
例如:
500 tokens
优点:
- 简单
缺点:
- 可能切断语义
2 滑动窗口(Overlap)
例如:
chunk_size = 500
overlap = 100
结构:
chunk1: 0-500
chunk2: 400-900
chunk3: 800-1300
优点:
减少信息丢失
3 语义 chunk(推荐)
按:
段落
标题
章节
例如:
Markdown
HTML
PDF章节
这是效果最好的。
二、Hybrid Search(混合检索)
只用 向量搜索其实是不够的。
原因:
向量搜索擅长语义
不擅长关键词
例如:
用户搜索:
HTTP 404
向量搜索可能找不到。
所以现代 RAG 都用:
Hybrid Search
结构:
vector search
+
keyword search
关键词搜索通常用:
- Elasticsearch
- OpenSearch
最终:
score = vector_score + bm25_score
三、Rerank(重排序)
向量搜索返回:
top_k = 10
但这些文档 未必最相关。
所以需要:
reranker model
重新排序。
流程:
query
↓
vector search
↓
top 20 docs
↓
reranker
↓
top 5 docs
常用 reranker:
- bge-reranker
效果通常能提升:
20%+ 准确率
四、Query Rewrite(查询改写)
用户问题往往 表达不清楚。
例如:
它什么时候发布?
RAG 不知道:
它 = 什么
所以需要:
query rewrite
例如:
原问题:
它什么时候发布?
改写为:
GPT-4 什么时候发布?
通常用 LLM 做:
Rewrite Query
五、Multi Query Retrieval
一个问题往往可以:
多种表达方式
例如:
用户问:
怎么优化 JVM 内存?
可以扩展:
JVM 内存调优
JVM GC 优化
Java 内存管理
然后:
多次检索
合并结果
流程:
query
↓
query expansion
↓
multiple retrieval
↓
merge
六、Context Compression(上下文压缩)
RAG 的问题:
检索到的文档太长
但 LLM 的:
context window 有限
所以需要:
context compression
例如:
原文:
1000 tokens
压缩为:
200 tokens
方法:
LLM summarization
extractive compression
七、Multi-Hop Retrieval(多跳检索)
有些问题需要:
多次检索
例如:
用户问题:
OpenAI CEO 的出生国家?
步骤:
1
OpenAI CEO → Sam Altman
2
Sam Altman → 美国
流程:
query
↓
retrieve
↓
reason
↓
retrieve again
这叫:
multi-hop retrieval
八、Answer Grounding(答案溯源)
企业 AI 必须能证明答案来源。
否则:
不可控
RAG 系统会返回:
引用文档
例如:
答案:
......
来源:
Doc1
Doc2
这叫:
grounding
九、RAG 完整优化架构
一个成熟 RAG 系统通常是:
用户问题
↓
Query Rewrite
↓
Multi Query
↓
Hybrid Search
↓
Vector DB
↓
Top 20 Docs
↓
Reranker
↓
Top 5 Docs
↓
Context Compression
↓
LLM
↓
Answer + Citation
十、企业级 RAG 架构
一个企业 AI 知识库通常是:
文档
↓
Parser
↓
Chunk
↓
Embedding
↓
Vector DB
↓
Hybrid Search
↓
Reranker
↓
LLM
技术栈通常是:
Embedding:
- sentence-transformers
Vector DB:
- Milvus
- Qdrant
LLM:
- DeepSeek
- Qwen
十一、RAG 效果的真实比例
很多人不知道一个真实情况:
RAG 效果通常来自:
| 组件 | 贡献 |
|---|---|
| chunk strategy | 30% |
| retrieval strategy | 25% |
| reranker | 20% |
| prompt | 15% |
| LLM | 10% |
所以很多企业:
换更大的模型
效果却没变
原因就是:
检索没做好
十二、一个 AI 架构师必须知道的事实
真正强的 AI 知识系统(例如企业内部 Copilot)通常不是:
简单 RAG
而是:
Advanced RAG
包含:
query rewrite
multi query
hybrid search
rerank
context compression
如果你继续深入 AI 系统工程,下一步最重要的一课其实是:
AI Agent 的核心原理(为什么 LLM 能调用工具)
因为 Agent 本质是:
LLM
+
Tool
+
Workflow
理解这个,你就真正进入 AI 系统架构层面了。
