胡事民:计图的创新与探索|YEF2020

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-05 14:57:42

  

  作者 | 蒋宝尚

  编辑 | 丛

  CCF青年精英大会YEF2020将于今年6月5日-7日召开。与50+国内外学术及产业界顶级专家相约8大论坛会场,共谋激变格局下的发展之道。

  机器学习平台是人工智能的核心技术,其能够负责机器学习模型的训练和推理;能够管理着人工智能应用所需的大规模数据和模型;可以负责底层计算设备调度以及资源申请。所以,这项技术对人工智能的重要性不言而喻。

  计图(Jittor)作为中国高校第一个开源的机器学习框架,在3月份发布之后,开发者们在社交媒体平台上对其满是赞誉。5月30日,第一次计图深度学习研讨会在线上召开。

  在会上,清华大学教授、CCF 副理事长胡事民教授谈到了他做这件事情的初心: 破局,即打破国外TensorFlow和PyTorch独大的局面,避免“卡脖子”困境 。

  6月6日,在中国计算机学会(CCF)主办的中国计算机学会青年精英大会(CCF YEF)上,胡事民教授将会再度登场做《统一计算图:机器学习框架“计图”的创新与探索》的报告,详解计图所做的创新与探索,以及高校研究者将如何参与机器学习框架的更新迭代的相关分享,精彩内容不容错过!

  为帮助更多爱好者在参会前更多了解计图的相关信息,AI科技评论根据胡事民教授的近期分享进行了整理:

  “中国在人工智能领域已经跻身于世界前列,但发展不均衡也是不争的事实。

  “我们长于算法和应用,弱于学习平台。具体表现是,当前我国的人工智能应用和算法研究大多基于国外的TensorFlow和PyTorch等机器学习平台,这很容易陷入“卡脖子”困境。”

  在5月30日的第一次计图深度学习研讨会上,清华大学胡事民对我国人工智能发展提出了自己的看法。

  对机器学习平台的布局国外更加迅速,例如,2008年蒙特利尔大学提出theano框架,2013年Caffe诞生于加州大学伯克利分校,而在国内,无论是业界还是学界,在开源机学习项目上始终慢了一拍,直到2016下半年,百度才开源了深度学习平台飞浆。

  

  图注:图片来自第一次计图深度学习研讨会

  华为被列入了美国实体清单的同时,人工智能开源软件也有被禁的风险。基于此业界和学界纷纷打造自己的机器学习平台,例如今天三月份旷视开源了天元,华为发布了MindSpore。而Jittor(计图)则是高校层面的第一个平台。

  高校研发具有公共物品性质的机器学习平台有着比业界更加明显的优势,高校是中立的、公益的、非盈利的代表,其资金来源更多的是“政府支出”,其开发的技术产品容易被学界和业界接受。

  那么国内的高校以前为什么没有开发平台呢?胡事民在报告中提到: 做一个机器学习平台需要对机器学习算法的深刻理解,需要对图形图像应用的精准把握,需要对底层系统软件的巧妙应用 。也就是说,不同于写文章、发论文,机器学习平台的设计需要更多的技术积累以及技术体系的全面性。

  而计图内部使用创新的元算子和统一计算图正展示了清华大学计算机系图形实验室的底蕴。

  注:清华大学计算机系图形实验室成立于 1998 年 3 月,2007 年发展成为清华大学可视媒体研究中心,2010 年获批成为北京市工程技术研究中心,同年和腾讯公司合作成立清华-腾讯互联网创新技术联合实验室,并于 2018 年,成立北京信息科学与技术国家研究中心下的可视媒体智能计算团队。目前有教授 2 名、副教授 3 名、助理研究员 1 名、博士后 4 名和研究生 50 多名。

  1

  计图的架构与特点

  

  计图发布于3月20日,其是一个采用元算子表达神经网络计算单元、完全基于动态编译(Just-in-Time)的深度学习框架。

  整体架构分为四个部分,其中创新点在系统层和算子层。在算子层,元算子融合与动态编译优化在保证易用性的同时,能够实现更复杂、更高效的操作。而在系统层,统一计算图则是融合了静态计算图和动态计算图的诸多优点,在易于使用的同时,提供高性能的优化。

  这两个根本性的创新也使计图区别于国际上主流平台。例如Tensorflow早期的版本是静态图,对于算法整体求解,虽然高效,但抛却动态图的易用性。而Pytorch则强调动态图,虽然灵活,但并不高效。

  计图的第一个特性是反向传播闭包,使得计图可以统一“前向”和“反向”计算图,并可求解高阶导数。

  

  第二个特点是算子动态编译,运行时优化。 用户编写的算子与模型,将在运行的时候,生成高性能的代码,并且进行动态编译优化

  

  第三个特点是统一内存管理,节省显存 。即GPU内存耗尽可以使用CPU内存弥补。

  第四个特点是极简的自定义算子开发(提出Code算子) 。用户可以在 Python中内联C+代码,数行代码即可完成高性能算子的开发。

  

  第五个特点是辅助模型迁移工具。 迁移工具帮助用户快速从 PyTorch迁移到计图。

  介绍完计图的特性之后,胡事民详细介绍元算子融合的创新之处。他提到无论是Tensorflow还是PyTorch其都具有庞大的算子库,例如Tensorflow算子数量为2000+,PyTorch算子数量为700+,所以,庞大的算子库维护,优化困难就成了当前面临的问题。

  

  计图在这方面的创新是:将神经网络计算所需的基本算子进行归纳总结,提出元算子(18个)和算子融合的概念。 这些元算子可以覆盖绝大多数深度学习算子,对于无法覆盖的算子,计图提供Code算子,能够完成100%算子覆盖。

  对于计算图,胡事民提到,计算图可以分为静态计算图和动态计算图两大类。对于静态计算图,其是一次性把全图发送计算设备上运行,优点是性能比较高,缺点是不够灵活。而动态图是将算子动态地发送到计算设备上运行,优点是灵活性高,缺点是效率低。

  针对当前主流框架易用和高效不可兼得的特点,计图给出统一计算图方面的创新,即对动态图进行切分,从而形成静态的子图,然后对静态子图进行优化。

  

  除了统一静态图和动态图,统一计算图还完成了多种统一。例如统一管理前向反向图,支持高阶导数;统一管理CPU-GPU内存,突破GPU显存限制;统一同步异步运行接口,使得数据读取,内存拷贝,模型计算可以同时进行,提升性能;统一管理多次迭代的计算图,使得框架可以实现跨迭代的融合优化等等。

  2

  计图最新进展和展望

  值得一提的是,5月30日的计图深度学习研讨会上,计图还发布了GAN模型库,包含27中模型,比PyTorch均有较大的性能提升,其中13种主流的GAN模型加速过超一倍。

  在报告的最后,胡事民也总结了计图最近的几个进展。首先,增加了大量骨干网络的支持,增强了辅助转换脚本的能力,降低用户开发和移植模型的难度;再者,JIT(动态编译)功能升级,可支持高性能的自定义算子开发,并降低了用户开发自定义算子的难度;最后,新增分布式功能,用户无需修改代码,只需要修改启动命令,单卡版本的训练程序可以直接无缝部署到多卡甚至多机上。

  其中,新增的骨干网络包括AlexNet、VGG、ResNet、Wide ResNet和SqueezeNet等多种流行骨干网络。而且这些骨干网络参数与PyTorch参数格式兼容,可以相互加载调用,方便用户学习和迁移。

  

  另外,JIT(动态编译)功能的增强,主要体现在code算子的功能增强上。Code算子是一个基于高性能语言的动态编译算子,允许用户直接在Python中内联C++/CUDA代码,只需要寥寥数行代码,就可以完成高性能的自定义算子开发,降低用户开发自定义算子的难度。

  

  而对分布式的支持,主要是基于MPI (Message Passing Interface)实现。用户安装OpenMPI后,无需修改训练代码,只需修改启动命令,Jittor就会用数据并行的方式自动完成并行操作,实现多卡训练。

  最后胡事民提到:“计图虽然提出没多久,但也希望为国内机器学习的发展做出贡献, 希望能够有一个中国人自己的主流开源框架 ,清华大学计算机系图形学实验室将不断地完善这个框架,会继续扩充算子的覆盖面。

  计图的主要目标不是去跟企业主导的平台去比,而是一定要做原始创新 ,希望能提出一些原创的思路,也希望通过计图框架平台的研发,培养年轻的一代学生,让他们能够掌握人工智能的核心技术,为中国的人工智能发展,为中国科技的进步做出应有的贡献。”

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!