Top
首页 > IT产品和服务 > 第一资讯 > 正文

软件改变世界,程序员改变软件

在深度学习上,ThoughtWorks并不想做一个特别全的,闭源的东西,而是希望最大化的开发工程能力,并且借助团队强大的学术研究背景,将工程能力和学术能力融合在一起,从而形成一个非常高内聚的内核。
发布时间:2017-06-08 10:38        来源:赛迪网        作者:徐培炎

——听ThoughtWorks大牛们讲述深度学习背后的故事

文/徐培炎 赛迪网

【赛迪网讯】提及“人工智能”,看来起来很深奥的样子。不过有关人工智能的话题已经出现了二三十年,早期人工智能更多的出现在学术领域,生物工程,或者科幻小说里。但是最近几年被科技巨头、互联网巨头炒的沸沸扬扬、如火如荼,已经在各个领域可以逐渐看到人工智能的应用场景,这其中很重要的原因是工程技术的发展,计算能力的廉价,以及整个数据的权量。

传统企业经过多年IT建设,已经打下良好的信息化根基,比如ERP、MES、CRM、SAM这些底层的业务架构,都已经发展的很成熟。但是这个被云计算、大数据、人工智能等新概念、新技术推动的新时代,却给他们带来了巨大的挑战。

IMG_3577

ThoughtWorks数据及AI业务负责人史凯(右)与ThoughtWorks首席咨询师杨博(左)

“后ERP时代的数据赋能,对于传统企业是最大的挑战。”,ThoughtWorks数据及AI业务负责人史凯,在2017ThoughtWorks技术雷达峰会期间,接受赛迪网采访时表示:“之前讲智慧赋能,但是智慧赋能最核心还是数据,而且是跟过去最大的差异,原来说智慧的时候很多是讲人的业务经验,而现在会更强调数据运营,基于数据的决策。”

用深度学习框架弥补学术空缺

作为一个以工程能力、以技术卓越创造社会价值改变世界的公司,ThoughtWorks要做什么?史凯认为:“这就是ThoughtWorks开始做深度学习的根源,ThoughtWorks希望让AI让深度学习这样过去很高端的技术,变成一个很平常的,每一个企业甚至每一个程序员都可以掌握的东西。而且随着近几年的发展,我们看到事实验证已经成为现实。”

“AI应用应该飞入寻常百姓家,应该是一种服务,随需随用”,在史凯眼里人工智能应该很平易近人,因为它底层的算法还有神经网络和技术都来自于学术,学术的东西到商用的过程没有那么快,怎么把学术的东西应用到工程领域,这中间还是要有很大的鸿沟。原来说人工智能、神经网络、深度学习,如果没有数学基础,相信很难能理解,数学的门槛就能将半数人拒之门外,这就是门槛。

史凯强调:“ThoughtWorks希望用卓越的工程能力填补这个学术领域和工业世界以及业务价值之间的空隙。站在程序员的角度,用深度学习的框架,是弥补学术空缺的最好办法。”

让每一个程序员简单应用深度神经网络

ThoughtWorks首席咨询师杨博,是DeepLearning.scala的主要作者。他是程序员出身,有很深的工程领域背景,所以很清楚的知道深度学习需要什么样的深度学习框架,他会习惯用程序员的思维去思考,怎么样最好用,这是ThoughtWorks将DeepLearning.scala开源的根本原因。ThoughtWorks终极目标,就是让每一个程序员,每一个企业,就像写平常的对象一样应用深度神经网络,这是初衷。

“目前ThoughtWorks有很多跟我一样的人,都在为DeepLearning.scala开源社区做贡献。”杨博表示:“ThoughtWorks先后发布了DeepLearning.scala1.0版本,2.0测试版,未来还将发布2.1版本。2.1版本之后将重点培养社区,ThoughtWorks希望开发者用深度学习2.1版本,能够非常简单的编写并可以复用深度神经网络层。”

“神经网络由很多层组合起来,比如做一个图样识别的算法,就要识别一种特殊模式,这时就需要另外一个人开发,怎么把他用起来,以前可能这个事情比较难,也可能是各个科学家自己的黑科技。”杨博介绍。

杨博希望在ThoughtWorks DeepLearning.scala平台基础上,可以很方便的编写,同时发布成开源库。杨博强调:“我就是做开源软件开发的,我们在DeepLearning.scala内部,我们的模块化做的非常极致,整个框架一共有几十个库,几十个打包文件,每一个打包文件只有一个原代码文件,每一个库都是独立的,我们希望除了内置的这几十个库之外构成我们框架的核心部分,其他的算法开发者也可以写一个文件几十行代码,在30秒内有一个打包的脚本,打包成一个开源库,其他人把它用上,这就是我们2.1要做的事儿。”

做懂程序员群体的深度学习框架

“ThoughtWorks希望这个DeepLearning.scala是最懂程序员群体的框架,软件改变世界,程序员改变软件,我们希望通过我们的开放框架帮助程序员改变世界,他们专注于他们的工程能力和面对的业务问题,至于深度神经网络多少层,这些专业性的问题和学术上的价值,我们帮他完成。”史凯补充道。

开发工程师或者业务需求人员,可以基于DeepLearning.scala产生很多业务场景,这是ThoughtWorks一直在努力,并且已经做到了的。如今ThoughtWorks DeepLearning.scala的核心开发从量级和投入上,与百度深度神经网络差不多是一个量级。

在深度学习上,ThoughtWorks并不想做一个特别全的,闭源的东西,而是希望最大化的开发工程能力,并且借助团队强大的学术研究背景,将工程能力和学术能力融合在一起,从而形成一个非常高内聚的内核。

由于Scala既有函数式语言的灵活,又支持Java,所以ThoughtWorks DeepLearning.scala第一版就支持Scala。杨博举例,比如用Scala编写一个神经网络,可以在Java代码上直接调用,而且神经网络里面可以调现有的JAVA库。JAVA的开源社区非常庞大,有很多很强大的库,这些库不是用来做机器学习的,但是神经网络里可以用,还可以把已有的程序代码整合到神经网络里,做出来的神经网络,也可以被已有的代码拿掉,这是一个互操作性。这方面,ThoughtWorks DeepLearning.scala可以说是做的最好的,也是与其他框架相比起来,最大的差异。

IMG_3582

ThoughtWorks数据及AI业务负责人史凯(中)、ThoughtWorks首席咨询师杨博(左)、赛迪网主编徐培炎(右)

笔者感悟

ThoughtWorks是一个很有情怀的公司,拥有很多技术牛人,技术狂热者。相识10年以来,给笔者最大的感触就是,这是一家讲求实效的公司,技术强,实践强,重落地,从敏捷到精益,从社区、实验室到技术雷达,一切都为开发者做服务。

如何将技术的卓越运用到工程里,运用到行业中,产生业务价值,这是ThoughtWorks的核心诉求,也是长期以来一直遵循的工作方式。

合作站点
stat