Category Archives: 打工日记

2014新年快乐

  新年快乐,万事如意!

  2013年一共发表了32篇BLOG,比往年平均值要少很多,10月份以后因为忙ODPS对外开放的事情,更新频率更下降了。但我会继续写下去,还会写很多年。感谢您对这个BLOG的关注。

  单细胞动物,又很懒,没法多线程。关注这BLOG稍久一点的同学,大概会知道我总习惯在一月份定些重点,之后一年里如果遇到冲突纠结,就力保这两三个主要目标,其他一律让路。这种做法是从2006年开始的:软件、论文、专利、买房、买车、求婚、生娃、跳槽、旅游……运气好的一年,定了4项大事,忙到年底累得臭死,居然都能搞定;也有瓶颈年头,只定1个目标,年底仍然有遗憾。但总体而言,集中精力是个好习惯,受益匪浅。

  回去翻了翻BLOG,2012年有3个目标,年底感觉其中工作方面的目标没达标。于是2013年继续,而且只定了这一个目标:成为合格的产品经理,给ODPS留下独特贡献。

  一年下来,在ODPS团队里帮了些忙,仍然称不上“独特贡献”。所以2014年还得继续盯住这个目标。不过我快沾到边了。等ODPS对外开放一期、二期、三期的事都妥帖了,修炼可算小成。

  最近两个月为工作焦头烂额,家人说我:“念念叨叨总是你的ODPS对外开放,其他事完全不关心。”我的确像是有点魔障了。但这事真的很重要。感谢老婆、老妈和刚会说话的女儿,家里这三个女人都比我聪明、体贴、淡定和坚韧。

  除了眼前的具体目标,我希望在2014年能有更多勇气面对理想。回去看2006年初次盘点年度目标的BLOG,写了这么一段:"本科听老罗的课:'年纪大一点以后,最难的就是保持强悍,仍然敢把理想挂在嘴边'。没真正理解,或者说不够老,还没资格发表观点。"8年过去,三十多岁的大叔了,是证明所谓“强悍”的时候了。

ODPS团队在招人:阿里大脑-智能数据平台项目

  ODPS团队在招人,我们要做一件大事:阿里大脑-智能数据平台项目,下面是项目和职位介绍。大家给我的微博 @还是地雷 私信联系。

  随着PC和移动互联网成为人们的生活方式,搜索、推荐、广告、和社交网络正在迅速融合,新的商业模式层出不穷,数据和流量已出现超过人们想像地爆发增长,我们已经彻底告别数据不足的时代;随着大型分布式数据处理平台在规模、可用性、和安全领域的技术突破,存储和处理数据的技术已不再是主要瓶颈;在阿里巴巴我们已经面对数据规模超出人类理解极限的局面,我们相信未来一定要依靠更有智能的平台才能理解和利用如此海量海量的数据,我们相信数据是最有价值的资产,未来商业数据的管理和利用一定会出现像今天的银行一样的模式,有一种平台不仅为人们保管数据资产,还能够以类似投资的形式实现数据资产的保值和升值。这是一场影响和改变未来互联网商业模式的深刻变革,阿里数据平台作为阿里数据资产的主要经营者,肩负着推动这场变革的使命,阿里大脑-智能数据平台项目是这场变革的开始。

  这里有世界上最具价值的互联网商业数据,从每天上亿用户在淘宝上的浏览和购物行为,到支付宝的每一笔付款纪录,从商家所有的销售纪录,到快递送货到每个消费者的过程,从PC端到手机端,我们运营着一个每天增量上百TB,数据总量有几百PB的超大型数据仓库。如果你对使用机器学习和人工智能的方法深度挖掘海量数据的价值有兴趣,这里是你最好的选择。

  这里拥有世界级的大规模计算平台和数据平台技术,完全自主研发的飞天大型分布式系统和数据处理平台,多个5000台规模集群每天运行着大量生产任务,从大型互联网数仓到BI分析和决策支持,从信用评估到无担保贷款风险控制,从国内互联网最大的广告业务,到每天几十亿流量的搜索和推荐相关性分析,阿里数据平台为所有这些业务提供基础平台和核心算法。如果你对开发新一代分布式数据分析技术和机器学习算法有兴趣,这里是你最好的选择。

  这里有一批充满梦想又脚踏实地的天才工程师,在大规模分布式数据平台领域,我们用了5年的时间走过了业界领导者8-10年的技术发展历程,我们鼓励技术创新,我们支持改变世界的工程构想,我们推崇那些用天才的想法影响和改变中国互联网主流业务的工程师。如果你热爱代码又有难以抑制好奇心想了解机器里面的每一个细节,如果你是一个充满梦想又热衷动手实践的工程师,这里有一个硕大无比的复杂机器,等着你来优化、改进、甚至重新设计。

  阿里大脑-智能数据平台项目正在打造一个拥有10万台服务器规模的智能数据平台,通过大规模分布式计算、Deep Learning等先进机器学习算法、和云计算开放平台等技术,理解和挖掘海量数据中的商业价值,通过精准营销和全面个性化,服务广大中小互联网企业。阿里大脑项目期待你的加入!

  我们不能承诺这里有世界上最丰厚的收入,我们不能承诺这里不用加班有完美的工作生活平衡,我们不能承诺这里能够实现一个企业家的辉煌与荣耀,我们唯一能够承诺的是:在这里你能够实现你一生最辉煌的技术成就!这里是培养像Jeff Dean和Sanjay Ghemawat这样伟大工程师的摇篮,对这点我们充满信心!

