编者按:本文来自微信公众号“GGV纪源资本”(ID:GGVCapital),作者:创业内幕,36氪经授权发布。
提到“搜索”一词,你首先想到的是什么?也许是网站的搜索引擎,又或是每天都会刷的“热搜榜”。
但你不一定听过这样一个词:神经搜索,也就是用深度学习及神经网络去搭建一套搜索引擎,听上去是不是还挺玄乎的。神经搜索的新概念到底从何而来?神经搜索和普通搜索的区别又在哪里?
本期《创业内幕》就请来了JINA AI(极纳科技)的创始人兼CEO肖涵,为我们揭开“神经搜索”背后的秘密。JINA AI是开源框架Jina (https://github.com/jina-ai/jina)背后的公司。
Lily:
今天我们要聊一家非常有意思的公司——JINA AI。我们先请JINA AI的创始人兼CEO肖涵介绍一下自己和JINA AI这家公司。
肖涵:
JINA AI是一家神经搜索公司,神经搜索就是利用深度学习及神经网络去搭建一套搜索引擎。JINA AI成立的时间不长,在2020年2月疫情期间成立,去年夏天完成种子轮和Pre-A轮的融资。
公司发展到今天已经有员工24名(截至2020年底),是一个非常国际化的公司,我们在柏林、北京都有办公室。用三个关键词概括就是,Search AI(搜索AI)——将搜索领域的AI做成一个框架。第二个是开源,我们是all in开源的一家公司。第三个是Cross-border, 我们是一家非常国际化的公司。
Lily:刚才您提到的几个概念里面,什么叫神经搜索?第二个问题,您刚才提到说你们是all in开源,为什么要做开源这样的布局?第三,您刚才说JINA AI是一个非常国际化的团队,能不能给我们具体解释一下怎么国际化?
肖涵:神经搜索这个词听着很新,但实际上在学术圈中研究这个东西已经有一段时间了,只不过学术圈管这个叫Neural Information Retrieval(神经信息检索)。传统的搜索引擎一般是通过符号化文字的匹配,匹配上了,就可以得到结果;匹配不上的话,就得不出来结果。所以传统的搜索引擎是通过字符串的匹配。神经搜索是指不通过字符串的匹配,而是通过神经网络、通过深度学习去寻找输入和数据库中文档的相关性。这种相关性和特征表示都是由神经网来评测的。
搜索系统实际上有很多地方可以用到AI、机器学习、神经网络,因此我们就可以把它叫做一个Neural Information Retrieval(神经信息检索)。但是Neural Information Retrieval(神经信息检索) 是一个相对学术化的词。我们在做产业的时候,一般都是怎么简单怎么来,所以我们管它叫Neural Research(神经搜索),这就是神经搜索的来源。
Lily:
神经搜索和普通搜索,能不能用例子来给我们解释一下最大的区别是什么?
肖涵:
神经搜索,简单来讲的话就是基于语义。神经网通过训练,去理解文档中的语义,然后进行一些模糊查询。举一个例子,我们在用的客服机器人或者问答系统,是无法通过文字完全进行答案匹配的。比如我问你说今天早上吃什么了?如果按照这句话的每一个字完全匹配,可能会搜出来一大堆问题。
但实际上我想找的是这个问题的答案。我想找的答案并不和我问的问题完全匹配,中间就存在一个语义差。神经网就是用来将我输入的问题和我想到查询到的结果,将这两个东西映射到同一个语义空间,在同一个语义空间中进行查询。
刚才我举的这个例子是文本的,但实际上神经搜索这个概念是非常广的,所以神经搜索可以铺到各个方面,包括图片搜图片、视频搜视频,甚至包括跨模态的搜索。比如通过文字搜图片,通过图片搜声音,通过声音搜视频。这些都可以通过神经网络的搜索来实现。
实际上过去也可以搜出声音、视频、图片这些信息,但往往是因为这些多媒体的信息被打成标签了。比如我们在做这期创业内幕访谈的时候,可能会打一大堆标签。在之后的搜索中,虽然你搜到了这个东西,但背后的搜索原理仍然是符号化搜索,它是通过标签的匹配来搜到的。神经搜索的一个目标就是不打标签,不去进行符号化的匹配,而是通过神经网将所有的特征映射到同一个空间,在同一个语义空间中进行相似意义,甚至相反意义的搜索。
Lily:
刚才您提到三点,第二点是讲开源。做神经搜索这样的一个技术,为什么要用all in开源这样一个大背景来完成?
肖涵:
我们公司虽小但是目标非常有野心。我们要提供一套设计模式,一套编程框架。我们想改变的是别人的思维习惯。比如现在到一家公司,去问说你有没有用AI在做搜索,可能都说有在用。但是如果问他们的实现方式是什么样子的,每家公司回答都会不一样。有些用TensorFlow,有些用Pytorch,有些用Elastic,有些用MongoDB。他们学了很多框架之后,把它们融合在一起去打造出一套针对他们企业内部的一套搜索引擎。
我们提出的Jina的框架可以说是一套通用的框架,它要解决通用的多模态和跨模态搜索问题。包括图片搜图片、声音搜声音,文本搜文本。那么在这种框架模式下,我们也提供了一套编程范式,这之所以有挑战,是因为这套编程范式要改变以往大家对于神经搜索的编程习惯和思维模式。要知道改变一个人的思维模式实际上是非常难的。
这就是为什么我们需要借助开源的力量。我们从第一天起就是一家all in开源的公司,因为我们不可能用一个闭源的技术去征服开发者。第二,我们也不可能用闭源的技术去和竞争对手竞争。我们的竞争对手今天其实并不多。但是每一个竞争对手都异常强劲,要么就是从 Google、微软、Facebook内部孵化出来的项目;要么就是从大厂跳出来的人去做这个事情。
做公司并不仅仅是做技术。我们要借助开源,借助社区力量去打赢这场仗。这就是为什么我们从第一天起就一定要走all in开源的道路。
Lily:
如果去看阿里这些电商平台,早已可以图片搜图片了。在音视频网站里,多看一些视频之后,平台就会发现你的用户习惯,推荐类似的东西。我最近正好在买卖房子,如果我看好了一套房,这个房子可能刚好很远,或者我买不起。系统就会将另一个无论是装修风格还是户型都非常类似的房子推荐给我,这其实是神经搜索?
肖涵:
刚才说的可能是推荐,从某种意义上来讲,推荐是被动的搜索,搜索是主动的推荐。所以其实很多问题,包括刚才讲的这种推荐系统,背后的原理都可以转化成搜索,这就是为什么搜索实际上拥有一个非常高的天花板。因为现实生活中很多的问题都可以在某种程度上转化成搜索问题,然后通过搜索的方法来实现。
举一个简单的例子,推荐系统实际上是一种被动的搜索,还有就是在QA问答系统中或者聊天机器人中,一般有两种生成回答的方法:第一种是真的通过生成模型去生成回答;第二种是通过检索模型去回答问题。检索模型往往更实用,也是更容易去开发和生成,从头开始出打造一套系统。
一个公司中往往有自己的问答库。比如在一个公司,打印机坏了该怎么修?这种文档开始都已经有人写过,只不过在企业内部找不到,那么如何通过这种检索的方式去获得答案?你可以输入一个问题,然后去找到回答。所以表面上看这是一个问答系统。你提问然后别人回答,但实际上背后是一个检索系统。
Lily:
其实JINA成立的时间还很短,从2月份疫情到现在也就是一年左右的时间,在这段时间里有什么大客户在成交吗?
肖涵:
我们现在已经有在和一些企业公司在谈,我们叫做early adopter早期适用者。这实际上对于我们去掌握市场的行情、掌握在产业界中实际应用范例是非常有帮助的。
我们并不是特别着急去推进大客户完全去投入使用。因为从软件自身的角度来讲还需要一些打磨。但是随着我们趋近于1.0的里程碑,我们需要更多产业的实力,去发现当Jina框架应用在产业中,应用在B端的一些不管是中型公司还是小型公司时会遇到哪些的问题,然后我们再从中进行迭代。
Lily:
看起来神经搜索是一个非常大的科研话题,您本人是什么学术背景和职业背景?可以给我们简单介绍一下吗?
肖涵:
我之前在德国工作学习生活,一共差不多有9年。我09年来到德国,在慕尼黑读的硕士和博士,当时就是做机器学习,只不过我们当时做的机器学习,现在看来叫浅度学习。09年到14年的时候,深度学习的框架都还不够成熟,TensorFlow,Pytorch这些当时都没有。我们当时做的一些贝叶斯的研究现在可能都不太用了,但是总体来说都是一些非常硬核的机器学习的内容。
14年毕业之后,我就来到了德国一家电商ZALANDO,也是算欧洲最大的一家电商,去做推荐系统和搜索系统。我在德国做了三年推荐引擎和搜索系统。18年初,我来到腾讯深圳的AI lab(AI实验室),加入了微信背后的搜一搜团队,在这去做搜索和语义相关的一些检索工作。
当时在腾讯也做了很多关于开源方面的工作,其中包含了我在腾讯的开源办公室,——open source program office,代表腾讯在一些大型的国际化开源基金会上去做文化输出、文化输入。所以我在腾讯待了两年到2020年2月份,决定自己出来把JINA AI做成一家开源公司。
Lily:
您既然已经在腾讯做开源这件事了,同时又是咱们腾讯开源办公室的成员,为什么您没有在腾讯的平台上做JINA,而是选择了自己创业自立门户?
肖涵:
我现在仍然非常感谢能在腾讯有这么一个机会去做开源,能够参与到公司开源文化的建设上,这个经历是非常宝贵的,并不是所有人都能够加入开源办公室。又恰好当时腾讯在做开源协同,就是说内部不要重复造轮子,要搞一些开源团队,也就是open source team,去做一些内部开源。
腾讯更看重的是内部开源,去解决重复劳动的问题,还有广为诟病的赛马机制。当时做了非常多的开源文化的尝试工作。但是在大厂里做开源,有一个问题就是你做得再好,做得再光彩,总体来就是一个锦上添花的事。因为开源并不是公司的一个命脉,他该怎么赚钱还是怎么赚钱,因为他们本身不是一个开源公司。
所以从这个角度来讲,做得再好,并不意味着你对于开源的理解和对于开源的信念就强到哪去,因为实际上是有大厂的庇护。你做坏了也坏不到哪去,因为大厂也不需要靠这个去赚钱。
所以我觉得做开源实际上有三个阶段,第一个阶段可能就是你在当作个人兴趣来做,业余的时间下班后写代码,然后贡献一下。第二个阶段可能是你把开源当做一个工作来做,包括了你在公司内部,像开源办公室,你的 KPI就是关于开源的,你要掌握一些开源的方法论,开源的思想,还有开源工作该怎么进行、开展,这是第二步。第三个阶段就是不需要大厂的庇护了,你非常信念开源这个理念,也非常相信正在做的开源这个事情。那就跳出来做这个事,把开源当做一个生意来做,这个是第三阶段。我恰好是从个人开发者到公司内部的开源领导者,最后再到跳出来去做开源,这三步都走过。
Lily:
选择二月份在德国创业,这背后有什么考虑吗?有什么主动或者被动的原因吗?
肖涵:
其实IT产业是在疫情中受影响相对较小产业。因为IT本身不需要实体,另外员工远程办公,包括异步的开发模式,异步的工作模式,相对来说都是比较成熟的,这种思想观念相对于其它产业是更成熟的。
尤其是有电话会议,还有slack这种工作协同软件的帮助。实际上IT产业相对来说受的影响是比较少的。当时之所以到德国把这个公司建立起来,就是因为我们从一开始就意识到,这个公司必须要做成一个国际化的公司。
刚才我也讲了,这个公司必须要做成开源的公司,但是仅仅如此还不够,这个公司还必须要做成一个国际化的公司,为什么?因为开源这件事情它本身就不是一个带有边界的东西,他需要不断去包容其他,我们的公司的名称JINA(极纳),“NA”就是海纳百川的纳,也是包含了这一层的意义。“JI”则是取了谐音来自 Geek,极客的意思。所以我们就想到来柏林开始国际化的第一步,我们的野心要远大于德国或远欧洲市场,实际上我们会去目标全球的市场。
我对于欧洲,对于德国的IT和AI的环境相对来说有比较成熟的认知。另外我在这边有一些人脉还有一些关系。第三其实我也看中了柏林,包括欧洲对于开源文化的认知和理解,这点是非常重要的。
他们的程序员、开发人员,对于开源文化的接受和理解程度相对来说要更成熟一些。Linus Benedict Torvalds,Linux的创造者,他本身是芬兰人,后面移民到美国了。所以很多开源先驱实际上都是在欧洲发展起来的,背后开发人员的思维方式,对于开源的理解和接纳,实际上是非常好的,非常适合做开源。这一点其实从我们的人员分布上也可以看出来,我们全球一共有24个人,实际上中国人还是比较少的,只有6个人,剩下18个人全是国际友人(截至2020年底)。
Lily:
这个分布挺有意思,管理这样一个超级国际化的团队,你觉得有什么挑战吗?
肖涵:
我觉得这块的挑战在于大家来自五湖四海,各个国家对于文化、对于科技文化、对于效率、对于工作文化的理解都不相同。大家对于开源的理解可能也不相同。首先并不是所有人都在开源公司做过,当然我们去招人的时候会考察我刚刚说的几步:自己是否做过开源,在公司里是否做过做开源。
我不要求每个人都在公司里做开源,但是至少你首先要自己做开源。你要对开源这个事有理解,不然思想上统一就会比较难。更多的一些差异和分歧主要在于公司文化、工作文化上的一些差别。比如说国际友人一般不太会跟你客气,他们不会因为你是老板,是CEO,就毕恭毕敬。他们是有什么就直说。
Lily:
会直接挑战你吗?说你这个事情做的很不对,会这样直接说吗?
肖涵:
我们一般会有反馈的阶段,叫回溯,每个月有一次回溯会议。类似于吐槽大会,大家就吐槽各种关于工作的事情。实际上回溯会议对于员工的情绪抒发,工作改进是非常有帮助的。
在中国的话,我其实看到这种回溯并不是特别多,也有,但是可能不太像国外这边放得这么开。所以我觉得在国外领导一个国际化的团队,最重要的就是你要想他们所想,要和他们是在同一个思维模式上,然后去理解他们。
Lily:
你觉得你的德国同事能接受996吗?
肖涵:
其实他们工作时间挺长的。我觉得有两方面,第一方面就是疫情的原因,大家的工作时间被打乱。在德国我见过有非常标准的就是放一个闹钟在办公室,一到点闹铃一打响就自己下班了。但是现在因为政府不太提倡让你去办公室办公,大家在家里办公的时候,分界线就变得非常模糊了。
所以我觉得这其中有两个问题,第一个就是说大家的工作态度要端正,如果态度端正了,实际上剩下的一个问题就是如何区分生活与工作的界限了。并不是所有的德国人都能区分得很好,我们观察到的是因为疫情的原因,大家工作时间反而会变长。
另外一点就在于,我们公司是一个全球化的公司,我们的工作方式是异步分布式(asynchronized & distributed)。我们24个人(截至2020年底)分布在中国,在北美,在欧洲,还有印度。基本上把全球都覆盖了,大家连轴转。这个时候你睡觉的时候别人起来,别人睡觉的时候你起来,有时候就无法避免需要做一些牺牲,配合其他人的时间。背后需要我们公司有更强的科技文化、技术文化和工程文化在背后去领导,才不会让大家都觉得来到这个公司非常累,24小时要连轴转。这也是对于公司的挑战:在管理一个异步的全球化公司的时候,怎么去平衡各个国家、各个时区之间的工作。这一点也非常重要。
Lily:
我还是挺有体会的。这种跨时区的工作对于GGV的同事来讲其实挺常见的。这种长时间的跨时区协同其实需要同事之间充分的默契和信任,也需要彼此给予足够的包容,它带来的管理上的不可控因素可能会更多。很多中国互联网公司都提倡弹性办公、灵活办公,但它实际上也是有打卡要求的,对于咱们这种全球型的公司挑战还是挺大的。
肖涵:
其实觉得开源公司本来的运作方式就是通过任务分解和需求分解,把一个任务拆分成很多小任务,每个人负责一个部分。工程师不需要待在一个办公室,更多是需要把工作协同起来。
Lily:
你的代码在业界的认可度非常高,是不是就算大家不认识肖涵,但都看过你的代码,很多同事都是慕名而来?
肖涵:
我之前做过两个开源软件,一个是Fashion-MNIST的一个数据集,这个数据集是我17年在德国的时候做的,到今天在谷歌学术上也有超过2000多篇论文的引用,已成为机器学习界的一个基准数据集。
另外一个是bert-as-service,是一个NLP方向的,是当时Google在18年初的一个深度学习的Bert的模型。当时我对Bert的模型进行了一套网络层框架式的封装,能够让大家将Bert模型应用到实际的工业中生产场景中。
这两个开源项目无论在GitHub还是在社区中,口碑都非常好,不仅仅是国内的口碑,而是国际上的口碑。很多来我们公司面试的人都会提到这两个开源项目,知道这两个开源项目或者用过这两个开源项目。所以这个也可以说是一张名片,非常强有力的名片。当我们再去打国际化,尤其当我们再去打社区,再去打开发者的时候,这是非常强有力的名片。你要征服开发者,唯一的办法就是用技术去说服他。
Lily:
今年疫情对全球带来的影响是商业的大幅的缩减和后退,大量的公司出现“内卷”的现象。为什么你选择在今年疫情爆发最厉害的时候,创建一家自己的公司,而不是安守在一家公司里守住已有的成绩?你的初心是什么?
肖涵:
作为创业者,当你完全投入一件事情的时候,对疫情可能没有太大的感觉。我不会顾及到疫情会不会影响到我。因为在我的认知范围里,我觉得疫情对于我们公司不是个事儿。这是一方面,我非常专注地去投入这个事情,所以我不会太去想在疫情期间创业是不是很难。第二点就是,其实我刚才说了,对于开源公司、对于软件公司来说,我们受到疫情的影响不是特别大,我们恰好可以利用这段时间去韬光养晦,去招募人才。其实我挺感激在疫情期间加入我们公司的同事们。
他们放弃了本来能够守住的一亩三分地,而加入了一个非常有挑战、有创造性的一个初创公司,这点我是非常感激的。
Lily:
JINA作为一个开源公司,什么时候可以商业化?
肖涵:
在前两年我们都会专注于社区,在两年后开始去做真正的商业化。商业化开源的公司往往做叫open core(开放内核)这种商业化的模式,实际上就是将我们所有产品的功能分为不同的等级。有些功能是免费级的,这些在社区中大家可以随便使用;有些功能给小团队使用的,我可能收取一定的订阅费或者是别的费用。有些功能是社区开发者不需要的或者不在意的,但是又是大团队或者小团队需要的,往往我们就作为收费的功能。比如企业中非常需要的加密简历,数据的持久化,还有一些性能的监视控制面板,这些都可能是商业化的场景。
JINA AI作为一家商业化开源公司,其实意识到社区和技术这两件事情是我们前两年或者不仅是前两年,是要持续输出的。如果我们不去做这个东西,我们就不是一家商业化开源公司了,商业化开源公司肯定是要先有开源软件、开源技术,才能去做商业化。第二点就是说作为一家公司来讲,这家公司肯定到最后是要赚钱的。所以从这点上来讲,我们搭建团队的一开始,有一个联合创始人,COO是专门做商业的,他之前在腾讯去代表腾讯云去做了两个开源商业化项目合作,一个是和Elasticsearch,一个是和Serverless。所以我们对于商业化的理解和对于整个商业化开源软件的发展路线实际上是比较清晰的。
从公司的角度来讲的话,前两年我们会专注于技术和社区,增加影响力,把产品打造好,让社区中的开发者为我们背书,这有点像预售。把这种思维模式和技术预售给他们,到后面的商业化就更顺理成章一些。
肖涵:
最后借助GGV创业内幕这个平台给我们公司打个招聘广告。我们诚聘对神经搜索框架、生态、有强烈热情的工程师、产品经理和战略分析师。欢迎大家转发分享,是那句话,人才在哪里,JINA AI就在哪里。