挖掘非结构化数据潜能——向量数据库的探索之路

“  摸着石头过河,一直向前,不断尝试 

整理 | 小白

出品|极新

IDC 预测,到 2025 年,中国的数据量将增长到 48.6ZB,80% 是非结构化数据,并且将成为全球最大的数据圈。在我们的日常生活中,非结构化数据的查询使用场景也越来越多见,比如以图搜图、视频搜索等等。

随着非结构化数据应用的增加,此类数据的处理分析需求也在随之增加,而现有的数据库产品绝大多数都是面向结构化数据的处理,非结构化数据处理工具寥寥。基于此现状,Zilliz 在 2019 年开源了向量数据库 Miivus,专注非结构化数据的处理。

以下正文部分为“挖掘非结构化数据潜能——向量数据库的探索之路”主题直播回顾。

图片

栾小凡是 Zilliz 合伙人和技术总监,同时是 LF AI & Data 基金会技术咨询委员会成员。在加入 Zilliz 前,他在阿里云担任研发经理,负责 NoSQL 数据库 Lindorm 的研发工作。此前,他曾先后在美国甲骨文公司和软件定义存储公司 Hedvig 担任软件工程师。栾小凡拥有康奈尔大学计算机工程硕士学位。

非结构化数据与向量数据库

OSCHINA:非结构化数据的格式和标准非常多样,而且在技术上它会比结构化信息更难以标准化和理解,目前非结构化数据的技术发展情况大概是怎样的?

栾小凡:我是做传统数据库出身的,非结构化数据对我来说,也是一个非常新的一个领域。

传统的数据库,无论是 OLTP、OLAP 数据库,还是 NoSQL 数据库,主要面向的是一些结构化的数据,比如说像 string、int 等数值类型的。非架构化数据会更加多样化,比如生活中常见的图片、视频,或者是推荐系统中的用户信息、商品信息,都被归到非结构化数据范畴中。其实非结构化数据的体量在整个业界的规模是更大的,而且增长数独也很快。

据调查报告显示,到 2025 年,80% 以上的数据都会是非结构化数据。但传统的数据库没办法很好地去处理这种非结构化数据。所以其实我们在做大数据转型的过程中,发现很多非结构化数据的价值被浪费了。因此我们现在的核心在于关注这个领域怎么能利用 AI 和数据库的技术,去赋能非结构化数据处理,帮助大家更好地去挖掘各种各样的非结构化数据的核心价值。

那么现在比较主流的非结构化数据处理方式,基本上都是通过一些深度学习的模型实现。因为非结构化数据本身的种类非常多,可能没有办法很容易地通过某一种规则去处理。传统的结构化数据,通过排序或者聚合可以去做一些比较好的处理,它的算子方式相对来讲比较统一。但非结构化数据由于种类很多,所以我们希望先把它统一成一种机器能够理解、能够处理的结构。那么目前比较主流的方式,其实是通过一些深度学习的模型,把数据生成向量 embedding,然后再去做一些近邻的匹配,那么在高纬空间底下,如果这个向量的距离是相似的,我们就认为它代表非结构化数据的一些相似性。

举个简单的例子,我想做图片搜索或者以图搜图,就可以把图片经过深度学习模型转化成一个向量。然后在高纬的向量空间里,找到一些近似的向量。那么这些近似的向量背后代表的那些图片,可能就跟原始的想要查询的图片比较相似。

至于怎么定义这个事情,很大程度上取决于你的深度学习模型,包括训练的时候带有哪些特征等等。比如在做人脸识别的时候,可能会在训练的时候特意给出一组相似的人脸样本,和一组不相似的人脸样本;或者在做物体识别的时候,给到的图片分类里还包括其他生物的图,通过这种方式,把这个问题转换成模型问题。

OSCHINA:向量数据库作为挖掘非结构化数据的有效方法,在实践中突破了哪些关键技术,遇到了哪些难点,目前发展的现状大概是怎样的?

栾小凡:刚才的回答里也提到,我们定义非结构化数据,最终需要把各种类型的数据转换成机器更容易理解的一个形态,这个形态就是我们所说的向量。

向量数据库其实就像传统数据去处理一些关系型数据、结构化数据一样,承担的是非结构化数据的低成本存储和高性能计算两大核心能力。

