Milvus 向量搜索引擎 0.6.0 新功能介绍

栏目: 软件资讯 · 发布时间: 4年前

内容简介:GitHub: https://github.com/milvus-io/milvus 发布时间:2019-12-07 版本兼容 Milvus 版本 pymilvus 版本 Java SDK 版本 0.6.0 0.2.6 0.4.0 :sparkles: 新增功能 仅需 CPU 的 Milvus 在之前的版本,我们只提供了...
#########

GitHub: https://github.com/milvus-io/milvus

发布时间:2019-12-07

版本兼容

Milvus 版本

pymilvus 版本

Java SDK 版本

0.6.0

0.2.6

0.4.0

✨ 新增功能

仅需 CPU 的 Milvus

在之前的版本,我们只提供了 GPU 版本的 Milvus。为了降低用户使用门槛,从 v0.6.0 开始,Milvus 提供仅需 CPU 和支持 GPU 两个版本的 Docker 镜像。CPU 版适合百万级数据的查询,而 GPU 版在超大数据集搜索情况下性能优势更明显。

您也可以源码编译,但考虑到编译环境复杂多变,有可能会增加编译困难,我们在新版本提供了 Ubuntu 18.04 的 Docker 镜像,便于大家直接在 Docker 容器中编译 Milvus。

更多信息,请参阅 PR#192: https://github.com/milvus-io/milvus/pull/192
Milvus 安装步骤: https://www.milvus.io/docs/zh-CN/userguide/install_milvus/
CPU 版镜像下载:milvusdb/milvus:cpu-latest
GPU 版镜像下载:milvusdb/milvus:latest

分区表

随着单张表的数据量不断增长,查询性能也会不断下降。单张表的数据变得很臃肿的时候,就要考虑将这张表拆分。v0.6.0 新增了分区表功能以确保增量数据的高性能查询。Milvus 的表基于标签分区,通过定义 partition_tag,您可以指定某张分区表,每张分区表的索引继承自母表。Python,Java 和 C++ SDK 中也分别增加了表分区功能的相关接口,目前支持创建/删除分区表,向量插入指定分区表,查看指定分区表,以及指定分区表的查询。

更多信息,请参阅 PR#245: https://github.com/milvus-io/milvus/pull/245

实验功能

v0.6.0还推出了一些实验功能,代表了 Milvus 未来版本可能发展的方向。这些实验功能仍在持续开发和更新中,可能包含已知问题和未发现的错误。现阶段这些功能主要用于测试和用户反馈收集,欢迎大家积极试用。

Mishards

Milvus 旨在帮助用户实现海量非结构化数据的近似检索和分析。单个 Milvus 实例可处理十亿级数据规模,而对于百亿或者千亿级数据,则需要一个 Milvus 集群实例。v0.6.0 推出的 Mishards 正是 Milvus 集群分片处理的中间件,主要负责将上游请求拆分,并路由到内部各细分子服务,最后将子服务结果汇总,返回给上游。Mishards 内部处理请求转发、读写分离、水平扩展、动态扩容,为用户提供内存和算力可以无限扩容的 Milvus 集群实例。

更多信息,请参阅PR#232: https://github.com/milvus-io/milvus/pull/232

 

新的索引类型

支持新的索引类型如 SPTAG-KDTSPTAG-BKTRNSG 和 IVFPQ。Milvus 集成了微软的 SPTAG 算法库,包含两种索引类型。RNSG 是 Milvus 在 NSG 基础上自研的基于图的索引算法,它可以 a) 降低图的平均出度;b) 缩短搜索路径;c) 缩减索引大小;d) 降低索引复杂度。IVF_PQ是在倒排索引的基础上进一步利用笛卡儿积(PQ)对每一个倒排文件中的向量进行编码的索引技术。这样的方法称之为非对称距离计算。向量大小可以缩减至原来大小的1/8甚至1/16。该索引方式虽然会损失精度,但内存占用会进一步下降,适用于低内存环境下的大规模向量搜索。

目前看来,这几种新的索引类型的搜索性能表现并不令人满意,具体原因还有待进一步发掘,也欢迎感兴趣的小伙伴一起加入研究讨论。

更多信息,请参阅 SPTAG-PR#438: https://github.com/milvus-io/milvus/pull/438
RNSG-PR#554: https://github.com/milvus-io/milvus/pull/554
IVFPQ-PR#324: https://github.com/milvus-io/milvus/pull/324
SPTAG 索引介绍: https://github.com/Microsoft/SPTAG
NSG 索引论文: https://arxiv.org/abs/1707.00143

Milvus 性能测试报告

Milvus 支持多种类型的索引,各个索引的查询性能会随着数据集和调参的变化而改变。新版本提供了针对 IVFFLATIVFSQ8 和 IVFSQ8H 的性能测试报告。随着 Milvus 支持的索引类型不断增加,测试报告也会持续更新。

具体性能测试报告,请参阅索引性能测试: https://github.com/milvus-io/milvus/tree/master/docs

 

✨ 主要改进

Milvus 优化过的 FAISS

在原有 FAISS 的基础上, Milvus 做了一些深层代码的优化以获得更优的查询性能和支持更多类型的索引类型,比如 IVFSQ8H。现在,我们将这部分针对 FAISS 进行优化的代码开源了。

更多信息,请参阅PR#585: https://github.com/milvus-io/milvus/pull/585

多张 GPU 创建索引

支持使用多张 GPU 来创建索引以减少创建索引和整体查询的时间。在使用支持 GPU 的 Milvus 时,您可以通过对 Milvus 配置文件中的参数 build_index_resources 来指定多张 GPU 卡用于索引创建。

更多信息,请参阅 PR#414: https://github.com/milvus-io/milvus/pull/414

✨ Bug 修复

进一步解决了随查询次数增加,内存占用持续增加的问题。

更多信息,请参阅 PR#335: https://github.com/milvus-io/milvus/pull/335

 

如果还想了解 v0.6.0 更具体的更新改动,请参阅 Milvus CHANGELOG: https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md

 

欢迎加入Milvus社区

主页: milvus.io
GitHub:github.com/milvus-io/milvus
知乎: zhuanlan.zhihu.com/milvus
Slack: milvusio.slack.com
Twitter:twitter.com/milvusio
Facebook:www.facebook.com/io.milvus.5


以上所述就是小编给大家介绍的《Milvus 向量搜索引擎 0.6.0 新功能介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

社交红利2.0

社交红利2.0

徐志斌 / 中信出版社 / 2015-9 / 42元

大型社交网络发展至今,开始显露出更为惊人的力量。有一个独特现象与这一结果相伴相生,即新应用或服务一进入社交网络就即时引爆,就像用户在等待它出现一样。随即开始的病毒式扩散,让创业者成为全民话题的焦点。但这一切是如何实现的?具备哪些特征的合作伙伴才可以被即时引爆? 作者从其长期追踪的近30个一进入微博、微信就引爆的经典案例中甄选出若干典型案例。从大量一手鲜活的后台数据入手,并结合腾讯对社交网络的......一起来看看 《社交红利2.0》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具