那时凯哥在百度搞少帅计划 , 觉得蛮合适就加入了 。 这时凯哥正带着一大帮兄弟轰轰烈烈的搞深度学习 , 我自然也是跳坑了 。 试过好几个想法后 , 我觉得做做分布式的深度学习框架比较对胃口 。 我挑了CXXNet作为起点 , 主要是因为跟天奇比较熟 。 同时也慢慢上手跑一些Alexnet之类的实验 。
我是因为少帅计划才开始开始做深度学习相关项目 , 凯哥也很支持我做开源开发回馈社会而不是只做公司内部的产品 。 但在少帅期间并没有做出什么对公司有帮助的事 , 很是惭愧 。
第三年:9/14-8/15
回CMU后Alex看见深度学习这么火 , 说我们也去买点GPU玩玩 。 但我们比较穷 , 只能去newegg上掏点便宜货 。 这个开启了轰轰烈烈的机器折腾之旅 。 整个一年我觉得我都在买买买装装装上 。 最终我们可能就花了小几万刀攒出了一个有80块GPU的集群 。 现在想想时间上花费不值得 , 而且为了图便宜买了各种型号的硬件导致维护成本高 。 但当时候乐在其中 。 具体细节可以看这篇blog
这一年写了很多parameter server代码 , 同时花了很时间帮助用户使用这些代码 。 很难说做得很成功 , 现在想想有几个原因 。 写代码时我会优先考虑性能和支持最多的机器学习算法 。 但正如前面的错误 , 忽略了代码的易读性 , 从而导致只有少部分人能理解代码从而做一些开发 。 例如我尝试让Alex组的学生来使用这些代码 , 但其中的各种异步和callback让他们觉得很是难懂 。 其次是没有人能一起审核代码接口 , 导致这些接口有浓浓的个人味道 , 很难做到对所有人都简单明了 。
不过幸运的是找到一帮志同道合的小伙伴 。 最早是我发现天奇在写xgboost的分布式启动脚本 , 我看了看发现挺好用 , 就跟他聊了聊 。 聊下的发现有很多基础部件例如启动脚本 , 文件读取应该是可以多个项目共同使用 , 而不是每个项目都造一个轮子 。 于是跟天奇在Github上创建了一个叫DMLC的组织 , 用来加强合作和沟通 。 第一个项目是dmlc-core , 放置了启动和数据读取代码 。
DMLC的第二个新项目叫wormhole 。 想法是提供一系列分布式机器学习算法 , 他们使用差不多相同的配置参数来统一用户体验 。 我把parameter server里面的机器学习相关算法移植了过来 , 天奇移植了xgboost 。 Parameter server原有的系统代码简化到了ps-lite 。
中途我听百度同学说factorization machine(FM)在广告数据上效果不错 , 所以在wormhole上实现了下 。 针对分布式做了一些优化 , 然后投了WSDM 。 前后没有花到一个月 , 但神奇的竟然拿了最佳论文提名 。
在wormhole的开发中发现一个问题 , 就是各个算法还是挺不一样 , 他们可以共用一些代码 , 但又有各自的特点 , 需要特别的优化来保证性能 。 这样导致维护有些困难 , 例如对共用代码的改动导致所有项目都要检查下 。 总结下来觉得一个项目最好只做一件事情 。 所以天奇把xgboost代码放回原来项目 , 我也把FM独立出来一个项目叫difacto 。
通过一系列的项目 , 我学到的一点是 , 以目前的水平和人力 , 做一个通用而且高效的分布式机器学习框架是很难的一件事情 。 比较可行的是针对一类相似的机器学习算法做针对性的项目 。 这个项目的接口必须是符合这类算法结构 , 所以做算法开发的同学也能容易理解 , 而不是过多暴露底层系统细节 。
真正的让DMLC社区壮大的项目是第三个 , 叫做MXNet 。 当时的背景是CXXNet达到了一定的成熟度 , 但它的灵活性有局限性 。 用户只能通过一个配置项来定义模型 , 而不是交互式的编程 。 另外一个项目是zz和敏捷他们做的Minerva , 是一个类似numpy的交互式编程接口 , 但这个灵活的接口对稳定性和性能优化带来很多挑战 。 我当时候同时给两个项目做分布式的扩展 , 所有都有一定的了解 。 然后一个自然的想法是 , 把两个项目合并起来取长补短岂不是很好 。
- 亚马逊|产品经理犯了这10个错误,产品会“死”得很惨
- DTC品牌拥抱亚马逊
- 上海天文馆开中秋直播,天文学博士刘博洋带你体验不一样的赏月形式
- 小米生态链|谷仓洪博士:新国货品牌是超越实用功能之上的情感和精神需求
- 医生|卖家突破100万!亚马逊加大印度市场砝码
- 亚马逊|同样是拍照手机vivoX80和OPPOReno8系列如何选?
- Twitter|全!亚马逊运营必须知道的108个难题解法(上期)
- 罗技|亚马逊广告为什么花不出去钱?Amazon广告费用花不掉的原因分析
- Buy with Prime,亚马逊的DTC野心
- 亚马逊|抖音推荐算法的底层逻辑,视频没有走到爆款中间经历了什么?