就向量数据库来讲,我们认为它要具备三个特性:第一个就是它需要具备高维度的数据处理能力,这和传统的数据库有很大的区别,传统数据库去处理一些 string 或者字符、数值类型的时候,它的数据的维度往往是一维的。

近年来也出现了一些类似于时空数据库,开始去处理二维或者三维的数据。但总的来讲,传统数据库的数据的维度都比较低,在数据维度比较低的情况下,使用的一些索引,比如常见的像这个 B 数的索引、L S M 数的这些索引,可能在一个更高维度的数据上做相同索引,是不能达到效果的。所以对于向量数据库来说,第一要找到适合处理高维数据的索引类型,这是第一个难点。

第二个难点,向量数据库既然作为一个数据库,那么它本身应该是有一个比较好的数据管理能力的,因为大家都知道数据库就是用来管理和检索数据的,向量数据库也不例外。那么我们希望这个向量数据库能够给到用户过往使用数据库产品的一些相同体验和抽象概念。

比如向量数据库里有表的概念,也有日志的概念,然后我们帮用户解决了怎么去做持久化,怎么做分布式、做扩展、做高效查询等等,怎么把一些固定的查询语句转化成最终的执行结果。所有这些事情都是向量数据库需要去解决的。

最后一点,回到向量数据库本身的特性上来,向量数据库有一个很重要的特点:对计算量的要求特别大。这种计算量主要是体现在:比如传统数据库处理一行数据可能是对一个 float 类型去做大小的比较,那么对于这种高维度向量数据的操作来说,去计算欧式距离,简单来讲就是对一些数字做加减乘除、再平方、再开方,而且这个数据的维度又特别高,因此它对算力的要求是相对来讲比较高的。

因此,在向量数据库里,我们也在利用一些定制的硬件,包括 C P U 并行计算,向量化计算来去加速查询执行,这个可能也是向量数据库本身面临的一个比较大的挑战。

Zilliz:坚持开源,服务上云

OSCHINA:向量数据库其实是 Zilliz 提出的一个新物种,聚焦到 Zilliz 本身,简单给大家介绍下你们正在做的事情?

栾小凡:我们是从 2018 年左右开始关注到非结构化数据这个领域的。

顺着这个思路,我们第一时间就找到向量数据库的突破点。当时正好在 AI 领域的高维数据检索取得了一定的突破,Facebook 也提出了向量检索的工具 faiss。

在这个基础上,面向用户需求,我们做的第一件事情就是做了一个向量数据库,然后在已有的向量检索的基础上完善了整个向量数据的使用机制,包括用户的使用习惯。并且我们当时做了世界上第一个开源的向量数据库,也就是 Milvus。

接下来,我们做了两件大事,一是开源 Towhee,Towhee 项目的核心就是把非结构化数据转换成向量的过程,我们也将其称为非结构化数据的 ETL。那么在这里面,我们也是大量使用了开源模型,然后根据用户需求,提取用户数据中的关键信息和向量。

除了做开源的产品,我们公司还有另一个这个比较大的一个标签,其实是做云。我们面向公有云提出的 SaaS 的服务,这个服务里也包含了我们的开源产品。那么在未来的话,像 Towhee,包括围绕着整个 Milvus 生态的一些其他开源项目,比如我们向量检索的内核引擎 Knowhere,然后比如说我们的可视化的工具 Attu、还有 Feder,这些工具也都会在云上上线。

OSCHINA:你是在什么时候加入 Zilliz 的,选择加入的原因是什么?

栾小凡:我是在 2020 年年初加入 Zilliz 的,其实也是机缘巧合。我个人之前一直在云数据库厂商,做数据库相关的工作,之前更多的是做闭源的商业产品。

我加入 Zilliz 的原因:第一个,向量数据库是一个相对来讲非常新的赛道,相较其他数据库赛道,其他数据库赛道基本都有一个领先的王者,比如关系型数据库大家会想到 MySQL,会想到 PostgreSQL,搜索领域会想到 Elasticseartch。

而在向量数据库领域,目前 Zilliz 是最早去做的一家,并且做到也算不错,所以这对我来说是一个很好的机会,能够去参与做一个世界领先的数据库,对我也是一个比较大的挑战。我本人也是从美国回到国内,所以其实蛮有信心,觉得今天中国的工程师是有能力做出一个可以让全世界工程师一起去使用的产品。

