想象一下,一位计算神经科学家正在引导数百只小老鼠在迷宫运动,还用上了最新技术对实验对象的神经元进行成像。小白鼠们没兜几圈,TB级的视频数据和大脑数据就产生了。

接下来,科学家还要把庞杂的图像信息转化成深度语义,计算数据之间的关系,做出关于行为如何被大脑控制的假设,并进行下一轮的验证工作。

不仅仅是科研领域,随着科技的高速发展,智能城市、电子商务等跟民生相关的社会场景都需要进行海量动态数据的预处理。这个时候,就需要用到能够梳理数据关系的通用型基础设施。

在刚结束的数据管理国际顶会 ACM SIGMOD/PODS(Special Interest Group on Management of Data)上,一款从非结构化数据中挖掘隐式语义的神器——向量数据库Milvus,就因强大的底层功能而被评委会相中。

万物皆可embedding,AI 应用神器 Milvus 登顶数据库顶会 SIGMOD-LMLPHP
 

(论文链接:https://www.cs.purdue.edu/homes/csjgwang/pubs/SIGMOD21_Milvus.pdf)

Milvus由创业公司Zilliz研发,是顶级开源基金会 Linux 基金会旗下 Al 子基金LF Al的毕业项目,旨在降低非结构化数据搜索的应用门槛,并在不同部署环境下提供一致的使用体验。

SIGMOD'21 评审委员对 Milvus 给予了极高评价:“此项研究成果突破性地实现了向量数据管理的通用系统设计,在满足动态数据实时搜索的同时,也能满足实际业务中多样化的查询需求。作为一项开源技术,Milvus 被广泛应用于人工智能前沿领域,其试验性能大幅超越同类向量检索系统,使得这篇论文极具启发性和借鉴意义。”

能造神器者,必有相应心法,顺应天时、由心造境。跟着这篇对负责Milvus论文工作的易小萌博士的采访,咱们深入了解一下。

万物皆可embedding,AI 应用神器 Milvus 登顶数据库顶会 SIGMOD-LMLPHP

天时:AI时代,万物都在矩阵中

1、问:当初为何想到要做Milvus项目? 

Milvus 项目是2018年启动的,当时我们观察到两个趋势:

一方面,非结构化数据将成为信息的主要载体。

另一方面,AI 模型将会是提取非结构化数据内在信息的关键计算手段。现在看起来,这两方面趋势已经越来越明显了。

全世界每天有几十万PB的非结构化数据被产生出来,这些数据经过AI模型提取了丰富的信息(也就是人们常说的embedding),但却没有一个底层基础软件能够有效管理和分析这些embedding数据。

AI 模型提取出的这些 embedding 都是向量化的表示,Milvus所管理的数据都是向量,进行的运算也基本是向量和矩阵运算。我最喜欢的一个比喻是黑客帝国中的母体,本质是一个巨大的向量和矩阵的集合,作为基座支撑上面各类形态的AI。

2、问:Milvus属于数据库和AI两个领域的交叉工作,有遇到什么新问题吗?

数据库和AI两个领域都挺不好搞的。数据库领域很多工作,比如一致性协议,属于那种 'you know everything but nothing works'。AI的话正好反过来,'everything works but nobody knows why'。我们在这个交叉领域就很不一样了,'nothing works and nobody knows why'。

发这篇论文主要是想把我们在非结构化数据分析与搜索领域摸到的一些东西分享出来,也是想开个坑,拉更多学术界和业界的朋友一起到这个坑里来探索,因为这个领域很新也很重要。

3、问:Milvus团队正在结合AI做更深的探索,能否谈谈对于这个交叉领域的期待?

在我们团队里有一句话,万物皆可embedding。不过现在通过不同的AI模型所获得的是一些相互独立的 embedding 空间,是一系列信息孤岛,这就好像wikipedia的每个词条都是用一种不同的语言书写的。给出每个词条的语义解释能够帮助解决不少问题,但如果能将不同词条的语义解释关联起来,将会产生巨大的应用价值。我们非常期待能打通这些embedding空间的相关技术,也许是一些中间层的embedding空间,也许是一些中间层的神经网络模型。

落实到具体的场景应用上,我们期待看到综合场景下搜索技术的突破。近几年,随着多模态学习技术的日益发展,同一事物在不同模态之间信息的关联和互补关系得到了深入的研究。相比而言,目前的数据搜索模式相对单一,通常只能较好的解决单一模态下的数据搜索问题,而如何对不同模态的数据进行高效准确的关联搜索仍然是一个开放性的问题。解决这一问题需要在算法、模型和系统层面上进行深入的探索和分析。

心法:开源,做有意义的系统工作

4、问:Milvus团队多位骨干都有学术界的经历,为何会来到一个start-up?

包括我在内的多位研发团队成员都出自华中科技大学金海教授的实验室,我在读博期间对金海教授讲的“做有意义的系统工作”印象特别深刻。有意义的系统工作在学术界或工业界其实没有很明显的边界,同时工业界近年来在研究领域的优势愈发明显,依靠规模与场景两个高地构建了很多优秀的系统,比如谷歌的BigTable、GFS、MapReduce。

早些年,很多领域都是学术界走在前面,但是在计算机系统领域有很多反转的现象,不少经典的方向都是工业界先开坑,然后学术界在这个基础上不断完善。在学校的时候老师常常对我们说,让自己快速成长最好的办法就是要跳出自己的“舒适区”。以我为例,逐渐熟悉了高校里面做研究的方式之后,就希望能够到企业对自己进行新一轮的锤炼。

5、问:能否展开谈谈“做有意义的系统工作”?

我在学校的研究方向比较偏理论,研究的内容通常是在某些特定场景,在一定的假设条件下如何优雅地解决一个问题。在企业里面做事天然会从实际意义出发,相比优雅,我们的解决方法更需要的是健壮。所以,我们所说的“做有意义的系统工作”,并不是指从 paper 产生paper,而是从实际的系统中抽象出来一些问题,包括系统设计的框架、具体的优化方案、最终目标,解决之后又重新应用回系统中去。

读博那会儿,觉得最缺的是好问题。现在做Milvus这样的开源基础软件,研究和研发同时被用户和社区推着快速迭代,值得解决的问题太多了。很多时候,要抑制自己做研究的冲动,把资源投到项目的快速迭代上面去,这样才能维护好问题的源泉,也就是用户和社区。从这个角度看,我觉得开源社区在未来一定会和学术界有更多类似的合作实践。

6、问:开源社区和研究课题之间具体是怎样的关系?

开源这套理念经过了几波发展,从早期的 “半宗教” 性质到现在,融入了很多商业上的探索。最直接的就是开源之后,与用户和技术人员的接触面积大幅提高。好的项目,从某种层面看,对好的问题处于垄断地位。开源有助于把技术和场景两方面的因素更加有效地糅合起来,不断碰撞,产生化学反应。开源社区和学术界,主要也是围绕这些 “好的问题”进行互补。

目前,我们在思考如何更高效地开源 “问题”。在社区的活动形式上也在做新的尝试,希望把更多 “好的问题” 暴露给学术界。

7、问:总结一下,Milvus技术团队做项目的路径和方法是什么?

首先,要充分了解过去。 几乎所有的创新性工作都是基于前人的基础完成的,就算是在比较新的领域里面也是一样。我们需要对现有技术有充分的了解,在此基础之上审视我们所遇到的问题,然后再寻找可能的解决方案。

然后,需要有途径去看未来。 总体而言,研究类工作是面向未来的。未来场景是什么样子、上层应用对底层系统有哪些需求、痛点和难点是什么,这些都是需要仔细探讨认真推断的。要做到这一点,我们认为最好的方法就是探索场景。只有从深度和广度两个方面扩展对场景的理解,才能清楚各个场景下对系统能力最普遍最迫切的需求是什么,从而以场景为约束去塑造系统。

最后,不要造了锤子找钉子。 开发基础软件有时候就像是造锤子。如果等锤子造好了之后再去根据锤子的形状去找能敲的钉子,也许就会发现其实有很多的钉子不太适合用这个锤子来敲。这个时候再想要调整锤子的形状就比较困难了。我们应该避免为了做系统而做系统的模式,而应该看准实际场景中的问题。只有尝试解决有价值的问题,才能产生有价值的系统工作。

07-12 17:22