谷歌机器学习项目备受关注的四项核心
作为最初被设计为支持谷歌系统规模伸缩的技术方案,TensorFlow目前已经可为每位用户也享受。
作为谷歌公司专门为应用智能化目标打造的开源机器学习项目,每个人都能轻松选择TensorFlow,而它也会根据各类头条消息预测用户的行为与喜好。
不过除此之外,该项目还拥有更加野心勃勃的目标,即随着数据规模的持续增长成为开源机器学习系统日渐庞大的生态系统整体的重要组成部分。
以下为四项TensorFlow值得技术从业者加以关注的重要理由。
1.它将成为谷歌内部机器学习系统的下一代方案
根据谷歌公司CEO Sundar Pichai在博文当中所指出,TensforFlow的构建目的与谷歌此前发布的众多其它开源解决方案相同:旨在解决谷歌公司内部机器学习解决方案在面对规模化数据时所遭遇的实际难题。
而在另一篇博文当中,谷歌公司研究员Jeff Dean(曾参与BigTable与MapReduce项目)提到了谷歌早期深度学习系统DistBelief的大量细节,包括其在运行当中面临的诸多局限。除了与谷歌的内部基础设施的关联过于紧密之外,其设计目标还专门用于处理神经网络侮。Dean在一段YouTube视频当中进一步对此进行了解释,包括DistBelief在可扩展性与生产培训方面的出色表现,但他同时提到其在研究工作方面显得不够灵活。
相比之下,TesorFlow能够与任意基于梯度的机器学习算法相协作,这就为其开辟了更为广阔的适用范围。出于运行速度考量而以C++编写的TensorFlow不需要开发人员对底层承载硬件具备任何了解。其同时能够运行在多种设备及架构之上,因此其适应平台从手机等系统芯片设备到配备数十块GPU的分布式系统皆可涵盖。
考虑到硬件设备的发展速度之快以及抽象层的快速普及——事实上,即使是像C++这样的语言也会与其运行所在的设备之间存在抽象层,这种设计方式具有重大意义。这是一种前瞻性设计策略,允许谷歌公司以性价比极高的方式利用先进硬件构建规模化体系,同时保证TensorFlow始终能够与之顺畅对接。
TensorFlow是谷歌公司所发布的公共使用基础设施当中的最新组成部分。原先,谷歌曾经大规模推广过容器编排工具Kubernetes,而如今其已经被广泛视为容器生态系统当中的重要成员之一。
2. 来自谷歌的支持令TensorFlow拥有更多深层含义
如果能够得到像谷歌这类巨头级企业的支持,特别是对于技术概念极为复杂的机器学习这类方案,开源项目将能够迎来更为可观的发展潜力以及来自开发者群体的支持热情。
因为这种来自巨头的支持往往意味着这些方案已经在这些老牌企业当中进行了内部使用——谷歌公布TensorFlow时也正好符合这种情况。在这种情况下,开源项目当中那些影响最大、最为严重的漏洞早已在其内部使用过程当中得到了解决。另外,当背后支持方拥有像谷歌这样可观的规模,那么该开源项目往往已经被应用在了相当广泛的场景之下。
对该项目进行开源意味着将有更多用户得以为其贡献力量,并成为其发展背后的有力推手。几乎没有几家贡献方能够拥有像谷歌这样的业务规模,但他们仍然有机会想到并设计出谷歌单凭自身力量根本无法想到的可能性用例。
3. 易用性出众——这一点非常重要
在利用任何框架处理数学、统计或者机器学习任务时,我们面临的首要难题就是易用性。Apache Spark之所以吸引到了众多支持者,除了其极具吸引力的内存内处理速度优势之外,它所采用的相对简单的编程接口同样功不可没。IBM公司曾经利用Spark编写出其重要数据处理产品DataWorks,而且蓝色巨人强调称这一选择将其原本设想的4000万行代码顺利削减到了500万行。
同样的,TensorFlow的一大固有优势也正在于易用性。除了能够由其它C++应用程序直接实现接入之外,它还提供面向Python的接口——其中包括支持Ipython/Jupyter笔记本/这就使得使用感受更为直观而且易于理解。目前开发团队还在为打造更为强大的其它语言前端,包括谷歌Go。另外,Python 3支持问题已经被标记为需要尽快解决的缺陷。虽然TensorFlow的构建元素尚未完全齐备,但目前的储备及阵容已经相当可观。
4.施压压力令机器学习默认选择开源路线
谷歌公司的Mtt Cutts提出了这一观点,并指出以Hadoop为代表的“整个山寨行业”都在努力对谷歌发布的MapReduce技术论文进行重构。“但结果却很难称得上理想,”他写道,“因为外部代码当中往往存在着一系列我们已经在谷歌内部解决过了的问题。”
以专有方式开发算法代码的优势正在逐步减少。算法目前已经不再是机器学习方案当中最为重要的组成部分——特别是在将机器学习部署在云环境当中的情况下。相反,算法用于培训自身所导入的数据以及需要与之对接的真实世界数据源才是最重要的元素。考虑到IBM最近刚刚收购了Weather Company,很明显可以看到蓝色巨人想要的不仅仅是实时、真实世界数据流,而更多地是用于生成这些数据的传感器阵列。