第二个动力,其实 Zilliz 本身是一家做开源,也是一家做云的公司,从我自己的背景来说,我过去对公有云和专有云都有一定的了解,我也一直都是个开源爱好者,也曾经参与过 Apache Hbase 的开发,也希望能有机会深度参与到一个开源社区里面,去主导一个开源社区的发展。所以,Zilliz 也是一个能施展我自身才华的舞台,加入 Zilliz 之后也交到了许多志同道合的朋友,这也是我来 Zilliz 一个很大的收获。

OSCHINA:你在这家开源商业化公司身负多重角色,包括 Zilliz 技术总监 / Milvus 项目 maintainer / 产品架构师。你是如何平衡这些不同角色的?现在你一天的工作内容和节奏大概是什么样的?

栾小凡:如果大家有机会在开源领域工作的话,你的头上永远戴着两顶帽子,一边是在商业公司工作,另一边同时又是在一个开源社区工作,并且这个开源社区不属于这家商业公司,此时就需要去平衡好其中的工作时间分配,找到两件事情间的契合点。

其实在 Zilliz,我觉得比较幸运的一个点就是我们的 CEO 星爵本身是一个有技术情怀的人,给了我们很大的空间,允许我们的工程师团队花时间精力在开源社区里面。当然 Milvus 本身就是我们捐赠给基金会的,这个项目就像是我们的亲生儿子一样,所以我们也会自发的话很多时间在这个项目上。

另一个我觉得很好的契合点就是,我们公司本身也确实在基于开源项目做商业化工作,所以项目本身的成功对我们自己做商业化成功也是非常有帮助的。那么我们在日常工作中,工作重心也是随着整个产品和项目的发展,一直在去做平衡和调整。可能在某个阶段,比如社区发版的关键时刻,我会花更多精力在社区上面,和其他社区成员做更多沟通,帮助他们去找到一些解决问题的方法,与此同时我也会从公司的利益角度出发,去寻找一些公司和社区同时需要的东西去作为我们对社区的一种贡献。

日常工作的话,我作为一个开源维护者来讲,我相信可能很多做过开源的朋友都会有这个习惯,每天早晨到公司第一件事情就是查看、回复邮件,我每天早晨大概会花半个小时在这件事情上。每天下午我也会留一段时间去做 code review,然后和其他同学去做讨论和对齐。另外就是个人爱好,每天晚上如果没有特殊的事情,我一般会写写代码。目前我的工作职责里不会要求我去写代码,写代码已经成为一个个人爱好,我还是希望能够坚持给社区持续输出一些代码。

OSCHINA:开源项目的成长离不开贡献者们长期的投入。Milvus 作为一个开源的向量数据库,目前下载量已经突破 100 万大关,是非常棒的成绩!可以分享下你们在维护这个顶级开源项目的经验吗?

栾小凡:刚刚有聊到,我加入 Zilliz,开源对我来说是一个很重要的吸引因素。当我真正跳进去去做事时,会发现事情往往也没有那么简单。我觉得开源本身其实对人的心力、体力、脑力都是很有挑战的一件事情。比如从体力上来讲,我每天可能都会收到几百封相关邮件,然后把所有的邮件全部读完,很多需要回复,这对我来讲就是挺有挑战的一件事。与此同时,在整个社区里,我作为架构师,还要去协调各种开发进度,比如所有项目是否都能跟得上 release 计划等等。这些工作这些其实都是蛮花时间的。

从心理上来讲,因为本身兼具做商业化和做开源两个不同的职责。虽然说我们会尽力去找到一些共同点,但也必然存在一定的冲突。那么怎么样能够既满足开源用户的需求,吸引到优质贡献者、用户进入到社区中,这肯定是一个挑战。但另一方面,也要去思考项目更长期的发展,怎么保证项目能跟我们自己的商业化利益长期保持一致,这个其实还是挺有挑战的。

但在这个过程中,很多开源用户给了我们很多支持。因为 Milvus 一直以来,包括最近的 2.01 版本都做了一些比较大胆的设计,其间也遇到了稳定性、性能等各方面的挑战。在这个过程中,确实很多开源用户、开发者给了我们非常多的帮助和建议。这也是让我们觉得做开源,做一个能在国际上有知名度和影响力的开源项目的意义所在。

