向量搜索
kumosearch 能够对任何机器学习模型生成的 embedding 嵌入进行索引,并对这些数据进行最近邻(KNN)搜索和近似最近邻(ANN)搜索。
[[toc]]
使用场景
以下是向量搜索的一些示例应用场景:
您还可以将上述功能与过滤、分面、排序、分组等功能相结合,以构建用户友好的搜索体验。
什么是 embedding?
embedding 嵌入是 JSON 文档的数字表示形式,通常为浮点数数组(例如:[0.4422, 0.49292, 0.1245, ...])。
这些 embedding 由机器学习模型生成,用于表示文档的 相似性(根据模型的不同,相似性的定义也有所不同)。相似的文档会有彼此 更接近 的嵌入(余弦相似度)。
以下是一些常见的生成文档 embedding 的模型:
- Sentence-BERT
- E-5
- CLIP
- OpenAI's Text Embeddings model
- Google's PaLM API
- Google's Vertex API
您可以将这些模型生成的 embedding 导入到 kumosearch 中的专用向量字段中,然后进行最近邻搜索。输入另一组向量或文档 ID,kumosearch 会返回与输入最接近的文档。
您可以使用 OpenAI、PaLM API 或此处列出的内置 ML 模型之一为您生成这些 embedding 嵌入。
案例演示
这是向量搜索的实际应用之一 - 电子商务中的 查找相似 功能:ecommerce-store.kumosearch.org。
Read More
这里有两篇文章更详细地讨论了 :
现在让我们看看如何在 kumosearch 中进行 embedding 的索引和搜索。