主题
6.1 FAISS 在 RAG 架构中的角色
FAISS 不是 RAG 的完整方案——它是 RAG pipeline 中的"检索引擎"组件
这一节在讲什么?
在 pgvector 和 Milvus 教程中,我们用它们搭建了完整的 RAG 系统——从数据存储到检索到生成,一条龙搞定。FAISS 不能独立完成 RAG——它只负责"向量搜索"这一个环节,数据存储、标量过滤、持久化都需要其他组件来补充。这一节我们要明确 FAISS 在 RAG 架构中的角色定位,以及它适合和不适合的 RAG 场景。
FAISS 在 RAG 中的角色
RAG 系统的完整 pipeline:
文档加载 → 切分 → Embedding → 【向量存储+索引】→ 【向量搜索】→ 重排序 → Prompt → LLM
↑ ↑
pgvector/Milvus FAISS
(存储+索引+过滤) (纯搜索)
FAISS 只覆盖"向量搜索"这一个环节
其他环节需要你自己实现或用其他工具FAISS 适合的 RAG 场景
| 场景 | 为什么选 FAISS |
|---|---|
| 数据量中等(< 1000 万)、不需要持久化 | FAISS 轻量、快速 |
| 需要极致搜索性能 | GPU 加速 |
| 需要自定义索引组合 | 积木式组合 |
| 嵌入式部署 | 不需要独立服务 |
| 研究/实验 | API 灵活、参数可控 |
FAISS 不适合的 RAG 场景
| 场景 | 推荐替代 |
|---|---|
| 需要标量过滤 | pgvector 或 Milvus |
| 需要数据持久化 | pgvector 或 Milvus |
| 需要多用户并发 | Milvus |
| 需要分布式 | Milvus |
小结
这一节我们明确了 FAISS 在 RAG 架构中的角色——它只负责向量搜索这一个环节,数据存储和标量过滤需要其他组件。FAISS 适合轻量、高性能、嵌入式的 RAG 场景,不适合需要持久化、标量过滤、并发的生产系统。下一节我们用 FAISS 搭建一个完整的 RAG Demo。