OSCHINA:Zilliz 最近还有一个大动作就是推出了 Zilliz Cloud,测试版本最近刚刚上线,介绍下这个新产品吧。

栾小凡:首先它的定位是一个非结构化数据处理的云。这个云里面,最核心的产品就是我们刚才聊的比较多的——Milvus 向量数据库。在我们的设想和规划里,非结构化数据和结构化数据本身的处理流程并没有什么不同,应该都是围绕在一个数仓或者一个数据库,然后通过工具去做数据转换与处理。

我们现在的,也是从我们的开源向量数据库出发,在数据库的基础上,打造一系列的服务,包括大家能感知到的 Web 前端的一些 Open API。中间可能大家感知不到,但是是非常重要的,这种资源调度、池化,共用等逻辑,以及面向整个非结构化数据处理的一些组件,比如说数据迁移、数据导入、数据备份。那我们推出的 Zilliz cloud,其实最主要的原因跟我们做 Milvus、Towhee 都是一样的,我们希望用户能够在云上,以较小的投入去处理遇到的各种各样非结构化数据,并从中挖掘自身的业务价值。

现在 Zilliz Cloud 还在公测阶段,我们目前主要在北美的 AWS 上做上线。如果大家对这个事情感兴趣,想了解我们是怎么提供 SaaS 服务的,或者对我们的技术细节感兴趣,想了解更多 Zilliz Cloud 的相关信息,欢迎大家去做试用。

OSCHINA:上云是很多开源项目实现商业价值的一个必经之路。可以介绍一下你们是怎么看待开源产品的商业化,以及商业化上的整体战略和路径吗?

栾小凡:首先 Zilliz 就是一家商业公司,商业化是我们逃不开的话题。Zilliz 在很长一段时间内是专注做开源、专注做产品的。我们首先希望能做出一套世界领先的技术。另外就是,在向量数据库的赛道,我们认为还没有到大规模商业化的阶段,需要先完成产品的打磨以及对用户的教育。

就目前的情况看,Milvus 作为一个开源项目,已经获得了很多企业的认可,在全世界也有越来越多的用户开始关注向量数据这个领域,也有很多用户来问我们能不能通过云服务去降低整个使用成本。那我们理解,现在可能已经到了一个推出云服务的时间。而我们推出云服务的动机,本质上还是希望用户能够更好地使用向量数据库去解决自身遇到的问题。

可能也有人会问,我们为什么不能在开源产品上把这件事做得更好,而是一定要通过云去提升用户体验。这其实就回我们做云服务的初心,其实整个云上的代码和软件数据和传统数据库会有非常大的不同,在开源领域,我们没有办法假设所有用户都是在云上使用这个数据库,肯定有一些离线用户需求,那么可能这部分用户的使用体验没有办法像云上用户一样那么简介,这其实就是我们做云服务一个很重要的目标,让用户以最少的理解成本把产品用起来。

第二个很重要的点就是云上的资源是无限的,我们就可以通过对一些索引节点的池化、数据的池化、或者是存储计算的分离来优化数用户的使用体验。比如从用户视角来看,可能对大量数据去建索引,这个时间就会变得很短;又或者我有了存储计算分离之后,如果业务流量有很大的变化,那么久能以很快的速度做扩缩容。这种云的池化也是给用户带来很好的体验。

当然围绕 Milvus 生态,我们也做了大量的生态工具,希望这些工具能帮到用户解决他们在生产环境中遇到的一些问题。在开源领域,我们依然会持续投入,把开源产品打造得更好用,我们希望无论是在云上还是开源产品上,Milvus 都是能是用户在向量数据库领域的一个最佳选择。

OSCHINA:能长期坚持开源产品免费的公司,一定有它独特的工程师文化。Zilliz 内部有着怎样的工程师文化?

栾小凡:我们是一家特别强调工程师文化的公司。主要体现在两方面:

首先,公司的所有合伙人以及重要岗位的负责人都有工程师的背景。

当初加入Zilliz 时,星爵问我:“你希不希望做一个能影响世界的产品?如果要做这个产品,你觉得你需要一些具备什么能力的伙伴?”这句话触动了我。加入公司之后,我跟老板形成了一个默契:我们一定是一家产品优先的公司。