分布式系统研发工程师
  1. 拥有C++大型系统开发经验
  2. 在以下领域之一有大型生产系统研发经验
    - 大型分布式系统开发
    - 大流量和高性能在线服务设计和性能调优领域有实践经验
    - 大型搜索相关性、广告投放、推荐引擎的研发
  3. 在大型线上系统的部署、诊断(Debug)、和算法优化等方面有实际工程经验
  4. 在Linux kernel和网络领域有实践经验的候选人优先考虑

分布式机器学习算法工程师
  1. 拥有C++大型系统开发经验
  2. 在以下领域之一有大型生产系统研发经验
    - 机器学习算法的实现
    - 图像处理和语音识别算法设计和引擎实现
    - 大型搜索相关性、广告投放、推荐引擎的研发
  3. 在大型线上系统的部署、诊断(Debug)、和算法优化等方面有实际工程经验
  4. 在大规模Deep Learning模型训练领域有经验的候选人优先考虑

  大家给我的微博 @还是地雷 私信联系,或者把简历发到:“leheng 点 wang 爱特 alibaba-inc 点 com”。

开发者大会现场印象:5K、华大基因和AmyPI

  上周跑到杭州出差,主要是参加阿里云开发者大会。ODPS临近对外开放,所以想了解一下生态环境。好玩的东西很多,先写两个:

5K集群和华大基因

  2013年8月,阿里云的飞天分布式平台成功实现单集群5000台、同时ODPS实现了多集群跨机房计算。国际上仅有Google、Facebook在内的屈指可数的几家公司拥有这样的技术!而5000节点单集群拥有的计算规模无疑是惊人的:

  · 10万核的计算能力
  · 100PB存储空间
  · 可处理15万并发任务数
  · 可承载亿级别文件数目
  · 100TB 排序30分钟完成,是现有世界纪录的两倍以上

  9月,阿里云把其中一个5K集群拿出来,搞了一次开发者ODPS体验。这是全球范围内第一次把如此强大的计算能力以公共服务方式分享给开发者。 参加的团队基于ODPS和5K集群都做出了很多有趣的成果。例如CSDN利用5K集群对人群标签进行数据挖掘。

  而我最感兴趣的是华大基因在生物信息领域的开发工作。华大研究院的牛人们ODPS上实现了两个大规模的算法。其中一个是MapReduce的,另外一个短基因拼接图算法使用到了ODPS Graph Task编程接口(类似Google Pregel的BSP编程模型)。两个算法都取得了非常好的效果。这次大会华大基因的同学们做了报告,台下一片膜拜。他们也因为这次的工作,获得了5k体验的最佳工作奖。

  这次会上见到华大基因的陈钢博士真人,聊了不少。希望有机会业务合作。

  顺便提一下,自从华大基因收购了CG,美国的竞争对手就开始恐惧。如果明年华大上市成功,这个领域就会热起来,像当年的新浪。华大加油!

