什么样的AI计算框架才是受用户喜欢的?
  z67waqH4oRtg 2023年12月04日 17 0

说明,本文是个人的一些胡想。

 

背景:

AI计算框架现在从国外的百家争鸣过度到了国内百家争鸣的局面了。在7、8年前的时候,国外的AI计算框架简直是数不胜数,从14、15年前Nvidia公司的显卡需要手动编写cuda代码实现神经网络,从异构向量计算的推出到神经网络框架的广泛使用细细算来也就是十几年的时间。在几年前的国外,众多的神经网络框架竞争最后胜出了TensorFlow和Pytorch,而随着TensorFlow的使用难度增加和Pytorch的运算速度提升,现在不仅是学术界而且工业界都已经开始转向Pytorch了。从2017年的TensorFlow和Pytorch势均力敌到2020年的全产业转向Pytorch,国外的深度学习框架已经形成了一家多大的局面,就连AI领域的领头羊OpenAi公司也已经宣布转向Pytorch,可以说在可以预计的未来AI框架则是Pytorch一家的天下。

 

PS:

OpenAI 在博客中说,自从选择了 PyTorch,他们可以将研究思路到生成模型的迭代开发时间从周压缩到天。这节省了很多的时间。 

 

 

OpenAI转向Pytorch,新闻链接:

 https://baijiahao.baidu.com/s?id=1657408357553973985&wfr=spider&for=pc

什么样的AI计算框架才是受用户喜欢的?_Tensorflow

 

 

 

=========================

 

 

虽然Pytorch已经成为了AI领域公认的唯一好用的计算框架,但是随着中美贸易战的白热化,美国开始禁止或限制Pytorch和TensorFlow的加速硬件(NVIDIA GPU)出口到中国,因此我国需要自主开发出一个AI计算框架和一个AI加速硬件设备。虽然AI计算框架早已结束了全面竞争阶段而到了一家独大的时代,但是为了打破美国的AI垄断我们急需一个自研的AI框架和AI加速设备,在这个过程中有两个公司分别推出了自己的方案,百度推出的AI框架是Paddle,华为推出的是mindspore。

 

百度推出的paddle,中文名为飞浆,其优势就是百度本身的软件能力极强,在国内的互联网公司里作为BAT的头号老大虽然近几年收益下滑后已经有些江湖地位不保的危险,但是作为国内IT技术的老牌龙头老大还是依旧在软件领域有着一定的积累的。百度公司不仅有着成熟的软件开发流程和规范,并且有着成熟的技术团队,虽然在技术上和国外的顶级公司依旧无法相比但是在国内已然是顶尖的软件开发能力了。同时,百度公司并没有采用自研AI加速器,也就是说百度公司依旧采用Nvidia公司的显卡作为AI加速器,其优点就是可以在国外硬件公司提供的硬件基础上进行直接开发,NVIDIA公司提供了世界上性能最高的AI加速器的同时还提供着完整的软件生态系统,并且这个NVIDIA的配套软件和硬件已经在不断的开发和更新。虽然百度的最大优势就是软件技术高并且使用国外顶级的硬件产品,然而百度的AI框架最大的缺点就是这个优点,那就是没有自研的AI加速硬件,这样的情况下百度的AI计算框架是无法躲避美国的技术制裁的。

 

