首页 > 技术 > AI/人工智能

ai框架最新消息丨ai框架部署

人阅读 2023-06-02 18:16:00

【ai框架最新消息丨ai框架部署】lot物联网小编为你整理了的相关内容,希望能为你解答。

1、什么是深度学习框架?

如果你正在使用深度学习工具进行科研或工作,一定会依赖深度学习的框架,今天我们一起讨论“Deep Learning Framework”。我们先一起看一下英伟达对Framework的定义。“Deep learning frameworksoffer building blocks for designing, training and validating deep neural networks, through a high level programming interface. Every major deep learning framework such as Pytorch, Tensorflow, and JAXrely on Deep Learning SDKlibraries to deliver high-performance multi-GPU accelerated trAIning.As a framework user, it's as simple as downloading a framework and instructing it to use GPUs for training."

参考前期的Deep Learning由“浅”变“深”,天天向上,从感知机到多层前馈网络,从BP算法到卷积核,到处都包含各种各样的数学算法,而深度学习框架正是一种库和工具,包含了常用算法和计算过程,给开发者提供构建神经网络模型的数学操作。AI框架把复杂的数学表达转换成计算机可识别的计算图,这种对整体开发流程的封装,让研究人员和工程师只需要了解神经网络中各种"计算"的目的和各种"算法”的逻辑即可。针对实际科研项目或实际应用场景时,开发者可以把有限的精力都专注于的神经网络模型结构的设计和优化上,如训练参数、增加自己需要的Layer、或者改良分类器等,大大降低了使用者入场的门槛,提高生产效率。框架避免了大家重复造轮子,而去琢磨“造车子”这样的更有价值的事。

2、深度学习框架包含了什么?

(1)深度学习框架的组成

如前面讨论框架就是有许多常用的函数或运算(如矩阵乘法等)的库,这些程序库可以用C/C /Python等编程,可以在Linux、Windows、Mac OS不同的操作系统上运行。目前大家常用的不同编程框架的本质是很类似,通常都由以下几部分组成。

张量对象:张量就是一组多维的数据,能涵盖各种数据的形式,不论要处理的数据是天气、股票、人体生理指标、语音、图像还是视频,都可以用不同维度的张量表示。在所有的张量里最常用的就是二维张量,即矩阵。

对张量的运算:基于神经网络的机器学习在本质上是对输入数据的一系列矩阵运算、卷积运算和非线性运算。这些常用的运算例如矩阵乘法、非线性处理等都可以成为程序库里的一个运算或函数。当我们调用这个函数时,只需要把该填的参数填进去,例如矩阵的大小和内容,而不必再自己写矩阵的具体运算。

运算流程图和程序优化:许多编程框架都提供可视运算流程图,这个工具可以把一个神经网络的全部运算用框图的方法画出来,框图中的每个节点就是程序库中的一个函数或运算,这样整个运算非常直观,也容易找到程序漏洞。对于一个复杂的程序,用可视流程图方法画出来后有全局观,很容易优化。

自动求导器:在神经网络训练时最复杂的计算就是把输出误差通过反向传播,用最陡梯度法来调整网络各层的加权系数直至输出误差最小。这个计算是一个连锁的在网络各层对权重系数集求导数的计算,在大部分的编程框架中,这个连锁求导被打包成一个运算函数。在把运算流程图画出来以后,只要调用执行“训练”这个运算,就可以得出训练好的网络参数。

针对GPU的线性代数运算优化:GPU特点是可以执行大量的并行计算,线性代数中的运算许多都是矩阵运算,通过优化让运算在硬件中充分并行。

(2)开发者需要“易用”的框架,很多“软需求”变成“常规需求”

深度学习框架能屏蔽底层硬件复杂繁琐的使用方式,提供简单应用的功能函数,方便开发者更好的利用机器资源,完成自己的任务。对于广大开发者,要充分降低使用门槛,对于一个框架很多的“软需求”就变成了“常规需求”,譬如易用,高效,完备(算子、模型、配套工具链、文档、案例),一个新的框架在这些方面应该没有明显的短板。以国内百度的深度学习框架Paddle为例子,它开源的框架产品里包括

开发套件 训练品平台:包括核心框架(Paddle)、分布式训练(API Fleet)、多任务学习框架(PALM)、云上任务提交工具PaddleCloud,有了这些,开发者可以开始进行开发、训练模型了。

模型库:目标检测(PaddleDetection),PaddleHelix(生物计算),PaddleOCR(文本识别)等,热门模型如ResNet、Yolo、Deeplab等都可以在其中找到。

