𝗩𝗲𝗰𝘁𝗼𝗿 𝗗𝗮𝘁𝗮𝗯𝗮𝘀𝗲是用于处理向量嵌入的数据库。在机器学习中,我们经常会处理向量嵌入。向量数据库的设计目的是在处理这些向量嵌入时表现出色,包括存储、更新和检索。
在检索方面,它可以根据一个查询向量,找到在相同潜在空间中与之最相似的一组向量。这个检索过程称为近似最近邻搜索(Approximate Nearest Neighbour,简称ANN)。 举个例子,当我们想要找到与一张图片相似的图片时,我们可以将这张图片表示成一个向量,并通过ANN搜索找到最相似的向量,也就是相似的图片。或者当我们提出一个问题时,我们可以将这个问题表示成一个向量,并通过ANN搜索找到与之相关的上下文信息,然后再通过LLM将其转换为答案。
与向量数据库的交互过程如下:
1. 选择一个用于生成向量嵌入的机器学习模型。
2. 将任何类型的信息(文本、图像、音频、表格等)进行嵌入。选择用于嵌入的机器学习模型将取决于数据类型。
3. 通过将信息输入嵌入模型来获取数据的向量表示。
4. 存储附加的元数据与向量嵌入一起。这些数据将在后续的ANN搜索结果中进行预过滤或后过滤。
5. 向量数据库将向量嵌入和元数据分别建立索引。有多种方法可以用于创建向量索引,其中一些方法包括:随机投影、产品量化、局部敏感哈希。