AmyPI

  这次开发者大赛前20的产品有专门的展台,我跑去逛了一圈,很多东西都很有趣。其中“AmyPI市场”引起了我的兴趣,这是一个帮助云服务管理API架构,并提供计量计费服务的独特产品。这种有深度的东西出来了,说明阿里云的生态系统真的建立起来了。我就和展台上的负责人聊了一段。

  说起来还挺有趣,我第一次和AmyPI负责人聊,忘记交换名片了。后来又路过他们展台,就把自己的名片递过去。当时看那位负责人在忙着和别人交流,就没打搅他。

  过一会儿他打电话找到我,问有什么事,我很奇怪,“我们刚才聊了好久,你不记得了?”

  人家笑了,“你一定是和我弟弟聊的……”

  汗,原来是双胞胎一起创业,真的分不出来谁是谁。

  最终AmyPI得到了云峰奖,银杏谷资本还现场签约投资他们,恭喜恭喜!希望这个产品能不断发展。希望出现更多AmyPI这种有技术含量的、专注而深入的专业级服务。

产品经理感悟

  我一本正经教训过别人如何当产品经理,其实自己也入行没多久。这个夏天有些进展,邮件报捷各路老大回复鼓励。自己却一度纠结困扰:领导力、产品设计、执行……都抓不住方向。

  tiny4cocoa论坛有个帖子这么说:“几乎所有研发团队的技术都听命于技术经理,并且尊称老大,没人会去听命于产品经理的。产品经理虽然挂着一个经理的头衔,但是却没有实权。在天朝,大部分产品经理所作的工作就是把老板的想法产品化,而不是自己设计产品”。写得挺好,要警醒,不要仅仅成为监军。

  看到一个国外电视节目叫Design Superheros,镜头跟着专业设计师从头构思一间咖啡馆、书店或者服装店的每个细节。挺有意思。各个行业其实都有类似“产品经理”的角色。例如二战之前的美国报纸行业的鼎盛时代,各大著名报刊一般都有几个坚持自己品味的传奇性编辑,这些人甚至会跑去修改登在报纸最后一版上的广告和寻人启事的文辞和标点,以便“与其他版面的文字品质一致”。我做了十多年软件开发,总是有意无意把设计仅仅当成了一门技术,只要按某种流程依次按电钮就能得到满意结果。现在才意识到,做好产品的关键是思考人会怎么用它,这需要感悟,即使是我们这种只有API和SDK的平台型产品。

  老大点拨说我太执着于拉更多的业务上来。他还说很多人把所谓“创业精神”当作思维懒惰的借口。没多久coolshell.cn里就发表了一篇博客,摘录了《Rework》的一段话:“他们花大把大把的时间去解决问题,他们以为能靠蛮力来弥补思维上的惰性,其结果就是折腾出一堆粗糙无用的解决方案”。反省:首要目标应该是做出好平台。于是开始花很多时间动脑子,煎熬了一个多月。有一次周六,我在客厅里瞪着天花板呆了一夜,直到周日早上5点外头蒙蒙亮。系统独立思考好难。

  当然除了推演和品位,还有很多工具可以辅助梳理用户的使用场景,例如用户反馈调研和数据分析。有幸参加新浪微博的一次用户访谈,调研内容是针对新推出的某个收费功能。调研员是中科院心理所毕业的美女。细节值得回味。新浪的同学没解释产品设计思路和调研目的,回来搜索了一下,又想了想。意识到这次重点不是为了收集新需求,而是为了验证产品设计。还按照老大的建议,扎到数据仓库里写了一大堆SQL去分析系统日志。实际情况往往和“我以为”有好大差距。挖出了数据,再给典型用户打电话,他们惊讶:“这你都知道……”

  最晕的时候请xc吃饭,说来说去,出问题的根源,不是背景能力,不是做事方法,不是人际关系,而是无法“入戏”。就去找zn老大,主动承担了对外有关的产品功能规划。起初各种开会。记得有个高端复杂的功能需求,花了大家很多精力,最后成果是:把这个需求砍掉,客户和我们暂时啥都不做。以前在哪里看过一句话说:给产品经理打分,不必看他引入了哪些新功能,而是要数数他砍掉了几个需求。如果这句话是真的,那我又加一分。后来又开始一个类一个类梳理ODPS SDK。平台发布出去的接口就像嫁出去的闺女、泼出去的水,再想重构不向前兼容就很难了。花了很多精力讨论、文档、编码。前两天有测试同学在reviewboard吐槽,说leheng是pd没资格审核ship别人的代码。俺只好上去解释:客户端的这个模块很多代码都是俺写的。测试同学回复:“算我没说,leheng牛的”……快乐指数稳步上升,开始“入戏”

  刚写好一份比较像样的产品规格说明,心情很好。看样子这次算挺过来了。旁人看来波澜不惊,自己的感受却很像pFind第一次被客户现场实用那回一样

