随着生成式 AI(GenAI)的兴起,向量数据库(Vector Database)迅速走红。然而,向量数据库的应用远不止于大模型(LLM),它同样适用于各种 AI 系统,尤其是在 RAG 的场景下。
在 AI 领域,我们经常处理向量嵌入(Vector Embeddings)。向量数据库正是为了高效存储、更新和检索这些嵌入数据而生的:
✅ 存储(Storing)
✅ 更新(Updating)
✅ 检索(Retrieving)
其中,检索(Retrieval)指的是查找与查询向量最相似的一组向量,这一过程被称为近似最近邻(ANN, Approximate Nearest Neighbour)搜索。例如:查询可以是一个图片,希望找到与之相似的图片。查询也可以是一个文本问题,希望检索到相关背景信息,并借助 LLM 生成答案。
构建向量数据库:数据的写入与读取
写入/更新数据
1️⃣ 选择合适的机器学习模型,用于生成向量嵌入。
2️⃣ 对各种类型的数据进行嵌入(文本、图像、音频、表格等)。
3️⃣ 使用嵌入模型将数据转换为向量表示。
4️⃣ 存储元数据,以便后续进行预筛选或后筛选。
5️⃣ 索引嵌入数据,常见索引方法包括:
- 随机投影(Random Projection)
- 产品量化(Product Quantization)
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)
6️⃣ 存储向量数据,同时建立索引,以便后续高效检索。