TensorFlow、PyTorch夹缝之下:后浪的进击和野望

发布时间:2020-08-01 20:25:46   来源:曙光健康网    
字号:

用手机扫描二维码在手机上继续观看

手机查看

出品 | AI科技大本营(rgznai100)

“我发现,软件研发总会延期。”一流科技CEO袁进辉说。

根据他的预期,深度学习框架OneFlow做两年就能开源给开发者磨练,但时间向后延长了近一年半,“确实预计的禁绝”。

但无论如何,经由1300多天的打磨,一个由30多人团队打造的基于静态调理和流式执行技术的OneFlow深度学习框架终于问世。

对于刚刚在GitHub开源的OneFlow,袁进辉总体打85分。

与其他几个“国产”AI框架相比,袁进辉认为,在完备性上,OneFlow比在今年3月开源的MindSpore和MegEngine要更好,不外支持的模型库还是比2016年就开源的PaddlePaddle要少。

效率方面,OneFlow的一类优势是“人有我优”,好比其他框架做数据并行得90分,他们进一步“挖油水”,做到靠近100分;另有一类叫“人无我有”,其他框架基本只有深度定制才气支持超大模型,而OneFlow可以轻易做到。袁进辉给出了一组数据对比,显示其他框架在大规模模型训练效率上与OneFlow对比,有着数量级的差距。

而在多卡的易用性上,OneFlow要比其他框架要好,但在支持动态图方面,袁进辉也坦承与PyTorch有差距,不外很快可以追上。

2017年1月,PyTorch正式推出,TensorFlow正如日中天。彼时,海内外除了一线大厂,鲜有创业公司敢去啃AI框架这一硬骨头,但刚刚建立的一流科技却对此很坚定,即便那时从资金、团队、生态、品牌各个维度上来看,外界认为他们做的是Mission Impossible。

他们的信心源自对底层技术偏向的掌握。2015年,其时还在微软亚洲研究院的袁进辉(网名:老师木)已经研究了快两年的AI框架,和内部专家有过许多交流碰撞,这让他坚定要做一款差别技术偏向的AI框架,但那时在研究院找不到工程团队支持。袁进辉相信,如果能找到数十个“袁进辉”组团,就可以搞定这件大事。

2020年年头,在又一次因为估错开源时间延期后,OneFlow团队在七月的最后一天最终搞定,对外开源了二、三十万行代码。他们希望,把这个框架的精妙和创新之处,与每一位使用它的开发者分享。

GitHub链接:https://github.com/Oneflow-Inc/oneflow

OneFlow地址:https://www.oneflow.org/#

为什么是静态调理和流式执行

AI科技大本营:显然,现在OneFlow是真正接受宽大开发者磨练的时候了,跟之前的预期相比,你给现在开源的版本整体打几多分?

袁进辉:预期的肯定是想让框架综合来说都很好,但这样做工程量实在太大,所以现在只能在一个维度上很是有特色,有优势,整体我打85分,在扩展性这一个维度上是很是好的。

易用性方面,PyTorch是很是好的。TensorFlow完备性很是好,用户用这个框架做训练之后,要在服务器端部署,就要serving,在终端上部署要有轻量级版本,要搞可视化,要支持许多的算子,模型库要富厚,要能支持图像、强化学习,自然语言、广告推荐等应用,要什么要有什么,TensorFlow在这方面很是好。

另有扩展性或效率,就是算的快不快,好比用户投入10倍或100倍资源,能不能真的让它加速10倍或100倍,以及现在业界泛起的Bert、GPT-3等大模型,你的框架能不能做。

OneFlow框架比力大的优势或特色,就是效率。

AI科技大本营:像GPT-3这些最新的模型OneFlow都市支持?

袁进辉:GPT-3是土豪才气玩的模型,不但是技术问题,暂时还不支持。Bert是支持的,另有像广告推荐、人脸识别、检测、图像分类,最常见的十几个模型一开源就会支持。

