举一个我面试中遇到过的目前最牛的例子,简称M。我一般负责和人吃饭闲聊。这位先生以前在Intel,只大概看过机器学习的一些东西。
我:目前深度学习当中用mapreduce的比较少,因为我们经常要SGD,
M:哦我猜一下,所以你们用MPI,然后你要优化Allreduce。
我:。。。对的,然后很多时候网络会有瓶颈,
M:恩,因为你们不想上infiniband。
我:。。。对的,
M:然后你们 网络的 吞吐速度是够的,但是延迟不理想。
我:。。。对的,
M:所以你们想要有异步通信,但是同时又要控制 模型不发散。
我:。。。对的。
我:然后我们的模型在部署的时候希望尽量高速,一个方法是 找稀疏解,
M:但是你们发现稀疏性不够,目前的运行库需要1-5%的稀疏性才行。
我:。。。对的,
M:但是你们估计最多只有30%上下的稀疏性,否则模型质量就下降。
我:对的。但是还是有一些办法,因为部署的时候模型是固定的,
M:所以可以做即时编译然后内联参数。
我:。。。对的。
所以面试的加分项就是面试官还没问问题,你就先回答完了。
装b结束了,说说我大概想表达的意思吧:机器学习里面了解怎么推公式,怎么解释算法等等,都是停留在技术的层面上。技术牛肯定是有加分的,但是如果要找一位算法/系统架构师,更容易加分的是了解这些技术背后真正解决的问题,在出现 需求的时候能很快解释背后的原理,然后找到解决问题的思路。这也是为啥我在面试的时候不问具体技术细节的缘故 - 开个玩笑,好的架构师只需要写头文件就行。。。
=== 因为评论说没看懂,具体展开说 ===
SGD+MPI+Allreduce:这个问的是机器学习当中SGD算法怎样并行化,以及如何处理并行当中的计算模式,讨论可以见
Allreduce (or MPI) vs. Parameter server approaches网络瓶颈:需要正确估计计算时间和网络通讯之间的比例,保证可以实现pipeline:
Pipeline (computing)Infiniband以及ethernet:问的是大规模系统架构的时候的硬件选择问题,不想上Infiniband是因为成本问题,以及容易被少数vendor lock in的风险。
网络的吞吐和延迟的区别:
What is the difference between latency and throughput?异步通信的时候对于收敛性的影响:可以参见google的async sgd,sync sgd revisited,Eric Xing的latency bounded sgd,以及EASGD等一系列文章的讨论。
模型的稀疏解:这个涉及到对于模型稀疏化能力的正确估计,目前的很多网络要保证不丢准确率的情况下,很难做到传统稀疏矩阵的那种要求。
稀疏矩阵库的计算效率问题:这个如果做过数值优化的话应该是常识,但是五秒钟里面能从上一条跳到这一条然后找到瓶颈还是让我很惊讶的。
即时编译和内联参数:这个比较涉及到数值优化的一系列可能性,以及对于编译器的期望,本身就是一道可以展开说一个钟头的问题。。。比如说,我们在做矩阵乘法的时候是需要pre-pack矩阵的,如果我们知道参数矩阵不会变,我们就可以预先pack,然后如果你可以自己写编译器来利用这些特性的话,你甚至可以没有那个矩阵,直接出一个程序把参数都写在指令里头。
一般面试是不会涉及到那么多问题的,其中一两个就够讨论了,M先生属于特别牛的那种。。。
之前回答过相关问题(如何评价摩拜单车获得超六亿美元的e轮融资,共享单车未来在谁手中,是否胜负已定? - 知乎),针对摩拜完成E轮融资做了如下猜测,其中OFO马上完成新一轮以及国际化等地域拓展的部分,和OFO今天放出的信息基本一致。不过,竞争还很残酷,发言中提到的盈利部分可信度堪忧。这个阶段,那么多投资人完成了各类共享单车的投资项目,不要考虑盈利,还会先考虑如何整合上规模吧。
…更多文章请到数据冰山 - 知乎专栏
…更多回答请看何明科
之前回答过相关问题(如何评价摩拜单车获得超六亿美元的e轮融资,共享单车未来在谁手中,是否胜负已定? - 知乎),针对摩拜完成E轮融资做了如下猜测,其中OFO马上完成新一轮以及国际化等地域拓展的部分,和OFO今天放出的信息基本一致。不过,竞争还很残酷,发言中提到的盈利部分可信度堪忧。这个阶段,那么多投资人完成了各类共享单车的投资项目,不要考虑盈利,还会先考虑如何整合上规模吧。
…更多文章请到数据冰山 - 知乎专栏
…更多回答请看何明科