华为推出的事mindspore,华为是老牌的硬件公司,顾名思义,华为的软件实力是国内可以数的上的大公司里面比较垫底的,不过大家要知道一个硬件公司搞软件搞的很差好像也是一个可以理解的事情的。华为推出的AI框架其最大的优点就是有自研的AI加速硬件,而最大的缺点就是软件能力极差,可以说华为的软件领域基本是从零开始的,在华为公司里面推出的软件产品基本大多数都是在国外开源软件基础上套壳再改进的,而且由于华为的软件开发是没有成熟的开发规范和流程的,这就导致华为推出的软件产品出现上限的产品不停报Bug,而后台又找不到具体的编译环境和开发版本,最后就搞的一团乱,这个情景很要人联想到计算机专业的大学本科毕业生的毕业设计,总之就是不管再好看但就是不好用。由于华为的软件开发能力极差,并且是长久的弊病,因此即使时至今日其软件产品的质量也是要人不敢恭维。但是,华为的AI框架最大的优点就是使用了自研的AI加速硬件,这样华为的AI计算就可以不受美国的制裁限制,可以说华为的AI产品是目前国内唯一一个可以真正意义上不受美国限制的产品,但是作为硬件公司推出的AI产品,其最大的缺点就是软件层面上太拉胯,其软件产品的不专业性就如同一个本科生的毕业设计一样要人无可奈何。

 

---------------------------------

 

上面谈的是国内外的AI计算框架的大致情况,下面要谈的是我个人对AI计算框架的一些看法:什么样的AI计算框架才是受用户喜欢的?

 

AI计算框架要想受用户喜欢那就需要有用户粘度,说直白些就是要好用,为此我给出三个方面的思考:

1. 历史遗留问题。一个被大家广泛接受的AI计算框架需要能够解决历史遗留问题,这个历史遗留问题非两类,第一类是非自己本身框架所支持的AI project,也就是说这种遗留问题是该框架推出之前或之后其他框架编写的代码,这个框架需要能够较为容易的支持在其他框架上编写的代码迁移到本身框架上,也就是说要对其他框架编写的project具备一定的兼容性和可迁移性;第二类则是框架本身需要能够支持之前版本的代码,不能说V1.0框架的project不能在V2.0版本的框架上运行,这一点则是要求这个AI框架是一个成熟的软件产品,这一点上Tensorflow和Pytorch都是很好的支持的,尤其是Pytorch,本身不存在tf1.x往tf2.x上迁移的问题,而国产的mindspore在这一点上就有些差强人意了。

2. 语法的亲和度和易用。 可以知道,Pytorch之所以可以打败Tensorflow很大的一个原因是其具备极强的易用性,就如python的pythonic,简洁易用才是最难吸引用户的,毕竟在AI领域这种idea为主要推动力的领域可以快速构建模型才是最为有吸引力的,TensorFlow虽然性能强悍但是语法和API混乱,并且把很多底层计算和计算图构建的操作留给用户,这种把底层计算构建暴露给用户的做法会导致用户在使用该框架构建模型时多花上数倍的时间,这也是为什么OpenAI公司说使用Tensorflow几周才能完成的构建工作换成Pytorch则只需要几天时间就可以的原因了。这种亲和度和易用不仅仅是语法方面更是API方面,就如Tensorflow这种API混乱,用户是无所适从的,搞不清哪个API才是真正好用的,这个方面就要学习python语言了,不为一个功能提供多个实现,主导一个就是方便用。

3. 未来特征的支持。这一点是说AI框架需要有较好的功能扩展性,因为AI领域的不断发展,很多高级特性需要能够快速的加入到现有框架中,这时候扩展性则是一个重要的方面。就比如Tensorflow,在刚推出的时候由于有着Google公司作为技术后盾有着顶尖的软件开发技术,所以Tensorflow是唯一一个原生支持分布式计算的AI框架,而其他的AI框架都是需要第三方的软件支持才可以实现分布式计算的,但是随着业务发展很多功能需要从第三方软件上完全嵌入到AI框架本身,这时候作为重型构架的Tensorflow就有些力不从心,而像Pytorch这样的轻型构架就可以较为容易的加入新的功能。未来的新的功能支持可能是一个新的神经网络计算的kernel核心函数/模块,有可能是一个新型的分布式通信方式,也可能是一种新型的加速技术,能够快速的、容易的加入新的模型以对新的技术进行支持也是AI计算框架需要做到的一个方面。

 

 

 

--------------------------------------------------

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月04日 0

暂无评论

推荐阅读
z67waqH4oRtg