三家企业实践:为什么从TensorFlow转向PyTorch?

图片

深度学习框架PyTorch由于具备易用性,目前已经渗透到企业当中。透过媒体巨头迪士尼、机器人公司蓝河科技及采矿创企Datarock这三家公司的案例,我们来看看,为何他们会选择PyTorch,而不是谷歌著名的TensorFlow框架。

深度学习机器学习的一个子类,它使用多层神经网络大规模自动化处理历史悠久的机器任务,例如图像识别、自然语言处理(NLP)和机器翻译。 

TensorFlow自2015年从谷歌推出以来,一直是研究和商业领域最受欢迎的开源深度学习框架。但在2016年,从Facebook上脱颖而出的PyTorch,由于社区推动的易用性和部署方面的改进,可适用于广泛的用例,很快就赶上TensorFlow。 

PyTorch在汽车工业中得到了特别广泛的采用,例如特斯拉和Lyft Level 5等飞行员的自动驾驶系统。该框架还可用于媒体公司的内容分类和推荐,以及工业应用中的机器人。 

Facebook AI人工智能产品负责人Joe Spisak告诉InfoWorld,虽然他对企业采用PyTorch的数量增加感到高兴,但要获得更广泛的行业应用,还有很多工作要做。 

「下一波采用将伴随着生命周期管理、MLOps和Kubeflow管道以及相关社区的出现。」他表示, 「对于那些刚开始的人来说,这些工具相当不错,可以使用托管服务和一些开源软件,AWS或Azure ML上的SageMaker之类的软件来开始使用。」

 一 迪士尼:精准识别动画片中的人脸

自2012年以来,媒体巨头迪士尼的工程师和数据科学家一直在构建该公司所谓的 「内容基因组」。「内容基因组」平台是用内容元数据填充知识图谱的,基于机器学习的搜索能力为迪士尼庞大的内容库和个性化应用提供动力支持。 

例如,如果在搜索引擎中搜索史蒂夫·乔布斯,AI程序就可以利用这些数据来增强搜索,可以更好地帮助动画师从迪士尼档案中找到特定镜头和序列。 

「这些元数据改善了迪士尼故事员用来制作内容的工具;激发了讲故事的迭代创意;通过推荐引擎、数字导航和内容发现为用户体验提供动力;并实现了商业智能。」迪士尼开发人员Miquel Àngel Farré、Anthony Accardo、Marc Junyent、Monica Alfaro和Cesc Guitart在7月的一篇博客文章中写道。 

在这之前,迪士尼必须投资于一个庞大的内容注释项目,求助于数据科学家,利用图像识别的深度学习模型来训练一个自动化的标签流水线,以识别大量的人物、角色和地点的图像。 

迪士尼的工程师们一开始尝试使用了包括TensorFlow在内的各种框架,但在2019年决定围绕PyTorch进行整合。工程师们从传统的定向梯度直方图(HOG)特征描述器和流行的支持向量机(SVM)模型转向被称为区域与卷积神经网络(R-CNN)的对象检测架构版本。后者更有利于处理迪士尼内容中常见的真人、动画和视觉效果的组合。 

「很难定义什么是动画片中的人脸,所以我们转向使用对象检测器的深度学习方法,并使用了转移学习。」迪士尼研究工程师Monica Alfaro向InfoWorld解释道。在仅仅处理了几千张脸之后,新模型已经能够大致识别所有三种用例中的人脸。它于2020年1月投入生产。 

「我们现在只用一个模型来处理三种类型的人脸,这对于像《复仇者联盟》这样的漫威电影来说是非常棒的,因为它需要同时识别钢铁侠和托尼·史塔克,或者任何戴着面具的人物。」她说。 

由于工程师们要处理大量的视频数据来训练和并行运行该模型,因此在进入生产阶段时,他们还希望在昂贵的高性能GPU上运行。 

从CPU的转变让工程师能够更快地重新训练和更新模型。它还加快了将结果分发到迪士尼各个小组的速度,将处理时间从一部长篇电影的大约一个小时,缩短到今天的5到10分钟就能得到结果。 

TensorFlow对象检测器在制作过程中带来了内存问题,而且很难更新,而PyTorch有同样的对象检测器和Faster-RCNN,所以我们开始使用PyTorch来处理所有的事情。」Alfaro说。 

这种从一个框架到另一个框架的转换对工程团队来说也是出奇的简单。「『改用PyTorch』很容易,因为它都是内置的,你只需要插入一些功能,就可以快速上手,因此学习难度并不高。」Alfaro说。 