在工程师文化里,产品优先就意味着,公司希望所有人都对自己在做的事情有比较清晰的了解,并且知道自己做的事情在整个业务版图里,或者说在整个非结构化数据处理的版图里面到底有什么样的价值。

其次,公司非常鼓励大家使用开源,包括第三方的一些 SaaS 服务。因为我们自己也是一家做 SaaS 的公司,依赖了大量的开源项目,包括 Parcel、Grewnetys、ETCD,以及很多第三方的SaaS 服务。在使用开源的时候,我们一直鼓励工程师积极向其他社区回馈。现在,公司有很多同学已经慢慢成长为在开源领域比较有影响力的一拨人。我们希望,无论是中国的开源,还是中国的 SaaS 领域,未来能有越来越多的 Ziiliz 同学继续发光发热。

OSCHINA:Zilliz 最近在学术界也取得了一些很好的成绩,感觉公司内部的学术氛围非常浓厚。可以给大家介绍一下这方面的情况吗?

栾小凡:公司自成立伊始就对学术比较重视,因为我们的创始人团队都有学术背景。刚开始做向量数据库的时候,我们就想过要发一些 paper,跟大家分享什么是向量数据库。在 SiGMA 2021 会议期间,我们提交一篇关于 Milvus 1.0 实现的论文,这也是业界最早介绍什么是向量数据库的论文。

在这篇论文里,我们比较详细地阐述了向量数据库面临的挑战以及开发该数据库的过程。此外还提出了 Milvus 1.0 面临的生产模式 ,并得出了一些比较有意思的测试结果。

今年我们出了一篇新的 paper,它可能是业界第一个介绍云原生向量数据库的论文,比较详细地介绍了 Milvus 2.0 设计,已经被 VLDB 2022 会议正式收录。接下来我们会发布一些文章对论文进行解读,帮助大家更好地理解我们为什么要做云原生向量数据库。

与云原生数据库相比,向量数据库面对的挑战是截然不同的,因为向量数据对算力要求非常高。比如在构建向量索引时,操作完全是离线的,对算力资源、弹性的要求远远高于云原生数据库。对技术细节感兴趣的同学可以去搜一下这篇论文。

精彩问答

Q:现在市场上,有什么面向用户端的向量数据库应用案例?

栾小凡:向量数据库本身的应用场景还是非常广泛的。非结构化数据本身的种类就很多,比如图片、音频、视频、长文本等等。

最常见的互联网领域应用场景就是搜索广告推荐。传统搜索往往基于标签或倒排的数据,效果并不是特别好,因此越来越多的公司就开始引入向量化的多路召回,因为向量化对的数据表达能力要远远强于传统的标签或者关键词检索。

还有针对图片或视频的处理,比如去重、风控等等,以及多模态应用——根据图片找文字或者根绝图片找音频,这些都是向量数据库很大的应用场景。

在视频领域还有一个绕不过去的应用场景——安防,其中涉及到人脸识别、指纹识别、声纹识别,这些也是向量数据库比较容易落地的应用场景。

当然还有一些比较有意思的场景。比如在生物制药领域用向量数据库帮助小分子药物找到蛋白质上的靶点;在时序数据里找到趋势近似的历史,实现时序预测。

我们的一个口号其实就是 everything to embedding,我们希望在现实生活中所有能看到的数据,都能通过 Towhee 把它变成向量数据,然后再基于 Milvus 发掘其中的价值。欢迎有特殊数据的用户来跟我们交流

Q:向量数据库是一个比较新的概念,你们有过那种摸着石头过河的经历吗?

栾小凡:我们不是有过这种经历,而是一直在摸着石头过河。到现在为止,这条河可能也只过了一半,有时候甚至没想清楚怎么过得去。任何领域的先行者,都会面临相同的问题,都在不断地尝试。

在尝试的过程中,公司对学术的重视以及创始人的技术背景和学术背景,让我们能够更早地去看到未来方向。

2019 年我们做第一代数据库的时候,看到了一些方向,并且在工程化的过程中,越来越多的预测得到了应验。眼前来看,向量数据这个领域确实有很多不确定性,但如果抬起头看得更远一些,还是能看到一些方向的。

我们总结的另一个经验是,要快速迭代。尤其是作为开源软件,快速迭代能够快速找到一帮用户,一起打磨产品。正是有了这些用户,我们的产品才能比较快速地去迭代,正是因为有了这种快速迭代,我们才能在一个新赛道找到自己的方向。三四年前刚开始做这件事的时候,没有太多人能把向量数据库最终的状态想得很清楚,我们也是一步步根据用户的需求才找到了方向。