辅助工具:自动化深度学习工具(AutoDL) 、联邦学习工具(PaddleFL) 、可视化分析工具(VisualDL)、全流程开发工具(PaddleX)、模型压缩工具(PaddleSlim)。

推理部署工具:推理库(Paddle Inference),服务化部署框架(Paddle Serving),轻量化推理引擎(Paddle Lite)等。

文档 社区:官方教程,官方文档,应用案例,飞桨开发者技术专家、飞桨领航团、飞桨博士会、深度学习工程师认证、技术论坛。

可以看到,一款成熟的深度学习框架产品,不仅需要包括模型从训练到落地所需的主程序、模型库、辅助工具、开发平台等,也需要良好的文档、活跃的社区、精彩的课程,这样子才能够吸引更多的开发者入驻,繁荣生态。

参考百度Paddle的产品全景图

3、有哪些主流的AI框架?

看看这些主流框架背后的大公司,我们就知道一定有很多故事,以后我们慢慢讨论。

主流框架列表

框架

背后的公司

开源时间

Tensorflow

Google

2015年11月

CNTK

微软

2016年1月

MXNet

Amazon

2016年5月

PyTorch

Facebook

2017年1月

MXNet

Amazon

2016年5月

Caffe

加州大学伯克利分校

Caffe2于2018年合入Pytorch

Onnx

微软,亚马逊 ,Facebook 和 IBM 等公司共同开发

2020年12月

PaddlePaddle

百度

2018年7月

MindSpore

华为

2020年3月

OneFlow

一流科技

2020年7月

主流框架全家福

4、老美为啥爱做框架和标准?

以前有几年参与过IEEE标准制定的工作,后来总结IEEE的运作规则,有这12个字“靠脸吃饭、多劳多得、官商勾结”。所谓“靠脸吃饭”是指,“老人”和“大公司”在标准组织中有强大的话语权和运作能力,而且公司实力和人际关系网影响了技术(即标准演进)的态势均衡;所谓“多劳多得”是指,在标准组织中,只有“多劳”才能“多得”,你干了很多技术分析、组织了很多热点讨论、写了很多的文档,只有做了这些持续的投入(最好还要争取到职位),才能获得利益保障(即你的标准技术诉求);所谓“官商勾结”是指,标准组织不是纯粹的学术组织,每一项运作和决策都有背后的商业诉求影响,理解不同公司和组织的商业诉求才能理解标准方向,你不要天真的以为IEEE是一个纯粹的工程师讨论技术的组织,这里里外外也包含了很多商业利益的。

我们回到深度学习框架上来,老美做框架、做标准、做体系的能力是非常强的,思路是非常清晰的,打法也是非常套路化的。就和做标准一样,你别认为框架开源就是一个纯技术的事了。你用这些开源框架进行开发,多好啊,多省事啊,殊不知“免费的才是最贵的”,别人可不傻,这些大公司也不是做慈善的。你用了他的框架开发产品,也就是在给他的产品添砖加瓦,帮助他不断完善;你在他的社区里灌水提问题,帮他解bug,也帮他聚集了人气;你在卖产品时,宣传支持/兼容XXX框架,也是帮他打了广告。而且目前所有的框架开源了都是遵循Apache2.0协议,在这个协议的规则下,任何人都可以使用Apache2.0协议许可下的软件,并且可以用于商业;但任何人都可以任意修改原有的软件,并将修改后的软件申请商标和专利,但修改的软件必须注明使用了Apache 2.0的许可,必须明确标示修改的部分。别人用“开源免费”请你进来,帮你获取利益的时候也通过很多的方式从你身上获得利益。总之,天下是没有免费的午餐的。

5、期待国产深度学习框架能与TensorFlow,Pythroch一较高下

中国目前深度学习研究和应用主要还主要依赖于国外平台,时刻面临着卡脖子的风险,中国需要有自主化人工智能全产业链。因此作为产业链上很重要的一环,如果没有自己的框架,未来风险很高的,就像做芯片设计的缺EDA软件一样,如果美国说你不能用了,那可能你就玩不了了!除了上面介绍百度的Paddle,清华的计图、旷世的天元、华为的MindSpore、一流科技的OneFlow等开源框架纷纷推出,给走在国产化道路上的中国开发者打了强心针,如果我们有了自己的“轮子”,我们就敢安安心心造自己的“车子”。