AI科技大本营:OneFlow架构大致分为哪几层?

袁进辉:最上面是模型库,模型库支持CNN等种种经典模型应用,另有Python的API层,基本上其它框架主要也是Python。最底层就是跟硬件打交道的,另有XLA、TVM这些编译器。

中间两层是OneFlow和其他框架差异比力大的地方,划分是编译层和执行层。编译层其实就是静态调理的实现,执行层就是盘算图的执行。

AI科技大本营:OneFlow框架的设计理念和技术创新是什么?

袁进辉:架构是为目的服务的。我们最大的追求是降低用户使用多机多卡的难度,提升这方面的用户体验。

但不幸的是,现在的框架只解决这个需求里最简朴的部门,也就是数据并行。如果神经网络模型参数量自己不大的话,现在所有框架都能有比力满足的效果,但厥后又泛起许多像Bert、GPT-3这种参数量庞大的新模型,以及超大规模的人脸识别,大规模广告推荐,这就需要支持参数支解的模型并行,模型运行在框架层面是一个很是挑战的难题,到今天绝大部门主流框架都没有这个功效,纵然定制之后能跑通,效率也很惨,满足不了工业级需求。

另外,就是要解决编程效率问题,怎么让多机多卡漫衍式编程更容易,也是OneFlow多机多卡体验的一部门。

为了满足这个目的,OneFlow趟出了一条其他框架还没有走的路,也就是静态调理和流式执行。

AI科技大本营:静态调理和流式执行怎么解决问题的?

袁进辉:这跟深度学习算法和异构盘算特点相关。深度学习的任务负载特征跟以前Hadoop,Spark面临的盘算纷歧样。以前许多任务是批式处置惩罚,处置惩罚整体数据,盘算粒度很大,但深度学习是随机梯度下降算法,是很是多小粒度的盘算组成,靠近流式盘算,大数据系统里的Flink、Storm也是流式系统,与那些批式处置惩罚系统纷歧样。

底层支撑硬件也纷歧样,深度学习包罗大量浓密盘算,很是适合高度并行的加速卡,广泛地依赖于异构盘算,既有CPU也有加速卡,不是以前的纯CPU集群,GPU等加速器处置惩罚更快。所以,每一片任务过来,都是百毫秒甚至在几毫秒以内差不多就完成了。

一个作业重包罗数十万很是小的转瞬即逝的任务,每个任务粒度很是低,如果系统内里有一丁点不顺畅,可能就成为整个系统的瓶颈,因为所有的小任务都需要等着调理器做决议。

怎么解决这个问题?我们的思路是凭据深度学习自己的特点,掘客出调理纪律,让系统在盘算发生之前提前获得许多调理的纪律的和计谋,这种情况下就能把所谓的运行时的那种分外的开销就降到尽可能的低,险些降到可忽略不计,这就能克服异构的流式盘算里很是严峻的挑战。

流式执行是做什么?在这种任务里的多个卡之间频繁的数据搬运,对整个盘算任务来说也是一个很是显著的开销,那流式系统就能提前通过整体计划,在每一次盘算发生之前,就把所需要的数据参数都提前取到,通过流水线把数据搬运和盘算做完全地重叠。如果是以前那种批式处置惩罚的大数据系统,就没法做到。

所以,OneFlow的思路就是做一个偏静态调理和流式执行的系统。

AI科技大本营:针对多机多卡的问题,除了OneFlow提出的解决路径,市面上其他框架怎么做的?

袁进辉:在多机多卡任务上,另有解决那些庞大的超大模型场景上的探索,整个行业是比力低级的。像PyTorch只关注易用性的话,重点都是在单卡上,纵然做多卡也是最简朴的all reduce,调一下英伟达的NCCL库就好。

因为近期有一些大模型出来,模型并行、流水并行的方式,整个行业才开始关注,包罗Google做的GPipe, Mesh-Tensorflow,另有华为MindSpore对这类模型举行探索,但大部门也仅仅是做一个插件,很难加入主干代码,要实现正确且高效是很是难的。

