本期的 Milvus 线上问答由我们 15 年经验的数据库专家-顾老师,带你总结主流数据库的发展与未来方向。

视频分布式数据库与Milvus 分布式中我们分析了传统数据库的架构,挑战&解法、分布式数据库的优势与劣势,最后带出了我们对 Milvus 分布式的看法与规划。视频中我们介绍了像是 AWS Aurora、PingCAP 与分布式数据库中间件 ShardingSphere 这些热门的技术,想了解数据库前世今生的你务必点开 的视频!

⏰ Milvus 线上问答的部分从视频 39:06 开始,有兴趣参与讨论的朋友请下拉文章获取下周二会议链接 ~

| 部分Q&A文字实录

Attendee= 参会者

Attendee A:你好,我们现在使用 Milvus 还是属于调研阶段,还没正式在使用。之前在群里面也问过几个问题,主要是在我们这边用于推荐场景比较多,所以我们这边向量这种查询场景,然后数据化千万级别这样去找回查询。还有一些我们想用在向量的这种特征查询、应用,主要是有两种场景,一种是取特征使用而已,就 KV 的查询方式,还有另外一种直接就是说 ann 的查询这种检索方式。你们也有人跟我们直接私下聊了好多,也解决我很多这边的一些疑惑的问题。

顾老师 @ Milvus:所以在你们的场景当中,你们会对声音..因为你们(音频分享平台)会提供很多音频的内容的服务,你们会对音频的内容做一些这种声纹或是声音的提取?

Attendee A:有用在声纹这边,我记得他们是用在图片跟内容的指纹,就音频转成文本之后再抽特征做指纹,但他们现在是用在Faiss直接在上面做了,还没用到你们 Milvus 去做。后期如果整个架构改的话,可能也是可以基于你们再去做的。

顾老师 @ Milvus:所以他是把音频内容先转成个文本,再去抽取向量?

Attendee A:对,先做这种指纹之后再做向量的计算。

顾老师 @ Milvus:所以他是为了去做一些版权的保护?

Attendee A:有一个场景就是加速审核的效率吧,来一个音频可能他是属于我的库里面已经审核过了,然后我就可以直接跳过了,这样审核人员就不用去审核这些,机器就可以识别这个需不需要去审核这种方式,可以加速这种审核的效率。

顾老师 @ Milvus:明白,挺有意思的。你们会不会通过这种比如说一段声音,然后去允许用户去搜索这个节目之类的?

Attendee A:现在还没有这种这种场景。

顾老师 @ Milvus:对,确实好像在听歌识曲的比较多一点, 这种好像确实有点少。

Attendee A:对,还有另外一种场景可能就是在图片可以去做这种查询。但我印象中好像目前还没有做到。我们因为内部也很多这种图片的审核方式,图片也可以应用到这种场景,让有敏感的图片直接可以识别,因为你有一张白名单库已经识别好了,然后你拉一张图片;

我们还有这些场景,就是说图片相似,就是我们推荐出去的内容图片尽量不做太相似的,这种场景。我主要比较多在推荐这个角度上去问,我们推荐里面就有很多这种向量计算。

顾老师 @ Milvus:好的,如果你有什么问题都可以在群里问,测试中如果出问题的话可以在 GitHub 上直接开 issue。

Attendee A:对,我还期待你们 0.9 的版本的功能。我看你们新版本就有几个新功能挺适合我们这个场景的。

顾老师 @ Milvus:好的,我估计下周你应该可以去测。

Attendee A:好,谢谢。


Attendee B:我是最近刚开始看,然后我们也打算用。我们想做以图搜图的功能,但是我们那图的量级可能会多一些,大概可能在 5 亿左右,然后是 256×256 的特征向量,所以我在群里问了一句,就是大家是不是有一些分布式的经验可以分享。

顾老师 @ Milvus:你们是一个私有部署的场景吗?

Attendee B:对,是的。

顾老师 @ Milvus:所以你们都是本地的自己的服务器去进行部署的是吗?

Attendee B:对,是的。

顾老师 @ Milvus:256 维的向量,5 亿张的话,那你们大概一般来说 QPS 是需要到多少?然后你查询每一次的响应时间大概是需要多少?

Attendee B:现在的话我们还没有测,我可以说一下背景:我们也算是一个人工智能的公司,然后我们想做这样一个所谓以图搜图的功能。所以我们就去看,比如说所有相关的开源的框架,其实我们调研了一些,然后包括有一个 Vearch 的框架,我们也把原理也简单的看了一下。然后就看到咱们这个了,也更感兴趣一点。

Vearch 我的感觉就是可能更偏学术一点,然后实用性可能稍微差一点,我个人的看法。QPS 之类的现在具体的数据还没有,因为我们之前做的方法是基于 Facebook 那个 Faiss 方案去做的,然后在那个检索速度上我们再找说能够支持这个的框架,所以就找到了我们的框架。

顾老师 @ Milvus:所以你们的图片搜索,是一个通用型的图片搜索吗?还是比如说是一种人脸,车辆?

Attendee B:人脸,之后可能会去扩展到车辆,但是现在还是主要以人脸为主。比如说我可能随机生成一张图片,然后可能有一个非常大的底库,然后从里面去搜索出来。