把事做成

  前一阵参与组织阿里巴巴大数据暑期学校,自然会和参加的同学们聊起求职。我发现90%的同学都希望进数据建模团队,而不是数仓团队或分布式平台开发团队。我猜很多同学没踅摸过职业成长,仅仅因为数据分析师高端大气上档次,而程序员听起来很屌丝。

school
阿里大数据暑期学校,晓风正在和同学们讨论PCA和SVD算法

  怎么说呢,BI团队当然个个都是精英,但并不像很多同学想的那样高帅富:数据分析师负责阳春白雪的统计机器学习,剩下的编程、调BUG、看机器这种粗活自有旁人打理。事实上,无论哪个团队都没有“旁人”跑龙套擦屁股,你得挽起袖子把一件事从头做到尾,十八般武艺样样皆通。举几个我们阿里数据平台部门的几个人当例子:

  数据挖掘团队的晓风,数学功底当然不用多说,然而他也是一个C++和分布式编程老手,从当年的ACE、ICE、DCOM到现在的Hama、GraphLab都会。

  基础数据团队的市丸,数据仓库那些生产业务当然不在话下,同时他也用MR和BSP编程模型开发了不少能处理上亿行的数据样本的大规模分布式算法,例如SVD和Pagerank。

  产品团队老大玄澄,麾下一群古灵精怪的美女PD,做出淘宝指数、数据魔方、淘宝时光机、淘宝日历APP……他整天玩乐高玩具,体验各种新鲜玩意儿(例如基因测序),办公区供着乔布斯牌位,踅摸用户体验创新……其实,人家是北大数学系的。

  至于俺们ODPS团队,很多人也都是十项全能,我就不自吹自擂了。

  就我的经验,对个人成长最有帮助的职位,往往正是那些最苦逼的、点灯熬油、枯燥容易出错的活儿。例如我们这里专门负责半夜值班盯住数据生产基线的batman团队,那可不是随便什么新兵蛋子就能混进去的。报名上百人,只选了十几个,都是各团队最牛最靠谱的业务骨干,这些人正是公司的重点栽培对象。上次去杭州出差,我特意混进去和蝙蝠侠团队一起值了一次夜班,一晚上的收获比正常情况下几周都多。