当他们遇到任何问题或瓶颈时,充满活力的PyTorch社区会随时提供帮助。

 二 蓝河科技:除杂草机器人

蓝河科技(Blue River Technology)公司设计了一款机器人,它结合了数字寻路、集成摄像机和计算机视觉技术,可以识别农作物与杂草,精准地向杂草喷洒除草剂。 

2017年,重型设备制造商约翰迪尔(John Deere)3.05亿美元收购了蓝河科技,目的是将这种技术整合到其农业设备中。 

蓝河科技的研究人员在训练计算机视觉模型识别杂草和作物之间的区别时,尝试了各种深度学习框架。

他们让一些农学家手动标记图像,并使用PyTorch训练了卷积神经网络(CNN),以分析每帧图像并绘制出精确的农作物和杂草位置图。蓝河科技计算机视觉机器学习技术总监Chris Padwick8月在一篇博客文章中写道。 

「和其他公司一样,我们尝试了Caffe、TensorFlow,然后尝试了PyTorch,」Padwick接受媒体采访时说,「对我们来说,PyTorch的作用非常大。我们没有收到过任何bug报告,也没有出现过阻塞bug。在分布式计算中,它确实比TensorFlow更好,并且更易于使用,因为TensorFlow的数据并行性相当复杂。」 

Padwick表示,PyTorch框架的流行和简单性让他在快速增加新员工时具有优势。尽管如此,Padwick梦想着一个世界,「人们用他们喜欢的任何东西进行开发。有些人喜欢用Apache MXNet或Darknet或Caffe进行研究,但在生产中必须用单一语言,而PyTorch拥有我们成功所需的一切。」 

 三 采矿创企Datarock:基于深度学习的岩心钻探

澳大利亚初创公司Datarock由一群地球科学家创立,致力于将计算机视觉技术应用于采矿业。更具体地说,其深度学习模型正在帮助地质学家比以前更快地分析钻芯样品图像。 

通常,地质学家会一厘米一厘米地仔细研究这些样本,以评估矿物学和结构,而工程师则会寻找诸如断层、裂缝和岩石质量等物理特征。这个过程既缓慢又容易出现人为错误。 

Datarock的首席运营官Brenton Crawford接受InfoWorld采访时表示:「电脑能像工程师一样看到岩石。」「如果你能在图像中看到它,我们就可以训练一个模型来像人类一样分析它。」 

与Blue River类似,Datarock在生产中使用RCNN模型的一种变体,研究人员转向数据增强技术,以在早期阶段收集足够的训练数据。 

在最初的发现期之后,该团队着手结合各种技术来创建用于钻探岩心图像的图像处理工作流程。研究人员在博客文章中写道:「这涉及开发一系列深度学习模型,这些模型可以将原始图像处理为结构化格式并分割重要的地质信息。」 

使用Datarock的技术,客户可以在半小时内获得结果,而手动记录发现结果需要五到六个小时。Crawford说,这使地质学家从繁重的工作中解放了出来。但是,「当我们将更困难的事情自动化时,我们确实会遇到一些压力,并且必须说明它们是该系统的一部分,可以训练模型并获得反馈循环。」 

像许多训练深度学习计算机视觉模型的公司一样,Datarock始于TensorFlow,但不久后便转移到PyTorch。 

Datarock机器学习负责人Duy Tin Truong对InfoWorld表示:「起初,我们使用TensorFlow时,它会因神秘原因而崩溃。」他还表示,「PyTorch和Detecton2当时发布了,很符合我们的需求,因此在进行一些测试后,我们发现调试和工作更加容易,占用的内存更少,因此我们进行了转换。」 

Datarock还表示,在GPU上运行模型时,从TensorFlow到PyTorch和Detectron2的推理性能提高了4倍,在CPU上提高了3倍。 

Truong指出,转换使用PyTorch的原因在于,不断发展的社区、设计良好的界面、易用性和更好的调试等优点。他还认为,虽然从界面角度上看,它们有很大的不同,但是如果了解TensorFlow,切换起来就相当容易,尤其如果更了解Python,感受就会不同。 

参考链接:

https://www.infoworld.com/article/3597904/why-enterprises-are-turning-from-tensorflow-to-pytorch.html

产业深度学习机器学习
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

商业智能技术

商业智能(Business Intelligence,BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

MXNet技术

MXNet是开源的,用来训练部署深层神经网络的深度学习框架。它是可扩展的,允许快速模型训练,并灵活支持多种语言(C ++,Python,Julia,Matlab,JavaScript, Go,R,Scala,Perl,Wolfram语言)

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推荐文章
暂无评论
暂无评论~