Q:你们是怎么获得首批客户的?一些产品都开源了,会不会很难让用户去付费?

栾小凡:我们把用户分为开源用户、付费用户两部分。

对开源用户而言,最重要的事情就是要找到产品的独特价值。因为 Milvus 瞄准的是一个比较新的领域,很多时候不是我们主动去联系用户,而是用户主动联系我们,希望能用我们的产品帮他们解决问题。我觉得无论是在创业还是做开源项目,在已经决定要往这个方向投入经历之前,可以提前做一些产品宣传,看看能否通过产品的核心价值吸引到一批用户。忠实用户会跟着产品一起成长,并且有足够的耐心共同来解决很多问题。

至于商业转化,我们公司还处于刚刚起步的状态。我认为最关键的就是,要给付费用户提供更大的价值。我们的服务有公有云和开源的区别。开源产品已经能够满足大部分用户的业务诉求,但开源只能做到八十分。而云服务可以从八十分提升到一百分。因为云服务有一些限制,可以让我们更好地去设计整个产品,给用户提供很多附加价值。

Q:向量数据库商业化的计划是什么?目标客户有哪几类?市场上有没有一些对应的竞品?

栾小凡:从选择向量数据库这个赛道就可以看出来,我们是一个有自己的品位和调性,比较相信自己判断的一个公司。

在向量数据库商业化这条路上,我们坚定地选择在公有云上做 SaaS 服务这一方向。在国内,做公有云或者 SaaS 并不是一个特别主流的选择。面对这种情况,我们的选择是瞄准海外市场。所以,公司现在整个商业化产品都优先在 SaaS 上线。

公司的一个理念是,只做正确的事情,不做容易的事情。可能在国内获得订单比去海外做 SaaS 服务,从零到一会容易很多。但目前来看,国外用户对向量数据库或非结构化数据处理的 SaaS 服务,不论是需求还是接受程度都会更高。我们选择直接跟竞争对手在这个赛道上硬刚。

我们的主要竞争对手分为三类:

一是共有云厂商。我们是在共有云上做 SaaS 服务,跟 AWS、Google、微软有一定的竞争关系,他们也都有一些向量检索。

二是搜索领域的特殊竞争对手。比如已经上市的 Elastic,几十亿美金估值的巨头公司 Algolia。他们本身就是做搜索出身,现在也开始往向量检索这个领域做一些探索。因为向量检索提升业务效果很明显。接下来三到五年,向量检索应该会变成一个非常主流的选择。

三可是跟我们同赛道的创业公司。目前我们公司还是处于比较领先的态势。一方面,公司花了很长时间打磨产品,并且较早发布了开源产品和云服务;另一方面,得益于用户陪伴我们成长,我们也更加了解用户需求。因此,我们非常有信心能在向量数据库这个赛道取得一定优势

Q:云可以支持亿级的向量搜索吗?

栾小凡:亿级已经不是我们现在的目标了。在内部测试环境里,我们都是以十亿向量起步去做测试。

我们在设计 Milvus 系统时,是冲着百亿规模甚至千亿规模去设计的。现在真正落地的环境里,几十亿比较常见,一些其他用户可能有百亿规模甚至有千亿规模的向量数据。所以亿级不是一个特别有挑战性的一个目标。

比较有挑战性的一个问题是,在亿级规模下,我们能做到多高的吞吐量?目前社区正在针对这一点持续优化。当然,我们在云上借助更多资源也可以实现万级别甚至更高的QPS。

成本依然是大家很关注的一个话题。所以接下来,我们会在产品层面继续优化,希望能够在今年年底或者明年初实现令人惊叹的性能指标,亿级别数据也能实现过万以上的QPS。

Q:目前向量数据库这个细分行业的瓶颈是在被什么主导?Zilliz 开始选择了一个非常细分的发展方向,现在又加入了 Towhee,感觉慢慢在形成生态。这种生态能够打破瓶颈吗?

栾小凡:我觉得数据库并不是一个细分领域,而是一个很大的领域,只是还在成长中。

