在中秋节前的一天晚上10点半,Dan在微博发了一张拍月亮的图片,配文“Themoonisverycleartonight……”(今夜月分明)。
虽然身为英国人的Dan并不是像粉丝猜测的那样,在通过月色表达思乡情绪,纯粹是因为小米新发布了拍月亮的功能,他觉得很新颖很好玩,但这个时间Dan来中国确实已经接近一年。
在此之前,他曾经为了有一个好的开发Kaldi的环境,离开位于美国西海岸的家到巴尔的摩工作7年,这并不是他第一次为了Kaldi离家远行。
一、开源先驱
在Dan初到中国的时候,前金山CEO张宏江曾经向崔宝秋表示过对小米招揽Dan的赞赏,但与此同时,他也坦率的表达了自己的担忧:“要小心,他可能待不长。”
崔宝秋后来对左林右狸频道回应了这件事,他认为Dan是一个非常简单、非常善良的技术极客,他很有信心在小米帮他打造一个令人满意的工作环境,让他专心地做自己最喜欢的Kaldi研发工作。
Kaldi据说是一个埃塞俄比亚人的名字,他第一个发现了咖啡,因此被尊为咖啡之神,现在它是全世界最著名的开源语音识别工具包的名字,有趣的是,这个工具包的创造者Dan却是一个咖啡过敏者。
10年前,还在微软研究院参与计算机语音识别工作的Dan在约翰斯·霍普金斯大学主持了一次workshop,也是在这次会议上Dan启动了Kaldi项目,他找到了人生方向。
此时距离开源派的纳德拉上任还有5年时间,鲍尔默执掌的微软在对待开源的态度上始终暧昧不清,鲍尔默本人甚至还曾说过这样的话:微软三大敌分别是开源应用、谷歌、苹果,其中开源排在最前面。
Dan想要在微软做Kaldi这样一个开源项目显然会遇到阻碍,有传言认为微软并没有很支持他做这件事,以至于他最终离开。
年前后,Dan退出工业界,加入约翰斯·霍普金斯大学正式开启Kaldi项目,把自己的所有精力和热情都投入到Kaldi的开发中。
有人曾经问Dan的理想是什么,Dan的正常回答是降低词错率——这是一个多么技术男的回答。不过还有一种说法,Dan曾经在酒醉的时候说,要干掉Nuance。
Nuance在年之前一直是世界上最大的语音识别技术公司,三星的S-Voice、苹果的Siri无不仰赖其语音识别技术,其公司的傲慢作风也是众所周知,目前已因业绩不佳转型。
左林右狸频道最近也问了Dan类似的问题,“为什么一定要坚持做开源Kaldi?”
Dan的回复是,他不想让人们失望。现在有太多人依赖他正在做的开源项目,如果他不持之以恒做下去,大家会很失望。
Dan的说法一点没错,目前国内三大语音助手小爱同学、小度、天猫精灵使用的底层框架都是Kaldi。
一位资深从业者在Kaldi交流会上告诉左林右狸频道,无论是学界还是工业界,Kaldi都是最流行的开源语音识别工具。国内之所以随便哪家公司都能做出看起来还不错的语音识别产品,全仰赖Kaldi提供底层框架。
正因如此,在去年Dan在霍普金斯大学为了保护机房与抗议者发生冲突离职后,小米技术委员会主席崔宝秋才会不计代价将其争取过来。
尽管Dan对中国历史了解很多,但对中国话确实一片茫然,在他11月底正式入职之前,崔宝秋一边让人帮他找住所,一边又让身边人帮他物色优秀的翻译助理,这时候林珑来到了Dan的身边。
崔宝秋确实为Dan找到了一个非常有责任心的助理。
因为初到中国,Dan处处待人客气,以至于既使生活和工作中有些不便,但因为不好意思所以没有开口。林珑的工位在Dan办公室外面,她在日常中认真观察并主动询问,逐渐赢得了对方的信任。
在北京疫情严重的时候,Dan遇到了上门排查的街道人员,也会给林珑打去视频电话,寻求远程协助。有时候他出门买东西遇到语言障碍,也会视频找林珑帮忙。再后来,林珑教他如何使用外卖APP,不过他总是点成“门店自取”,曾经多次订单被取消。另外,滴滴也是他曾经学习尝试过的选项。
在林珑的帮助下,他越来越擅长在中国生活。
林珑后来告诉左林右狸频道,她和团队里很多人一样,都深受Dan极致工作态度的感染。
在入职小米不久的一次演讲空隙,Dan突然来了灵感,并告诉她自己有一个特别重要的代码要写,但是他的电脑没电了。林珑帮他找到插座后,又试图再去找个椅子过来,但当她把椅子搬过来的时候,却发现Dan已经趴在地上全神贯注的开始了自己的编程工作。
崔宝秋也曾说过“Dan就是雷总口中的那种,非常典型的不需要管理的员工,他在工作上有自驱力。”
事实上,Dan不但不需要驱动工作,反而需要人驱动休息。
在元旦的时候,崔宝秋为了让他更快了解中国,于是带他去参观故宫,甚至还请会英语的导游介绍文物。
但Dan却兴趣寥寥,按崔宝秋的原话说“这是我逛故宫逛的最快的一次”,一方面Dan认为钟表馆里,那些西方列强讨好慈禧送来的东西太丑了;另一方面他真的想要回去继续自己的编程工作。
到了清明前后,崔宝秋又带着Dan游了长城,这时他的Kaldi2.0有了进展,他兴致非常好,为此甚至没有穿他挚爱的拖鞋,而是换了一双爬山专用运动鞋。
崔宝秋开着车带他前往八达岭,路上一直避免聊工作,双方一边听美国国家公共电台的广播,一边聊疫情时事,二人都有亲人家小在美国,这是他们都很关心的话题。
到了长城以后,崔宝秋给他讲解了“不到长城非好汉”这句诗的来源,没想到Dan对毛主席的故事非常感兴趣。
但是他却不肯在“不到长城非好汉”几个字前面合影留念,原因是拍照需要排队,太耗时间,他希望自己的行程能更高效一点。
在Dan的眼里,崔宝秋是他在中国的朋友,也是亲人。
生日那天,崔宝秋送给Dan一台电钢琴。
Dan的父亲是乐队主唱,他本人是研究语音方面的科学家,他在对抗不公的推特中曾经引用诺贝尔文学奖得主摇滚乐手鲍勃·迪伦的歌词“我不对我做的任何事感到遗憾,我很高兴,我战斗了,我只希望我们胜利。”他对音乐也是由衷的热爱。
此后,Dan偶尔编程编嗨了就在办公室边弹琴边唱歌,这是他最喜欢的放松方式之一。
对崔宝秋而言,招揽Dan不是目的只是开始,他的真正目标是希望Kaldi能够在中国小米这片土壤上越长越大,成为国际开源界的一棵参天大树。当然,从公司价值来说,他也希望小米语音团队能够近水楼台先得月,跟着Dan学习成长,成为世界上最强的语音团队。
这年教师节,Dan作为小米博士后工作站导师收到了一盆竹子,这是中国人习惯用来形容君子气节的植物,他很喜欢。
二、极客典范
Quora上有人评价这次招聘是“小米捡漏”,现在复盘看来,小米能“捡漏”成功有这么几个关键原因:
其一是坚持拥抱开源,坚持在开源上投入,这也是能够说动Dan的最有效方式。小米在招聘Dan过程中介绍了小米多年来深度拥抱开源的工程文化和案例,满足了这个开源信仰者联合中国企业,将中国开源力量推向世界的想法,两者在技术愿景上不谋而合;
其二是小米AIoT生态,Povey博士曾说“小米的IoT智能联网设备对外公布的数量是1.96亿台,光这个数字就有足够的说服力,生态有多么强大,这里面所有的东西都可以通过语音来控制。”这也是Kaldi未来最能发挥作用的地方;
其三是对自研技术和人才的重视,一旦确定招聘目标,小米就志在必得,技术委主席崔宝秋本人出动,全程参与。
此处也给广大互联网巨头一个启发,如果要想抢到真正大牛人才,就不能全部指望HR,必须有足够有分量的人亲自下场。
年10月19日,Dan在Twitter上发布消息宣布自己将与小米签订工作协议,并将在北京招聘小团队打造新一代“PyTorch-y”Kaldi。不久之后,小米总裁也在微博发文证实了这个观点。
此处,我们解释下“PyTorch-y”Kaldi是何物,这是Kaldi2.0最初的优化方向,又被Dan团队称为PlanA。
虽然Kaldi有很多优点,但其使用的自有的深度学习框架却不如PyTorch和TensorFlow更加通用,初学者想要上手学习门槛较高。
在此之前的年,Kaldi社区里就有人表达过这样的观点:如果能够将TensorFlow作为一个模块集成到Kaldi中,对于Kaldi使用者来说门槛会大大降低,而对于TensorFlow的开发者来说,他们讲能够更轻松的访问ASR平台(基于Kaldi开发的可以在各种语言、口音、环境和对话类型中理解人类语言的系统),大大简化数据,甚至可以将开发周期从数月减少到数周。
不过那时候,Dan却不这么认为。
在年的小米开发者大会上,尽管他还没有正式入职,但因为小米的工程师们和Kaldi社区的众人都想一睹技术大神风采,于是崔宝秋便安排Dan作为压轴嘉宾出场。
演讲中,他坦言自己原来认为Kaldi系统本身足够优秀,不需要与TensorFlow和PyTorch结合,但是随着时间推移,现在他改变了看法。
他说:“如果用于基于服务器的、没有内存限制的识别,Kaldi已经足够优秀了,不需要做其他改进。但如果用于基于设备的、有内存限制的识别,有时候使用(如RNN-T)这类端到端的模型,以及Tensorflow工具包可能会比仅使用Kaldi更有成效。”
另外,Kaldi本身不支持整数化,所以很难在手机上实现产品化。
PlanA就是将TensorFlow和PyTorch作为两个模块融合进Kaldi,这样开发者们将可以利用TensorFlow和PyTorch更方便的搭载移动端。
事实上,Dan在入职小米之前就已经在思考这个方向,在离开约翰斯·霍普金斯大学后的半年里,Dan的谷歌学术主页更新了7篇论文,他和自己曾经的同事们共同提出了PyChain,对于Kaldi自动语音识别工具包中链式模型的端到端无网格最大交互信息训练,PyChain可以做到完全并行化PyTorch实现。
想要实现这个Kaldi2.0计划,Dan需要更多的人力资源和资金支持,在小米的时间显然就是最好的机会。
不过,当崔宝秋问他是否需要更多人手的时候,他却给出了否定的回答,他告诉对方,目前开发瓶颈仍然在他本人。
他将Kaldi2.0版本的发布时间从6月一直推迟到7月、8月、9月……中途甚至想换掉Kaldi这个名字。不过受到了崔宝秋的劝阻,Kaldi已经是个很响亮的品牌,如果丢了着实可惜。
陷入苦思冥想的Dan需要一次自我突破。
他对PlanA仍然不满意,尤其在真正着手开发的过程中,他意识到这样的方案不仅毫无创造力,而且会让Kaldi本身变得非常臃肿。
在加入小米后的很长时间里,他的团队里只有一位内部语音组转岗过来的程序员和一个翻译助理。
在PlanA之外有没有其他的方向?这是他必须要想清楚的问题。
三、赤子之心
浩文是Dan团队的第三位成员,在今年1月入职小米之前,他一直在微软亚洲研究院工作。
作为Kaldi社区的代码贡献者,他与Dan一直有技术方面的交流,在知道对方加入小米后,他向Dan提出了工作申请,经过面试,他很快也加入了小米。
浩文告诉左林右狸频道,他加入小米之后的主要工作就是跟Dan一起写代码开发PlanA,与此同时,他们也一直在讨论是否还有其他的优化方向。
在他的眼里,Dan是一个极其沉浸于工作思考的人。他们偶尔在一起吃饭,但很少说话,因为Dan总是边吃边写代码。
年左右,网上就已经有段子说Dan只需要吃颗土豆就可以工作14个小时。一位接近Dan的人曾经告诉左林右狸频道,Dan很享受编程的状态,他认为吃饭比较浪费时间。
如果说他在美国的生活是家和办公室两点一线,那么他在中国的生活几乎是无限趋近于一个点,那就是公司。
每周工作七天,每天从早10点一直工作到凌晨2点,白天用