不谦虚地说,在解决多机多卡问题上,其他框架和OneFlow可能是一两年的差距。

AI科技大本营:按你说的,多机多卡算是强需求,其他框架怎么一开始就没思量到这一点?

袁进辉:这是个好问题,有多方面的因素。一是大部门用户没有那么大规模的盘算资源,有多机多卡的都是土豪,大部门用户面临的任务或场景还没到多卡的规模;二是从模型生长的情况来说,超大模型趋势是近期泛起的,早期,大家的认知就是做数据并行就够了,也不是那么难。

三是差别的团队有差别计谋,多机多卡属于公认的技术难题,但摘果子的时候大家肯定先摘低垂的果子,所以有的框架可能先做最宽大用户看中的一些工具,把多机多卡的优先级往后移了,好比PyTorch一开始主打易用性,TensorFlow厥后做多机多卡的加速比收益很低,很难用,但不故障它捕捉大量的用户;四是,多机多卡需要GPU服务器之间有很是高速的带宽,这需要一些特殊的软件和硬件技术,像支持RDMA的以太网等技术另有普及的历程。

AI科技大本营:能支持超大模型,是OneFlow创业初期就有的判断还是后期偶然的顺势而为?

袁进辉:这也是个很好的问题。这个判断是创业初期就有的,但发生这个想法很具有偶然性。

有时候别人也问我,为什么你最先想到搞这种并行,我就回复,我提前预测到这是个刚需,是早晚会发生的事情,因为底层芯片中,单个芯片的盘算力是有物理限制的,你必须通过互联方式等才可能解决。

在2008~2011年在清华盘算机系做博士后时,对使用机械学习方法明白人脑神经网络结构的形成感兴趣。

2013年,我在微软研究院,这时深度学习已经热起来,就想把我博士后的课题“明白神经网络为什么work”做下去,到现在这个问题还没有令人满足的理论效果,以及为什么CNN这种从人脑结构中启发获得的网络,在应用上效果这么好?要研究这个理论味道十足的问题,那时就碰面临一个挑战,明白参数量庞大的神经网络背后的机制,其实盘算空间参数量庞大。

这个问题我在微软研究了一年,这种基于好奇心的研究又回到了盘算的手段上。而其时的许多框架,要实现这种研究都不行能,这项研究只好无疾而终。我后面在微软又做了主题模型LightLDA,是一个很是大规模的模型,我越发相信,框架不能仅仅停留在做CNN这种很小参数量的模型。2014年年底,那时TensorFlow还没公布,我已经开始想象未来的深度学习框架是什么样。

厥后,Caffe、TensorFlow公布后,仍然解不了我想要解决的庞大模型问题。所以,我还是要想措施用一种技术或者架构去设计出一个框架来支持大模型研究。

作为科学家,我有好奇心,就要竭尽全能去验证,我不想因为工具的缺失,验证不了一个idea。这就启发我和团队一直往这个偏向去想,我们也去看别人框架怎么做,从历史中去学习履历,包罗硬件迭代、高性能网络等等,最后不停提炼,把门路走通。

AI科技大本营:回到OneFlow框架整体的定位,它是一个首创了静态调理和流式执行架构的ML框架,这个焦点定位到今天开源有没有发生过变化?

袁进辉:没有,因为问题没有变化。其时能想到的最好方法也就是这样的,从那时到现在好几年时间把几十个关键难题买通,现在简直看到效果是切合预期的。

如果说有什么扩展的话。已往一两年整个行业最大的变化就是PyTorch的崛起,应该很少人都预计到它能通过易用性捕捉那么多用户,固然,易用性背后也有动态执行等一套技术支持,现在大家都这么搞了。所以在静态调理和流式执行外,OneFlow也增补了动态图执行的机制。