至于瓶颈的话,我们也一直在等向量检索领域出现一个 Killer APP,就像苹果手机一样。苹果手机在早期推出的时候,大家可能也会对大屏幕很怀疑,这么大的屏幕看起来也不错,但它到底有什么用?直到三四年以后微信、滴滴等这些 APP 出来了以后,大家发现大屏幕已经变成一个标配。

我们认为,可能向量数据库正在处于技术主导的阶段,很多应用场景没能落地,主要是卡在产品本身,比如说向量数据库性能无法满足要求——用户有亿级的数据量,但是现有的解决方案没法用。如果我们解决了这个问题,那自然就会把行业推到下一步。我们会看到算法层面的大幅提升或者我们所说的 Killer APP 会出现。反过来,它们也会推动这个行业发展。

Q:现在 Zilliz 的产品基本上融合了深度学习、大数据处理、分布式计算很多不同的技术。门槛这么高,招到顶尖的技术人才是不是就会比较难?公司现在想要吸引什么样的人才加入呢?

栾小凡:招聘一直是我们比较头疼的一个话题。在国内做基础设施的工程师,并不是特别的多。我们需要的不仅仅是懂数据库,懂大数据,或者懂 AI 某一个赛道的人才,还有懂各种的技术复合型人才。为此我们花了非常多的时间,过去两年,公司的人才密度逐渐提高。同事,我们也慢慢地放宽了自己的“雷达”。过去公司在上海,人才搜索范围基本上就是在上海。之后公司又在杭州、北京设置了办公室,主要就是为了扩展我们的人才雷达。今年,公司也正式到美国 San Francisco 组建工程师团队。

另一方面,我们有一个原则,如果人才不好找的话,那就自己培养,所以特别注重工程师的培养。作为创业公司,我们一直坚持做校招,招聘了很多来自于清北,复交,华科,武大等国内顶尖高校的人才。我们花了很多的时间去培养加入公司的优秀的年轻人,如今他们已经在公司里承担了一些关键的岗位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/119902.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python使用pysqlcipher3对sqlite数据库进行加密

python对很多项目都需要对sqlite数据库的数据进行加密,最流行的加密方式是使用pysqlcipher3,当前使用的python版本为3.7,本博文是直接使用pysqlcipher3在项目上的应用,使用的是已编译好的pysqlcipher3包,如果你需要pys…

Jmeter_逻辑控制器

逻辑控制器 控制取样器执行顺序的组件实现(分支 循环) 分类 1、如果(if) 控制器 分支实现 2、forEach控制器 循环往复实现 3、循环控制器 循环往复实现 如果(if) 控制器 需求1:测试计划中定义一个 http 请求访问百度,但是该请求不是无条件执行的,…

【uniapp小程序下载】调用uni.uploadfile方法在调试工具里是没有问题的,但是线上版本和体验版就调用不成功,真机调试也没问题

把你的下载地址前缀添加到合法域名就解决了 在调试工具里成功了是因为勾选了下面这项 下面是我的下载并打开函数 methods: {// 下载downloadFileFn(data) {if (this.detailsObj.currentUserBuy) {uni.downloadFile({// data是路径url: https:// data,success(res) {//保存到本…

linux地址空间

地址空间 内存空间示意图虚拟地址空间虚拟地址进程地址空间生命周期图解为什么要有地址空间呢? 小结 内存空间示意图 进程是在内存中运行的,为了便于管理,不同的数据会存储在不同的区域,因此内存就被分为几部分,如下图…

新的iLeakage攻击从Apple Safari窃取电子邮件和密码

图片 导语:学术研究人员开发出一种新的推测性侧信道攻击,名为iLeakage,可在所有最新的Apple设备上运行,并从Safari浏览器中提取敏感信息。 攻击概述 iLeakage是一种新型的推测性执行攻击,针对的是Apple Silicon CPU和…

独立键盘接口设计(Keil+Proteus)

前言 软件的操作参考这篇博客。 LED数码管的静态显示与动态显示(KeilProteus)-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/134101256?spm1001.2014.3001.5501实验:用4个独立按键控制8个LED指示灯。 按下k1键&#x…

Elasticsearch:RAG vs Fine-tunning (大语言模型微调)

如果你对 RAG 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:什么是检索增强生成 - RAG?”。你可以阅读文章 “Elasticsearch:在你的数据上训练大型语言模型 (LLM)” 来了解更多关于如何训练你的模型。在今天的文章中&#…

Git 内容学习

一、Git 的理解 Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS),用于对项目源代码进行管理和跟踪变更。分为两种类型的仓库:本地仓库和远程仓库。 二、Git 的工作流程 详解如下&#x…

