构建生产级 RAG(检索增强生成)AI 系统是一个艰难的任务。
👇是 RAG 系统中的一些关键组件,你需要对它们进行管理和持续优化,以实现预期的效果(不要错过最后的 H 部分):
检索(Retrieval)
F) 数据切分(Chunking) – 如何对用于外部上下文的数据进行切分?
-
小块 vs. 大块。 -
滑动窗口(sliding window)或滚动窗口(tumbling window)进行切分。 -
在搜索时是检索父级或关联块,还是仅使用原始检索数据?
C) 选择嵌入模型(Choosing the embedding model)
-
用于将数据嵌入和查询外部上下文的模型选择。 -
考虑上下文化嵌入(Contextual embeddings)。
D) 向量数据库(Vector Database)
-
选择哪种数据库。 -
部署位置。 -
需要存储哪些元数据以便与嵌入向量关联。 -
索引策略。
E) 向量搜索(Vector Search)
-
相似度度量的选择。 -
查询路径的选择:先基于元数据还是先使用 ANN(近似最近邻)搜索? -
采用混合搜索(Hybrid Search)。
G) 规则与启发式(Heuristics) – 在检索过程中应用的业务规则。
-
时间权重(Time importance)。 -
重新排序(Reranking)。 -
处理重复上下文(多样性排序)。 -
来源检索(Source retrieval)。 -
条件性文档预处理。
生成(Generation)
A) LLM 选择(Choosing the right Large Language Model)
✅ 随着 LLM 的发展,这个问题变得越来越简单。当前,开源和专有 LLM 的性能正在趋同,主要的选择在于:
-
使用专有模型(Proprietary model)。 -
自行托管(Self-hosting)。
B) Prompt 设计(Prompt Engineering)
即使有了外部上下文,仍然需要精心设计 Prompt:
-
使系统生成符合预期的输出。 -
预防越狱(Jailbreak)场景。
别忘了一个容易被忽略的部分
H) 观察、评估、监控和安全性(Observing, Evaluating, Monitoring and Securing)
确保生产环境下的应用运行稳定、安全,并能持续优化!

👉 你认为还有哪些关键组件没有提到?欢迎在评论区讨论!👇
https://x.com/Aurimas_Gr/status/1902734448988180766
(文:PyTorch研习社)