开发者上手门槛高不高

AI科技大本营:OneFlow更多强调的是工业级落地,对学界的开发者支持力度怎么样?

袁进辉:应该说,学界开发者也是我们很重视的。首先,已经提供了一些比力经典的模型,单机单卡的使用体验实事求是说和PyTorch有差距,但我认为会早晚追上。如果想用多机多卡或是单机多卡,OneFlow会很有优势,一个是效率的优势,一个是易编程的优势。

AI科技大本营:开发者上手容易吗?

袁进辉:我们努力把它做到上手体验和其他框架差不多,但我们为了提升漫衍式的易用性,引入了一些新的观点,可能需要开发者去相识、学习一下。固然,在单卡的情况下,和其它框架是差不多的,纵然有差距我们也会更快补上。

AI科技大本营:文档写得够详细吗?

袁进辉:文档分三个条理。一部门是API文档,我们每个OP和TensorFlow、PyTorch险些是一样的,而且纵然有的地方没有文档,你看TensorFlow或PyTorch的文档也够了;另有用户搭建模型的文档,是比力全的;设计文档涉及到代码内里的架构,这是欠缺的,框架开源之后希望快速补上,我们会先放出一些比力high level的设计文档。

AI科技大本营:开源后,框架会如何优化?

袁进辉:我们要做的事还真的蛮多。有模型库的建设,我们希望用户最需要的那些模型都在OneFlow上有实现,而且在业界有竞争力,还要做和其他框架的兼容,文档的也要做。

另有一些比力深的技术难题,包罗在框架和编译器,很是动态的神经网络,以及偏稀疏的网络怎么能在OneFlow框架上支持。

AI科技大本营:生态搭建在开源后的一两年应该比力重要,你们有没有实质性的开端计划?

袁进辉:这属于术的层面,包罗计谋、执行另有营销。最基础的还是两点:一,开源社区里有价值的工具,一定会出头;二,OneFlow自己的技术领先,这是我们很是坚定的。这两点是前提,后面要解决的问题就是,通过一些手段告诉别人这是好工具。

AI科技大本营:在支持上层应用落地上,你们是做to B服务,在场景落地和客户的选择上是否有优先序次?

袁进辉:肯定有。OneFlow框架主打效率和扩展,特别是头部的互联网企业、AI企业就有这个需求,我们并不是从这类企业内里去挣钱,而是真的满足它的需求,我们也愿意去做支持,希望能做成标杆客户,纯粹是为了增加OneFlow的应用场景。

AI科技大本营:开源后的商业化历程有没有什么计划?

袁进辉:框架要在整个平台下面去做商业化,需要和许多其他的模块系统配合,所以我们是有私有部署的解决方案,特别是传统大型企业背后的算力中心需要整套解决方案,这可以作为近期商业服务收入,未来要向云服务生长。

百家争鸣还是在向终局收敛

AI科技大本营:你现在还能相对客观的评价和总结一下,市面上其他主流框架的优势和不足吗?

袁进辉:先声明这是利益相关。我是遵从心田,还是不冒犯别人呢?

TensorFlow,我以为是最好,编译器、框架、 serving、 lite、可视化等都有,另有很是强大的算法科学家、应用场景和工程团队的支持,社区和生态很是强。不足之处是大而全,在任何一个单点上总能找到比它更好一点的框架,TensorFlow历史负担太重,系统太庞大,难以实时吸收框架技术的新突破。

PyTorch,它的优势也是它的缺点,整个架构是为相识决易用性问题,技术较简朴,整个工程庞大度比力低,切中了用户痛点,这是它的利益。不足之处在于,为未来特别是大规模需求思量的不多,训练出来模型之后举行部署时也比力难题。

MXNet,早期的时候实际上有许多好的想法,但缺乏一个很是清晰的主门路,很长时间没有大的进步。

PaddlePaddle,完整度是很好的,在百度内部强制使用,有实践磨练,但在技术上像追随者的角色,没有突破和引领潮水。