顾老师 @ Milvus:256 维的 5 亿的向量的话,因为一些带压缩的索引的话它的内存可能就是在 170G 左右的内存的消耗量吧。

Attendee B:对,我从官网上看到的也差不多是这个数字,所以可能比如说是 256 的肯定不够用了,然后如说我们如果直接用 GPU 的话,就是个 128 的,可能就要搞一个分布式的上去。

顾老师 @ Milvus:你们 GPU 的话,你们 GPU 服务器对显存会小一点,但还是看场景吧,看你们对搜索的时间的要求。因为你在这种亿级别的话,其实也还好,也还是可以做到一秒以内搜索完成。当然这个就取决于你并发度有多少,就是说并发度特别高的话肯定也 hold 不住了。

Attendee B:那应该也不会的。单机可能二三十还是有的,但是其实并不高对吧?

顾老师 @ Milvus:对,不能算。 但主要是看这个数据量、计算量,就是 二三十,因为在 5 亿上的话,其实也计算量也相当不小,当然也看你们想要找 top 多少?你 top 的数字小一点呢搜索量还是可以小一点。但是因为有的人可能他 top500、1000 阿,这样的话,它的计算量、搜索量就会就会比较大一点。

Attendee B:Ok 好的,然后第二个问题,你们是一个专门的公司吗?如果我对这个框架也很有兴趣,那么可能如果我是开源的项目我也可以参与进去吗?

顾老师 @ Milvus:对,我们是一个公司,但是项目是一个开源的项目,Milvus 是一个开源的项目,也是一个在 Linux AI 基金会上进行孵化的项目。所以其实如果你有兴趣的话是完全可以参与进来,因为它是一个因为我们想要提高大家的参与度,所以把它加入到了中立的基金会下面,所以其实大家有兴趣的话是可以参与进来的。

因为一个开源项目,它要有活跃的运作的话,它肯定有开发的话,肯定后面都是有一些公司去支持它,不然的话像这样的系统,它演进不会有那么快的。

Attendee B:了解。那如果比如说想去参与可能直接在上面留言还是怎么样?不是很了解接下来迭代的计划。

顾老师 @ Milvus:你可以看一下我们的 GitHub。我们 GitHub 上面会有我们接下来一些版本的初步的目标,然后我们也有一个 Slack 的频道,在这个 Slack 频道当中会如果是有兴趣参与开发的话,是可以在那里面进行讨论。

Attendee B:了解,那我没有其他问题了,谢谢!


Attendee C:你好,我有一个小问题。

我的问题就是说一般这里面索引的向量从模型里面直接搜出来,比如说做这种文章的相似度索引,如果直接把文章通过模型出来的向量放进去索引,感觉效果不是很好。是不是说可以在向量里边再加一些别的什么东西能够提高有效性。

顾老师 @ Milvus:我们过去接触很多的用户都是自然语言处理相关的,好像都是在用文章的标题提出的向量,以及一些句子提取的向量,用整篇文章提出的向量确实是比较少。

Attendee C:文章标题也可以。拿文章标题做例子,我的意思就是说你比如说 bert 然后他这个文章标题过出来过一个向量 768 维,然后直接放到这里面做索引的话就是感觉效果不是很好。我不知道其他人有没有什么好的经验可以把这个维度扩充一点,然后它一般扩充的内容和方式是什么?

顾老师 @ Milvus:这个问题的话,因为我们之后会有 WPS 的用户分享的一个文章,到时候我们发出来的话你可以参考一下。因为我很可能不是三两句可以说清楚,因为它还弄得挺复杂的。它是一个智能写作的 APP,它就是根据用户的意图,然后去搜索一些他的语料库当中现成的语料,然后构成一个文章这样子的。

Attendee C:顾老师我可以稍微补两句吗?是这样的,我之前是搜索这边的,然后回答一下三度的问题,就是在做内容类的分析或者说网页类的检索的时候,它分 at 和 ct 就是 anchor 我们广义认为链接,还有一个是 content(内容),然后一般的话不会直接去把整个文章输进去,它会先切词或者先抽摘要,做完摘要之后,然后比如说这样的话,其实整个的内容就会减少很多。而且会把一些无关紧要的词,我们认为可能比如说有些语气助词,像是 “de” “me” “le” 它的权重会降低,然后出去抽取更多的关键词来去做向量,然后这样出去的话在比较的时候也会更加准确一些。

你如果想去做这种利用 title 的去做的话,需要先去切词,需要先把一部分所谓的我们认为常用的,但是又对搜索没有特别帮助的,比如说“今天的天气怎么样”,可能核心的就是 “今天天气”,其他几个可能都不太重要。

顾老师 @ Milvus:感谢 Yan 的分享。非常实用!

|欢迎加入 Milvus 社区

http://github.com/milvus-io/milvus | 源码

http://milvus.io | 官网

http://milvusio.slack.com | Slack 社区

http://zhihu.com/org/zilliz-11/columns | 知乎

http://space.bilibili.com/478166626 | Bilibili


Zilliz
154 声望829 粉丝

Vector database for Enterprise-grade AI