CATIA环境编辑器用不了时创建项目快捷方式

CATIA环境编辑器用不了时创建项目快捷方式 一、参考适用情况示例二、 解决步骤(一) 先正确放置winb_64部署包(二) 添加环境文件(三) 修改加入的环境文件(四) 复制本机CATIA快捷方式后重命名(五) 修改快捷方式目标的值 一、参考适用情况示例 二、 解决步骤 (一) 先正确放置winb…

社区分享|杭银消费金融基于MeterSphere开展接口自动化测试

杭银消费金融有限公司(以下简称“杭银消费金融”)成立于2015年12月,是经中国银保监会批准,由杭州银行作为主发起人,联合滴滴出行、中国银泰等企业组建的持牌消费金融机构,注册资本为25.61亿元。杭银消费金融…

关于Alibaba Cloud Toolkit 下载配置以及后端自动部署

idea中File-Settings-Plugins 搜索Alibaba Cloud Toolkit点击下载,下载完成重启 1、点击 Tools-Alibaba Cloud-Deploy to Host 部署到主机 2、配置服务器ip、jar包启动命令、服务器jar存放位置 3、设置服务器ip用户名密码,点击测试连接情况 4、配置脚本…

计算机的运算方法

无符号数 定义:没有符号的数,在寄存器中的每一位均可用来存放数值 表示范围:n 位无符号数 0~2n -1 有符号数 定义:符号位数值位 “0”代表正,“1”代表负 表示范围:n 位有符号整数 原码、反码&#x…

Rust编程基础之引用与借用

1.引用与借用 在上一章节最后的代码中, 我们必须将 String 返回给调用函数,以便在调用 calculate_length 后仍能使用 String,因为 String 被移动到了 calculate_length 内。相反我们可以提供一个 String 值的引用(reference)。引…

理解交叉熵(Cross Entropy)

交叉熵(Cross-Entropy)是一种用于衡量两个概率分布之间的距离或相似性的度量方法。在机器学习中,交叉熵通常用于损失函数,用于评估模型的预测结果与实际标签之间的差异。 在分类问题中,交叉熵损失函数通常用于多分类问…

uniapp小程序才到第五层就报错navigateto:fail webview count limit exceed

错误截图 原因 小程序官方描述是说可以跳转10层,但是使用uniapp开发的程序在小程序中才运行到第五层就报错了,原因是因为没有设置appId。如果设置了就正常了。

Docker与微服务实战——基础篇

Docker与微服务实战——基础篇 第一章 Docker 简介1.1 docker 理念1.2 容器与虚拟机比较 第二章 Docker 安装2.1 前提说明2.2 Docker的基本组成2.2.1 镜像(image)2.2.2 容器(container)2.2.3 仓库(repository&#xff…

php实现普通和定时跳转的几种方式

一、普通跳转 1、使用header函数:通过设置HTTP头部信息实现页面跳转。可以使用Location头部指定跳转的URL。例如: header("Location: http://www.example.com"); exit(); 2、使用JavaScript:可以使用JavaScript的window.location…

HCIA_数据链路层

如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网帧 1、EthernetII 采用EthernetII协议会在数据基础之上多出18Byte,EthernetII的数据长度是46-1500B FCS(Frame check Sequence)帧校验序列&#…

Linux安装nodejs问题

安装nodejs后,使用node -v报下图 参考下面两个可解决:【Linux-编译器gcc/glibc升级】CentOS7.9使用NodeJS18时报错/lib64/libm.so.6: version GLIBC_2.27‘ not found-CSDN博客 报错信息ImportError: /lib64/libstdc.so.6: version CXXABI_1.3.9‘ not f…

技术分享 | app自动化测试(Android)--元素定位方式与隐式等待

元素定位是 UI 自动化测试中最关键的一步,假如没有定位到元素,也就无法完成对页面的操作。那么在页面中如何定位到想要的元素,本小节讨论 Appium 元素定位方式。 Appium的元素定位方式 定位页面的元素有很多方式,比如可以通过 I…
最新文章