向量数据库
编辑
简介:向量数据库就是用来存储,检索,分析向量的数据库。

目录

向量数据库定义

向量数据库就是用来存储,检索,分析向量的数据库。

我们在用图片搜索图片,或者语音搜索语音的时候,在数据库中存储和对比的并不是图片和语音片段,而是通过DL等算法提取出来的“特征”,一般是256/512个float数组,可以用数学中的向量来表示。

向量数据库特征

  1. 提供标准的sql访问接口,降低用户的使用门槛

  2. 提供高效的数据组织,检索和分析的能力。一般用户在存储和检索向量的同时,还需要管理结构化的数据,即支持传统数据库对结构化数据的管理能力。

向量数据库关键技术

  1. 构建在大数据和分布式数据库技术基础上

    • 必定是shared-nothing架构
    • 高可用
    • 支持线性扩展
  2. 向量索引技术

    • 向量索引发展,和各种技术的局限性(LSH,k-d tree, PQ, PQ Fast Scan)
    • 向量与结构化数据的结合
  3. 硬件加速

    • 各种加速硬件的原理,特点
    • FPGA/GPU/AI芯片加速

向量数据库的应用

从技术角度来讲,向量数据库主要解决2个问题,一个是高效的检索,另一个是高效的分析

1)检索通常就是图片检索图片,例如人脸检索,人体检索,和车辆检索,以及猫厂的商品图片检索,人脸支付。

2)分析在平安城市应用的比较多,例如人脸撞库,公安会把2个类似作案手法的案发现场周边的人像做对比,看哪些人同时在2个案发现场出现。

随着国家安全和反恐的需求增长,根据业务规划,深圳平安城市项目到2018年底,会部署20w摄像头,预计保留一年的人脸特征在千亿级别;以及人们对购物体验的提升,商品种类以亿计,后续还可以支持音频和非结构化的文本检索,向量数据库大有可为。

向量数据库与传统数据库的区别

  1. 数据规模超过传统的关系型数据库

    传统的关系型数据库管理1亿条数据已经是拥有很大的业务流量,而在向量数据库需求中,一张表千亿数据是底线,并且原始的向量通常比较大,例如512个float=2k,千亿数据需要保存的向量就需要200T的存储空间(不算多副本),单机显然不具备这种能力,可线性扩展的分布式系统才是正确的道路,这对系统的可扩展性,可靠性,低成本提出非常大的挑战。

  2. 查询方式不同,计算密集型
    传统的数据库查询通常可以归结为点查和范围查,而无论是点查和范围查都是一种精确查找,即查询得到的结果要么符合条件要么不符合条件,而向量数据库的向量查询通常是近似查找,即查找与查询条件相近的结果,即查询得到的结果是与输入条件最相似的,而近视比较对计算能力要求非常高。

  3. 低时延与高并发
    在平安城市中的应用需要支持交互式查询,端到端3秒,对向量数据库的要求提升到1秒,我们的设想是后续所有的警察人手一个查询终端,所以高并发也是必须的,1w QPS是我们的底线。

向量数据库代表

Milvus

评论

0
0
词条统计
创建者:小小亮
编辑次数:2
浏览次数:299
API调用次数:0
贡献者