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

背景:

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

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

虽然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计算框架需要做到的一个方面。

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

什么样的AI计算框架才是受用户喜欢的?的更多相关文章

  1. 一文理解Hadoop分布式存储和计算框架入门基础

    @ 目录 概述 定义 发展历史 发行版本 优势 生态项目 架构 组成模块 HDFS架构 YARN架构 部署 部署规划 前置条件 部署步骤 下载文件(三台都执行) 创建目录(三台都执行) 配置环境变量( ...

  2. Storm实时计算框架的编程模式

    storm分布式流式计算框架. nimbus:主进程服务(职责就是任务的分配的,程序的分发) supervisor:工作进程服务(职责就是启动线程池,接受任务,运行任务,报告任务的运行状态) 注意容错 ...

  3. 大数据计算框架Hadoop, Spark和MPI

    转自:https://www.cnblogs.com/reed/p/7730338.html 今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什 ...

  4. (第4篇)hadoop之魂--mapreduce计算框架,让收集的数据产生价值

    摘要: 通过前面的学习,大家已经了解了HDFS文件系统.有了数据,下一步就要分析计算这些数据,产生价值.接下来我们介绍Mapreduce计算框架,学习数据是怎样被利用的. 博主福利 给大家赠送一套ha ...

  5. Serverless助力AI计算:阿里云ACK Serverless/ECI发布GPU容器实例

    ACK Serverless(Serverless Kubernetes)近期基于ECI(弹性容器实例)正式推出GPU容器实例支持,让用户以serverless的方式快速运行AI计算任务,极大降低AI ...

  6. 昇腾AI计算,618冲动消费也不怕

    摘要:近期大热的图像识别处理核赔技术,可应对剁手党们冲动购物之后汹涌而至的退货场景.那么,这背后运用的技术原理是怎样? AI计算平台又能否重构企业业务引擎呢? 随着AI技术的挖掘与应用落地,也为每一年 ...

  7. 端云协同,打造更易用的AI计算平台

    内容来源:华为开发者大会2021 HMS Core 6 AI技术论坛,主题演讲<端云协同,HUAWEI HiAI Foundation打造更易用的AI计算平台>. 演讲嘉宾:华为海思AI技 ...

  8. Storm分布式实时流计算框架相关技术总结

    Storm分布式实时流计算框架相关技术总结 Storm作为一个开源的分布式实时流计算框架,其内部实现使用了一些常用的技术,这里是对这些技术及其在Storm中作用的概括介绍.以此为基础,后续再深入了解S ...

  9. Spark Streaming实时计算框架介绍

    随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐.用户行为分析等. Spark Streaming是建立在 ...

  10. 开源图计算框架GraphLab介绍

    GraphLab介绍 GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架.框架使用C++语言开发实现. 该框架是面向机器学习( ...

随机推荐

  1. Windows Server 2016 离线安装.NET Framework 3.5

    Windows Server 2016 离线安装.NET Framework 3.5 1.双击Windows Server 2016的ISO,会自动挂载,比如F盘. 2.右键开始菜单- 命令提示符(管 ...

  2. ubuntu server 22.04 安装docker

    ubuntu server 22.04 安装docker 官方安装文档: https://docs.docker.com/engine/install/ubuntu/ 1.更新软件列表: sudo a ...

  3. 小米便签AS部署之Git的基本使用

    1 项目测试截图 及仓库地址 https://gitee.com/magicfatblink/Notes-master 2 小米便签代码的移植 2.1 IDE 的准备 2.1.1 AS版本选择 由于小 ...

  4. C++操作符重载(operator)

    c++操作符 例如-=+*/等,甚至包括,<<等都是操作符.c++特色之一就是给予完全重构和重载操作符(Java不可以,c#操作部分). 例子入手 假设一个结构体,定义如下 struct ...

  5. Linux多网卡的bond模式原理

    Linux多网卡绑定 ​ 网卡绑定mode共有7种: bond0,bond1,bond2,bond3,bond4,bond5,bond6,bond7 常用的有三种: ​ mode=0: 平衡负载模式, ...

  6. Spark Structured Streaming(一)基础

    1. 流处理的场景 我们在定义流处理时,会认为它处理的是对无止境的数据集的增量处理.不过对于这个定义来说,很难去与一些实际场景关联起来.在我们讨论流处理的优点与缺点时,先介绍一下流处理的常用场景. 通 ...

  7. HTTP协议 学习:2-基于libcurl的开发

    HTTP协议 学习:2-基于libcurl的开发 背景 上一讲我们介绍了HTTP报文的一些内容,这一讲我们基于http有关的开源库,进行HTTP通信.最后再完成一个简单的下载小程序. ref : ht ...

  8. 莫名其妙的bug——Segmentation fault

    vscode出现Segmentation fault异常,但是没有问题报错(如上) 先说原因:cout << dp[m]; m没有输入,一个空定义(空指针) 难受啊,有一次cf因为这个bu ...

  9. 化合物同位素理论同位素分布计算软件Isopro 3.0

    大家好,今天分享一款软件,即可以计算化合物理论同位素分布的软件Isopro 3.0.在做质谱的实验时,特别对合成的化合物进行质量表征时,往往要求ppm绝对值在5以内,对质谱的分辨率要求很高.对于小分子 ...

  10. SSRF结合Redis未授权的打法

    目录 SSRF + Redis未授权 案例 怎么构造 redis 数据包? Reference SSRF不难理解,服务器端请求伪造(英语:Server-side Request Forgery,简称S ...