batman
传说中的蝙蝠侠团队

  主动扎到最复杂的、接触全局的业务里去,耐心一点,挽起袖子做好水面以下的力气活,为团队提供独特贡献,把事做成。这才是最快的成功路径。想加入互联网公司的年轻人一定要弄清楚,这个行业的业务核心就是编程,你首先必须是个合格的程序员,再谈其他。这就和空军里没有开过飞机的人没资格升师长、海军里没在甲板上起降过飞机的人没资格升航母舰长一个道理。

  最后打广告,阿里数据缺人。数据分析师,数仓工程师,算法开发工程师,分布式平台开发工程师,测试和配置管理……欢迎找我内推。

周末ADC见!

  这周末的阿里技术嘉年华,貌似很多老朋友都会参加。14日“大数据技术与应用-A”的Workshop,我是现场主持人,欢迎大家来聊天。

  我们在招人,alidata算法团队为缺人痛苦,北京杭州两边都是,有数学背景又喜欢写分布式程序的同学,赶快找我帮你内部推荐!

workshop

阿里技术嘉年华要举行了,我们的主题报告和Workshop

  2013阿里技术嘉年华将于7月13-14日在杭州举行。好多牛人带来技术分享。这里面和我工作直接相关的内容有下面两个:

  13日上午,ODPS团队的高级产品经理 水易(汤子楠)会在大数据主题论坛上做一个报告,介绍ODPS的产品设计思路、主要功能和基础技术架构。开放数据处理服务 (Open Data Processing Service, ODPS) 是基于飞天平台构建的离线大数据存储与分析系统,以云计算服务的方式实现海量数据的存储、分享与离线处理,在数据仓库构建、海量数据统计、数据挖掘、数据商业智能等应用领域有着广阔的应用前景。

  14日下午,算法团队的高级专家 品数(杨旭)会在Tech Loft主持一个workshop,讨论分布式数据分析算法。MapReduce模式在很多算法上已无法达到高效,如何扩展模式并使之与MapReduce统一调度?如何高效实现大数据算法? 怎样定义数据结构? 如何保证开发测试的质量? 算法研发如何与业务紧密结合? 希望更多人参与分享和讨论。

  更多报告内容请参考这里,期待与大家交流。

关于建模思路

  大数据的商业模式,目前能看清楚的有两种:互联网小微金融(参考这里)和精准广告投放(参考这里)。这两项业务的建模团队正是分布式算法产品的主要客户。

  尽管拥有相同的数据和平台,金融团队和广告团队的思路却有差异。例如同样使用逻辑回归,金融BI偏向传统统计学,应用银行业经典的“评分卡”建模,强调严谨的假设验证和细致的特征工程;而广告BI倾向于机器学习方式,把上亿行样本的上万甚至上亿列特征一口气扔进建模算法里面去自动迭代训练,更粗暴,更敏捷。

  技术路线常常源于业务需求。在广告营销领域,通过A/B Test获取反馈的成本较低,模型的更新节奏也比较快,业务方也不关心模型内部细节。而金融风险模型直接作用于真金白银,信息循环沉淀的周期又长达数月,因此建模思路偏保守,模型上线之前风险委员会的review很细致,往往得把所涉及到的每一列特征都讲清楚。

  算法平台团队对此感触很深。前一阵,两个BI团队的数据科学家终于凑到一起开会。交锋很有意思,例如把模型当作白盒还是黑盒来用,再如特征工程中的很多人工操作能否用自动化蛮力替代。

  会上我也说了几句。必须重新审视建模流程的各个环节,也许一些招数其实源于小数据时代计算资源有限导致的妥协。今天我们有了上万节点处理上P数据能力的平台,建模必然面临创新。

