今年上半年,Google公开了用于Big Transfer(BiT)的预训练模型和微调代码——Big Transfer是一种深度学习的计算机视觉模型。根据Google的说法,Big Transfer可使任何人在相应的任务上达到最优表现,即使每个类只有少量的标签图片。BiT仅是这家科技巨头众多免费开放产品中的一个,其实业界大佬发布免费且实用的开源软件科技界中并不罕见,那大型科技公司为什么要这样做,真的是“用爱发电”吗?
在90年代后期,那时Open Source Initiative才出现不久,人们普遍认为将源代码公开的想法很不理智。毕竟专有软件是标准,相关企业或者组织会尽一切努力保护软件。但到如今2020年,开源的概念早已经发生了巨大的变化,现在开源思维正一步步成为主流。
世界上有如此之多的开源技术企业(组织),其中一些年盈利过亿美元,甚至超过10亿美元,亿元俱乐部中不乏有像红帽、MongoDB、Cloudera、MuleSoft、Hashicorp、Databricks(Spark)和Confluent(Kafka)这样的大佬。
除了上述高调收购和投资开源项目的科技公司外,就连谷歌和Facebook这类传统科技巨擘也在推进开源战略,可见开源对于科技企业的创新以及开发者社区的建立与维护有多重要。就像Flutter vs React Native、Tensorflow vs PyTorch、Kubernetes都是这样。谷歌和Facebook更关注在开源领域的开发者和消费者,而微软和AWS则更关注企业。
有人说:开源是持续创新的催化剂。这句话是有道理的,开源可谓是不断创新的核心推动力。当一个企业或者组织拥有更多的来自不同公司和拥有不同背景的开发者,其对技术创新的覆盖率呈指数增长。公司可从不同的角度识别代码中的潜在问题,在这个过程中,企业会了解到如何使用集体智慧来解决问题。
因为开源,普罗大众都可以使用开源者构建的系统,海量使用者可提供各类改进建议。如果开源系统背后的主要团队是科技公司本身,那么项目的方向将是他们想要的,而民间使用者则为项目做出大量贡献。
“开源是创新的推动者,使组织能够快速获得全球人才库和开发安全、可靠和可扩展的软件的工具。”Github India的总经理Maneesh Sharma表示,“最有效地加快业务转型的组织,是那些转向开源软件开发,用以在快速变化的数字世界中取得成功的组织。”
Maneesh还表示,“如今,99%的软件项目都是使用开源软件构建的。开源已经彻底改变了软件开发,并创建了一个由开发人员组成的相互关联的社区,这个社区具有高度的协作性,并扩展到世界各地。”
此外,开源有助于构建丰富的开发人员社区。如果科技公司的没有开源的传统,那么其与开发人员社区建立良好关系的可能性将会很低。而像微软、IBM或谷歌这样的大公司,会有很多人时刻督促,每个开发者都可拼阅其代码。且开源意味着发布周期和路线图的公开和透明,这能促进企业付出更多的努力和主动性。
当有了开源项目时,众多的使用者可能联合起来,帮助企业开发具有前瞻性的项目和产品来对抗其他公司。这对于想打造更好品牌的企业来说无疑是利好的,同时也赢能得其他人的尊重。
他们最终的产品通常都是开源软件的成熟版本,这意味着这些产品具有更高的价值。从某种意义上说,科技公司和消费者可以放心,该类产品已经被成千上万使用者验证过,所以基本上不会有问题,即便不然也会立即得到解决。
在开源环境下的运营,会推动一家公司成为技术构建和发展的领先者。这是通过开源软件的使用者与开发者共同协作和贡献来完成的。领导开源项目的公司可以更深入地了解技术是如何构建的,以及技术的发展方向和原因。
如果一家公司已经开放了其云/云原生项目,那么它就可以看到云和云原生的未来,这是确保其不断在技术领域进步的重要部分。这也意味着不必每次创建新产品时都重新发明轮子。随着科技推动创新,市场开始期待某些功能,而公司的差异化就体现在这些功能之上。
对于科技企业来说,其实开源也不总是首选的策略。但,开源策略在当下的市场环境中必不可少,在红帽这样的特定业务用例中,开源无疑是有利可图的。但就人工智能而言,它通常既先进又不可预测,研究人员很难将其想法变现并为研究提供资金。
举个“栗子”子,OpenAI最初是一个非盈利的研究实验室,在与微软合作时,它改变了对开源的立场。一年后,他们表示正在通过商业API不是开源来实现所有的软件创新。该组织此前担心:其下一代模型可能被滥用。
此外,苹果或微软这类大公司,虽然在开源方面表现得非常积极,但实际上其软件产品中只有一小部分是开源的,包括库和工具。与其他公司相比,这不过只是整个开源生态系统中极小的一部分。
“归根结底,我们最关心的是确保人工通用智能惠及所有人。我们认为开发商业产品是确保我们有足够资金取得成功的途径之一。”OpenAI在最近一篇关于发布的博客文章中说。