Qdrant不只是高性能向量数据库

电子说

1.3w人已加入

描述

Qdrant(读作 quadrant)是一个向量相似度搜索引擎和向量数据库。它提供了一个生产就绪的服务,并具有便捷的 API,用于存储、搜索和管理点,具有附加负载的向量。

机器学习

Qdrant 是专为扩展过滤支持而设计的,这使得它适用于各种基于神经网络或语义匹配、分面搜索等应用。

Qdrant 使用 Rust 编写,即使在高负载下也能快速、可靠地工作。至于性能文章后面有基准测试结果。

使用 Qdrant,embeddings或神经网络编码器可以直接转化为完备的应用程序,然后用于匹配、搜索、推荐等等!

github非常热门,每天均以500star速度飙升。

机器学习

什么是向量数据库

再搞清楚这个问题之前,先需要知道什么是向量(vector)。

什么是向量

在AI领域中,向量是一个具有大小和方向的数学对象。它可以用来表示现实世界中的各种事物,例如图像、语音、文本等。

在机器学习和深度学习中,向量通常被用作表示数据的形式,其中每个向量的维度代表了不同的特征或属性。例如,在图像分类任务中,一个图像可以被表示为像素值组成的向量;在自然语言处理任务中,一句话可以被表示为单词嵌入(word embeddings)组成的向量。通过对这些向量进行计算和比较,机器可以从数据中提取出有用的信息,如相似性、聚类等。

拿比如人脸识别技术来说,计算机从照片或视频中提取出人脸的图像,然后将人脸图像转换为128维或者更高维度的向量。说到向量,就离不开embeddings。下面说下embeddings是什么。

什么是embeddings

embeddings是一个相对低维度的空间,可以将高维向量转换为低维度。embeddings使得在大型输入上搞机器学习更加容易,例如表示单词的稀疏向量。最理想的情况是,embeddings能够通过将语义上相似的输入放置在embeddings空间中彼此靠近来捕获输入的某些语义。可以在不同的模型中学习和重复使用嵌入。

这里有一个之前学习过的Google出品的机器学习的课程可以参考:

官方网站:

https://developers.google.com/machine-learning/crash-course/embeddings/video-lecture?hl=en
机器学习

什么是向量检索

向量搜索是一种使用机器学习模型在索引中检测对象间语义关系的方法,以找到具有相似特征的相关对象。

向量搜索和推荐的解决方案变得越来越常见。如果你想在你的网站上添加自然语言文本搜索、创建图像搜索或构建强大的推荐系统,那么你就需要考虑使用向量技术。

为什么需要向量数据库

上面的一些概念解释了之后,其实在 AI 领域中,向量数据库是为了更高效地存储和检索大规模高维度的向量数据而设计的。由于传统的数据库系统并不擅长处理向量数据,因此需要专门的向量数据库来支持各种应用场景,例如语义搜索、图像检索、推荐系统等。

与传统数据库不同,向量数据库可以使用特殊的索引结构和相似度度量方法,在高维度向量空间中快速查找相似的向量。例如,一些流行的向量数据库如 Faiss 和 Annoy 使用基于倒排索引和近似最近邻搜索(Approximate Nearest Neighbor Search)的技术,极大地加快了向量数据的查询速度。

向量数据库还提供了方便的 API 接口和工具库,使得用户可以轻松地将其集成到自己的应用程序中,并进行快速的向量搜索。因此,在许多需要处理大规模向量数据的 AI 应用中,向量数据库成为了不可或缺的组件。

qdrant如何使用

在Python中直接使用一个基于内存的qdrant

pip install qdrant-client

python客户端提供了一种方便的方式在本地启动qrant:

from qdrant_client import QdrantClient
qdrant = QdrantClient(""# 创建一个内存Qdrant实例,可以用来测试CICD
# 或者
client = QdrantClient(path="path/to/db")  #持久化到磁盘

客户端

这是推荐在生产中使用的方法。使用命令直接运行容器:

docker run -p 6333:6333 qdrant/qdrant

现在,可以使用任何客户(包括Python)连接到服务端:

qdrant = QdrantClient("http://localhost:6333")

目前支持的客户端有:

  • 官方: Go client

  • 官方: Rust client

  • 官方: JavaScript/TypeScript client

  • 官方: Python client

  • 社区: Elixir

  • 社区: PHP

  • 社区: Ruby

  • 社区: Java

Demo示例工程

机器学习

总结

如今大模型浪潮浩浩荡荡,红红火火。向量数据库被看做是Ai Infra中最关键的一环,这种专门用于存储,索引和查询向量的数据库系统,可以让大模型更高效的存储和读取知识库,并且以更低成本的进行模型微调。Rust作为新基建的首选语言,也会在Ai infra中被大量采用。

 

一文告诉你为什么Mojo比python快35000x

一个用Rust写的Go编译器

极简而强大: 一个用 Rust 编写的 Shell 历史记录工具


审核编辑 :李倩


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分