但是,重复造轮子可以解决“卡脖子”问题,却无法形成超越。做国产化的开源架构当然不能仅仅“生搬硬套”,结合实际应用做创新,在未来发展方向做创新,在局部性能上通过创新取得领先,这些应该是国产化框架应有的理想。相信Deeplearing Framework上一定还能找到创新点?就像几年前,本来TensorFlow看上去已经一统天下了,然后PyTorch来一个动态图再加上易用性好像就找到突破点了。我们期待创新,至于是否能形成燎原之势,是否能真正与TensorFlow、PyTorch一较高低,就要看每一位开发者投票了。

除了技术以外,生态建设是应该更加要关注的一点。看看TensorFlow的下载量、看看学生都在用PyTorch做科研,国产化框架就会觉得压力很大,生态建设是漫漫长路,框架的表达能力是否能更强?用户上手的速度是否能更快?只有把麻烦留给自己,把便捷留给用户,才能慢慢获得口碑。作为很多的普通开发者,所谓的性能指标领先对我们来说有时候是看热闹,但是,从下载安装到场景部署整个链条上的易用性、有体系有逻辑的支持文档、对于不同种类和款型芯片能够良好支持、有问必答的社区环境等等,这些才是能真正绑住数量众多普通开发者的。

后发劣势、创新点瓶颈,生态建设,这三座大山横在国产化框架开发者面前。但我们也相信应对未来大量的不确定性,供应安全永远都是最大的风险,因此夯实产业基础,撸起袖子自己造"轮子",这样心里才踏实。

6、关于国产AI芯片对各种框架的支持:

除了框架的国产化。那么国产芯片去支持各种框架,包括国产框架和国外的框架,特别是最流行的如TensorFlow、PyTorch、Caffe、ONNX,国产的如飞桨等框架的支持程度也是很重要的。

国产的AI芯片支持的框架越多,其可用场景越多,会被更多基于各种框架开发算法的用户去使用。

有的厂家更多的是依赖自己强大的投入,有一套自己的完整的编译环境,适配主流框架。让自己的芯片能够承载更多的框架。例如华为、英伟达、寒武纪等厂家,从芯片到工具链、芯片、框架、算法,全部自己开发。但是框架和算法日新月异,不断的推陈出新,闭环开发会导致芯片无法全方位的跟得上软件发展步伐。

算能公司推出“通用架构TPU编译工具链”TPU-MLIR,最大的特点就是“开源”,特别是匹配国产框架的发展,助力国产框架的适配性。

TPU-MLIR是一个专注于AI芯片的TPU编译器开源工程。该工程中提供了一套完整的工具链,用于将不同框架下预训练过的神经网络转化为可以在TPU上高效运算的二进制文件 bmodel。

开放源码

TPU-MLIR 工程的所有代码都已开源,向所有用户免费开放。用户在使用本工程的同时也可以参与到该工程的完善与改进工作中,共同创造出一款站在时代前沿的 AI编译器。

入手简单

通过阅读开发手册与工程中已包含的样例,用户可以快速地了解模型转化流程与原理,从而入门该工程。并且,TPU-MLIR 基于当前主流的编译器工具库 MLIR 进行模型化设计,用户也可以透过该工程来学习 MLIR 的应用,知识点丰富,应用面广泛。

使用便捷

该工程目前已经提供了一套完备的工具链,用户可以直接通过现有接口快速地完成模型的转化工作,节约大量投入在适配不同网络的过程中所花费的时间成本。

多框架支持

目前 TPU-MLIR 已经支持 tflite 以及 onnx 格式,该类格式的模型可以使用本工程直接进行模型转化。此外,依托 onnx 当前完善的生态,大部分利用主流深度学习框架(如 PyTorch 与 Caffe 等)开发的模型也都可以通过先转换为 onnx 模型间接地完成 bmodel 转化。

精度与效率并存

TPU-MLIR 支持 INT8 对称和非对称量化,在大幅提高性能的同时又结合原始开发企业的 Calibration 与 Tune 等技术保证了模型的高精度。不仅如此,TPUMLIR 中还运用了大量图优化和算子切分优化技术,以保证模型的高效运行。

完善文档支持

一个好的开源项目必须配套完善的用户文档,才能让用户以最小的代价入门,一起参与进来共同贡献,同时如果配合完善的用户文档,贡献者也可以自己探索一些不常用的模块,最大限度地提高大家协作的效率。

大量模型转换,把各种框架运行在算能AI芯片BM1684上的课程实例已经上传至硬十课堂网站。全部免费公开。

以上内容为【ai框架最新消息丨ai框架部署】的相关内容,更多相关内容关注lot物联网。

LOT物联网

iot产品 iot技术 iot应用 iot工程

Powered By LOT物联网  闽ICP备2024036174号-1

联系邮箱:support1012@126.com