完整视频请点
Attendee= 参会者
Attendee A:我看了一下觉得 Milvus 还是挺不错的,因为瞄准了一些通用的一些计算的 operation。
顾老师 @ Milvus:对。所以在您现在的工作场景当中有类似的需求吗?
Attendee A:也不能说没有,你要说大也不大,就是说我们的重点可能不是说在你向量的计算的效率有多高,我们看说是从整个业务需求角度来说,需要什么样的解决方案。可能更倾向于你们的一些应用层的方案,你们给了一些 demo。
顾老师 @ Milvus:所以你们的应用层是一些什么样的?视觉的吗、还是说自然语言处理,还是什么的都有?
Attendee A:视觉也有。对视觉的话,你比方说像做一些图片的检索或者是识别的时候,也会涉及到一些特征的相似度计算,包括它的一个高效的检索,但是它的量不会像你们讲的这么大,一般来说我现在还是能够满足要求,量比较小。
然后在自然语言处理那一块,可能在相似度计算这个不是特别多,我们就直接是通过这个模型,然后就去做一些文本的分析,可能还会有一些传统的机器学习方法,就直接得到结果。基于词向量的话也有,但是不是特别多。
我其实对于你们这个东西我有点困惑,Milvus 到底是一个计算平台,还是一个数据库,还是还是什么东西,你们怎么个定位?
(tips:彩蛋请见文末)
顾老师 @ Milvus:这方面确实我们现在也正好在准备接下来做一些外部分享。所以的话我觉得可能下一周的这个时间的话,我们会准备一些材料,然后对这个项目给大家再做一次整体的介绍。因为我们每周二晚上基本上都是以这种在线问答的形式,但时不时也会搞一些这种内容的分享。我们 Milvus 定位的就是去解决所有的 AI 场景当中,这些 flow、pipeline 生成的数据,给它做一个统一的数据服务的层,所以它是一个比较综合性的东西。
Attendee A:是数据库是吧
顾老师 @ Milvus:是可以这样理解的,数据库加上了搜索引擎。
Attendee A:但是你这个本身它有一个计算引擎在后面?
顾老师 @ Milvus:对,因为对搜索引擎它就是负责计算的部分。
Attendee A:OK。你这个是不是还有点像特征管理的这样的一个平台?涉及特征的查询,特征是一个相似度计算这些,或者说是一个特征数据库。
顾老师 @ Milvus:对,可以这样讲。
Attendee A:我觉得这么说可能正确一点,你的技术支持张量也支持这种非张量的,对吧。传统的的也支持吗?
顾老师 @ Milvus:对,稀疏向量和稠密向量都可以支持。一些标签性的属性我们在未来版本当中也会加入进来。当前版本还没有做到那个功能,但是我们在下一个版本会把它加进来。
Attendee A:OK,所以你们当前应该还是侧重在张量特征的计算?
顾老师 @ Milvus:对,目前为止是这样的。
Attendee A:明白,确实是好不好定位。一般人觉得你什么都能干,平台的事也能干,数据库的事情能干,然后计算平台的事也能干。他们都能干,就找不到你的核心点。
顾老师 @ Milvus:那个是因为我们在 demo 当中加了一些应用场景,但其实 demo 只是为了让大家能够更容易地感觉到这个东西能够给大家带来的可能性。Milvus 本身那部分它其实是不带模型的。它其实解决的是 AI 整个当中数据的问题,向量数据、标签数据这些数据的问题。
Attendee A:对你们不 care 模型怎么样,你们只是 care 中间的一个数据的高效的管理方法,数据的查询、搜索、计算。
顾老师 @ Milvus:是的没错。
Attendee A:像你们会对比一些开源的方案吗?比方说像那些 Facebook 在 18 年提的 FAISS 解决方案对吧?那其实大家在这个场景当中重点还是说一个查询的效率,尤其是大规模这种数据集上面的一个查询效率。那你们对比那些方案有一个比较好的 performance 吗?
顾老师 @ Milvus:是这样的,其实是不同层次的东西。因为要完成这样一个向量数据库的话,它其实需要很多组建,其中有一部分也是 ANNS 这些算法。其实在算法上面我们最初是直接引用了 FAISS,然后现在是在当中做了很多的修改,所以其实并不是一个竞争的关系,而是一个不同层次的关系。
Attendee A:就是说你会把 FAISS 当成你这个插件在用,尤其是说在做近似检索的时候你会用它,对吧?但是你这个肯定还不仅仅包含这个,你还包含包括一些数据的存储对吧?
顾老师 @ Milvus:对,包括算法其实也不单单只有FAISS,还有另外就是有其他的 HNSW 的算法等等。
Attendee A:对,会有很多的这种近似的算法。那你们是来优化这些开源的方案是吗?
顾老师 @ Milvus:对没错,是一方面是在工程设计上有一些优化,另外一方面也是对代码本身有一些优化。
Attendee A:那你们有没有一些对比或是数据?
顾老师 @ Milvus:在我们的官网上是有 benchmarks 的测试的数据的。但是就是说作为一个数据库这样的服务的话,其实它和程序库,就是算法库去比较性能,还是比较困难的。我们只能说我们在比较高精度的场景下做到不慢于 FAISS。
Attendee A:你高精度是指 double 还是所有的?
顾老师 @ Milvus:我指的是精确度高一些是包括对 90% 的那种召回率。
Attendee A:那比方说我们都设置一个同样的检测的精度,或者说因为他们会用一些近似检索,来保证效果,对吧?这种情况下面的话,那就是说我的使用者要根据我的业务的需求来平衡这块的精度和速度上面来做一个平衡。
顾老师 @ Milvus:是的,对。
Attendee A:所以说你们在做 benchmark 的时候,应该来固定一个精度,然后来看效率。
顾老师 @ Milvus:对,你可以看一下我们的 benchmark:
(https://www.milvus.io/cn/docs/benchmarks_aws)它其实是从100%的精度一直到30%的精度都有的。
顾老师 @ Milvus:对这上面是比较了几个算法,HNSW、Faiss、Annoy..
Attendee A:那这种检索的算法之间一比就可以,但是说比方说我作为用户,我想用你们这个方案,还是说用开源的方案,这个肯定是我作为使用者来讲,肯定是要考虑的一个因素,对吧?
顾老师 @ Milvus:都是开源的,我们也是开源的。您可以回头去看一下我们网站上这个东西。因为它比较复杂,可能需要花一些时间。我们在不同的环境下都测过,AWS、本地这些都有。
Attendee A:那你们有没有提出一些新的这种检索的算法?还是说都是一些开源的,然后你们做一个二次优化?
顾老师 @ Milvus:是这样的,就是说在这个领域当中的算法,就是固定的这几种,只是说大家的实现不一样,或者说实现的能力不一样。
Attendee A:然后你们会去重新实现,所以说带来了一个更好的性能?
顾老师 @ Milvus:对是的,有一部分是这样的。有一部分是调整,有一部分是重新实现。
Attendee A:那你们支持哈希检索吗?
顾老师 @ Milvus:LSH 的现在还不支持。
Attendee A:你觉得大家有使用吗这个方法?就业务上面你们的客户。
顾老师 @ Milvus:目前的用户当中还没有。现在其实用的比较多的什么 IVFPQ 这些其实效果还不错,就在互联网场景下 IVFPQ 这些他们也都满意,然后在一些其他的领域可能用的一些是 IVF 的,没有 PQ 编码的 IVF 但是可能带了一些其他的 Scala 的压缩的这种 IVF。
Attendee A:因为这类问题,它其实本质上还是说用一个比较长的特征向量来做这种 feature map, 所以说它的这种信息的损失基本上是没有的,最短是 64、 128、256 这种,你给他再适当量化一下,基本上也不会有特别大的问题。但是你如果是直接缺一个Hash 网络损失就太大了。这一块可能就是落地上面会有很大的问题。
顾老师 @ Milvus:
对没错,你刚才说的是对的。高危的情况下只能压缩一下,问题不大了。
Attendee B:我之前遇到一个场景就是类似于 Pinterest 这种,它在图上可以画一个框,它可以去你划到框里面的图然后搜索很近似的图片。我其实也有用过很多这种图片相似的这种搜索,但是觉得Pinterest的效果好像是明显最好的。我不知道这算不算题外话,咱们这个项目是针对这种场景的,或者说是它的最佳实践的场景之一吗?
顾老师 @ Milvus:图片搜索其实是一个很大的应用,也是向量搜索中比较常见的应用。当然要做好的话,向量搜索是一部分,然后模型也是一部分。其实怎么讲,因为其实图片搜索的相似的这种事情,主观性其实是挺强的。因为比如说安防当中,人脸搜索人像不像这个是有客观标准,相对客观的标准,但是一张非常 general 的图片,它像不像,我感觉主观性还是比较强的。
Attendee B:对,所以比如说我之前是有做过搜索的一些工作,但是我可能比较理解搜索里边就是它的索引是一部分,然后它的好与坏可能还取决于你的词库,比如说分词或者去用词等等的,我想了解一下在图片或是向量的这种搜索当中,类似于说分词的重要性的是它的向量计算吗?还是相似度的算法?
顾老师 @ Milvus:这边可能主要是在模型和相似度上。
Attendee B:因为我其实是有想去做一个这样图片的搜索,然后大概是可能是2-300万左右,图片不是很多但可能是比较大。我其实跟刚才老哥其实有一样的诉求,可能针对这个向量目前想的比较明白的可能就是相似图的搜索,然后我们会希望说是不是有一个相对成熟的方案可以比较直接的使用,比如说像 Solr 或是 ES (ElasticSearch)?
顾老师 @ Milvus:是的,我们接下来会放一个 repo 出来,专门为图片搜索这个场景做的一个东西。但其实你要知道这一个领域,因为图片搜索是一个非常宽泛的概念,所以我们可能是会先实现一些基本的功能,然后给大家一些定制 pipeline 的自由度。但是大家可能还是会需要结合自己的具体的场景去做一些调整,因为它毕竟不像文本按结构化数据那样直接分词就可以了,或者说你的词表总是有限的。
Attendee B:理解,然后其实文章的推荐就是也可以用到向量?
顾老师 @ Milvus:是的,现在很多用 BERT 的变种的模型去提取向量,把标题作为句向量,提取出来之后做近似的向量的比对,然后做一个推荐这样子。
Attendee B:OK,了解了,谢谢。
顾老师 @ Milvus:所以您这边主要关注的是图片搜索是吗?
Attendee B:对,主要是图片的搜索。文章的相似度,其实 ES 它有一个方案,但我也不确定它是什么原理,或者说跟咱们这种效果会如何,还没有去对比过。
顾老师 @ Milvus:它不会是基于语义的,因为深度学习的话它是可以做一些基于语义的。
Attendee B:对是的,我觉得其实它的应用可能会比较比较大。但是可能刚才我看到benchmarks 好像是是高配的,那个是物理机吗?如果说是 200 万左右的高清图。
顾老师 @ Milvus:对,是这样的,你可以看到我们当时的 benchmarks 测试当中,有云服务器,有本地的,我觉得配置还好吧。你的 200 万高清图是多高清的一张图片?
Attendee B:平均可能是 5 兆 6 兆,这样有大有小。
顾老师 @ Milvus:那一般会先做一些预处理吗?缩放这些?因为最终提取出来的向量其实都是一样大小的,你不管多大的图片,当然是取决于你具体的场景。
Attendee B:咱们未来会变成产品化的吗?比如说有开源的方案,然后也有一些直接服务的方案,或者说是技术支持之类的,更像 Elastic。
顾老师 @ Milvus:是的,产品化的东西其实我们也是在准备当中,也是在计划当中。可能一些刚才你说的这种商业的支持,更及时的支持,或者说是云服务,这些都是我们会去探索的一个方面。是希望能够用这样的方式来帮助大家更容易的把整个的 AI 技术部署在自己的场景当中。
Attendee B:我可能不太清楚它里边性能的指标会如何,但是我因为之前有关注到这个需求,然后我其实有按照比如说百度的这种云的方案它其实也有以图搜图,但是他的计费的方案或者他的费用我觉得好像还好。但是我刚才看到你在屏幕里面展示出来的位置,我感觉可能....就我不知道在配置下它大概是处在一个什么样的内容规模的?我可能看的比较细,在评估成本。
顾老师 @ Milvus:我觉得你可能之前计算的有问题,百度的其实是非常贵的。其实这个怎么讲,如果你特别频繁使用的话,这个看还是挺贵。
Attendee B:4 元千次。
顾老师 @ Milvus:对,4 元千次其实已经非常非常贵了。你可以评估一下你大概调用的频率会是多少?就是说你可以看它的收费模式是说每天有 1000 张的就是导入的量,但是如果你有 200 万张的话,你想如果你不可能全借用免费额度,对不对?你要免费额度的话你要 2000 天。其实它完全看你的调用量,你调用如果非会非常频繁的话,其实它是挺贵的。
Attendee B:咱们说的项目有大致的时间吗?针对图片相似度搜索的一个方案?
顾老师 @ Milvus:我们会估计在下月就会发出来。
Attendee B:好,那就再期待一下。
顾老师 @ Milvus:但是还是会给大家一些余地去做调整的。
Milvus 开源至今其实已经累积了不少用户了 (可以去翻翻官网的用户墙,这里就不多说 ),但对很多新朋友在刚开始接触 Milvus 的时候可能不是很了解究竟 Milvus 是做什么的。计算平台?数据库? 以图搜图神器?
如果你也充满疑问的话,下周二晚上 8 点同一时间的 Chat with Milvus 线上问答, 顾老师将一次讲清楚什么是 Milvus。也欢迎你来发问、提意见。这种活动形式跟直播不一样的是你可以更加深入的参与且能获得更加及时的反馈。有你才有好的开源软件,这就是开源的魅力!
如何参加会议?加入我们的交流群,参会链接????将公布在群中。
| 欢迎加入 Milvus 社区
github.com/milvus-io/milvus | 源码
milvus.io | 官网
milvusio.slack.com | Slack 社区
zhihu.com/org/zilliz-11/columns | 知乎
zilliz.blog.csdn.net | CSDN 博客
space.bilibili.com/478166626 | Bilibili