MindSpore,团队很强,做全栈AI的战略上想得很是清楚,局部有技术创新,问题是对GPU的支持不足。

MegEngine,亮点是把训练和推理一体化了,但这个团队的基因是视觉,对自然语言处置惩罚、广告推荐、强化学习等应用的支持可能不在他们的视野之内。

AI科技大本营:你说过,在资源有限的情况下,做框架必须找到最正确的路径才气做到又快又好,从百家争鸣向终局收敛,现在是百家争鸣还是说技术框架的技术已经在收敛了?

袁进辉:我以为是现在处于争鸣和收敛的历程中,离终局可能另有两年时间。

每一个框架上的生态就能像个黑洞一样,外界有什么新的想法也都为自己所吸纳。如果一个技术创新不是足够大的话,这个想法就很容易被生态最强的框架吸已往。所以新框架必须与众差别,这样别人吸收你会很是难题,你也就有一个时间窗口能站稳,拥有一波铁杆用户,才可能生长壮大。

AI科技大本营:收敛是不是意味着技术门路会走向同质化?

袁进辉:是的,各个框架现在来说长得越来越像了,因为我看你这个想法好,也根据你的套路去做,所以竞争很是白热化。我相信未来这个市场实际上会酿成一个赢者通吃的局势。

AI科技大本营:你说竞争到了白热化,但总体来看,框架的数量是比力少的。

袁进辉:框架这个领域确实数量不多,因为庞大性和难度已经拦住了许多人,有许多人以为做框架没有胜算,他就不会来做这个事,所以但凡进来的都是强者。

AI科技大本营:OneFlow会成为其中一个赢家吗?

袁进辉:原来是TensorFlow一家独大,PyTorch的泛起造成各占百分之四五十的市场,我们相信OneFlow可以逐渐站住脚,先实现三分天下,甚至可以再进一步,我们有这个信心。

AI科技大本营:有人说,开发者对于训练和推理这两个维度的关注点纷歧样,在训练时更关注效率,推理时更关注低功耗,所以训练和推理可能会分化出两大框架市场,你是否同意?

袁进辉:肯定同意。训练有两个维度很重要,一个是易用性,研究员要快速的把自己的idea酿成product,PyTorch是这个特点,另一个是扩展性,可以不计成本训练比力大规模模型。可是,在端上要思量很是受限的场景,要思量到端侧算力弱,功耗要求苛刻,这一定要是很是轻量的,甚至跑的模型都需要压缩,训练框架在端上都不work。虽然我适才说赢者通吃,但在训练和推理上可能还是会分化出两套框架。

AI科技大本营:现在是做开源软件最好的时期吗?

袁进辉:开源背后有很深的话题,开源本质是什么?怎么来的?流传纪律是什么?可谈的工具特别多。回到问题自己,现在确实是一个很好的时间,现在泛起了专门做开源,和云联合的蛮好的To B商业模式,海内另有新基建的政策红利。

“从各个维度,他们都说不行能做成”

AI科技大本营:OneFlow框架的研发履历了几个阶段?

袁进辉:把我们的技术设想跑通就花了快两年时间,约莫是2018年秋天;然后在这上面把经典的模型,调到满足的状态,又或许花了快一年的时间,主要是解决原来没预计到的问题;骨架打造好之后,最近半年都在做易用性、文档、模型库等能力。

AI科技大本营:之前你说今年第二季度会开源,但这个时间点显着延后了,发生了什么?

袁进辉:我们原来是计划一季度开源,那时旷视和华为也开源了,但我们发现他们模型富厚度有点单薄,会影响开源效果,为了做到一个比力令人满足的状态,就再推迟了三、四个月。

AI科技大本营:如果复盘一下,这三年来创业的最大感受是什么?

