8 向量数据库:AI 的知识仓库
本文介绍了向量数据库作为AI知识仓库的核心作用。主要内容包括:1)向量数据库的概念和必要性,能高效处理海量语义向量检索;2)主流开源工具如Faiss、Qdrant和Milvus;3)实践演示使用Faiss搭建小型知识库,实现文档语义搜索;4)从产品经理角度分析其对企业AI应用的价值,包括知识管理、性能保障和可扩展性。文章通过代码示例展示了如何将文本转换为向量并快速检索,帮助理解这一AI基础设施的关
·
8 向量数据库:AI 的知识仓库
引子
前面我们学习了 Embedding,知道了如何把文本转成“语义向量”,并用相似度来判断“哪些文档更相关”。
但是问题来了:如果企业有 几万份文档、上百万条 FAQ,难道要一条一条算相似度吗?
这时候就需要 向量数据库(Vector Database) —— 它是 AI 的知识仓库。
一、核心概念(零基础友好解释)
1. 为什么需要向量数据库?
- 通俗解释:想象有几万个“语义坐标点”,如果用 Excel 储存和检索,速度会很慢。
- 专业定义:向量数据库是专门存储、索引、检索高维向量的数据库,能在海量文本里快速找到最相关的几个。
2. 向量数据库能做什么?
- 高效相似度搜索:毫秒级检索百万条数据。
- 支持 RAG:作为“文档检索层”,为大模型提供上下文。
- 可扩展:支持动态新增文档,不用每次都重新训练模型。
3. 常见向量数据库
- Faiss:Facebook 开源,轻量、适合本地实验。
- Qdrant:开源、性能好,支持云端与本地部署。
- Milvus:国产开源,支持分布式大规模场景。
👉 一句话总结:Embedding 是语义理解,向量数据库是存储与检索的地基。
二、实践环节:用 Faiss 搭建一个迷你知识库
我们用 bge-base-zh 生成 Embedding,用 Faiss 存储和检索。
1. 安装依赖
pip install faiss-cpu sentence-transformers
2. Python 代码(保存为 vector_db_demo.py
)
import faiss
import numpy as np
from sentence_transformers import SentenceTransformer
# 1. 加载中文优化的 Embedding 模型
model = SentenceTransformer("BAAI/bge-base-zh")
# 2. 假设有一组文档(企业内部制度)
docs = [
"公司年假制度:每年10天年假。",
"公司病假制度:每年7天病假。",
"公司差旅报销流程:先申请,再报销。",
"GPU 显存不足会导致大模型推理失败。"
]
# 3. 将文档转为向量
embeddings = model.encode(docs, convert_to_numpy=True, normalize_embeddings=True)
# 4. 构建向量索引
dim = embeddings.shape[1] # 向量维度
index = faiss.IndexFlatIP(dim) # 使用内积(IP)做相似度
index.add(embeddings) # 添加文档向量
# 5. 查询
query = "请问公司的年假有多少天?"
query_emb = model.encode([query], convert_to_numpy=True, normalize_embeddings=True)
# 6. 搜索前2个最相关文档
D, I = index.search(query_emb, k=2)
print("查询:", query)
print("检索结果:")
for idx in I[0]:
print("-", docs[idx])
3. 运行结果(示例)
查询: 请问公司的年假有多少天?
检索结果:
- 公司年假制度:每年10天年假。
- 公司病假制度:每年7天病假。
👉 可以看到,系统正确找到了和“年假”最相关的文档。
三、产品经理思考
1. 为什么向量数据库是企业 AI 的核心?
- 知识管理:把合同、制度、FAQ 向量化存储,才能支持智能问答。
- 性能保障:在百万文档中也能秒级检索,不影响用户体验。
- 可扩展性:企业资料随时更新,向量库能增量添加,不必重训模型。
2. 在 PRD 中要考虑的要点
- 文档规模:是 1 万条还是 100 万条?
- 更新频率:新文档多久能检索?
- 安全隔离:不同部门/客户的知识库要分开存储。
- 结果展示:是否需要展示“引用来源”来增加可信度?
3. 案例
- 企业知识库助手:员工可以问“差旅报销流程”,秒级返回正确制度。
- 客服机器人:客户提问时,能直接命中文档 FAQ。
- 合规系统:确保回答能溯源到合同条款。
四、小结
今天我们学习了:
- 向量数据库 = AI 的知识仓库,用来存储和检索 Embedding。
- 常见方案有 Faiss(实验)、Qdrant/Milvus(生产)。
- 实验:用 Faiss 搭建了一个迷你知识库,回答“公司年假制度”。
- PM 角度:向量数据库决定了产品的扩展性、性能和可信度。
更多推荐
所有评论(0)