准备休假

  这周在北京呆着,准备休几天假。像上次说的,春节之后这段时间太忙,需要充充电。

  刚收到邮件,我在pFind组时申请的商标刚获批准。组里还给我一笔奖金。知识产权的积累是对5~10年以后的长远投资。希望pFind越来越好。

  在工业界一段时间了,回过头看,学术界最大的问题是,常常感受不到哪些点是真实问题。这是过多知识和信息依赖文献阅读造成的。按照张五常的说法:某作者凭空想象给出一个案例,另一位引用,写下注脚,如是者转了三几次注脚,大家就把想象当作事实了!

  结婚纪念日。以往都是在百度上搜索“鲜花”,然后点进去购买。这一次跑到淘宝搜索,按信用排序,最终在一家天猫旗舰店订的。价格便宜了很多,服务体验也好得多。据说这99朵白玫瑰一送去,老婆的同事们就要求她必须请吃饭。一淘刚刚超过百度,成为国内最大的搜索广告商。这次亲身体验,不由冒出好多关于生态环境的感慨。

  上周“标签衍生”验收通过了,这是算法平台第一个大的关键业务系统落地。可是为什么没啥感觉呢?算法平台是个金子塔顶端的项目。无论是业务还是技术,如果没有周边诸多铺垫,肯定搞不成。我和sw说过,处在风口上猪也能飞起来,我特别害怕自己就真是那头猪,仅仅是在恰当的时机坐在了恰当的位置上而已,没有为这件事留下独特的贡献。产品落地了,恐惧却增大了。

  所谓战略,就是想清楚不做什么。真正动脑子思考好难,发现大多数情况下,自己仅仅在转述别人的思想而已。

  这两天和老大们交流。dh点拨我说,顺风顺水却开始焦虑,是因为又碰上台阶了,迈上去人就又成长一些。zn催促我实现说了好久的承诺,动手建个模。所以,休假回来啥事也不理了,就动手做这件事,给zn的承诺是六月底之前出结果。

平台需要生态系统

  ODPS Sprint8发布了。算法平台也随之发布了很多新功能。

  最近8个工作周累计只有1/4时间呆在北京,剩下的时间都在杭州。几乎每周都是周二飞到杭州,周末再飞回来。以至于偶尔在北京办公室露面,旁边同学们都问我:“这次到北京出差打算呆几天?”

  例外是上个月底。每次Sprint发布之前都有这么一个阶段:从Word、Excell、Outlook里,从飞机场和会议室里逃出来。静下心,ssh连上跳板机,svn checkout,vi……写代码、加UT、提review、加班熬夜,重新变成一个程序员。这往往是整个产品周期里,比较平静的一周。

  不过这次Sprint8我出错了,在逻辑回归的命令行指令里写出两个Bug来。不得不在发布后的几天里陷入煎熬,紧急打补丁。前天晚上HotFix折腾到23点。我离开办公室时,数据科学家团队还在继续加班。第二天3个基于我们算法的大数据模型按时上线。出自淘宝的工程团队,执行力很强悍。

  作为平台,拥有生态环境是至关重要的:你有没有冲进客户业务里去,理解并搞定关键问题?反过来,别人能否沉到平台里面来,贡献代码和数据?有多大的器量就有多大的空间。找到靠谱的业务伙伴,应该在旁边摇着扇子、八抬大轿伺候着。

  之前yy在客户现场呆了半年之久,帮客户重构了很多关键业务,获得了“数仓专家”的职业声誉。我去杭州,老大给我的指令是,像yy一样,扎进BI团队,成为合格的”数据科学家”。这事不容易,不过不会比杀小白鼠更难。

  工作上好久没这么发狠了。

  飞机上看完了《质数的孤独》。作者是个粒子物理学博士,处女作就获得斯特雷加奖。这本小说的页码不是连续的,而是质数序列:2,3,5,7……所有文艺作品都涉及孤独,因为孤独很普遍,这一部写得尤其彻底。