scribble

Life of Xunzhang

About Story Talk Project Gallery Ideas Email

22 Jul 2014
豆瓣一年

如果以365天8760个小时为一个时间单位,算来,到这个蛮有趣味的小公司做事儿也整一年了。在这一年里,“豆瓣”似乎联系着我的方方面面。

我遇到了些有趣的人。如在刚入职的数月,每日与长生午饭,话不多,受益却颇多,有些甚至后知后觉。而后常有新鲜想法或问题几日不解,都邮件请教,他必认真回复探讨,甚是感谢。还有很多同事,有的是歌手,有的是很有性格的程序员,有的是电影迷,有的是诗人,有的会说相声。借一位同事的话说,算法组的每个人都有种理想主义气质,正好与我臭味相投。有了这些有趣的人,自然就有了有趣的事儿和有趣的想法。

回到工作上,谈不上有什么大贡献,但也算添了几块砖瓦:

开始花了几个月用Python写paracel的原型parasol,但等真正写paracel的时候,发现许多细节需要重新构思与设计(其中一些是C++与Python语言层面的不同)。这算自己第一次相对独立地写一个分布式系统,其间常遇到bug一调就是几天甚至一周,也常日夜颠倒,有时觉得自己身体撑不住了,但解决时又感到值得。大概是年初的时候,看到CMU的同学也在做类似工作,会有种迫不及待写完paracel的冲动,感觉项目停滞一天就落后了,这种感觉很特别。

paracel是一个分布式计算(在ML里叫学习)框架,最初是受到Jeff Dean在Google做deep learning的启发,为ML算法问题设计的。事实上,paracel比mapreduce系统(如hadoop,spark)提供了更灵活和易用的通信范式(参数服务器),与MPI相较又同样高效,且提出了容错方案(由于某些原因容错还来得及实现),同时paracel也支持图计算和科学计算,用户的学习曲线也不陡峭。

豆瓣并不允许做单纯的研究,所有的系统和代码需要有实际需求和使用场景。因此,要写一个工业级的系统并非易事,paracel在刚开始给同事用的时候出现了许许多多的问题,但欣慰的是至今paracel is running at douban!目前,paracel的用户还不多,还有待进一步推广和迭代,不免添加新的feature和重构,接下来在paracel上想继续做streaming和dataflow,当然,还有容错。需要说明的是,豆瓣以外的非商业用途用户(如一些个人研究和实验室项目)目前可以fork使用(目前它托管在github的个人名下,最初只是为了给中途离职的一位同事review,等放douban账户名下才算得开源),有问题可以邮件我,我会确保它能run。至于商业用途的用户,请开源后再使用。

这半年来做的另一件事是plato(取这个名字是本科时候常去学校附近的一个叫柏拉图的咖啡馆熬夜),它算一个实时计算的系统。由于storm对于我们来说过于重,豆瓣之前的计算都是offline processing然后线上取结果或者进行简单的计算(如查表,排序等),因此在实时计算方面并没有太多的积累,暂时也体会不到storm的一些优势,加上随着model越来越复杂,offline和online间的gap越来越大,因此开始做这件事情。目前我们针对factor model的实时推荐做了封装实现,准备上线测试,接下来会进一步完善与抽象,往模型复用和框架的层面走。实时计算最大的前提是可靠性,所以plato的最大瓶颈也在这,这也正是最难又最需时需力的工作。如果可能,在接下来的半年到一年,我会招几个实习生一起做这方面事情。

生活上,倒是简单规律,其实也挺懒散:打打球,打打游戏,踢踢球,读读小说,看看非诚,看看nba,看看世界杯。高兴的是遇到了一群热爱篮球的小伙伴,即使在当下这种桑拿天,大家也会出来约球,甚是欢乐。在DFA(豆瓣足球联赛)中,我所在的永久队决赛以一球之差输给了球王队,有些遗憾。颁奖的时候胖子错发我了一枚第一名的奖牌,害得我都没法在朋友圈晒。哦对了,我带着老爸还做了一次特殊的贝加尔湖之行,行记见这篇,后续的还没来得及补完。

感情上,其实我已经在几天前的这篇中说过了,总结来说就是寂寞易,相遇不易,爱上易,相爱不易。所以每每看到相爱相依的恋人,很替他们高兴,又很是羡慕。

我很庆幸刚毕业就能来一个还不错的公司做事,做自己想做的喜欢做的事儿,感谢胖子收留,感谢Jason的信任,感谢同事给的空间,不胜枚举。

豆瓣一年,很棒!


Hong Wu at 00:00

scribble