有人说AWS是最大的云服务商,但不是最大的开源贡献者,这让有些人很不爽。
比如,Iguaz.io创始人yaron haviv说,AWS的所谓开源就是装装样子,不像谷歌那样。
这样说其实不够准确,比如,在可扩展的深度学习框架MXNet方面,AWS有400位开发者贡献了40%的代码。但这似乎还是不够,有分析师说了,尽管AWS也贡献了很多,但远不如AWS从开源得到的那么多。
不过,这种说法也有失公允
事实上,没有哪家公司说是出于做慈善的目的开源自己的代码,开源往往是为了公司长远发展的利益考虑的。比如说有些公司通过开源拓展生态,有些公司可以通过开源做开源周边的生意,比如做开源软件卖相关硬件等。
AWS的AI和深度学习的总经理Matt Wood在采访中说,AWS的策略是,研究那些只有不差钱的公司才能研发出来的技术,然后让这些技术走向普罗大众。
这一思路和做法与许多顶尖的公司一样,比如IBM,比如苹果,其一贯招揽最优秀的,最聪明的研发人员做出有竞争力的产品,获得市场上的成功。
不得不承认,开源只是AWS让技术实现民主化的一种方式。不过,AWS认为,对于企业的大多数开发者和员工来说,开源与否其实并不是最重要的。
AWS对开源的态度
最近AWS和微软做起了开源的Gluon,这是一个提升开发者效率的项目。AWS和微软有竞争关系,但类似这种合作对这种大公司来说都是经常有的事。微软近年来尽可能地向外界介绍在开源上的努力,很大程度上是因为微软一直以来在开源界较差的名声有关。
AWS就没有这样的历史原因,所以,也就不急于向外界证明在开源方面的诚意了。批评者认为AWS在开源上没有什么积累,并且强调AWS从开源获利多少,这也是不合适的。
Matt Wood表示,经常听人们说机器学习有很大的发展空间,许多人说起话来眼神里满是期待,但是许多企业不知道从何开始。
一个可能的方式是,AWS把机器学习的代码分享出来,供大家学习,让大家掌握机器学习的方法。这一方式看起来很合理,比如谷歌开源的TensorFlow开源之后就获得了很大成功。
但Matt Wood表示,这太不AWS了。
那么,AWS的服务是怎么个形式呢?Wood通过机器学习技术介绍了AWS的三个层次的服务策略:
第一层级就提供像Polly和Lex等这样的“黑盒”产品,这些服务面向那些数据量有限的开发人员,帮助他们训练机器学习模型,这些开发人员无需自己搭建复杂的机器学习环境,交给AWS就好了。
第二个层级面向的是另外一部分用户,这部分用户有充足的数据来训练机器学习模型,但是,不想花时间自己买各种盒子东拼西凑自己打理基础设施。这样的用户最可能用到的就是S3 bucket,还有个引擎,能把这些模型跑起来就行了。
第三个层级是开源,把各种包和库开放给外界,将神经网络给到大众手里。在这种情况下,AWS一方面向开源社区做贡献,一方面为运行在AWS上面的项目做优化。Wood表示,我们不是直接出于利益的目的参与像MXNet这样的开源项目的,只是因为我们的用户要用这些,我们要的效果是,当用户想用这些应用的时候能尽可能好的运行起来。
AWS为什么不开源?
让批评者们不爽的正是“在AWS上做优化”这部分。出于某种人性自然而然的善意的考虑,人们普遍认为AWS就应该开源代码,而不是总是为了营收数据做事,这么想其实是不对的。
首先,AWS是一家商业企业,必须为自己的利益负责。在照顾利益的同时可以兼顾善意,不过,问题是:如何平衡自身经济利益和自然而然的善意,以及用户的利益呢?这是所有公司在面对开源问题的时候要解决的问题。
另外一个方面,AWS不是封闭地只推自己的东西,以数据库为例,AWS除了支持MySQL以外,还与Oracle微软合作,为的是让这些数据库也能更好地运行在AWS上,为客户提供服务。
另一个方面,AWS参与开源社区。以在机器学习方面为例,AWS有团队在参与MXNet,TensorFlow等开源项目,为的是让这些项目在AWS上更好地运行,为开发者提高自由度,灵活性,提供更广泛的选择,最近与微软合作做Gluon也是这一策略的延续。
在机器学习出现的早期,机器学习的开发者必须了解许多技术细节。所以,AWS为不同层次的用户提供了不同的服务,而不是只用一种服务强加于用户。给出多种选择和可选项无疑是非常有优势的,这种早期的开放性在开源领域非常普遍。
AWS自私吗?是的,这种自私是否能为优秀的程序员和企业级软件开发者提供帮助呢?是的,而且带来的帮助不是副产品,正是AWS想要的。
更关键的是AWS看到,多数用户需要的并不是更多的开源,他们只关注AWS和微软这样的服务商如何更便捷地获得AI的能力,而不在乎是以什么方式。
这些服务不是开源的,不过这不是重点,对用户来说,重要的是如何更便捷地跑开源的代码,如何更简单地进入机器学习的世界。AWS所做的事情让客户收获了价值,最后AWS自然也收获了成功。