评价一段话首先要看说话的人,说话的对象,以及当时的背景。余凯发的那段话是在朋友圈发的,所以听众也主要是各大厂商,在这个背景下我觉得那段话是有道理的;但如果放到微博上,那就有阴谋论和小人之心的嫌疑了。
先说为什么大厂会怕TensorFlow垄断。首先TensorFlow是Google搞的,所以即使开源了,Google在这个开源社区也必然是决定性的力量,这个大家应该没有疑问吧。我们先假设TensorFlow已经垄断了DNN的框架,其它的框架都死的差不多了。那么:
1. 假设有一天Google为了卖它的TPU,决定渐渐放弃GPU支持,你说nVidia会不会慌?
2. 假设Google说要把放弃x86和Xeon Phi支持,你说Intel慌不慌?
3. Google拒绝针对以太网(AWS和Windows Azure都是万兆以太网)做任何优化,而且不愿意merge任何与此相关的PR,你说Amazon和Microsoft慌不慌?
4. 假设有一家做TPU(比如寒武纪),或者做无人车的公司,对Google造成了严重威胁,那么他们发的PR,能不能保证得到Google的公正对待?
想清楚以上问题,这段话的道理就清楚了。也许有人会说,这是小人之心。但是,作为一家公司,考虑努力降低这种风险难道不是很正常的吗?所谓的原则和良心,在商业利益面前毛都不是啊,更何况Google完全有能力在规则允许的情况下给其它公司穿小鞋。(比如说,Amazon推了个PR,Google说,我们下个release的feature已经定好了,你这个PR只能等下一个release了,而下一个release什么时候还是Google的人说了算)
我想上面这个说的够清楚了,那么为什么微博上反应这么强烈呢?主要还是受众的原因。对绝大多数用户来说,是用TensorFlow还是用其它任何框架,对他们都没什么区别,只要这个框架足够好用就好了。余凯那段话,如果放微博上,那肯定只有挨喷的份,这个也没有疑问。
最后打个比方吧。我们大家都用微信,却不担心微信垄断,因为我们跟腾讯不会有利益冲突。但是,阿里的人肯定是不允许用微信来聊工作的,因为它跟腾讯有直接的利益冲突。假如阿里想花10亿买一家公司,而员工在微信里聊了这件事,你猜腾讯会不会利用一下这条消息?
-----------------------------------------
EDIT1:
根据大家的反馈,主要的分歧在两方面:1.Google有没有能力做(搞其它公司)。2.Google有没有动力做
关于1,主要是疑问是,在TF已经开源的情况下,Google对TF这个项目有没有控制力,其它公司能不能通过branch来规避这种风险。
对于控制力这件事,我想大家应该没忘记,TF刚开源的时候是“完全”不接受PR的。也就是说,Google完全有权力在任何时候,无需任何理由拒绝任何人的PR。当然,随着开源项目的发展,可能慢慢会有别的人(其它公司的人,或者独立开发者)加入到项目中来。但是我认为项目的管理开发还是会以Google的人为主,毕竟他们是最熟悉这个项目的人。其它公司很难在commitee中取得与Google类似的话语权。这种权力的不对等就非常麻烦了。即使Google不会做的那么明显,比如完全的拒绝某公司的PR,但很多时候完全可以以其它形式来做,比如“你这个PR太复杂了,我们得review 一下”,然后,“review的人休年假了,请耐心等待”。。。
其它公司能否通过branch来规避这种风险呢?初想起来似乎没问题,毕竟只是做点merge嘛。但是其它branch之后,你就是另一个项目了,所有commit到master branch的都不会考虑你这个branch会不会有conflict,你只能自己去拉master branch来merge。随着时间推移,merge的代价会越来越大,甚至有些commit你完全无法做了。更可怕的是,所有的应用都会基于master branch去开发,而应用的数量可比commit大多了。你很难保证跟master branch完全兼容,那就意味着很多应用在你的branch上是跑不起来的。相像一下,你看到一篇新论文,里面的代码是用TF实现的,现在你可以选择用Google云,或者AWS,或者Azure上跑,然后你发现在AWS跟Azure上根本跑不起来,因为他们用的TF都是branch过的。。。
关于2,Google有没有动力去搞一家公司,这个主要看有没有利益冲突。Google工程师可能不喜欢作恶,但现在Google是上市公司,在资本面前,利益才是第一位的。
怎么判断一家公司会不会跟Google有利益冲突呢?一种是看主营业务。Google主营业务是搜索和广告,现在还努力在发力做云计算和人工智能(自动驾驶)。以这些业务为主营业务的公司都是Google的敌人。做云计算:Amazon,Microsoft,IBM;做广告的:Facebook,百度,Bing;做自动驾驶的:Uber,地平线。另一种是看供应链。当供应链中的某一环是垄断运营时,它就会蚕食整条供应链的大部分利润。从这个角度看,所有跟DNN相关的厂商都不希望看到Google一家独大,这其中就包括nVidia, Intel。当然,这种冲突一般没那么剧烈,毕竟不是直接的市场冲突,而且很难有一家完全垄断的场面出现,即使TF真的一统江湖,只要AWS和Microsoft都还活着,就轮不到nVidia和Intel操心。但是不管怎么样,nVidia和Intel肯定更愿意有其它框架能和TF竞争,这样不管怎么样都不会威胁到他们。所以nVidia现在经常给mxnet站台,也是这个原因
这件事情感觉很多人还是有误解。俞凯这段话发在朋友圈主要是说给大厂听的,对于小公司和个人来说确实很难理解。
其实美国的大厂从搞硬件的intel,nvidia到搞云的amazon,MS,还有facebook,大家对TF都是拒绝的或者至少是心存芥蒂的。比如facebook在自己造torch和caffe2,nvidia和amazon在扶植mxnet这样的中立项目。除了google以外的大厂都或多或少的在反TF。
这里面原因很多。nvidia主要不爽google对供应商非常强势。g觉得nv就老实做芯片,当个小弟就好了。而nv肯定是不甘心做g的富士康的,人家自己要搞生态。再说g还在搞tpu,指不定那天小弟都当不成了。
MS和Amazon恨的是google内部版的tensorflow和google cloud深度绑定优化,其他的云厂只能跑开源的tensorslow,速度差远了必然毫无竞争力。MS因为内斗严重很难发力,用cntk,torch,tf,mxnet,caffe的都有。但是至少azure组是有危机感的,最近刚发布了预装mxnet。而amazon管理层控制力强,从头开始搞DL推mxnet势头还不错。
google虽然拳头大,但毕竟双拳对四手,想吃掉所有人的蛋糕未免胃口太大。国内的的大厂虽然还没有直接跟google竞争,但还是应该有一些长远的想法的。
从技术层面来说,一个软件很难解决所有应用场景。
TF的定位是ML库(而不只是DL),要做一个大而全的平台吸引最多的用户。但带来的问题就是在最核心的应用上优化不足,速度和内存占用都不是最好的。另外代码量大,抽象层多,导致难以深度自定义。
mxnet的优势是高效小巧,更适合自定义需求高的公司和researcher。如果你需要的功能别人都实现好了,大而全的库用起来必然舒服。但是research的意义就是做别人没做过的事。如果你不只需要加两个op,而是要改框架时,改tf的工程量就会比改caffe和mxnet大的多。
Torch的定位是习惯matlab的researcher和对灵活性要求极高,必须要直接操作每个tensor的人。
总的来说大家都有自己的需求,选package的时候还是需要要冷静和独立思考。TF用的不爽的时候不妨试试别的库,说不定更适合你。
这个4年前的问题选择在这个时间点突然出现在我今天的时间线上显得非常 亦可赛艇!
Android是2008年初才发布,而Oracle在2009年就以7.4B$收购了Sun,是Google不够睿智吗?
非也!
1)如果Android没有如此成功,Java对于Google而言就是一坨shit,Google从来没有想到自己会站在一坨翔上面取得空前的成功,如果有算命的告诉Google的命中贵人是阿翔,它就是穿越回去吃也要把它吃下去,可惜历史不能假设!
2)Google一直有python基因,很多系统都是基于python的,你知道工程师主导文化的可怕性吗?这帮pythonic的nerd出于情怀或者节操或者叫清高或者叫偏执或者叫真爱,它说什么都不会去买Java的,“老子看不上”!谁知造化弄人,09年你对我爱答不理,18年老子叫你高攀不起88亿!(注:今天的Google在各种收购之后,Java服务的比重占的也非常大了,变成了一个杂合的技术栈,而官司也很可能打到高院,尚未定论)
3)Google一直有跟开源保持共存共荣共襄盛举的传统,它跟Mozilla做生意,赞助开源项目,捐赠Wiki,主张“不作恶”,简直就是一副乌托邦理想主义者的化身,圈粉无数(包含答主),像Java这种项目,它更可能的方式是烧一笔钱给它花,然后来几句“希望Java明天会更好”之类的废话,它根本就不曾想过有一个家伙抄底了,因为那时候Android根本就没有火,Google从来就没有想过Java也T-M-D算哪门子“底”?
4)Sun的主手人也是个技术型的,就是技术牛掰业务做的稀烂,当时怎么看Sun都处在夕阳,SPARC也是逼格满满业务下滑被Intel捣的稀烂,那个价格没有几家觉得划算的,幸好是Oracle这种剑走偏锋的收购了它,要是换一家公司收购多半就把Sun雪藏甚至捣腾碎了,Java也就没有今日风光了,而Google在坊间也有创业公司杀手的美称,也许这就已经是历史发展的最好结果了。
什么,你问我对于Oracle收购Sun和MySQL怎么看?
还能怎么看?好白菜都让猪给拱呢呗!
但是作为吃瓜群众,我最喜欢看大佬们掐架,Google与Oracle的这场官司绝对酸爽,大家保持关注,各家都有千百号律师,吵起架来想想都 亦可赛艇!学知识产权法/专利法/法理学的同学们千万不要错过,说不定两年后就能进教材作案例呢!
什么,你又问我Google应该怎么做?
靠,我有不是劈柴!按我的观点,Google这次是违反了Java的使用协议的(无意引战,定论的事情留给专业法官),不能因为体量大就以为能压死人,那可是在美帝,万事全靠律师一张嘴,怎么讲都有理!
大家还记得微软以前有个skydrive吗?在英国被判败诉了,最后也得改名叫OneDrive呢!Google有钱了不起啊,过来领罚单!
而Java的坑早早就埋在那里了,所以苹果直接一刀切:老子不支持,免得搞一嘴毛!Flash一身毛病,一刀切,老子不支持!
所以,我对Google的建议是:
这TM不是关乎技术,不是关乎信仰,不是关乎生态,不是关乎用户体验!
这TM关系到命!
什么?要我预测结果?
法官中间调停,你们俩和解,google把赚的钱按每部手机给Oracle付钱?什么你说太扯了?你每买一部Android,都要给微软钱,你造吗?Oracle就想躺着就把钱收了!