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 角度:向量数据库决定了产品的扩展性、性能和可信度。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