袁进辉:总的来说,在一些主要的事情上,没有做错什么。我们创业,主要的矛盾都来自于在很是受限的资源下如何做好一件很是难的事情。在这种情况下,再高明的治理、运作计谋也没措施,矛盾在这儿就是很是猛烈。

所以,如果能解决资源问题,肯定资助很大。解决这些难题,我本人也履历了一个发展的历程,知道怎么和资本打交道,怎么说服技术妙手加入。

解决资源问题,首先,创业者自己要想明确,想通想透。说服自己,你只需要想很近的工具。但要说服更多的人来一起资助你,你就必须想到底,因为别人看到首创人也没想通,就没信心。其次,创业者不仅要想通,而且要能说明确,怎么以很是好的故事讲出来,获得别人认同。

AI科技大本营:什么时期感受最难题?

袁进辉:2018年的秋冬,那时已经研发了一年半以上。创业者有个18个月魔咒的说法,也就是一年半没看到希望,没有正反馈,心态就会发生变化,会失去耐心。

我自己肯定很是坚定,但团队里不是每一小我私家都这么坚定,长时间没有正反馈,有一部门人信心和耐力到了极限,所以谁人时间段,我又顶上去做了一段时间研发。同时,之前的融资也快花完了,那既是事实上的冬天,也是资本隆冬,公司处于濒死边缘,人员规模还做了收缩。

AI科技大本营:哪个机构解了OneFlow的燃眉之急?

袁进辉:快手,另有老股东。

AI科技大本营:快手为什么会投,有战略上的思量吗?

袁进辉:快手首创人宿华在种子轮就投了我们。我们其时和快手在同一栋楼,也经常借他们的盘算资源,所以知根知底,他们知道我们做的事是扎实的,是真的做出来了,只不外还差临门一脚。

固然,快手自己的业务规模很大,也很是需要大规模机械学习基础设施,这个需求是存在的,而且知道这个问题难度很大。

AI科技大本营:其时,内部和外部对你们最大的质疑是什么?

袁进辉:质疑有许多,从技术能力、生态逆转各个维度去看,都认为我们是不行能做成。

AI科技大本营:怎么面临这些质疑?

袁进辉:信心必须靠理性,通过扎实的分析论证这个事情一定会发生,这个需求一定会发生。不管是谁解决这个需求,早晚会走到我们设想的这条路上来。那时,我们已经走到这条路上了,而别人还没有入手这个偏向,我们有先发优势,可能是世界上最先搞定这个问题的团队。

如果没有这些理性分析,就简直会以为很难,会者不难,难者不会。当我们把这个路子想通时,就是执行的问题,只是说别人还不知道,别人看到也不相信,但对内部的人来说,它的发生只是时间早晚的问题。

AI科技大本营:现在所有的框架都在进步,而且其他企业的投入比OneFlow都要大,你说是因为坚定和信心,但从另一维度,是不是可以明白成你是相信开发者群体有着识别好产物的眼光?

袁进辉:简直。特别在开源的情况下,开发者可直接去做判断和体验,他能知道优劣,好的工具一定会获得认可。

AI科技大本营:OneFlow终于开源了,最近心情怎么样?

袁进辉:最激动的时刻在前面已经发生了,当技术设想买通那一刻,看到效果时最激动。现在其实比力平静,感受许多事情都在预计之内,一件件自然发生而已。

AI科技大本营:要把OneFlow推给更多的开发者,对他们有什么想说的?

袁进辉:开发者群体蛮分化的,每位事情配景差别的人看重的点都纷歧样,刚开始没措施让所有的开发者满足。我最想和开发者朋侪说的是,我本人目力所及,OneFlow确实包罗了很是优美、精妙的创新想法,很是希望大家可以去感受下。固然,如果你发现一些问题,也希望大家包容、反馈,我们会尽快修复。

图说天下

分享到微信朋友圈

×

打开微信,点击底部的“发现”,

使用“扫一扫”即可将网页分享至朋友圈。

时尚女人
育儿知识
生活百科
减肥方法